平时多用的一些基本的mysql命令,开始学习的时候这些都是一点一点积累的,结果弄了好多TXT,现在把他们总结一下,和大家分享分享。还有一些进阶操作,以后在做总结。
1.连接数据库
mysql -h IP -u username -pthepassword;
语句中-h IP可以指定MYSQL的服务器,如果指定服务器为本地(localhost),可以省略该参数。
注:-p与thepassword之间不可以有空格。
2.创建、显示、删除数据库
创建数据库:
CREATE DATABASE database;
显示数据库:
SHOW DATABASES;
删除数据库:
DROP DATABASE database;
数据库删除后不可恢复,如果进行重命名操作,一般首先备份目标数据库,在新建数据库并导入数据。
3.选择所要操作的数据库
USE database;
执行后出现Database changed提示时,说明操作成功。
语句中database代表所要操作的数据库名。
4.创建、显示、重命名、删除表
创建表:
CREATE TABLE tablename ( column1 data_type, column2 data_type, ..... };
显示表:
SHOW TABLES;
重命名表:
RENAME TABLE old_tablename TO new_tablename;
删除表:
DROP TABLE tablename;
5.显示表构成
DESCRIPBE tablename;
该语句可以用来显示表的列名以及各列的数据类型。
6.查询数据
SELECT columni,columnj,... FROM tablename WHERE [columnx = valuex,....][columnx LIKE '%valuex%'] ORDER BY cloumny [desc][asc]
语句中columni,columnj,...表示需要查询显示的列名,如果需要返回所有列可以使用通配符(*)。
语句中表述查询语句的条件时,可以使用精确条件,也可以使用模糊条件。(%)通常表示一个或多个字符。
7.插入数据
INSERT INTO tablename(column1,column2,..) VALUES(data01,data02,..),(data11,data12,..),...; INSERT INTO tablename SET column1 = value1,column2 = value2,....;
插入数据有上述两中形式可以使用。使用时注意如果有一些不可留空并且不可自动填充的列,必须在SET后设置相应的值。
8.更新数据
UPDATE tablename SET columni = valuei,columnj = valuej,... WHERE columnx = valuex,....;
在进行数据更新时,符合WHERE条件的可能不只一条记录,此时,会更新所有记录,但是如果需要更新的列包含主键的话,会出现错误,因为主键不允许数据重复。
9.删除数据
DELETE FROM tablename WHERE columnx = valuex,.....
该语句中如果没有设定条件,会删除表中所有记录。
10.为用户设置、修改密码
SET PASSWORD FOR 'username'@'hostname' = PASSWORD('thepassword');
MYSQL的密码是区分大小写的,在实际引用密码之前的PASSWORD术语告诉MYSQL要对这个字符串进行加密。并且在PASSWORD与左括号之间不能有任何空白字符。
11.创建用户和设置权限
GRANT privileges ON database.* TO 'username'@'hostname' IDENTIFIED BY 'password';
该语句的privileges部分可以列出下表权限,或者通过使用ALL来指定所有权限
该语句的database.*部分指出了用户可以使用哪个数据库或表。可以使用database.tablename这样的语法来指定表的名字。或者使用*.*来指定所有的数据库。
用户名最大长度为16个字节。不可以使用空格且区分大小写。
密码没有长度限制,但是区分大小写。省略IDENTIFIED BY 'password'子句可以不要求用户输入密码。
可以选择将用户限制在特定的主机名上,用户名或者是运行有MYSQL服务器的计算机名(常用localhost),或者是用户访问服务器时所在的计算机名。其值甚至可以是IP地址。要制定任意主机,可以在主机命中使用通配符(%)。
例如创建一个对数据库只有一个基本访问权限的用户
GRANT SELECT,INSERT,UPDATE,DELETE ON ISCC.* TO'isclab'@'202.204.80.166';
修改用户权限时的语句与创建用户的语句相同。
FLUSH PRIVILEGES
运行该语句就是MYSQL重置其可以接受的用户和权限列表。
12.数据库备份与还原
备份语句:
mysqldump -h IP -u username -pthepassword database > filename.sql
语句中-h IP可以指定MYSQL的服务器,如果指定服务器为本地,可以省略该参数。
语句中所使用的username/thepassword必须有备份数据库的权限。
语句中的filename.sql可以是指定文件保存的绝对地址或相对地址。
还原语句:
mysql -u username -pthepassword database < filename.sql
该语句中参数与备份语句中参数含义相同。
13.已知root密码时修改密码的两种方法
使用mysql的提供的程序:
mysqladmin -u username -pold_password password old_password
命令行修改
UPDATE mysql.user SET password = PASSWORD('thepassword') where user = 'root';
14.暴力修改root密码
首先停止MYSQL服务,打开一个命令行窗口并执行:
mysqld-nt --skip-grant-tables &
再打开一个命令行窗口并执行:
mysql mysql >UPDATE user SET password = PASSWORD('thepassword') where user = 'root';
这时候root的密码就设置为thepassword了。再次启动MYSQL服务即可。
注:这里是以windows环境为例,在linux下将mysqld-nt换为mysqld_safe即可。
转载请注明出处:http://blog.csdn.net/xkjcf