ORACLE学习-基本查询

  1. 使用YYYY-MM-DD显示格式显示雇员雇佣日期

    SELECT ename,TO_CHAR(hiredate,’YYYY-MM-DD’) FROM emp;

  2. 取消重复行

    某些情况下可能会显示完全相同的数据结果,使用DISTINCT关键字取消相同的结果
    显示所有部门号及岗位(取消重复行)
    SELECT DISTINCT deptno,job FROM emp

  3. 处理NULL

    一、使用NVL函数处理NULL值
    NVL函数用于将NULL转变为实际值,其语法格式为NVL(expr1,expr2)。如果expr1是null,则返回expr2;如果expr1不是null,则返回expr1
    另:使用AS别名时 必须要用双引号引住
    SELECT ename,sal,comm,sal+nvl(comm,0) AS “月收入” FROM emp;

    二、使用NVL2函数处理NULL值
    NVL2是oracle9i新增加的函数。
    语法结构:NVL2(expr1,expr2,expr3)。如果exp1不是null,则返回expr2;如果expr1是null,则返回expr3。
    注意:expr1可以是任意的数据类型,而expr2和expr3可以是除LONG之外的任何数据类型。但是expr2,expr3的数据类型必须要与expr1的数据类型匹配。
    SELECT ename,nvl2(comm,sal+comm,sal) AS “月收入” FROM emp;

  4. 连接字符串

    为了显示更有意义的查询结果,有时需要将多个字符串连接起来,连接字符串是使用“||”操作符来完成的。当连接字符串时,如果在字符串中要加入数字值,那么在“||”后可以直接指定数字;如果在字符串中要加入字符和日期值,则必须要用单引号引住。
    SELECT ename||’ is a ‘|| job AS “Employee Detail” FROM emp;

  5. LIKE操作符

    “%”用于表示0个或者多个字符,
    “_”用于表示单个字符
    注:如果要将通配符“%”和“_”作为字符值使用,那么需要在ESCAPE之后使用转义符。
    例:显示首字符为S的所有雇员名及其工资
    SELECT ename,sal FROM emp WHERE ename LIKE ‘S%’;
    例:显示第三个字符为大写A的所有雇员名及其工资
    SELECT ename,sal FROM emp WHERE ename LIKE ‘__A%’;

  6. 使用ORDER BY子句

    在执行查询操作时,默认情况下会按照数据插入的先后顺序来显示行数据。
    数据排序使用ORDER BY子句来完成。
    1.升序排序 ASC
    SELECT ename,sal FROM emp WHERE deptno = 30 ORDER BY sal;
    注意:当执行升序排序时,如果被排序列包含NULL值,那么NULL会显示在最后面。
    2.降序排序 DESC
    SELECT ename,sal FROM emp WHERE deptno = 30 ORDER BY sal DESC;
    3.使用多列排序
    ORDER BY可以基于多个列或多个表达式进行排序。
    排序规则:首先按照第一个列或者表达式进行排序,当第一个列或表达存在相同数据时,然后以第二个列或表达式进行排序。
    **SELECT ename,sal,comm FROM emp WHERE deptno = 30 ORDER BY
    sal ASC,comm DESC;**
    4.使用非选择列表进行排序
    当使用ORDER BY子句执行排序操作时,多数情况下选择列表都会包含被排序列。但是在实际情况下,选择列表可以不包含排序列。
    SELECT ename FROM emp ORDER BY sal DESC;
    5.使用列别名排序
    如果在WHERE子句中为列或表达式定义了,那么当执行排序操作时,既可以使用列或表达式进行排序,也可使用列别名进行排序。
    **SLECT ename,sal*12 AS “全年工作” FROM emp
    WHERE deptno = 30 ORDER BY “全年工作” DESC;**
    6.使用列位置编号排序
    当执行排序操作时,不仅可以指定列名、列别名进行排序,也可以按照列或表达式在选择列表中的位置进行排序。如果列名或表达式名称很长,那么使用列位置排序可以缩短排序语句的长度。另外使用UNION,UNION ALL,INTERSECT,MINUS等集合操作符合并查询结果时,如果选择列表中的列名不同,并且希望进行排序,那么必须使用列位置。
    例:以全年工资进行降序排序
    **SELECT ename,sal*12 “全年工资” FROM emp
    WHERE deptno = 20 ORDER BY 2 DESC**

你可能感兴趣的:(ORACLE学习)