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;
- 模糊查询:
- % :可以匹配任意长度的字符串,包括空字符串。
- select 字段名列表 from 表名 where 字段名 like ‘%伯%’;
- _ :下划线通配符只能匹配单个字符,如果要匹配多个字符,需要使用多个下划线通配符。
- select 字段名列表 from 表名 where name like ‘东方_’;
如果要查询字里面的%和_ 就需要进行转义,用右斜杠。
- select 字段名列表 from 表名 where name like ‘东方_’;
- % :可以匹配任意长度的字符串,包括空字符串。
- 查询结果排序:
- 将查询结果从小到大排(升序,asc):select*from 表名 order by 要排序的字段名 asc;
- 将查询结果从大到小排(降序,desc):select*from 表名 order by 要排序的字段名 desc;
需要注意的是,在按照指定字段进行升序排列时,如果某条记录的字段值为NULL,则这条记录会在第一条显示,这是因为NULL值可以被认为是最小值 - 当第一排序条件一样的时候会按照第二排序条件进行排序
- select * from student order by math asc , english asc;
- 分组查询:select * from 表名 group by 要分组的字段名;
- 查询某个字段是否为NULL : selecet*from student wehere math is null
- 聚合查询(聚合函数):
- count : 统计个数
- max : 计算最大值
- min : 计算最小值
- sum :求和
- avg : 求平均值
- eg : select count(name) from student
- 注意:所有的聚合函数都排除了NULL值 ,选择不包含非空的列进行计算(一般选择主键)
- 条件查询:
- where子句后跟条件
- 常用运算符
-
、<、>=、<=、=
- between … and …
- in(集合)
- Like:模糊查询
- is null
- and 、&&
- or 、||
- not 、!
- Like:模糊查询
- is null
- and 、&&
- or 、||
- not 、!
-
日志
- 启用日志:\T 路径; eg: \T C:\log.txt; 注意:开启后最后要 \T 结束日志
常用函数