• DQL查询数据库


    写在前面

    数据库执行DQL 语句不会对数据进行改变,而是让数据库发送结果集给客户端。 查询返回的结果集是一张虚拟表

    1. 查询顺序和表字段

    查询语句书写顺序

    selectfrom- where- group by- having- order by-limit 
    
    • 1

    先给出查询顺序

    from -> join -> where -> group by -> 聚合函数 -> having -> select -> order by -> limit
    
    • 1

    注:having 与where 的区别:

    1. having 是在分组后 对数据进行过滤, where 是在分组前对数据进行过滤
    2. having 后面可以使用聚合函数(统计函数), where 后面不可以使用聚合函数。

    emp表字段详情

    在这里插入图片描述
    stu表字段详情

    在这里插入图片描述

    下面开始进行查询

    2. 基础查询和条件查询

    查询所有列

    select * from emp;
    
    • 1

    查询指定列

    select empno,sal from emp;
    
    • 1

    条件查询关键字

    • =、!=、<>、<、<=、>、>=;
    • between…and;
    • in(set);
    • is null; is not null
    • and、or、not;

    查询性别为女,并且年龄 50 的记录

    select * from stu where gender="女" and sage=50;
    
    • 1

    查询学号为 S_1001,S_1002,S_1003 的记录

    select * from stu where sid in ("S_1001""S_1002""S_1003");
    
    • 1

    查询年龄为 null 的记录

    select * from stu where age is null;
    
    • 1

    查询姓名不为 null 的学生记录

    select * from stu where sname is not null;
    
    • 1

    3. 模糊查询

    通配符:

    • _:任意一个字符
    • %:任意0~n 个字符

    查询姓名由 5 个字母构成的学生记录

    select * from stu where sname like "_____"
    
    • 1

    查询姓名由 5 个字母构成,并且第 5 个字母为“i”的学生记录

    select * from stu where sname like "____i"
    
    • 1

    查询姓名以“z”开头的学生记录

    select * from stu where sname like "z%"
    
    • 1

    4. 分组查询

    聚合函数

    • 聚合函数是用来做纵向运算的函数:
      • count():统计指定列不为 NULL 的记录行数;
      • max():计算指定列的最大值,如果指定列是字符串类型,使用字符串排序运算;
      • min():计算指定列的最小值,如果指定列是字符串类型,使用字符串排序运算;
      • sum():计算指定列的数值和,如果指定列类型不是数值类型,计算结果为 0;
      • avg():计算指定列的平均值,如果指定列类型不是数值类型,计算结果为 0;

    查询每个部门的部门编号和每个部门的工资和:

    select deptno,sum(sal) from emp group by deptno;
    
    • 1
    • 查询每个部门的部门编号以及每个部门的人数:
    select deptno,count(*) from emp group by deptno;
    
    • 1
    • 查询每个部门的部门编号以及每个部门工资大于1500的人数:
    select deptno,count(*) from emp where sal>1500 group by deptno;
    
    • 1

    查询工资总和大于 9000 的部门编号以及工资和:

    select deptno,sum(sal) from emp group by deptno having sum(sal)>9000;
    
    • 1

    5. 排序、limit方言、字段控制查询

    asc 升序(默认)
    desc 降序
    
    • 1
    • 2

    重点:获取emp的ename, 查询按照ename的最后两个字母降序进行排列

    select ename from emp order by substring(ename, -2) desc;
    
    • 1

    查询 5 行记录,起始行从 0 开始

    select ename from emp limit 0,5;
    
    • 1

    查询 10 行记录,起始行从 3 开始

    select ename from emp limit(3,10)
    
    • 1
    select ename from emp substring(ename, -2);
    
    • 1
  • 相关阅读:
    java 的jar打包方式(exe安装版,免安装版(zip包里有exe和jre),bat双击运行版本),运行在没有jre环境中
    公司如何对电脑软件进行统一管理?
    吸烟检测Y8N,支持C++,PYTHON,ANDROID
    JMeter测试Web服务
    gbase8a 认证培训课后题(一)
    云尘-Node1 js代码
    leetcode-hot100-矩阵
    system verilog 处理子进程(关闭/等待/跳转)
    10.私网与公网的转换---NAT网络地址转换技术
    10月更新!又一波新功能上线,升级后的EasyOps®简直神了
  • 原文地址:https://blog.csdn.net/qq_40926887/article/details/126745492