mysql数据库,数据表,数据的增删查改语句

时间:2021-10-27 10:45:39

查询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;