Oracle-DQL-查询语言

Oracle-DQL-查询语言

目录




内容

1、基本查询

  • 格式:

      SELECT 字段 FROM 表 [WHERE 条件] [GROUP BY 字段[HAVING 条件]] [ORDER BY 字段 ASC/DESC]
    
  • 优先级

      FROM 子句> WHERE 子句> GROUP BY 子句> HAVING 子句> SELECT 子句> ORDER BY 子句
    

2、FROM

  FROM 子句 后面跟表或者查询集,表示从哪里查询数据。

  为了保证语句的完整性,在测试语句用一般会用DUAL表,也称为虚表。只是为了保证语句的完整性,表本身没有任何数据。

2、WHERE

  WHERE 子句 后面跟条件,表示要过滤掉那些数据。条件可以包含运算符,模糊查询,范围。

2.1、运算符

  • 算术运算符:+ - * /
  • 比较运算符:> < >= <= = <> !=
  • 逻辑运算符:and or not

2.2、模糊查询

   like not like 用于字符串的模糊查找。

  • 通配符:
    • _:任意一个字符
    • %:任意多个字符
  • 示例:
    1. 显示名字包含’ll’的员工姓名,工资

       SELECT ENAME, SAL FROM EMP WHERE ENAME LIKE '%ll%';
      
    2. 显示名字第二个字母为a的员工的姓名和工资

       SELECT ENAME, SAL FROM EMP WHERE ENAME LIKE '_a%';
      

2.3、范围查询

  • IN:判断值是否在集合中
  • EXIST:判断值是否在集合中
  • SOME :判断值是否为集合中某一个
  • ANY :判断值是否大于集合中的某一个或者小于集合中的某一个
  • ALL:判断值是否大于集合中的所有元素或者小于集合中的所有元素
  • BETWEEN 值1 AND 值2 :判断值是否在值1和值2范围内

  详细使用见本人写的博文’Oracle- in exists some any all 辨析’。

3、GROUP BY

  用于分组查询。比如查询emp表的时候,想看下各个部门都有多少人,都是那些人,通常和聚合函数一起使用。

  • 解析:
    1. 分组之后,不在有单独属性,只有组属性和用于分组的属性。
    2. 组属性包括,数量,总和,最大值,最小值,平均值。

3.1、聚合函数使用

  • 查询各个部门人数,最高工资,最低工资,平均工资及工资总和。

      SELECT DEPTNO, MAX(SAL), MIN(SAL), AVG(SAL), SUM(SAL) FROM EMP GROUP BY DEPTNO;
    

4、HAVING

  用于分组之后的条件判断。

  • WHERE 和 HAVING 比较

    1. WHERE用于对表中的原有数据做过滤,HAVING用于对分组数据做过滤
    2. WHERE执行优先于HAVING
    3. HAVING必须跟在GROUP BY之后执行
  • 查询最低工资低于2000的部门的员工姓名和工资

      SELECT ENAME, SAL WHERE DEPTNO IN (
      	SELECT DEPTNO FROM EMP GROUP BY DEPTNO HAVING MIN(SAL) < 2000
      );
    

SELECT

  用于展示信息,一般为字段信息或者字段为基础的操作。

5、ORDER BY

  排序,后面跟排序字段,多个排序字段’,'隔开,表示先以第一个条件排序,在以第二条件排序。。。

  • ASC:正序,默认可以不写。

  • DESC:倒序

  • 示例:显示所有员工的姓名、入职的年份和月份,若入职日期所在的月份排序,若月份相同则按入职的年份排序

      SELECT ENAME, TO_CHAR(HIREDATE, 'yyyy'), TO_CHAR(HIREDATE, 'mm') FROM EMP ORDER BY TO_NUMBER(TO_CHAR(HIREDATE, 'yyyy')), TO_NUMBER(TO_CHAR(HIREDATE, 'mm'));
    

后记

  所有数据库测试如果没有明确指定,都是基于scott用户下默认4个表。
   本项目为参考某马视频开发,相关视频及配套资料可自行度娘或者联系本人。上面为自己编写的开发文档,持续更新。欢迎交流,本人QQ:806797785。

前端项目源代码地址:https://gitee.com/gaogzhen/vue-leyou
    后端JAVA源代码地址:https://gitee.com/gaogzhen/JAVA

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaog2zh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值