-- 查询练习-- 查询所有字段-- select * from 表名;select * from students;-- 查询指定字段-- select 列1,列2,... from 表名;select name,gender from students;-- 使用 as 给字段起别名-- select 字段 as 名字.... from 表名;select name as "姓名",gender as "性别" from students;-- select 表名.字段 .... from 表名;select students.name,students.gender from students;-- 可以通过 as 给表起别名-- select 别名.字段 .... from 表名 as 别名;select s.name,s.gender from students as s;失败的select students.name, students.age from students as s;-- 消除重复行(查性别)-- distinct 字段 select distinct gender from students;-- 条件查询-- 比较运算符-- select .... from 表名 where .....-- >-- 查询大于18岁的信息select * from students where age > 18;-- <-- 查询小于18岁的信息select * from students where age < 18;-- >=-- <=-- 查询小于或者等于18岁的信息select * from students where age <= 18;-- =-- 查询年龄为18岁的所有学生的名字select name,age from students where age = 18;-- != 或者 <>select * from students where age != 18;select * from students where age <> 18;-- 逻辑运算符-- and-- 18和28之间的所以学生信息select * from students where age > 18 and age < 28;失败select * from students where age>18 and <28;select * from students where 18<age<28;-- 18岁以上的女性select * from students where age > 18 and gender=2;-- or-- 18以上或者身高高过180(包含)以上select * from students where age > 18 or height >= 180;-- not-- 不在 18岁以上的女性 这个范围内的信息select * from students where not (age > 18 and gender = 2);select * from students where not (age > 18 and gender = 2);(注意)-- 模糊查询(where name like 要查询的数据)-- like -- % 替换任意个-- _ 替换1个-- 查询姓名中 以 "小" 开始的名字select * from students where name like "小%";-- 查询姓名中 有 "小" 所有的名字select * from students where name like "%小%";-- 查询有2个字的名字select * from students where name like "__";-- 查询有3个字的名字select * from students where name like "___";-- 查询至少有2个字的名字select * from students where name like "__%";-- 范围查询-- in (1, 3, 8)表示在一个非连续的范围内-- 查询 年龄为18、34的姓名select name,age from students where age in (18,34);-- not in 不非连续的范围之内-- 年龄不是 18、34岁的信息select name,age from students where age not in (18,34);(注意)select name from students where not age in (18,34);-- between ... and ...表示在一个连续的范围内-- 查询 年龄在18到34之间的的信息select * from students where age between 18 and 34;-- not between ... and ...表示不在一个连续的范围内-- 查询 年龄不在在18到34之间的的信息select * from students where age not between 18 and 34;失败的select * from students where age not (between 18 and 34);-- 空判断-- 判空is null-- 查询身高为空的信息select * from students where height is null;-- 判非空is not nullselect * from students where height is not null;失败select * from students where height not is  null;-- 排序-- order by 字段-- asc从小到大排列,即升序-- desc从大到小排序,即降序-- 查询年龄在18到34岁之间的男性,按照年龄从小到大到排序(默认是asc升序)select * from students where (age between 18 and 34) and gender = 1 order by age asc; -- 查询年龄在18到34岁之间的女性,身高从高到矮排序select * from students where (age between 18 and 34) and gender = 2 order by height desc;-- order by 多个字段-- 查询年龄在18到34岁之间的女性,身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序select * from students where (age between 18 and 34) and gender = 2 order by height desc,age;-- 查询年龄在18到34岁之间的女性,身高从高到矮排序, 如果身高相同的情况下按照年龄从小到大排序,-- 如果年龄也相同那么按照id从大到小排序select * from students where (age between 18 and 34) and gender = 2 order by height desc,age,id desc;-- 聚合函数-- 总数-- count-- 查询男性有多少人,女性有多少人select count(*) from students where gender=1;select count(*) from students where gender=2;-- 最大值-- max-- 查询最大的年龄select max(age) from students;-- 查询女性的最高 身高select max(height) from students where gender=2;-- 最小值-- minselect min(height) from students;-- 求和-- sum-- 计算所有人的年龄总和select sum(age) from students;-- 平均值-- avg-- 计算平均年龄select avg(age) from students;-- 计算平均年龄 sum(age)/count(*)select sum(age)/count(*) from students;-- 四舍五入 round(123.23 , 1) 保留1位小数-- 计算所有人的平均年龄,保留2位小数select round(avg(age),2) from students;-- 计算男性的平均身高 保留2位小数select round(avg(height),2) from students where gender=1;-- 分组(重点)-- group by-- 按照性别分组,查询所有的性别select gender from students group by gender;select name,gender from students group by gender;错误-- select name,gender from students group by gender;-- 失败select * from students group by gender;-- 计算每种性别中的人数select count(*),gender from students group by gender;-- group_concat(...)-- 查询同种性别中的姓名select gender,group_concat(name) from students group by gender;-- 查询每组性别的平均年龄select avg(age),gender from students group by gender;-- 查询平均年龄超过30岁的性别,以及姓名 having avg(age) > 30(重点)select gender,group_concat(name) from students  group by gender having avg(age) > 30;-- 查询每种性别的平均年龄和名字select avg(age),group_concat(name) from students group by gender;-- 查询每种性别中的人数多于2个的性别和姓名(重点)select gender,group_concat(name) from students group by gender having count(*) > 2;-- with rollup 汇总的作用(了解)select gender,count(*) from students group by gender with rollup;-- 分页-- limit start, count-- 限制查询出来的数据个数-- 查询前5个数据select * from students limit 5;-- 每页显示2个,第1个页面select * from students limit 0,2;-- 每页显示2个,第2个页面select * from students limit 2,2;-- 每页显示2个,第3个页面select * from students limit 4,2;-- 每页显示2个,第4个页面select * from students limit 6,2;-- 每页显示2个,显示第6页的信息, 按照年龄从小到大排序select * from students order by age asc limit 10,2;错误1 select * from students limit 10,2 order by age asc;-- 错误的写法错误2 select * from students limit 2*(6-1),2;-- limit 放在最后面(注意)-- 连接查询(重点)-- inner join ... on-- select ... from 表A inner join 表B;select * from students inner join classes;-- 查询 有能够对应班级的学生以及班级信息select * from students inner join classes on students.cls_id=classes.id;-- 按照要求显示姓名、班级select students.name,classes.name from students inner join classes on students.cls_id=classes.id;-- 给数据表起名字select s.name,c.name from students as s inner join classes as c on s.cls_id=c.id;-- 查询 有能够对应班级的学生以及班级信息,显示学生的所有信息 students.*,只显示班级名称 classes.name.select students.*,classes.name from students inner join classes on students.cls_id=classes.id;-- 在以上的查询中,将班级姓名显示在第1列select classes.name,students.* from students inner join classes on students.cls_id=classes.id;-- 查询 有能够对应班级的学生以及班级信息, 按照班级进行排序-- select c.xxx s.xxx from students as s inner join clssses as c on .... order by ....;select classes.name,students.* from students inner join classes on students.cls_id=classes.id order by classes.name;-- 当时同一个班级的时候,按照学生的id进行从小到大排序select classes.name,students.* from students inner join classes on students.cls_id=classes.id order by classes.name,students.id;-- left join-- 查询每位学生对应的班级信息select * from students inner join classes on students.cls_id=classes.id;select * from students left join classes on students.cls_id=classes.id;-- select * from students right join classes on students.cls_id = classes.id;-- 查询没有对应班级信息的学生-- select ... from xxx as s left join xxx as c on..... where .....-- select ... from xxx as s left join xxx as c on..... having .....select * from students left join classes on students.cls_id=classes.id where classes.id is null;(注意)不建议使用 select * from students left join classes on students.cls_id=classes.id having classes.id is null;-- right join   on-- 将数据表名字互换位置,用left join完成-- 子查询-- 标量子查询: 子查询返回的结果是一个数据(一行一列)-- 列子查询: 返回的结果是一列(一列多行)-- 行子查询: 返回的结果是一行(一行多列)-- 查询出高于平均身高的信息(height)-- 1 查出平均身高select avg(height) from students;-- 2 查出高于平均身高的信息select * from students where height > (select avg(height) from students);-- 查询学生的班级号能够对应的 学生名字-- select name from students where cls_id in (select id from classes);-- 1 查出所有的班级idselect id from classes;(1,2)-- 2 查出能够对应上班级号的学生信息select * from students where cls_id in (select id from classes);

