MySQL的进阶查询
一、 按关键字排序
使用ORDERBY语句来实现排序排序可针对一个或多个字段ASC:升序 , 默认排序方式 【升序是从小到大】DESC:降序 【降序是从大到小】ORDER BY的语法结构ORDER BY后面跟字段名
准备一张成绩表
文章插图
语法结构
文章插图
1.1 单字段排序
升序
文章插图
降序
文章插图
1.2 多字段排序
先以前面的字段(主参考字段)排序 , 如果相同再按后面的字段排序
文章插图
二 、对结果进行分组
使用GROUP BY语句来实现分组通常结合聚合函数一起使用可以按一个或多个字段对结果进行分组GROUP BY的语法结构
2.1 group by分组
按照hobby分组(相同hobby一个组) , 并统计每个组的人数
文章插图
2.2 group by结合order by
先按hobby分组 , 再按hobby序号降序排列
文章插图
三、限制结果条目LIMIT
只返回SELECT查询结果的第一行或前几行使用LIMIT语句限制条目
LIMIT语法结构
文章插图
查看前两行
文章插图
查看从第四行开始的五行内容
文章插图
四、设置别名
使用AS语句设置别名 , 关键字AS可省略设置别名时 , 保证不能与库中其他表或字段名称冲突
别名的语法结构
文章插图
AS的用法
对于字段设置
文章插图
对于表设置 , 一般在多表查询时使用
多表操作时 , 对表别名之后 , 在select字段时要用别名.字段 , 区分字段属于哪个表
文章插图
作为连接语句
创建一个新表 , 将旧表的内容导入 , 与旧表的区别在于表的结构
文章插图
五、通配符
用于替换字符串的部分字符通常配合LIKE一起使用 , 并协同WHERE完成查询常用的通配符%表示零个、一个或多个_表示单个字符
例:
查询以姓名y开头的记录:
文章插图
查询姓名为y_ _y_格式的记录 , _代表单个字符 , 占位
文章插图
六、子查询
也称作内查询或者嵌套查询先于主查询被执行 , 其结果将作为外层主查询的条目在增删改查中都可以使用子查询支持多层嵌套IN语句是用来判断某个值是否在给定的结果集中
例:根据表need , 筛选出与need表中内容相匹配的成绩表的内容
文章插图
多层嵌套 , 筛选出need表中id与chengji表id相同的记录之后 , 在这基础上再筛选出名字相同的记录
文章插图
等同于下面两步的操作
文章插图
七、视图
数据库中的虚拟表 , 这张虚拟表中不包含任何数据 , 只是做了数据映射;
创建视图并查看:
文章插图
八、NULL值
表示缺失的值与数字0或者空白(spaces)是不同的使用IS NULL或IS NOT NULL进行判断
推荐阅读
- SpringBoot通过JdbcTemplate操作MySQL数据库
- MySQL 团队开发规范,太详细了,建议收藏
- SQL去重的三种方法技巧 你知道吗
- MySQL中如何生成连续的自然日
- excel高级动态求和?在excel中,自动求和函数是_1
- 一次简单的SQL注入绕WAF
- MySQL 主键约束、非空约束、唯一约束
- mysqlcheck 修复数据库表
- MySQL小技巧:INT类型到达阈值,动态修改表schema失败怎么办
- MySQL for macOS如何调出命令行客户端MySQL Command Line Client