分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)
首先,简要介绍基础语句:
1、 连接数据库
Mysql –h服务器地址 –u用户名 –p密码
注:-h一般不用
2、 增加用户
Grant select on 数据库.* to 用户名@登陆主机地址 identified by “密码”;
例如:GRANT Select,Insert,Delete,Update ON samp.* TO bill@snake.net INDETIFIED BY "rock"
建立远程用户
GRANT ALL PRIVILEGES ON *.* TO 'andy'@'%' IDENTIFIED by 'password';
删除用户
Delete from user where user=’test2’ and host=’localhost’;
3、 更改密码
Mysqladmin –u 用户名 –p 旧密码 password 新密码
或
进入数据库使用:
Mysql> Update mysql.user set password=password(‘新密码’) where user=’root’;
Mysql> flush privileges; (刷新数据库)
4、忘记mysql密码
关闭当前运行的mysqld服务程序:service mysqld stop(要先将mysqld添加为系统服务)
使用mysqld_saft脚本以安全模式(不加载授权表)启动mysqld 服务
/usr/local/mysql/bin/mysqld_saft --skip-grant-table &
使用空密码的root用户登录数据库,重新设置ROOT用户的密码
#mysql -u root
Mysql> Update mysql.user set password=password(‘新密码’) where user=’root’;
Mysql> flush privileges;
5、显示数据库
Show databases;
6、显示库中数据表
Use 数据库名;
Show tables;
7、显示表结构
Use 数据库;
Desc 表名;
8、创建库
create database database-name;
9、创建表
Use 数据库;
Create table 表名 (字段设定列表);
(具体字段设置再查阅)也可默认不加字段设定列表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
10、删除数据库或删除表
drop database dbname;
drop table tablename;
delete from table1 where 范围
11、插入数据
Insert into user(字段名称1、字段名称2)value(字段值1,字段值2);
insert into table1(field1,field2) values(value1,value2);
12、查询数据
Select * from 表名where 条件
例如:select pwd,username from tableName where Login_name='123';
select * from user where id=2;
查找:select * from table1 where field1 like ’%value1%’ ---like;的语法很精妙,查资料!
选择:select * from table1 where 范围;
排序:select * from table1 order by field1,field2 [desc] ;
总数:select count(*) as totalcount from table1 ;
求和:select sum(field1) as sumvalue from table1 ;
平均:select avg(field1) as avgvalue from table1 ;
最大:select max(field1) as maxvalue from table1 ;
最小:select min(field1) as minvalue from table1;
13、更新数据
Update 表名 set 字段名称=值 where 条件;
例如:update tableName set Login_name = '456',pwd=123 where Username='1';
Update user set username=’china’ where id=2;
14、清空表中记录
Delete from 表名 条件;
例如:delete from user where id=2;
15、增加字段
alter table 表名 add column 字段名字体类型 default;
例如:alter table user add column tel varchar(12) default;
16、更改字段名称
Alter table 表名 change 原字段名称 改后字段名称字体类型 default;
例如:alter table user change tel intro varchar(33) default null;
17、更改字段默认值
Alter table 表名 alter 字段名称 set default;
例如:alter table user alter tel set default null;
18、更改字段数据类型
Alter table 表名 change column 原字段名称改后字段名称类型;
例如:alter table user change column username username varchar(20);
19、更改表名
Alter table 旧表名 rename [to] 新表名;
例:Alter table aa rename to stuinfo;
20、给列改名
alter table pet change weight wei int;
增加列
alter table tbl_name add col_name type
例如,给表增加一列weight
mysql>alter table pet add weight int;
删除列
alter table tbl_name drop col_name
例如,删除列weight:
mysql>alter table pet drop weight;
改变列
alter table tbl_name modify col_name type
例如,改变weight的类型:
mysql> alter table pet modify weight samllint;
另一种方法是:
alter table tbl_name change old_col_name col_name type
例如:
mysql> alter table pet change weight weight samllint;
21、增加主键
Alter table 表名 add column 字段名字体类型 auto_increment PRIMARY KEY;
22、备份mysql
Mysqldump –u root –p 数据库名 > 存储位置 备份名字
格式:mysqldump -u 用户名 -p 密码 数据库名 表名 >备份的路径
1)MySQL数据库备份命令 备份MySQL数据库的命令
mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql
-p后面如果紧贴着密码那么无需再次输入。
2)备份MySQL数据库并删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql
3)直接将MySQL数据库压缩备份
mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz
4)备份MySQL数据库某个(些)表
mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql
5)同时备份多个MySQL数据库
mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql
6)仅仅备份数据库结构
mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql
备份服务器上所有数据库
mysqldump –all-databases > allbackupfile.sql
还原MySQL数据库的命令
mysql -hhostname -uusername -ppassword databasename < backupfile.sql
还原压缩的MySQL数据库
gunzip < backupfile.sql.gz | mysql -uusername -ppassword databasename
将数据库转移到新服务器
mysqldump -uusername -ppassword databasename | mysql –host=*.*.*.* -C databasename
23导出数据
Select * from user into outfile 路径
查看所有权限类型
select privilege_type from information_schema.user_privileges;
授予部分权限