MySql常用查询命令操作大全
MYSQL常用查命令:
mysql>selectversion();查看MySQL的版本号 mysql>selectcurrent_date();查看MySQL的当前日期 mysql>selectversion(),current_date();同时查看MySQL的版本号和当前日期 mysql>showdatabases;显示当前存在的数据库 mysql>USEmysql选择使用数据库(USE和QUIT命令不需要分号结束) Databasechanged mysql>selectdatabase();显示当前选择的数据库 mysql>showtables;显示当前数据库中存在的表 mysql>select*fromdb;显示表(db)的内容 mysql>describemytable;显示表的结构
或showcolumnsfrom表名;
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)*4ASResult,sin(pi()/3);(AS:指定假名为Result)
查看MySQL当前用户占用的连接数
命令:showprocesslist;
如果是root帐号,你能看到所有用户的当前连接。如果是其它普通帐号,只能看到自己占用的连接。
showprocesslist;只列出前100条,如果想全列出请使用showfullprocesslist;
mysql>showprocesslist;
一。数据库:
mysql>CREATEDATABASEabccs;创建一个数据库 mysql>USEabccs选择使用数据库 mysql>dropdatabase数据库名;删除数据库
二。表:
1。创建一个表mytable:
mysql>CREATETABLEmytable ->( ->nameVARCHAR(20), ->sexCHAR(1), ->birthDATE, ->birthaddrVARCHAR(20) ->);
建立一个员工生日表,表的内容包含员工姓名、性别、出生日期、出生城市。
由于name、birthadd的列值是变化的,因此选择VARCHAR,其长度不一定是20。
可以选择从1到255的任何长度,如果以后需要改变它的字长,可以使用ALTERTABLE语句。
性别只需一个字符就可以表示:"m"或"f",因此选用CHAR(1);
birth列则使用DATE数据类型。
2。查询刚添加的记录:
mysql>select*frommytable;
Emptyset(0.00sec)这说明刚才创建的表还没有记录。
3。添加新记录:
mysql>insertintomytable ->values ->( ->'abccs', ->'f', ->'1977-07-07', ->'china' ->);
4。用文本方式将数据装入一个数据库表:
一条一条地添加新记录,实在太麻烦。
创建一个文本文件“mysql.txt”,按表结构排好每行每条记录,用定位符(tab)把值分开。
abccsf1977-07-07china maryf1978-12-12usa tomm1970-09-02usa
使用此命令将文本文件“mytable.txt”装载到表中:
mysql>Loaddatalocalinfile"mytable.txt"intotablemytable;
数据传入命令loaddatalocalinfile"文件名"intotable表名;
注意:你最好将文件复制到mysql/bin目录下,并且要先用use命令选表所在的库。
5。更新记录:
mysql>updatemytablesetbirth="1973-09-02"wherename="tom";
6。删除记录:
mysql>deletefrommytablewhereid=10;//删除掉所有id=10的记录; mysql>deletefrommytablewhereid=10limit1;//限制删除掉1条id=10的记录; mysql>deletefrommytable//删除一个表的全部记录; mysql>DELETEFROMt1WHEREC>10; mysql>droptabletablename1,tablename2,…;//删除整一个表或多个表,小心使用。
7。重命名表:
mysql>altertablet1renamet2;
8。修改mysql的表结构:
查看mysql的表结构:
mysql>describemytable;或用showcolumnsfrom表名;
修改字段属性
mysql>altertabletablenamemodifyidint(10)unsignedauto_incrementprimarykeynotnull
修改默认值
mysql>altertabletablenamealteriddefault0
给字段增加primarykey
mysql>altertabletablenameaddprimarykey(id);
删除primarykey
altertabletablenamedropprimarykey; dropprimarykeyontablename;
修改table表数据引擎
mysql>altertabletableNameENGINE=MyISAM(InnoDB);
增加一新字段名:
mysql>altertablemytableaddcolumnsinglechar(1); mysql>ALTERTABLEtableADDfieldINT(11)UNSIGNEDNOTNULL
删除字段
mysql>altertablet2dropcolumnc;
附:
为了改变列a,从INTEGER改为TINYINTNOTNULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
ALTERTABLEt2MODIFYaTINYINTNOTNULL,CHANGEbcCHAR(20);
增加一个新TIMESTAMP列,名为d:
ALTERTABLEt2ADDdTIMESTAMP;
在列d上增加一个索引,并且使列a为主键:
ALTERTABLEt2ADDINDEX(d),ADDPRIMARYKEY(a);
增加一个新的AUTO_INCREMENT整数列,命名为c:
ALTERTABLEt2ADDcINTUNSIGNEDNOTNULLAUTO_INCREMENT,ADDINDEX(c);
注意,我们索引了c,因为AUTO_INCREMENT柱必须被索引,
并且另外我们声明c为NOTNULL,因为索引了的列不能是NULL。
使用name列的头10个字符创建一个索引:
CREATEINDEXpart_of_nameONcustomer(name(10));
三。数据的备份与恢复:
导出和导入数据:(命令在DOS的mysql/bin目录下执行)
导出表
mysqldump--optschool>school.sql
注释:将数据库school中的表全部备份到school.sql文件,school.sql是一个文本文件,
文件名任取,打开看看你会有新发现。
mysqldump--optschoolteacherstudent>school.teacher.student.sql
注释:将数据库school中的teacher表和student表备份到school.teacher.student.sql文件,school.teacher.student.sql是一个文本文件,文件名任取,打开看看你会有新发现。
导入表
mysql mysql>createdatabaseschool; mysql>useschool; mysql>sourceschool.sql;
(或将school.sql换为school.teacher.sql/school.teacher.student.sql)
导出数据库
mysqldump--databasesdb1db2>db1.db2.sql
注释:将数据库dbl和db2备份到db1.db2.sql文件,db1.db2.sql是一个文本文件,文件名
任取,打开看看你会有新发现。
(举个例子:
mysqldump-hhost-uuser-ppass--databasesdbname>file.dump
就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中。)
导入数据库
mysql复制数据库mysqldump--all-databases>all-databases.sql
注释:将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。
导入数据库
mysql mysql>dropdatabasea; mysql>