MySQL高级SQL语句

MySQL的进阶查询
一、 按关键字排序
使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序 , 默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的语法结构ORDER BY后面跟字段名
准备一张成绩表

MySQL高级SQL语句

文章插图
 
语法结构
MySQL高级SQL语句

文章插图
 
1.1 单字段排序
升序
MySQL高级SQL语句

文章插图
 
降序
MySQL高级SQL语句

文章插图
 
1.2 多字段排序
先以前面的字段(主参考字段)排序 , 如果相同再按后面的字段排序
MySQL高级SQL语句

文章插图
 
二 、对结果进行分组
使用GROUP BY语句来实现分组通常结合聚合函数一起使用可以按一个或多个字段对结果进行分组GROUP BY的语法结构
2.1 group by分组
按照hobby分组(相同hobby一个组) , 并统计每个组的人数
MySQL高级SQL语句

文章插图
 
2.2 group by结合order by
先按hobby分组 , 再按hobby序号降序排列
MySQL高级SQL语句

文章插图
 
三、限制结果条目LIMIT
只返回SELECT查询结果的第一行或前几行使用LIMIT语句限制条目
LIMIT语法结构
MySQL高级SQL语句

文章插图
 
查看前两行
MySQL高级SQL语句

文章插图
 
查看从第四行开始的五行内容
MySQL高级SQL语句

文章插图
 
四、设置别名
使用AS语句设置别名 , 关键字AS可省略设置别名时 , 保证不能与库中其他表或字段名称冲突
别名的语法结构
MySQL高级SQL语句

文章插图
 
AS的用法
对于字段设置
MySQL高级SQL语句

文章插图
 
对于表设置 , 一般在多表查询时使用
多表操作时 , 对表别名之后 , 在select字段时要用别名.字段 , 区分字段属于哪个表
MySQL高级SQL语句

文章插图
 
作为连接语句
创建一个新表 , 将旧表的内容导入 , 与旧表的区别在于表的结构
MySQL高级SQL语句

文章插图
 
五、通配符
用于替换字符串的部分字符通常配合LIKE一起使用 , 并协同WHERE完成查询常用的通配符%表示零个、一个或多个_表示单个字符
例:
查询以姓名y开头的记录:
MySQL高级SQL语句

文章插图
 
查询姓名为y_ _y_格式的记录 , _代表单个字符 , 占位
MySQL高级SQL语句

文章插图
 
六、子查询
也称作内查询或者嵌套查询先于主查询被执行 , 其结果将作为外层主查询的条目在增删改查中都可以使用子查询支持多层嵌套IN语句是用来判断某个值是否在给定的结果集中
例:根据表need , 筛选出与need表中内容相匹配的成绩表的内容
MySQL高级SQL语句

文章插图
 
多层嵌套 , 筛选出need表中id与chengji表id相同的记录之后 , 在这基础上再筛选出名字相同的记录
MySQL高级SQL语句

文章插图
 
等同于下面两步的操作
MySQL高级SQL语句

文章插图
 
七、视图
数据库中的虚拟表 , 这张虚拟表中不包含任何数据 , 只是做了数据映射;
创建视图并查看:
MySQL高级SQL语句

文章插图
 
八、NULL值
表示缺失的值与数字0或者空白(spaces)是不同的使用IS NULL或IS NOT NULL进行判断


推荐阅读