转载于:https://www.cnblogs.com/mgw2168/p/9570132.html

MySQL操作之条件,排序,分页,聚合函数,分组,连接,子查询,自连接查询总结...相关推荐

  1. MySQL数据库——day26 数据库安装,卸载,概念,msq的介绍,安装,连接,DDL,DML,DQL模糊查询,字段控制(别名和运算),排序,聚合函数,分组查询(where和having),分页查询

    学到mysql的时候非常的快,感觉前面的没有很巩固,还是要复习前面的博客 常见的数据库 MySQL , Oracle , SQL Server , SQLite , DB2 , - SQL Serve ...

  2. mysql数据库(排序,聚合函数,分组,分页查询,union,连接查询,主键外键)

    1.排序(order by) select * from stu order by age; -- 默认升序 升序 ASC 降序DESC -- DESC 具有查看表的结构的功能 desc stu; 不 ...

  3. MYSQL —(二)筛选、聚合和分组、查询

    MYSQL -(二)筛选.聚合和分组.查询 虚拟机清屏:Ctrl+l 筛选条件 比较运算符 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-e9UNlksr-158046 ...

  4. MySQL命令(二)| 表的增删查改、聚合函数(复合函数)、联合查询

    文章目录 新增 (Create) 全列插入 指定列插入 查询 (Retrieve) 全列查询 指定列查询 条件查询 关系元素运算符 模糊查询 分页查询 去重:DISTINCT 别名:AS 升序 or ...

  5. Jdbc访问mysql查询聚合函数_JDBC连接参数设置对Oracle数据库的影响分析

    一次数据库性能问题处理引发的JDBC参数设置思考 近期某环境下系统,出现大面积页面访问缓慢情况,每个页面交易响应时间2-5秒,严重超过平日访问阈值. 经排查分析,问题主要出现在数据库,生成AWR得到3 ...

  6. MySQL基础学习(六)——聚合函数

    目录 1.聚合函数类型 (1)AVG(x) (2)SUM(x) (3)MAX(x) (4)MIN(x) (5)COUNT(x) 2.聚合函数的基本使用 (1)单列分组 (2)多列分组 (3)WITH ...

  7. MYSQL中最基础的的聚合函数(重点!)

    一.聚合函数的介绍 在数据库查询过程中,不仅只返回数据的基础信息,有时还需对这些数据进行统计和汇总.MySQL 提供了聚合函数,用于实现这些高级功能. 二.聚合函数的基础运用 聚合函数用于对一组值进行 ...

  8. 7.排序、聚合函数、分组查询

    排序 语法: select * from 表名 order by 列1 asc|desc,列2 asc|desc,... asc从小到大排列,即升序,也可不写: desc从大到小排序,即降序 例1:查 ...

  9. 数据库MySQL基础---约束、表关系、聚合函数、连接查询、分组查询和子查询

    约束 1.主键约束亦成为主码,关键字:primary key,设置了主键约束的列的数据要求:不能为空,不允许重复. 2.自增长策略针对主键,不需要手动给值,自动的值是当前表中该列最大值+1关键字:au ...

