查询mysql支持的引擎
show engines;
查询mysql支持的字符集
show character set;
设置mysql默认存储引擎
set default_storage_engine = innodb;
设置mysql默认字符集
set character set utf8;
查看mysql有多少数据库
show databases;
选择数据库
use `db_test`;
数据库的增
create database `db_test` character set utf8;
数据库的删
drop database `db_test`;
数据库的查
查建库sql语句
show create database `db_test`;
查数据库中有多少表
show tables from `db_test`;
数据库的改
改特定数据库的字符集
alter database `db_test` character set utf8;
改特定数据库的名字
暂时未知
数据表的增
create table `tb_test`(
`字段1` 类型和长度 可选的not null默认是null 可选的primary key 有主键之后才能auto_increment 可选的comment,
`字段2` 类型和长度 同上,
`其他字段...` 类型和长度 同上,
foreign key ( `本表除主键的字段` ) references `关联表`( `关联表的主键字段` ),
foreign key 同上
)default engine = innodb default character set = utf8;
数据表的删
drop table `tb_test`;
数据表的查
查看建表语句
show create table `tb_test`;
查看表结构
desc `tb_test`;
数据表的改
改特定数据表的存储引擎
alter table `tb_test` engine = innodb;
改特定数据表的字符集
alter table `tb_test` character set utf8;
改特定数据表的名字
alter table `tb_test` rename `tb_new_name`;
rename table `tb_test` to `tb_new_name`;
数据表字段的增
增加新字段
alter table `tb_test` add column `字段名` 字段类型和长度;
增加字段的主键标识
alter table `tb_test` add primary key (`tb_test的字段名`);
增加字段的外键标识
alter table `tb_test` add foreign key (`tb_test的字段名`) references `tb_other`(`tb_other的主键字段`);
数据表字段的删
删除字段本身
alter table `tb_test` drop `字段名`;
删除字段的主键标识
alter table `tb_test` drop primary key;
删除字段的外键标识
alter table `tb_test` drop foreign key `字段名`;
数据表字段的查
desc `tb_test`;
数据表字段的改
改字段名字
alter table `tb_test` change `字段新名` `字段旧名` 字段类型和长度;
改字段类型
alter table `tb_test` modify `字段名字` 字段类型和长度;
数据的增
insert into
`tb_test`
( `字段1`, `字段2`, `其他字段...` )
values
( '', '字符串', '2019-05-11 20:20:12' )
数据的删
delete from `tb_test` where where_condition;
数据的查
查询所有字段
select * from `tb_test`;
查询部分字段
select `字段1`, `字段2`, `字段其他...` from `tb_test`;
对查询出来的字段进行计算
select `字段1` * `字段2` from `tb_test`;
使用字段别名查询
select `字段1` as '字段1别名', `字段2` as '字段2别名' from `tb_test`;
消除重复的记录(行)
select distinct `字段1` from `tb_test`;
简单条件查
select * from `tb_test` where `字段1` > 1;
复合条件查
select * from `tb_test` where `字段1` > 1 and `字段2` < 2;
指定范围查询
与或非(and or not)
between and ( == 于大于等于小于等于)
select * from `tb_test` where 条件1 and 条件2;
select * from `tb_test` where 条件1 or 条件2;
select * from `tb_test` where `字段` not 条件;
select * from `tb_test` where `字段` not between 2 and 3;
指定集合查询
select * from `tb_test` where in ( '值1', '值2', '值3', '值4' );
select * from `tb_test` where not in ( '值1', '值2', '值3', '值4' );
查询某个字段为空
select * from `tb_test` where `字段` is null;
模糊查询
select * from `tb_test` where `字段` like '值1_';
select * from `tb_test` where `字段` like '值1%';
select * from `tb_test` where `字段` like '%值1%';
select * from `tb_test` where `字段` like '%值1';
查询排序
select * from `tb_test` order by `字段`;
select * from `tb_test` order by `字段` asc;
select * from `tb_test` order by `字段` desc;
select * from `tb_test` order by `字段1` asc, `字段2` desc;
查询条数限制
select * from `tb_test` limit 10;
select * from `tb_test` limit 0, 10;
聚合函数查询
select max( * ) from `tb_test`;
select min( * ) from `tb_test`;
select count( * ) from `tb_test`;
select sum( * ) from `tb_test`;
select avg( * ) from `tb_test`;
分组查询
//简单分组
select * from `tb_test` group by `字段1`;
//分组筛选
select * from `tb_test` group by `字段1` having `字段2` = 1;
//分组排序
select * from `tb_test` group by `字段1` order by `字段2` desc;
//统计功能分组查询
select group_concat( `字段1` ) from `tb_test` group by `字段1` order by `字段2` desc;
//多分组查询
select * from `tb_test` group by `字段1`, `字段2`;
多表查询
内连接
//内连接两个表
select 表1.字段, 表2.字段 from 表1
inner join 表2 on 表1.字段 = 表2.字段;
//或
select 表1.字段, 表2.字段 from 表2
inner join 表1 on 表1.字段 = 表2.字段;
//或
select 表1.字段, 表2.字段 from 表1, 表2
where 表1.字段 = 表2.字段;
//内连接三个表
select 表1.字段, 表2.字段, 表3.字段 from 表1
inner join 表2 on 表1.字段 = 表2.字段
inner join 表3 on 表1.字段 = 表3.字段
//或
select 表1.字段, 表2.字段, 表3.字段 from 表1
inner join 表2 on 表1.字段 = 表2.字段
inner join 表3 on 表2.字段 = 表3.字段
//或
select 表1.字段, 表2.字段, 表3.字段 from 表1
where 表1.字段 = 表2.字段 and 表1.字段 = 表3.字段;
//或
select 表1.字段, 表2.字段, 表3.字段 from 表1
where 表1.字段 = 表2.字段 and 表2.字段 = 表3.字段;
外连接
左外连接实心
select `连接表1.字段1`, `连接表2.字段1` from `连接表1` left join `连接表2` on `连接表1.外键字段` = `连接表2.主键字段`;
select `连接表1.字段1`, `连接表2.字段1` from `连接表2` right join `连接表1` on `连接表1.外键字段` = `连接表2.主键字段`;
左外连接空心
select `连接表1.字段1`, `连接表2.字段1` from `连接表1` left join `连接表2` on `连接表1.外键字段` = `连接表2.主键字段` where `连接表2.主键字段` is null;
select `连接表1.字段1`, `连接表2.字段1` from `连接表2` right join `连接表1` on `连接表1.外键字段` = `连接表2.主键字段` where `连接表2.主键字段` is null;
右外连接实心
select `连接表1.字段1`, `连接表2.字段1` from `连接表1` right join `连接表2` on `连接表1.外键字段` = `连接表2.主键字段`;
select `连接表1.字段1`, `连接表2.字段1` from `连接表2` left join `连接表1` on `连接表1.外键字段` = `连接表2.主键字段`;
右外连接空心
select `连接表1.字段1`, `连接表2.字段1` from `连接表1` right join `连接表2` on `连接表1.外键字段` = `连接表2.主键字段` where `连接表1.外键字段` is null;
select `连接表1.字段1`, `连接表2.字段1` from `连接表2` left join `连接表1` on `连接表1.外键字段` = `连接表2.主键字段` where `连接表1.外键字段` is null;
数据的改
update `tb_test` set `字段1` = 值 , `字段2`= 值 where where_condition;