绞尽胆汁的MySQL语法总结

MySQL语法总结

查询相关:

  • 查看数据库:show databases;
  • 查看数据库信息:show create database 数据库名;
  • 查看表信息:show create table 表名;
  • 查看当前数据库版本号:select version();
  • 查看系统当前时间:select new();
  • 查看当前用户:select user();
  • 查看当前所在的数据库:select database();
  • 查看MySQL数据库状态:status;
  • 查看表的结构:desc 表名;
  • 查询数据库中所有的表名称:show tables;

创建相关:

  • 创建数据库:create database 数据库名;
  • 向表中添加数据:insert into 表名(字段名称)values(要添加的数据) | insert into 表名(字段名称)values(要添加的数据),((要添加的数据);
    • 如果不写字段名称,则值对应整个表的所有字段,且顺序一致,必须全部写完一一对应
    • 除了数字类型,其他类型需要使用引号(单双都可以)引起来。

删除相关:

  • 删除字段:alter table 表名 drop 字段名;
  • 删除表(没有关联关系的数据表):drop table 表名;
  • 删除表(进阶版):drop table if exists 表名;
  • 删除表中的所有数据(效率不高,不推荐使用):delete from 表名;
  • 删除表中符合条件的数据:delete from 表名 where 条件;
  • 删除表中的所有数据(推荐使用,先删除表在创建一个一模一样的表):truncate table 表名;
  • 删除表中的某一行:delete from 表名 where 删除条件;
  • 删除数据库:drop database 数据库名;

修改相关:

  • 修改表名:alter table 旧表名 rename [to] 新表名;
  • 修改表的字符集:alter table 表名 character set 字符集名称;
  • 修改字段名:alter table 表名 change 旧字段名 新字段名 数据类型;
  • 修改字段的数据类型:alter table 表名 modify 字段名 数据类型;
  • 添加字段:alter table 表名 add 新字段名 数据类型;
  • 添加字段(进阶版):alter table 表名 add 新字段名 数据类型 first/after 已存在的字段名;
    • first将新添加的字段设置为表的第一个字段 , after将新添加的字段添加到指定已存在的字段名的后面,如果字段已存在则将字段移动到已存在字段名的后面。
  • 修改字段:alter table 表名 modify 字段名
  • 复制表:create table 表名 like 被复制的表名;
  • 添加字段并设置默认值:alter table 表名 add 要添加的字段名 添加字段名的数据类型 default ‘默认值’;
  • 修改字段中的某项数据:update 表名 set 字段名=要设置的值 where 修改数据的条件;

进阶查询相关:

  • 查询表中的字段值是否有空值:select * from 表名 where 字段名 is null;
  • 去除重复查询:select distinct 字段名 from 表名;
  • 查询结果空值替换:select *,ifnull(表达式1,表达式2) from 表名;
    • 如果表达式1为空值(null),查询结果将用表达式2的值替换。
  • 起别名 as : select name as ‘姓名’,age as ‘年龄’ from student;
  • 模糊查询:
    1. % :可以匹配任意长度的字符串,包括空字符串。
      • select 字段名列表 from 表名 where 字段名 like ‘%伯%’;
    2. _ :下划线通配符只能匹配单个字符,如果要匹配多个字符,需要使用多个下划线通配符。
      • select 字段名列表 from 表名 where name like ‘东方_’;

        如果要查询字里面的%和_ 就需要进行转义,用右斜杠。
  • 查询结果排序:
    1. 将查询结果从小到大排(升序,asc):select*from 表名 order by 要排序的字段名 asc;
    2. 将查询结果从大到小排(降序,desc):select*from 表名 order by 要排序的字段名 desc;

      需要注意的是,在按照指定字段进行升序排列时,如果某条记录的字段值为NULL,则这条记录会在第一条显示,这是因为NULL值可以被认为是最小值
    3. 当第一排序条件一样的时候会按照第二排序条件进行排序
      • select * from student order by math asc , english asc;
  • 分组查询:select * from 表名 group by 要分组的字段名;
  • 查询某个字段是否为NULL : selecet*from student wehere math is null
  • 聚合查询(聚合函数):
  1. count : 统计个数
  2. max : 计算最大值
  3. min : 计算最小值
  4. sum :求和
  5. avg : 求平均值
  6. eg : select count(name) from student
  7. 注意:所有的聚合函数都排除了NULL值 ,选择不包含非空的列进行计算(一般选择主键)
  • 条件查询:
    1. where子句后跟条件
    2. 常用运算符
      • 、<、>=、<=、=

      • between … and …
      • in(集合)
      • Like:模糊查询
      • is null
      • and 、&&
      • or 、||
      • not 、!
      • Like:模糊查询
      • is null
      • and 、&&
      • or 、||
      • not 、!

日志

  • 启用日志:\T 路径; eg: \T C:\log.txt; 注意:开启后最后要 \T 结束日志

常用函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_45796486/article/details/112849942