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