zoukankan      html  css  js  c++  java
  • 第二天20160727

    --查询employees表中last_name不包含a的员工的last_name
    SELECT LAST_NAME
    FROM EMPLOYEES
    WHERE LAST_NAME NOT LIKE '%a%';

    --排序:ORDER BY子句
    SELECT 3
    FROM 1
    [WHERE] 2
    [ORDER BY 列] 4--通常ORDER BY子句会出现在SELECT语句的最后

    /*
    1.升序:使用ASC关键字。默认为升序排序。
    2.降序:使用DESC关键字。
    */

    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    ORDER BY SALARY ASC;

    SELECT LAST_NAME,SALARY
    FROM EMPLOYEES
    ORDER BY SALARY DESC;

    SELECT LAST_NAME,HIRE_DATE
    FROM EMPLOYEES
    ORDER BY HIRE_DATE ASC;

    SELECT LAST_NAME
    FROM EMPLOYEES
    ORDER BY LAST_NAME ASC;

    /*
    1.ORDER BY子句中可以出现列名。
    2.ORDER BY子句中可以出现表达式与函数。
    3.ORDER BY子句中可以出现列别名(注意大小写)。
    4.ORDER BY子句中可以出现结果中列的序号。
    */

    --查询employees表中年薪大于100000的员工的last_name,年薪,结果根据年薪降序排序
    SELECT LAST_NAME,SALARY*12 AS 年薪
    FROM EMPLOYEES
    WHERE SALARY*12>100000
    ORDER BY 2 DESC;

    --WHERE子句中不能使用列的别名。

    --先对第一列进行排序,当第一列中有相同数据时,对这些相同的数据进行第二列的排序。
    --查询employees表中所有员工的last_name,job_id,department_id,salary,结果根据department_id升序,salary降序排序。
    SELECT LAST_NAME,JOB_ID,DEPARTMENT_ID,SALARY
    FROM EMPLOYEES
    ORDER BY DEPARTMENT_ID ASC NULLS FIRST,SALARY DESC;

    --Oracle认为NULL是最大的。
    --SQL Server认为NULL是最小的。

    --NULLS FIRST/NULLS LAST:在不影响排序规则的前提下,将NULL放在结果的最前/后面。

    --单行函数
    --字符相关的单行函数
    SELECT LAST_NAME,UPPER(LAST_NAME)--大写
    FROM EMPLOYEES;

    SELECT LAST_NAME,LOWER(LAST_NAME)--小写
    FROM EMPLOYEES;

    --查询employees表中last_name包含a(不区分大小写)的员工的last_name
    SELECT LAST_NAME
    FROM EMPLOYEES
    WHERE LAST_NAME LIKE '%A%' OR LAST_NAME LIKE '%a%';

    SELECT LAST_NAME
    FROM EMPLOYEES
    WHERE UPPER(LAST_NAME) LIKE '%A%';

    --从指定的位置开始截取字符串,直到字符串的最后
    SELECT LAST_NAME,SUBSTR(LAST_NAME,3)
    FROM EMPLOYEES;

    --从指定的位置截取指定长度的字符串
    SELECT LAST_NAME,SUBSTR(LAST_NAME,3,2)
    FROM EMPLOYEES;

    --从倒数第N位开始截取字符串,直到字符串的最后
    SELECT LAST_NAME,SUBSTR(LAST_NAME,-3)
    FROM EMPLOYEES;

    --从倒数第N位截取指定长度的字符串
    SELECT LAST_NAME,SUBSTR(LAST_NAME,-3,2)
    FROM EMPLOYEES;

    SELECT LAST_NAME,LENGTH(LAST_NAME)
    FROM EMPLOYEES;

    SELECT LENGTH('中国')--返回字符数
    FROM DUAL;

    SELECT LENGTHB('中国')--返回字节数
    FROM DUAL;

    LPAD()/RPAD():显示第一个参数的值,使用第二参数设置第一个参数显示的位数。如果第一个参数长度不足,使用第三个参数在第一个参数的左/右面补齐长度。
    SELECT LPAD(EMPLOYEE_ID,6,0),LAST_NAME
    FROM EMPLOYEES;

    --INSTR():在第一个参数中查找第二个参数首次出现的位置,没找到返回0
    SELECT LAST_NAME,INSTR(LAST_NAME,'a')
    FROM EMPLOYEES;

    --查询employees表中last_name包含a的员工的last_name(不允许使用LIKE)
    SELECT LAST_NAME
    FROM EMPLOYEES
    WHERE INSTR(LAST_NAME,'a')!=0;

    SELECT REPLACE('www.dhee.com','w','m')--将第一个参数中出现的第二个参数,使用第三个参数替换。
    FROM DUAL;

    --TRIM():去掉字符串两端的空格
    SELECT TRIM(' ABC ABC ') AS A
    FROM DUAL;

    SELECT TRIM('A' FROM 'AAAABADAAAA')
    FROM DUAL;

    --与数字相关的单行函数
    --四舍五入
    SELECT ROUND(256.987),ROUND(256.987,2),ROUND(256.987,0),ROUND(256.987,-1)
    FROM DUAL;

    --截断数字
    SELECT TRUNC(256.987),TRUNC(256.987,2),TRUNC(256.987,0),TRUNC(256.987,-1)
    FROM DUAL;

    --取余数
    SELECT MOD(15,2)
    FROM DUAL;

    --与日期相关的单行函数
    --SYSDATE:获得数据库服务器的当前日期+时间
    SELECT SYSDATE
    FROM DUAL;

    SELECT SYSDATE+1000
    FROM DUAL;

    SELECT SYSDATE-1000
    FROM DUAL;

    --查询employees表中所有员工的last_name,hire_date,入职的天数
    SELECT LAST_NAME,HIRE_DATE,TRUNC(SYSDATE-HIRE_DATE) AS 入职天数
    FROM EMPLOYEES;

    /*
    1.日期+天数=日期
    2.日期-天数=日期
    3.日期-日期=天数
    4.日期不能加日期
    */

    --MONTHS_BETWEEN():返回两个日期相关的月数
    SELECT LAST_NAME,HIRE_DATE,TRUNC(MONTHS_BETWEEN(SYSDATE,HIRE_DATE)) AS 入职月数
    FROM EMPLOYEES;

    --ADD_MONTHS():返回指定日期之后的N个月的日期
    SELECT ADD_MONTHS(SYSDATE,-100)
    FROM DUAL;

    --NEXT_DAY():获得指定日期的下一个星期N的日期
    SELECT NEXT_DAY(SYSDATE,2)
    FROM DUAL;

    SELECT NEXT_DAY(SYSDATE,'星期二')
    FROM DUAL;

    --与类型转换相关的单行函数
    /*
    1.字符串可以与日期进行相互的转换
    2.字符串可以与数字进行相互的转换
    3.Oracle中日期与数字不能相互转换
    */

    --TO_CHAR(D,F):根据模板F将日期类型D转换为字符串类型的值。
    SELECT LAST_NAME,TO_CHAR(HIRE_DATE,'YYYY-MM-DD')
    FROM EMPLOYEES;

    SELECT TO_CHAR(SYSDATE,'D DD DDD')
    FROM DUAL;

    SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD HH24:MI:SS')
    FROM DUAL;

    SELECT LAST_NAME,TO_CHAR(HIRE_DATE,'FMYYYY"年"MM"月"DD"日" DAY')
    FROM EMPLOYEES;

    --查询employees表中所有星期三入职员工的last_name,hire_date(格式:1999-1-1)
    SELECT LAST_NAME,TO_CHAR(HIRE_DATE,'FMYYYY-MM-DD')
    FROM EMPLOYEES
    WHERE TO_CHAR(HIRE_DATE,'DAY')='星期三';

    SELECT LAST_NAME,TO_CHAR(HIRE_DATE,'FMYYYY-MM-DD')
    FROM EMPLOYEES
    WHERE TO_CHAR(HIRE_DATE,'D')='4';

    --查询employees所有员工的last_name,hire_date(格式为:YYYY-MM-DD),入职的星期
    SELECT LAST_NAME,TO_CHAR(HIRE_DATE,'YYYY-MM-DD') AS 入职时间,TO_CHAR(HIRE_DATE,'DAY') AS 星期
    FROM EMPLOYEES
    ORDER BY TO_CHAR(HIRE_DATE-1,'D') ASC;

  • 相关阅读:
    牛客网PAT练习场-有几个PAT
    牛客网PAT练习场-到底买不买
    增量数据捕获cdc
    windows terminal 笔记
    ubuntu文件夹颜色设置及vim颜色配置
    windows sub system 如何修改root密码
    Intellij IDEA 一个Tomcat启动多个Web的设置
    What is “Deploy applications configured in Tomcat instance” in IntelliJidea
    接口批量测试
    使用soupUI,jemter 测试http接口的方法
  • 原文地址:https://www.cnblogs.com/yzyqqhr/p/5712760.html
Copyright © 2011-2022 走看看