MYSQL常用查命令:


mysql> select version();        查看MySQL的版本号

mysql> select current_date();        查看MySQL的当前日期

mysql> select version(),current_date(); 同时查看MySQL的版本号和当前日期

mysql> show variables like ''character\_set\_%''; 查看mysql的字符集

mysql> show databases;            显示当前存在的数据库

mysql> USE mysql            选择使用数据库(USE和QUIT命令不需要分号结束)

Database changed

mysql> select database();        显示当前选择的数据库

mysql> show tables;            显示当前数据库中存在的表

mysql> select * from db;        显示表(db)的内容 

mysql> describe mytable;        显示表的结构

或show columns from 表名;


mysql> select

-> user()

-> \c

mysql>


练习如下操作:

mysql> select

-> USER()

-> ,

-> now()

->;

mysql> Select (20+5)*4;

mysql> Select (20+5)*4,sin(pi()/3);

mysql> Select (20+5)*4 AS Result,sin(pi()/3); (AS: 指定假名为Result)



查看MySQL当前用户占用的连接数


命令: show processlist;

如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。

show processlist;只列出前100条,如果想全列出请使用show full processlist;

mysql> show processlist;



一。数据库:


mysql> CREATE DATABASE abccs;         创建一个数据库 

mysql> USE abccs            选择使用数据库

mysql> drop database 数据库名;        删除数据库


二。表:


1。创建一个表mytable:


例一:mysql> CREATE TABLE mytable 

-> (

-> name VARCHAR(20), 

-> sex CHAR(1),

-> birth DATE, 

-> birthaddr VARCHAR(20)

-> );


例二:CREATE TABLE `aaa` ( 

`id` int(11) NOT NULL auto_increment, 

`name` varchar(32) default NULL, 

PRIMARY KEY (`id`), 

UNIQUE KEY `name` (`name`) 

); 


里面的ID是自增的主键,name则是不能重复的。





建立一个员工生日表,表的内容包含员工姓名、性别、出生日期、出生城市。

由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。

可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTER TABLE语句。

性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);

birth列则使用DATE数据类型。


2。查询刚添加的记录:

mysql> select * from mytable;

Empty set (0.00 sec)      这说明刚才创建的表还没有记录。


3。添加新记录:

mysql> insert into mytable 

-> values

->(

->'abccs',

->'f',

->'1977-07-07',

->'china'

->);


4。用文本方式将数据装入一个数据库表:

一条一条地添加新记录,实在太麻烦。

创建一个文本文件“mysql.txt”,按表结构排好每行每条记录,用定位符(tab)把值分开。

abccs f 1977-07-07 china 

mary f 1978-12-12 usa

tom m 1970-09-02 usa

使用此命令将文本文件“mytable.txt”装载到表中: 

mysql> Load data local infile "mytable.txt" into table mytable;


数据传入命令load data local infile "文件名" into table 表名;

注意:你最好将文件复制到mysql/bin目录下,并且要先用use命令选表所在的库。


5。更新记录:

mysql> update mytable set birth = "1973-09-02" where name = "tom";


6。删除记录:

mysql> delete from mytable where id=10;         //删除掉所有id=10的记录;

mysql> delete from mytable where id=10 limit 1; //限制删除掉1条id=10的记录;

mysql> delete from mytable            //删除一个表的全部记录;

mysql> DELETE FROM t1 WHERE C>10;

mysql> drop table tablename1,tablename2,…;    //删除整一个表或多个表,小心使用。


7。重命名表:

mysql> alter table t1 rename t2;


8。修改mysql的表结构:


查看mysql的表结构:

mysql> describe mytable;   或用show columns from 表名;


修改字段属性

mysql> alter table tablename modify id int(10) unsigned auto_increment primary key not null


修改默认值

mysql> alter table tablename alter id default 0


给字段增加primary key

mysql> alter table tablename add primary key(id);


删除primary key

1、alter table tablename drop primary key;

2、drop primary key on tablename;


修改table表数据引擎

mysql> alter table tableName ENGINE = MyISAM (InnoDB);


增加一新字段名:

mysql> alter table mytable add column single char(1);

mysql> ALTER TABLE table ADD field INT(11) UNSIGNED NOT NULL


删除字段

mysql> alter table t2 drop column c;


附:

为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),

并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:

ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);


增加一个新TIMESTAMP列,名为d:

ALTER TABLE t2 ADD d TIMESTAMP;


在列d上增加一个索引,并且使列a为主键:

ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);


增加一个新的AUTO_INCREMENT整数列,命名为c:

ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);


注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,

并且另外我们声明c为NOT NULL,因为索引了的列不能是NULL。


使用name列的头10个字符创建一个索引:

CREATE INDEX part_of_name ON customer (name(10));




三。数据的备份与恢复:


导出和导入数据:(命令在DOS的mysql/bin目录下执行)

导出表

mysqldump --opt school > school.sql

注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,

文件名任取,打开看看你会有新发现。

mysqldump --opt school teacher student > school.teacher.student.sql

注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文

件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。


导入表

mysql

mysql>create database school;

mysql>use school;

mysql>source school.sql;

(或将school.sql换为school.teacher.sql / school.teacher.student.sql)


导出数据库

mysqldump --databases db1 db2 > db1.db2.sql

注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名

任取,打开看看你会有新发现。

(举个例子:

mysqldump -h host -u user -p pass --databases dbname > file.dump

就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)


导入数据库

mysql < db1.db2.sql


复制数据库mysqldump --all-databases > all-databases.sql

注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。


导入数据库

mysql

mysql>drop database a;

mysql>drop database b;

mysql>drop database c;

...

mysql>source all-databases.sql; (或exit退出mysql后 mysql < all-databases.sql)



mysql备份和恢复的命令 

备份和恢复的命令分别为:


备份:mysqldump --force --add-drop-table --extended-insert -h"数据库主机名" -u"用户名" -p"密码" "数据库名" > 备份数据文件名 

恢复:mysql -h"数据库主机名" -u"用户名" -p"密码" "数据库名" < 备份数据文件名 

备份文件名可为d:\sql.bak

示例:

在DOSCMD模式下备份用mysqldump -u root -p ***** ksedata >d:\sql.bak

恢复用mysql -u root -p ***** ksedata 

当然可以用-h指定主机名



转载.............