Mysql操作基本命令.docx
《Mysql操作基本命令.docx》由会员分享,可在线阅读,更多相关《Mysql操作基本命令.docx(43页珍藏版)》请在冰豆网上搜索。
Mysql操作基本命令
Mysql常用命令
showdatabases;显示数据库
createdatabasename;创建数据库
usedatabasename;选择数据库
dropdatabasename直接删除数据库,不提醒
showtables;显示表
describetablename;显示具体的表结构
select中加上distinct去除重复字段
mysqladmindropdatabasename删除数据库前,有提示。
显示当前mysql版本和当前日期
selectversion(),current_date;
修改mysql中root的密码:
shell>mysql-hlocalhost-uroot-p//登录
mysql>updateusersetpassword=password("xueok654123")whereuser='root';
mysql>flushprivileges//刷新数据库
mysql>usedbname;打开数据库:
mysql>showdatabases;显示所有数据库
mysql>showtables;显示数据库mysql中所有的表:
先usemysql;然后
mysql>describeuser;显示表mysql数据库中user表的列信息);
grant
创建用户firstdb(密码firstdb)和数据库,并赋予权限于firstdb数据库
mysql>createdatabasefirstdb;
mysql>grantallonfirstdb.*tofirstdbidentifiedby'firstdb'
会自动创建用户firstdb
mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
mysql>grantallon*.*toroot@202.116.39.2identifiedby"123456";
说明:
grant与on之间是各种权限,例如:
insert,select,update等
on之后是数据库名和表名,第一个*表示所有的数据库,第二个*表示所有的表
root可以改成你的用户名,@后可以跟域名或IP地址,identifiedby后面的是登录用的密码,可以省略,即缺省密码或者叫空密码。
dropdatabasefirstdb;
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
mysql>grantallprivilegeson*.*touser@localhostidentifiedby'something'with
增加新用户
格式:
grantselecton数据库.*to用户名@登录主机identifiedby"密码"
GRANTALLPRIVILEGESON*.*TOmonty@localhostIDENTIFIEDBY'something'WITHGRANTOPTION;
GRANTALLPRIVILEGESON*.*TOmonty@"%"IDENTIFIEDBY'something'WITHGRANTOPTION;
删除授权:
mysql>revokeallprivilegeson*.*fromroot@"%";
mysql>deletefromuserwhereuser="root"andhost="%";
mysql>flushprivileges;
创建一个用户custom在特定客户端登录,可访问特定数据库fangchandb
mysql>grantselect,insert,update,delete,create,droponfangchandb.*tocustom@identifiedby'passwd'
重命名表:
mysql>altertablet1renamet2;
mysqldump
备份数据库
shell>mysqldump-hhost-uroot-pdbname>dbname_backup.sql
恢复数据库
shell>mysqladmin-hmyhost-uroot-pcreatedbname
shell>mysqldump-hhost-uroot-pdbname 如果只想卸出建表指令,则命令如下:
shell>mysqladmin-uroot-p-ddatabasename>a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
shell>mysqladmin-uroot-p-tdatabasename>a.sql
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump-T./phptestdriver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。
如果不指定driver表,则将卸出整个数据库的数据。
每个表会生成两个文件,一个为.sql文件,包含建表执行。
另一个为.txt文件,只包含数据,且没有sql指令。
可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。
可利用外壳程序键入重定向实用程序来完成这项工作。
例如,如果在文件my_file.sql中存放有查
询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中,
mysql>mysql-hmyhost-uroot-p
Mysql5.0支持的字符集
MySQL中的字符集控制做得比较细,可以分为数据库级,表级,字段级(这一点和ORACLE不同)。
我上次改的字符集是数据库级的,对表sysuser没有影响,所以出现了改了字符集却一样无法插入中文的情况。
DropTABLEIFEXISTS`firstdb`.`users`;
CreateTABLE`firstdb`.`users`(
`id`int(11)NOTNULLauto_increment,
`username`varchar(40)defaultNULL,
`birthday`datedefaultNULL,
PRIMARYKEY(`id`)
)ENGINE=InnoDBDEFAULTCHARSET=gb2312;
编译MySQL时,指定了一个默认的字符集,这个字符集是latin1;
安装MySQL时,可以在配置文件(my.ini)中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
启动mysqld时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的;
此时character_set_server被设定为这个默认的字符集;
当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为 character_set_server;
当选定了一个数据库时,character_set_database被设定为这个数据库默认的字符集;
在这个数据库里创建一张表时,表默认的字符集被设定为character_set_database,也就是这个数据库默认的字符集;
当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集;
这个字符集就是数据库中实际存储数据采用的字符集,mysqldump出来的内容就是这个字符集下的;QueryBrowser1.1对中文输入的支持太差劲了,可以用notebook写好后,再copy过去执行
updatefirstdb.userssetusername='以'whereid=3;
MYSQL常用命令
1.导出整个数据库
mysqldump-u用户名-p--default-character-set=latin1数据库名>导出的
文件名(数据库默认编码是latin1)
mysqldump-uwcnc-psmgp_apps_wcnc>wcnc.sql
2.导出一个表
mysqldump-u用户名-p数据库名表名>导出的文件名
mysqldump-uwcnc-psmgp_apps_wcncusers>wcnc_users.sql
3.导出一个数据库结构
mysqldump-uwcnc-p-d-add-drop-tablesmgp_apps_wcnc>d:
wcnc_db.sql
-d没有数据-add-drop-table在每个create语句之前增加一个droptable
4.导入数据库
A:
常用source命令
进入mysql数据库控制台,
如mysql-uroot-p
mysql>use数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>sourcewcnc_db.sql
B:
使用mysqldump命令
mysqldump-uusername-pdbname C:
使用mysql命令
mysql-uusername-p-Ddbname 一、启动与退出
1、进入MySQL:
启动MySQLCommandLineClient(MySQL的DOS界面),直接输入
安装时的密码即可。
此时的提示符是:
mysql>
2、退出MySQL:
quit或exit
二、库操作
1、、创建数据库
命令:
createdatabase<数据库名>
例如:
建立一个名为xhkdb的数据库
mysql>createdatabasexhkdb;
2、显示所有的数据库
命令:
showdatabases(注意:
最后有个s)
mysql>showdatabases;
3、删除数据库
命令:
dropdatabase<数据库名>
例如:
删除名为xhkdb的数据库
mysql>dropdatabasexhkdb;
4、连接数据库
命令:
use<数据库名>
例如:
如果xhkdb数据库存在,尝试存取它:
mysql>usexhkdb;
屏幕提示:
Databasechanged
5、查看当前使用的数据库
mysql>selectdatabase();
6、当前数据库包含的表信息:
mysql>showtables;(注意:
最后有个s)
三、表操作,操作之前应连接某个数据库
1、建表
命令:
createtable<表名>(<字段名1><类型1>[,..<字段名n><类型n>]);
mysql>createtableMyClass(
>idint(4)notnullprimarykeyauto_increment,
>namechar(20)notnull,
>sexint(4)notnulldefault'0',
>degreedouble(16,2));
2、获取表结构
命令:
desc表名,或者showcolumnsfrom表名
mysql>DESCRIBEMyClass
mysql>descMyClass;
mysql>showcolumnsfromMyClass;
3、删除表
命令:
droptable<表名>
例如:
删除表名为MyClass的表
mysql>droptableMyClass;
4、插入数据
命令:
insertinto<表名>[(<字段名1>[,..<字段名n>])]values(值1)[,
(值n)]
例如,往表MyClass中插入二条记录,这二条记录表示:
编号为1的名为Tom的成绩
为96.45,编号为2的名为Joan的成绩为82.99,编号为3的名为Wang的成绩为
96.5.
mysql>insertintoMyClassvalues(1,'Tom',96.45),(2,'Joan',82.99),
(2,'Wang',96.59);
5、查询表中的数据
1)、查询所有行
命令:
select<字段1,字段2,...>from<表名>where<表达式>
例如:
查看表MyClass中所有数据
mysql>select*fromMyClass;
2)、查询前几行数据
例如:
查看表MyClass中前2行数据
mysql>select*fromMyClassorderbyidlimit0,2;
或者:
mysql>select*fromMyClasslimit0,2;
6、删除表中数据
命令:
deletefrom表名where表达式
例如:
删除表MyClass中编号为1的记录
mysql>deletefromMyClasswhereid=1;
7、修改表中数据:
update表名set字段=新值,…where条件
mysql>updateMyClasssetname='Mary'whereid=1;
7、在表中增加字段:
命令:
altertable表名add字段类型其他;
例如:
在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
mysql>altertableMyClassaddpasstestint(4)default'0'
8、更改表名:
命令:
renametable原表名to新表名;
例如:
在表MyClass名字更改为YouClass
mysql>renametableMyClasstoYouClass;
更新字段内容
update表名set字段名=新内容
update表名set字段名=replace(字段名,'旧内容','新内容');
文章前面加入4个空格
updatearticlesetcontent=concat(' ',content);
字段类型
1.INT[(M)]型:
正常大小整数类型
2.DOUBLE[(M,D)][ZEROFILL]型:
正常大小(双精密)浮点数字类型
3.DATE日期类型:
支持的范围是1000-01-01到9999-12-31。
MySQL以YYYY-MM-DD
格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列
4.CHAR(M)型:
定长字符串类型,当存储时,总是是用空格填满右边到指定的长
度
5.BLOBTEXT类型,最大长度为65535(2^16-1)个字符。
6.VARCHAR型:
变长字符串类型
5.导入数据库表
(1)创建.sql文件
(2)先产生一个库如auction.c:
mysqlbin>mysqladmin-uroot-pcreat
auction,会提示输入密码,然后成功创建。
(2)导入auction.sql文件
c:
mysqlbin>mysql-uroot-pauction 通过以上操作,就可以创建了一个数据库auction以及其中的一个表auction
。
6.修改数据库
(1)在mysql的表中增加字段:
altertabledbnameaddcolumnuseridint(11)notnullprimarykey
auto_increment;
这样,就在表dbname中添加了一个字段userid,类型为int(11)。
7.mysql数据库的授权
mysql>grantselect,insert,delete,create,drop
on*.*(或test.*/user.*/..)
to用户名@localhost
identifiedby'密码';
如:
新建一个用户帐号以便可以访问数据库,需要进行如下操作:
mysql>grantusage
->ONtest.*
->TOtestuser@localhost;
QueryOK,0rowsaffected(0.15sec)
此后就创建了一个新用户叫:
testuser,这个用户只能从localhost连接到数
据库并可以连接到test数据库。
下一步,我们必须指定testuser这个用户可以执
行哪些操作:
mysql>GRANTselect,insert,delete,update
->ONtest.*
->TOtestuser@localhost;
QueryOK,0rowsaffected(0.00sec)
此操作使testuser能够在每一个test数据库中的表执行Select,Insert和
Delete以及Update查询操作。
现在我们结束操作并退出MySQL客户程序:
mysql>exit
Bye9!
1:
使用SHOW语句找出在服务器上当前存在什么数据库:
mysql>SHOWDATABASES;
2:
2、创建一个数据库MYSQLDATA
mysql>CreateDATABASEMYSQLDATA;
3:
选择你所创建的数据库
mysql>USEMYSQLDATA;(按回车键出现Databasechanged时说明操作成功!
)
4:
查看现在的数据库中存在什么表
mysql>SHOWTABLES;
5:
创建一个数据库表
mysql>CreateTABLEMYTABLE(nameVARCHAR(20),sexCHAR
(1));
6:
显示表的结构:
mysql>DESCRIBEMYTABLE;
7:
往表中加入记录
mysql>insertintoMYTABLEvalues("hyq","M");
8:
用文本方式将数据装入数据库表中(例如D:
/mysql.txt)
mysql>LOADDATALOCALINFILE"D:
/mysql.txt"INTOTABLEMYTABLE;
9:
导入.sql文件命令(例如D:
/mysql.sql)
mysql>usedatabase;
mysql>sourced:
/mysql.sql;
10:
删除表
mysql>dropTABLEMYTABLE;
11:
清空表
mysql>deletefromMYTABLE;
12:
更新表中数据
mysql>updateMYTABLEsetsex="f"wherename='hyq';
以下是无意中在网络看到的使用MySql的管理心得,
摘
自:
html
在windows中MySql以服务形式存在,在使用前应确保此服务已经启动,未启动可用
netstartmysql命令启动。
而Linux中启动时可用"/etc/rc.d/init.d/mysqld
start"命令,注意启动者应具有管理员权限。
刚安装好的MySql包含一个含空密码的root帐户和一个匿名帐户,这是很大的安全
隐患,对于一些重要的应用我们应将安全性尽可能提高,在这里应把匿名帐户删除
、root帐户设置密码,可用如下命令进行:
usemysql;
deletefromUserwhereUser="";
updateUsersetPassword=PASSWORD('newpassword')whereUser='root';
如果要对用户所用的登录终端进行限制,可以更新User表中相应用户的Host字段,
在进行了以上更改后应重新启动数据库服务,此时登录时可用如下类似命令:
mysql-uroot-p;
mysql-uroot-pnewpassword;
mysqlmydb-uroot-p;
mysqlmydb-uroot-pnewpassword;
上面命令参数是常用参数的一部分,详细情况可参考文档。
此处的mydb是要登录的
数据库的名称。
在进行开发和实际应用中,用户不应该只用root用户进行连接数据库,虽然使用
root用户进行测试时很方便,但会给系统带来重大安全隐患,也不利于管理技术的
提高。
我们给一个应用中使用的用户赋予最恰当的数据库权限。
如一个只进行数据
插入的用户不应赋予其删除数据的权限。
MySql的用户管理是通过User表来实现的
,添加新用户常用的方法有两个,一是在User表插入相应的数据行,同时设置相应
的权限;二是通过GRANT命令创建具有某种权限的用户。
其中GRANT的常用用法如下
:
grantallonmydb.*toNewUserName@HostNameidentifiedby"password";
grantusageon*.*toNewUserName@HostNameidentifiedby"password";
grantselect,insert,updateonmydb.*toNewUserName@HostNameidentified
by"password";
grantupdate,deleteonmydb.TestTable