MySQL数据库语句格式
show命令
1、showdatabases; 查看有哪些库
2、show tables;或show tables from库名; 查看库中有哪些表
3、show create database 库名 \G或show create database 库名; 查看建库过程
4、show create create 库名.表名 \G或show create table 库名.表名; 查看显示建表过程
5、show create view 库名.视图名;或show create view 库名.视图名 \G 查看视图创建过程
6、show grants for 用户名称; 显示一个用户的权限,显示结果类似于grant命令
7、show index from table_name; 显示表的索引
8、show status; 显示一些系统特定资源的信息,例如,正在运行的线程数量
9、show variables; 显示系统变量的名称和值
10、show processlist; 显示系统中正在运行的所有进程,也就是当前正在执行的查询。大多数用户可以查看他们自己的进程,但是如果他们拥有process权限,就可以查看所有人的进程,包括密码
11、show table status; 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间
12、show privileges; 显示服务器所支持的不同权限。
13、show engies; 显示安装以后可用的存储引擎和默认引擎
14、show innodb status; 显示innoDB存储引擎的状态
15、show logs; 显示BDB存储引擎的日志
16、show warnings; 显示最后一个执行的语句所产生的错误、警告和通知
17、show errors; 只显示最后一个执行语句所产生的错误
18、 show [storage] engines; 显示安装后的可用存储引擎和默认引擎
19、show master status; 查看当前使用的二进制文件及日志文件中事件当前位置
create命令
1、createdatabase 数据库名;或create databaseif not exists 数据库名; 创建数据库
2、create table 库名.表名 (字段名 类型, 字段名 类型, 字段名类型);
3、create view 视图名 as select 语句; 例如book库中books表和category表:create view bc as select books.bname,books.price,category.btypenamefrom books inner join category on books.btypeid=category.btypeid;
字段类型:大整数值int(n)、小整数值tinyint(n)、单精度浮点数值float(n,m),双精度浮点数值double(n.m),定点型小数值decimal(n,m),定长字符串char(n),变长字符串varchar(n),日期和时间类型date、time、year、datetime、timestamp、enum("w","m")枚举(只能取一个)、set("a","b","c")能取多个
字段修饰符:int修饰符unsigned、zerofill、not null,char修饰符binary、not null,还有default
4、create table users(id int(11) unsigned zerofillauto_increment,uid int(11) unsigned not null,name char(20) not null,sexenum("w","m") default "w",age tinyint(4) unsignednot null,primary key(uid),unique key(id),key(name))engine=innodb; 创建users表(主表),要求字段id类型整数长度11,自增长,唯一性索引;字段uid类型整数长度11,非空,主键索引;字段name类型字符串长度20,非空,普通索引;字段age类型小整数长度4,非空;字段sex类型枚举男,女,默认值女。
5、create table dingdan(id int(11) unsigned zerofillauto_increment,uid int(11) unsigned not null,money double(,2) not null,uniquekey(id),foreign key(uid) references on delete cascade on updatecascade)engine=innodb; 创建dingdan表(从表),要求字段id类型整数长度11,自动补0,自增长,唯一性索引;字段uid类型整数长度11,外键关联,字段money定点小数点,小数点2位,非空,普通索引。
6、存储过程创建及调用:
第一步:修改默认结束符delimiter /
第二步:开始创建存储过程
create procedure 存储过程名称()
begin
select语句或insert语句或update语句或delete语句或alter语句等
end /
第三步:恢复默认结束符delimiter ;
第四步:调用存储过程call 存储过程名();
select命令
1、使用select命令查看mysql数据库系统信息:
格式:select now(),curdate(),database(); 中间以“,”逗号隔开
select now(); #打印当前的日期和时间
select curdate(); #打印当前的日期
select curtime(); #打印当前的时间
select database(); #打印当前数据库
select version(); #打印MySQL版本
select user(); #打印当前用户
2、 select * from 表名;或select * from 表名 \G 查询表中数据,*代表所有字段
3、select 字段1,字段3 from 表名;或select 字段1,字段3 from 表名\G 指定字段查询表中数据,中间以“,”逗号隔开
4、select * from 库名.表名;或select * from 库名.表名 \G 绝对路径查询表中数据,*代表所有字段
5、select 字段1,字段3 from .库名.表名;或select 字段1,字段3 from 库名.表名 \G 指定字段查询表中数据,中间以“,”逗号隔开
6、select distinct * from 表名; 去重查询表格内容
7、select * from 表名 where 字段1>a and 字段2>b; 查询表中字段1>a和字段2>b的记录
8、 select * from 表名 where 字段1>a or 字段2>b; 查询表中字段1>a或者字段2>b的记录
9、select * from 表名 where binary字段1="a"; 区分大小写查询字段1为a的记录
10、select distinct * from 表名order by 字段1 asc; 查询表中记录以字段1升序排序
11、select * from 表名 order by 字段1 desc; 查询表中记录以字段1降序排序
12、select name from mysql.proc where db="库名" and type="procedure"; 查看所有存储过程
drop命令
1、dropdatabase `数据库名`;或drop databaseif exists `数据库名`; 删除数据库
2、drop table 表名; 删除表
3、drop view 视图名; 删除视图
4、drop procedure if exists 存储过程名称; 删除存储过程
desc命令
1、desc 表名;或desc 表名 \G 查看表结构
还可以用以下命令查看表结构
explain mysql.user;
show columns from mysql.user;
show fields from mysql.user;
show columns from mysql.user like '%user';
2、desc 视图名;或desc 视图名 \G 查看视图表结构
alter命令
1、altertable 表名 rename 新表名; 修改表名
2、alter table 表名 modify 要修改的字段名要修改的类型; 修改字段类型
3、alter table 表名 change 原字段名新字段名 新字段类型; 修改字段名和字段类型
4、alter table 表名 add字段名 字段类型; 在表尾部添加一个字段
5、alter table 表名 add 字段1 类型 first; 在第一列添加一个字段1
6、alter table 表名 add 字段2 类型 after 表中字段1; 在字段1后添加一个字段2
7、alter table 表名 drop 字段名; 删除表中字段
8、alter view bc as selectbooks.bname,books.price,books.publishing,category.btypename from books innerjoin category on books.btypeid=category.btypeid; 修改视图表结构
9、 alter table 表名 add index 索引名称(字段1,字段2.....); 添加索引
10、alter table 从表名 add foreignkey(字段1) references 主表名ondelete cascade on update cascade,engine=innodb; 给字段1添加外键关联
insert命令
1、insertinto 表名 values (字段值1,字段值2, 字段值3); 给表中插入数据,全字段插入数据
2、insert into 表名(字段1,字段3) values (字段值1,字段值3); 给表中插入数据,指定字段插入数据
可插入一条数据,也可插入多条数据(中间用“,”逗号隔开)
delete命令
1、 deletefrom 表名 where 字段1=字段1值; 删除表中字段1值的数据
2、delete from 表名 where 字段1 is null; 删除表中字段1中的空行
3、delete from 表名; 删除表中所有记录(不能清零)
4、truncate from 表名; 删除表中所有记录(能清零)
update命令
1、update 表名 set 字段1=字段1值 where 字段2=字段2值; 把表中字段2值的字段1记录更新为字段1值
2、update 表名 set 字段1=字段1值; 把表中所有字段1的记录都更新为字段1值
3、update 表名 set 字段1=字段1值,字段2=字段2值 where 字段3=字段3值; 把表中字段3值所对应的字段1记录更新为字段1值,字段2记录更新为字段2值。注意:同时更新多个字段的值,请使用逗号隔开
mysqldump命令
1、mysqldump-u root -p123123 -A > all.sql 导出所有数据库
2、mysqldump -u root -p123123 -B 库名 > 库名.sql 导出某个库及建库语句(不导出建库语句不用-B)
3、mysqldump -u root -p123123 -d 库名 > 库名table.sql 只导出数据库中的表结构
4、mysqldump -u root -p123123 -t 库名 > 库名data.sql 只导出数据库中的数据
5、mysql -u root -p123123 < all.sql 导入所有数据库
6、mysql -u root -p123123 库名< 库名.sql 导入某个数据库(如提示没有数据库,<前面不写库名)
7、source /绝对路径/库名.sql; 导入某个数据库(进入mysql之后)
8、mysqldump -uroot -p123123 --single-transaction--flush-logs -B 库名 > /opt/mysql_backup/库名_db_$(date "+%Y%m%d%H%M%S").sql 某个数据库的全库备份
其他命令
flushlogs; 刷新二进制日志
set sql_log_bin=0; 临时关闭binlog功能
set sql_log_bin=1; 开启binlog功能
show binary logs; 显示二进制日志文件
reset master; 清空二进制日志文件
mysqlbinlog -v /data/mysql/log/mysql_bin.000001 查看二进制日志文件内容