目录:
SQL(Structured Query Language),结构化查询语言。
相关概念
书写规则
名称 | 运算符 | 说明 |
---|---|---|
比较运算 | =、!=、>、<、>=、<=、<>、!>、!<、 | 等于、不等于、大于… |
BETWEEN AND、NOT BETWEEN AND | 介于两者之间、介于两者之外 | |
谓 | IN、NOT IN | 在其中、不在其中 |
词 | LIKE、NOT LIKE | 匹配、不匹配 |
IS NULL、IS NOT NULL | 是空值、不是空值 | |
逻辑运算 | NOT、AND、OR | 非、与、或 |
集函数 | COUNT(*)、COUNT(列名)、SUM(列名)、AVG(列名)、MAX(列名)、MIN(列名) | 统计元组个数、统计列值个数、列值汇总、求列值平均、求列值最大、求列值最小 |
优先级 | 运算分类 | 运算符举例 |
---|---|---|
1 | 算术运算符 | +,-,*,\ |
2 | 连接运算符 | || |
3 | 比较运算符 | =, <>, <, >, <=, >= |
4 | 特殊比较运算符 | BETWEEN AND,IN,LIKE,IS NULL |
5 | 逻辑非 | NOT |
6 | 逻辑与 | AND |
7 | 逻辑或 | OR |
注:
File->New->SQL Window,新建一个SQL窗口,在这里写语句。
SELECT [DISTINCT]{*|column|expression [alias],...}
FROM table
[WHERE condition(s)]
注:
SELECT *
FROM emp
注:
SELECT ename
FROM emp
注:
运算符 | 描述 |
---|---|
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
优先级
SELECT sal,sal+1000
FROM emp
注:
SELECT comm,comm+1000
FROM emp
注:
comm+1000:只有comm不为空值,相加才有结果,不然就为空值。
如果comm为空值,但想相加的值不为空值,可以使用nvl函数,如:
SELECT comm,nvl(comm+1000,0)
FROM emp
用来重新命名列的显示标题。
使用方法
以下情况要添加双引号
SELECT ename 员工名,job AS 工作,sal "薪水"
FROM emp
形式上是以两个竖杠 | 。 |
SELECT ename || job
FROM emp
SELECT ename || '的工作是' || job AS "Employee Details"
FROM emp
SELECT DISTINCT job
FROM emp
注:
File->New->Command Window,新建一个Command窗口,可以在这个窗口显示表的结构,如:
Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0
Connected as scott@ORCL
SQL> DESC emp
Name Type Nullable Default Comments
-------- ------------ -------- ------- --------
EMPNO NUMBER(4)
ENAME VARCHAR2(10) Y
JOB VARCHAR2(9) Y
MGR NUMBER(4) Y
HIREDATE DATE Y
SAL NUMBER(7,2) Y
COMM NUMBER(7,2) Y
DEPTNO NUMBER(2) Y
SQL>
注:
SELECT deptno
FROM emp
WHERE deptno=30
SELECT job
FROM emp
WHERE job='SALESMAN'
注:
SELECT hiredate
FROM emp
WHERE hiredate>'01-1月-81'
注:
用来判断要比较的值是否在某个范围内。
SELECT deptno
FROM emp
WHERE deptno BETWEEN 20 AND 30
用来判断要比较的值是否和集合列表中的任何一个值相等。
SELECT deptno
FROM emp
WHERE deptno IN(20,30)
SELECT ename
FROM emp
WHERE ename LIKE 'M%'
SELECT ename
FROM emp
WHERE ename LIKE '_M%'
SELECT ename
FROM emp
WHERE ename LIKE 'S\%%' ESCAPE '\'
使用IS NULL运算符来判断要比较的值是否为空值NULL。
SELECT comm
FROM emp
WHERE comm IS NULL
要求两个条件都为真,结果才为真。
SELECT ename,job
FROM emp
WHERE ename LIKE 'S%' AND job='CLERK'
只需要两个条件中的一个为真,结果就返回真。
SELECT ename,job
FROM emp
WHERE ename LIKE 'S%' OR job='CLERK'
可以和IN、BETWEEN AND、LIKE、IS NULL一起使用。
SELECT job
FROM emp
WHERE job NOT IN('CLERK')
ORDER BY子句能对查询结果集进行排序,语法结构如下:
SELECT [DISTINCT] { * | 列名|表达式[别名][,...]}
FROM表名 [WHERE 条件]
[ORDER BY {列名|表达式|列别名|列序号} [ASC|DESC],…]
注:
排序规则
SELECT sal
FROM emp
ORDER BY sal
SELECT sal
FROM emp
ORDER BY sal DESC
SELECT sal salary
FROM emp
ORDER BY salary
SELECT sal,comm
FROM emp
ORDER BY sal,comm DESC
注:
SELECT sal,comm
FROM emp
ORDER BY 2
注: