【MySQL】MySQL基本语句大全
作者:mmseoamin日期:2023-12-21

在这里插入图片描述


个人主页:【😊个人主页】

系列专栏:【❤️MySQL】


文章目录

  • 前言
  • 结构化查询语句分类
  • MySQL语句大全📚
    • DDL(对数据库和表的操作)🤖
    • DQL(查询语句)💻
      • 关键字🔬
      • 高级查询运算词
      • DML(数据操作语句:插入、修改、删除)🤖
        • 数据插入
        • 修改语句
        • 删除语句

          前言

          结构化查询语句分类

          名称解释(命令)
          DDL(数据定义语言)定义和管理数据对象,如数据库,数据表等(CREATE、DROP、ALTER)
          DML(数据操作语言)用于操作数据库对象中所包含的数据(INSERT、UPDATE、DELETE)
          DQL(数据查询语言)用于查询数据库数据 (SELECT)
          DCL(数据控制语言)用于管理数据库的语言,包括管理权限及数据更改 (GRANT、COMMIT、ROLLBACK)

          MySQL语句大全📚

          注:MySQL不区分大小写,所有符号必须使用英文格式下的

          DDL(对数据库和表的操作)🤖

          create database database-name//创建数据库
          drop database dbname //创建数据库
          use 数据库名//选择数据库
          create table tabname(
          字段名1 类型,
          字段名2 类型,
          字段名3 类型,…);//创建新表
          根据已有的表创建新表
          A:create table 新表名 like 旧表名(使用旧表创建新表)
          B:create table 新表名 as select 列名1,列名2… from 旧表名 definition only
          drop table tabname//删除表
          desc 表名//显示表的属性信息
          alter table 表名 add 列名 类型 //增加一个列名
          指定列名后面添加列名
          alter table 表名 add 已有列名 after 列名 类型
          first:第一个,before:前一个,end:最后
          alter table 表名 drop 列名//删除一个列名
          alter table 表名 change 旧列名 新列名 类型//修改一个列名
          alter table 表名 modify 列名(已有) 新的类型//修改类型
          Alter table 表名 add primary key(列名)//添加主键
          Alter table 表名 drop primary key(列名)//删除主键
          alter table 表名 add foreign key(列名) references 表名(主键)//添加外键
          删除外键:需要找到外键特有的名称
          ------------------------------------
          ①not null:非空约束
          ②unique:唯一约束
          ③primary key:主键
          ④foreign key:外键
          ⑤auto_increment:自增长
          ⑥default:设置默认值 例:default ‘值’//约束类型
          

          DQL(查询语句)💻

          关键字🔬

          1. or:或
          2. and:和
          3. having:分组后的附加条件
          4. group by:分组
          5. order by:排序:asc:正序,desc:倒序
          6. in:存在于某个值中
          7. not in:不存在与某个值中
          8. inner join … on链接多表
          9. left join … on:左外连接
          10. right join … on:右外连接
          11. left(right,inner) out join … on:去重
          12. count:计数
          13. AVG:平均值
          14. sum:求和
          15. max:最大值
          16. min:最小值
          17. like ‘%关键字%’:取含有关键字的值
          18. distinct:去重
          19. round:四舍五入
          20. where 1=1:全选
          21. where 1=2:全不选
          22. limit 1,5:从第二行开始显示5条数据
          23. top 10:select top 10 * from 表名:显示前十条数据
          24. newid():随机
          select * from 表名 where 范围//选择查询
          select * from 表名//完全查询
          select * from 表名 where 列名 like ‘%value%’(查询包含value的值)//模糊查询
          select * from 表名 order by 列名 desc//排序查询(倒序,默认为正序)
          select count as 别名 from 表名//计数查询
          select sum(field) as 别名 from 表名//求和查询
          select avg(filed) as 别名 from 表名//平均值查询
          select max(filed) as 别名 from 表名//最大值查询
          select min(filed) as 别名 from 表名//最小值查询
          select round(min(filed),要保留的小数位数) as 别名 from 表名//四舍五入查询
          select distinct 列名 from 表名//去重查询
          select * from 表名 group by 列名//分组查询
          select * from 表名 where 列名=‘范围’ and 列名=‘范围’//多条件查询
          select * from 表名 where 列名=‘范围’ or 列名=‘范围’//不确定条件查询
          select 列名,min(filed)from 表名 where 列名=‘范围’ group by 列名 having sum(列名)
          //多条件分组求值查询
          select * from 表名 where=(select id from 表名 where 列名=‘范围’)
          //子查询(子查询的结果作为主查询的条件)
          select * from 表名 inner join 表名 on 主键=外键(必须有主外键)
          //连表查询(内连接)
          select * from 表名 inner out join 表名 on 主键=外键(必须有主外键)
          //连表查询(内连接)(去重)
          //*注:内连接只显示相关联的数据*
          连表查询(左外连接)(显示左表的全部信息和右表相关联的信息):
          //连表查询(左外连接)(显示左表的全部信息和右表相关联的信息)
          select * from 表名 right join 表名 on 主键=外键(必须有主外键)
          //连表查询(右外连接)(显示右表的全部信息和左表相关联的信息)
          select * from 表名 full/cross join 表名 on 主键=外键(必须有主外键)
          连表查询(全外连接)(显示两个表中的所有记录)
          

          高级查询运算词

          A:union(结合两个结果表并消除其中的重复行而派生出另一个表)

          例:select name from 表名1 union select name from 表名2(去除name的重复行)

          B:except(通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表)

          C:intersect(通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表)

          注:当这三个运算符与all一起使用时不消除重复行


          DML(数据操作语句:插入、修改、删除)🤖

          数据插入

          完全插入:insert into 表名 values(值1,值2,值3,…)

          选择插入:insert into 表名(列名1,列名2,列名,3…) values(值1,值2,值3,…)

          批量插入:insert into 表名 values(值1,值2,值3,…),(值1,值2,值3,…),(值1,值2,值3,…)…

          注1:完全插入可以省略列名,但是值必须包含所有字段,批量插入类同

          注2:选择插入必须选择需要插入的字段,选择对应字段的值,批量插入类同

          修改语句

          update 表名 set 列名=‘值’ where 列名=‘范围’

          where 1=1(全选)

          where 1=2(全不选)

          注:不加where条件为修改所有指定列的值

          删除语句

          delete from 表名 where 列名=‘范围’

          注:不加where条件为删除所有的值

          在这里插入图片描述