1.SELECT 基本语法。
SELECT *|{[DISTINCT] column|expression [alias],...}
FROM table_name
[WHERE conditions]
[GROUP BY]
[ORDER BY column [ASC|DESC]];
在Oracle中,大小写不敏感,可以多行编写,关键字不可以缩写或跨越多行,通常每个子语句占据一行,使用缩进增加可读性。
2.列的别名。
用于重命名列表名;紧跟在列名后,列名和别名之间可以加AS(可选);如果别名包含大小写或者空格,则必须用双引号引起。
3.去除重复行。
使用DISTINCT关键字去除重复行。
SELECT DISTINCT deptno FROM emp;
4.运算符的优先级。
0 括号
1 算术运算符 */+-
2 连接运算符||
3 比较运算符>,<,=,...
4 IS [NOT] NULL, LIKE, [NOT] IN
5 [NOT] BETWEEN
6 NOT
7 AND
8 OR
示例:将多个列或文本连接在一起
5.WHERE子语句。
SELECT字句中的表达式和WHERE条件中的表达式里面都可以使用字符串和日期。字符串和日期要用单引号标识。字符串大小写敏感。日期有一定格式,默认是DD-MON-YY.
使用比较运算符:
=,>,>=,<,<=,<>
BETWEEN ... AND ...
IN(SET)
LIKE '...[%]...[_]...' ESCAPE '\'
IS NULL
使用逻辑运算符:
--AND
SELECT ename,sal
FROM emp
WHERE sal>=400
AND sex='1';
--OR
SELECT ename,sal
FROM emp
WHERE sal>=400
OR sex='1';
--NOT
SELECT ename,sal
FROM emp
WHERE NOT(sal>=400
AND sex='1');
6.模糊查询。
通配符
%:代表0个或多个字符
_:代表1个任意字符
示例:查询ename中第二个字符为S
SELECT ename,sex,sal FROM emp WHERE ename LIKE '_S%';
7.针对null值得查询。
Oracle默认将null作为最大值。
判断某个列是否是null不可以使用=,必须使用is null或is not null。
8.数据排序。
查询语句中的数据排序使用ORDER BY子句实现。
排序分为升序和降序,关键字分别是ASC和DESC。
ORDER BY子句必须是SELECT语句的最后一个子句。
ORDER BY子句使用的排序列可以是普通列,也可以使用列的别名,表达式,SELECT子句字段的位置。
ORDER BY子句可以使用多个字段进行排序。
Oracle排序时默认将null值作为最大值。
SELECT ename,job,sal salary,hiredate FROM emp ORDER BY salary DESC,hiredate ASC;