本节的主要内容是oracle中的常用查询语句。
三, SQL语言
1, SQL标准
① SQL1992
② SQL1999
2, 第四代语言
面向"问题"的语言,
只需要告诉计算机做什么,而不需要管如何去做。
3, sql语句分类
(1) 查询语句
C:WindowsSystem32>sqlplus scott/tiger
①
说明:
A. 描述的内容: 名称 是否为空? 类型
B. varchar2, variable char 2, varchar2 支持国际化,而varchar不支持
② *
③ dual
④ 别名
注: 当别名里有 空格 汉字 或其他特殊字符时, 需要用双引号
同时双引号能保持 原本的格式, 比如 小写不会自动变为大写.
当别名用单引号括起来时, ORA-00923: 未找到要求的 FROM 关键字
annual, 每年的; sal, salary.
⑤ NULL值
注: 表达式中只要有NULL值, 则整个表达式为NULL
⑥ 字符串连接符 ||
1) 连接列名
SQL> select ename || sal from emp;
ENAME||SAL
----------------------------------
WARD1250
JONES2975
MARTIN1250
2) 连接字符串
SQL> select ename || '123456' from emp;
SQL> select ename || '123''A''456' from emp;
注: 使用双引号界定字符是错误的
单引号里面有单引号, 使用两个单引号表示一个单引号
⑦ distinct, 去除重复行
⑧ where
1) 等于, =
SQL> select * from emp
2 where deptno = 10;
SQL> select * from emp where job = 'CLERK';
2) 大于小于, > <
SQL> select ename, sal from emp where sal > 1500;
SQL> select ename, sal from emp where ename > 'CBA';
3) 不等于, <>
SQL> select deptno, dname from dept where deptno <> 10;
4) between low_num and high_num
SQL> select ename, sal from emp where sal between 950 and 1500;
SQL> select ename, sal from emp where sal >= 950 and sal <= 1500;
5) IS [NOT] NULL
SQL> select ename, sal, comm from emp where comm is null;
SQL> select ename, sal, comm from emp where comm is not null;
注意: 如果 not in (value1, ...) 中 有 NULL值, 则返回false
6) column [not] in (value1, value2, ...)
SQL> select ename, sal from emp where sal in (950, 1250, 1500);
SQL> select ename, sal from emp where sal not in (950, 1250, 1500);
SQL> select ename, sal from emp where ename in ('SCOTT', 'KING');
7) 日期
SQL> select ename, hiredate from emp where hiredate > '10-5月-81';
注: 当没用使用日期函数处理日期时, 可使用字符串来比较日期.
8) 模糊查询, like
通配符:
%, 0个或多个
_, 单个字符
转义字符:
使用 escape 指定
SQL> select ename from emp where ename like '123$%' escape '$';
⑨ order by
1) 升序 asc (默认)
SQL> select * from dept order by deptno;
SQL> select * from dept order by deptno asc;
2) 降序 desc
SQL> select * from dept order by deptno desc;
3) 多列的情况
SQL> select ename, empno, deptno from emp
2 order by deptno asc, deptno desc;
⑩ 综合
(2) DML语句
(3) DDL语句
(4) 事务控制语句