• SQL常用语法回忆及备忘之基本SQL语句


    SQL学习已有一年时间,由于这一年基本未使用忘记大半,今日特来回忆并记录常用基本的语法,用法,并举例,以备日后快速回忆之用。

    以下SQL均在Oracle10g环境下编写。表结构附在最后。

    1. 基本的SELECT语句

      最最关键,基本,核心的一句话

      SELECT    [DISTINCT | UNIQUE] (*, columnname [AS alias], …)

              FROM        tablename

              [WHERE    condition]

              [GROUP BY    group_by_expression]

              [HAVING    group_condition]

              [ORDER BY    columnname]

      1. Oracle10gSQL语句大小写不敏感,且一个语句可以分多行写
      2. Oracle10gDISTINCTUNIQUE的功能是同义词,功能完全相同,据说DISTINCT是标准语法,所以建议写DISTINCT而非UNIQUE

      EX.1

      Display the employee name, job, and start date of employees hired between 03/1/1981 and 20/6/1981. Order the query in by start date with the earliest date first and use the exact date formats specified above.

      SQL.1

      SELECT ename AS "employee name", job, TO_CHAR(hiredate,'DD/MM/YYYY')

    FROM emp1

    WHERE hiredate BETWEEN '03/JAN/81' AND '20/JUN/81'

    ORDER BY hiredate (DESC)

    SUM.1

    a.别名可以用AS,后面跟的是双括号; b.输出日期的时候转化格式用TO_CHAR函数(TO_CHAR函数会在后面函数中提到)c.比较两个值除了可以用'<', '>', 'AND', 'OR'这些以外,还可以用BETWEEN … AND … d.ORDER BY 默认正序,加上DESC为倒序.

     

    EX.2

    Display the name of all employees who do not have a manager.

    SQL.2

    SELECT ename

    FROM emp1

    WHERE mgr IS NULL

    EX.3

    Display the name of all employees who have an O anywhere in their name.

    SQL.3

    SELECT ename

    FROM emp1

    WHERE ename LIKE (=) %O%'

    SUM.3

    a.字符串进行匹配的时候可以用'LIKE'也可以直接用'=',在引号中的表达式,'%'表示若干个字符,'_'代表一个字符.

    EX.4

    Display the name, salary, and commission for all employees who earn commissions. Sort the data in descending order of commission within salary descending.

    SQL.4

    SELECT ename,sal, comm

    FROM emp1

    WHERE comm IS NOT NULL

    ORDER BY sal DESC, comm DESC

    SUM.4

    a.多重排序的时候,按照先后的次序来排,按需要正序或者倒序直接加到列名后面

    EX.5

    NULL

    SQL.5

    SELECT customer# || CHR(10) || lastname || ' , ' || firstname "Customer Information"

    FROM customers

    SUM.5

    a.连接字符串可以用||,要加入字符串用'…'. b.回车用CHR(10),数字换成其他的几位其对应的ASCII码所对应的字符c.给列取别名除了用AS以外还一直在后面加别名

     

    附录:

    表结构:

    EMP1

    Name

    Null?

    Type

    EMPNO

    NOT NULL

    NUMBER(4)

    ENAME

      

    VARCHAR2(10)

    JOB

      

    VARCHAR2(9)

    MGR

      

    NUMBER(4)

    HIREDATE

      

    DATE

    SAL

      

    NUMBER(7,2)

    COMM

      

    NUMBER(7,2)

    DEPTNO

      

    NUMBER(2)

    EMPTYPE

      

    VARCHAR2(2)

     

    DEPT1

    Name

    Null?

    Type

    DEPTNO

    NOT NULL

    NUMBER(2)

    DNAME

      

    VARCHAR2(14)

    LOC

      

    VARCHAR2(13)

    BONUS1

    Name

    Null?

    Type

    ENAME

      

    VARCHAR2(10)

    JOB

      

    VARCHAR2(9)

    SAL

      

    NUMBER

    COMM

      

    NUMBER

    SALGRADE1

    Name

    Null?

    Type

    GRADE

      

    NUMBER

    LOSAL

      

    NUMBER

    HISAL

      

    NUMBER

  • 相关阅读:
    斜率dp cdq 分治
    POJ2449 (k短路)
    BZOJ1576 (最短路+并查集)
    SWUST0249 (凸包面积)
    道路修建 (网络流)
    HDU3930 (原根)
    ZOJ2006 (后缀自动机)
    Codechef2015 May
    后缀自动机
    Digit (数位DP)
  • 原文地址:https://www.cnblogs.com/imjustice/p/2189713.html
Copyright © 2020-2023  润新知