My Sql常用命令Word文档下载推荐.docx
《My Sql常用命令Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《My Sql常用命令Word文档下载推荐.docx(37页珍藏版)》请在冰豆网上搜索。
mysql默认的是本地主机是localhost,对应的IP地址就是127.0.0.1,所以你用你的IP地址登录会出错,如果你想用你的IP地址登录就要先进行授权用grant命令。
grantallon*.*toroot@202.116.39.2identifiedby"
123456"
说明:
grant与on之间是各种权限,例如:
insert,select,update等
on之后是数据库名和表名,第一个*表示所有的数据库,第二个*表示所有的表
root可以改成你的用户名,@后可以跟域名或IP地址,identifiedby后面的是登录用的密码,可以省略,即缺省密码或者叫空密码。
dropdatabasefirstdb;
创建一个可以从任何地方连接服务器的一个完全的超级用户,但是必须使用一个口令something做这个
grantallprivilegeson*.*touser@localhostidentifiedby'
something'
with
增加新用户
格式:
grantselecton数据库.*to用户名@登录主机identifiedby"
密码"
GRANTALLPRIVILEGESON*.*TOmonty@localhostIDENTIFIEDBY'
WITHGRANTOPTION;
GRANTALLPRIVILEGESON*.*TOmailto:
monty@"
"
IDENTIFIEDBY'
删除授权:
revokeallprivilegeson*.*frommailto:
root@"
deletefromuserwhereuser="
root"
andhost="
%"
flushprivileges;
创建一个用户custom在特定客户端登录,可访问特定数据库fangchandb
mysql>
grantselect,insert,update,delete,create,droponfangchandb.*tocustom@identifiedby'
passwd'
重命名表:
altertablet1renamet2;
mysqldump
备份数据库
mysqldump-hhost-uroot-pdbname>
dbname_backup.sql
恢复数据库
mysqladmin-hmyhost-uroot-pcreatedbname
mysqldump-hhost-uroot-pdbname<
dbname_backup.sql
如果只想卸出建表指令,则命令如下:
mysqladmin-uroot-p-ddatabasename>
a.sql
如果只想卸出插入数据的sql命令,而不需要建表命令,则命令如下:
mysqladmin-uroot-p-tdatabasename>
那么如果我只想要数据,而不想要什么sql命令时,应该如何操作呢?
mysqldump-T./phptestdriver
其中,只有指定了-T参数才可以卸出纯文本文件,表示卸出数据的目录,./表示当前目录,即与mysqldump同一目录。
如果不指定driver表,则将卸出整个数据库的数据。
每个表会生成两个文件,一个为.sql文件,包含建表执行。
另一个为.txt文件,只包含数据,且没有sql指令。
可将查询存储在一个文件中并告诉mysql从文件中读取查询而不是等待键盘输入。
可利用外壳程序键入重定向实用程序来完成这项工作。
例如,如果在文件my_file.sql中存放有查
询,可如下执行这些查询:
例如,如果您想将建表语句提前写在sql.txt中,
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
use数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
sourcewcnc_db.sql
B:
使用mysqldump命令
mysqldump-uusername-pdbname<
filename.sql
C:
使用mysql命令
mysql-uusername-p-Ddbname<
一、启动与退出
1、进入MySQL:
启动MySQLCommandLineClient(MySQL的DOS界面),直接输入
安装时的密码即可。
此时的提示符是:
mysql>
2、退出MySQL:
quit或exit
二、库操作
1、、创建数据库
命令:
createdatabase<
数据库名>
例如:
建立一个名为xhkdb的数据库
createdatabasexhkdb;
2、显示所有的数据库
showdatabases(注意:
最后有个s)
showdatabases;
3、删除数据库
dropdatabase<
删除名为xhkdb的数据库
dropdatabasexhkdb;
4、连接数据库
use<
如果xhkdb数据库存在,尝试存取它:
usexhkdb;
屏幕提示:
Databasechanged
5、查看当前使用的数据库
selectdatabase();
6、当前数据库包含的表信息:
showtables;
(注意:
三、表操作,操作之前应连接某个数据库
1、建表
createtable<
表名>
(<
字段名1>
<
类型1>
[,..<
字段名n>
类型n>
]);
createtableMyClass(
>
idint(4)notnullprimarykeyauto_increment,
namechar(20)notnull,
sexint(4)notnulldefault'
0'
degreedouble(16,2));
2、获取表结构
desc表名,或者showcolumnsfrom表名
DESCRIBEMyClass
descMyClass;
showcolumnsfromMyClass;
3、删除表
droptable<
删除表名为MyClass的表
droptableMyClass;
4、插入数据
insertinto<
[(<
[,..<
字段名n>
])]values(值1)[,
(值n)]
例如,往表MyClass中插入二条记录,这二条记录表示:
编号为1的名为Tom的成绩
为96.45,编号为2的名为Joan的成绩为82.99,编号为3的名为Wang的成绩为
96.5.
insertintoMyClassvalues(1,'
Tom'
96.45),(2,'
Joan'
82.99),
(2,'
Wang'
96.59);
5、查询表中的数据
1)、查询所有行
select<
字段1,字段2,...>
from<
表名>
where<
表达式>
查看表MyClass中所有数据
select*fromMyClass;
2)、查询前几行数据
查看表MyClass中前2行数据
select*fromMyClassorderbyidlimit0,2;
或者:
select*fromMyClasslimit0,2;
6、删除表中数据
deletefrom表名where表达式
删除表MyClass中编号为1的记录
deletefromMyClasswhereid=1;
7、修改表中数据:
update表名set字段=新值,…where条件
updateMyClasssetname='
Mary'
whereid=1;
7、在表中增加字段:
altertable表名add字段类型其他;
在表MyClass中添加了一个字段passtest,类型为int(4),默认值为0
altertableMyClassaddpasstestint(4)default'
8、更改表名:
renametable原表名to新表名;
在表MyClass名字更改为YouClass
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:
mysql-uroot-pauction<
auction.sql。
通过以上操作,就可以创建了一个数据库auction以及其中的一个表auction
。
6.修改数据库
(1)在mysql的表中增加字段:
altertabledbnameaddcolumnuseridint(11)notnullprimarykey
auto_increment;
这样,就在表dbname中添加了一个字段userid,类型为int(11)。
7.mysql数据库的授权
grantselect,insert,delete,create,drop
on*.*(或test.*/user.*/..)
to用户名@localhost
identifiedby'
密码'
如:
新建一个用户帐号以便可以访问数据库,需要进行如下操作:
grantusage
->
ONtest.*
TOtestuser@localhost;
QueryOK,0rowsaffected(0.15sec)
此后就创建了一个新用户叫:
testuser,这个用户只能从localhost连接到数
据库并可以连接到test数据库。
下一步,我们必须指定testuser这个用户可以执
行哪些操作:
GRANTselect,insert,delete,update
QueryOK,0rowsaffected(0.00sec)
此操作使testuser能够在每一个test数据库中的表执行Select,Insert和
Delete以及Update查询操作。
现在我们结束操作并退出MySQL客户程序:
exit
Bye9!
1:
使用SHOW语句找出在服务器上当前存在什么数据库:
SHOWDATABASES;
2:
2、创建一个数据库MYSQLDATA
CreateDATABASEMYSQLDATA;
3:
选择你所创建的数据库
USEMYSQLDATA;
(按回车键出现Databasechanged时说明操作成功!
)
4:
查看现在的数据库中存在什么表
SHOWTABLES;
5:
创建一个数据库表
CreateTABLEMYTABLE(nameVARCHAR(20),sexCHAR
(1));
6:
显示表的结构:
DESCRIBEMYTABLE;
7:
往表中加入记录
insertintoMYTABLEvalues("
hyq"
"
M"
8:
用文本方式将数据装入数据库表中(例如D:
/mysql.txt)
LOADDATALOCALINFILE"
D:
/mysql.txt"
INTOTABLEMYTABLE;
9:
导入.sql文件命令(例如D:
/mysql.sql)
usedatabase;
sourced:
/mysql.sql;
10:
删除表
dropTABLEMYTABLE;
11:
清空表
deletefromMYTABLE;
12:
更新表中数据
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='
如果要对用户所用的登录终端进行限制,可以更新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"
grantselect,insert,updateonmydb.*toNewUserName@HostNameidentified
by"
grantupdate,deleteonmydb