最新文章

  1. freemarker写select组件报错总结(六)
  2. 从Atlas到Microsoft ASP.NET AJAX(4) - Browser Compatibility
  3. VS Code 1.29 发布,众多新功能有没有你想要的?
  4. 《程序员的思维修炼》思维导图
  5. js中text方法是啥意识_一盏茶的时间,快速捕获JS中常用的方法(细心整理,持续更新ing)...
  6. 前端学习(2672):ts初步概念和功能实现
  7. java核心-多线程-Java多线程编程涉及到包、类
  8. 激光slam_机器人主流定位技术,激光SLAM与视觉SLAM谁更胜一筹
  9. 95-136-043-源码-Operator-LegacyKeyedCoProcessOperator
  10. 【赠书活动】清华社的两本Android技术书籍
  11. oracle11.2.03,升级Oracle11.2.0.3后遭遇ORA-00600[kfioTranslateIO03][17090]
  12. clion opencv安装_Mac 下搭建 Clion + OpenCV4.x 的开发环境
  13. 数学科普书籍介绍(一)
  14. 外汇EA量化交易,怎么提高交易水平
  15. Unity Timeline的使用
  16. 大文件前端直接上传至七牛
  17. 天涯明月刀霸王枪服务器维护,天涯明月刀6月16日服务器维护更新内容公告
  18. 使用TS开发小程序中遇到的问题
  19. Python IDE开发环境
  20. 最小二乘估计,矩阵求导法(正规方程)全推导

热门文章

  1. asp.net中日志框架Log4Net的使用
  2. Eclipse中引用依赖库library失败的原因
  3. 某交规模拟考试系统验证绕路手记
  4. ROS学习笔记2(ROS文件系统和ROS常用命令)
  5. mysql实现知识图谱_基于电影知识图谱的智能问答系统学习记录
  6. 德力西双电源自动转换开关说明书_聊聊双电源转换的那点事。
  7. 元旦和春节将至,抢票神器助君早日回家
  8. Fiddler抓包详解
  9. Unitest框架的使用(四)HTMLTestRunner输出测试报告
  10. Filecoin网络目前总质押量约为3314万枚FIL