2013.8.20
使用用户:scott/tiger(测试用户)
SQL四类语句:
- 查询语句 select语言——重要,记下来
- DML 数据操作语言
- DDL 数据定义语言
- 控制语句
SQL> desc emp //显示emp表
设置别名:
SQL> select ename, sal*12 anuual_sal from emp;
SQL> select ename, sal*12 "anuual sal" from emp;//用双引号来保证格式,大小写不变,可以输入特殊符号
列的求和
字符串连接:
SQL> select distinct deptno from emp; //distinct 消除重复值
DEPTNO
----------
30
20
10
//where过滤条件
字符串比较://比较ASCII码的值大小
between:
SQL> select ename, deptno, sal from emp where sal between 800 and 1500; ENAME DEPTNO SAL ---------- ---------- ---------- SMITH 20 800 WARD 30 1250 MARTIN 30 1250 TURNER 30 1500 ADAMS 20 1100 JAMES 30 950 MILLER 10 1300 已选择7行。 SQL> select ename, deptno, sal from emp where sal >= 800 and sal <= 1500; ENAME DEPTNO SAL ---------- ---------- ---------- SMITH 20 800 WARD 30 1250 MARTIN 30 1250 TURNER 30 1500 ADAMS 20 1100 JAMES 30 950 MILLER 10 1300 已选择7行。
null not null:
SQL> select ename, comm from emp where comm is null; ENAME COMM ---------- ---------- SMITH JONES BLAKE CLARK SCOTT KING ADAMS JAMES FORD MILLER 已选择10行。 SQL> select ename, comm from emp where comm is not null; ENAME COMM ---------- ---------- ALLEN 300 WARD 500 MARTIN 1400 TURNER 0
in:
SQL> select ename, sal from emp where sal in (800, 5000); ENAME SAL ---------- ---------- SMITH 800 KING 5000
规定格式的比较:
SQL> select ename, sal, hiredate from emp where hiredate > ‘01-FEB-81‘; ENAME SAL HIREDATE ---------- ---------- -------------- ALLEN 1600 20-2月 -81 WARD 1250 22-2月 -81 JONES 2975 02-4月 -81 MARTIN 1250 28-9月 -81 BLAKE 2850 01-5月 -81 CLARK 2450 09-6月 -81 SCOTT 3000 19-4月 -87 KING 5000 17-11月-81 TURNER 1500 08-9月 -81 ADAMS 1100 23-5月 -87 JAMES 950 03-12月-81 ENAME SAL HIREDATE ---------- ---------- -------------- FORD 3000 03-12月-81 MILLER 1300 23-1月 -82 已选择13行。
and、or、not
// where x = 1 and y = 0
// where x = 1 or y = 0
// where x = 1 not y =
0(用法错误!)
// where x = 1 and y <> 0(用法正确!)
// where x = 1 and y not
in (0);(用法正确!)
SQL> select ename, deptno, sal from emp where deptno = 10 and sal <> 3000; ENAME DEPTNO SAL ---------- ---------- ---------- CLARK 10 2450 KING 10 5000 MILLER 10 1300 SQL> select ename, deptno, sal from emp where deptno = 10 and sal not in (800, 5000); ENAME DEPTNO SAL ---------- ---------- ---------- CLARK 10 2450 MILLER 10 1300
模糊查询:
SQL> select ename from emp where ename like ‘_A%‘; ENAME ---------- WARD MARTIN JAMES SQL> select ename from emp where ename like ‘%A%‘; ENAME ---------- ALLEN WARD MARTIN BLAKE CLARK ADAMS JAMES 已选择7行。 //注意通配符 _(一个字符) 和 % (多个字符,可以是0个或1个)的区别
已选择7行。 //注意通配符 _(一个字符) 和 % (多个字符,可以是0个或1个)的区别
//如果想查找字符串里面就含有 % 的条目,需要加转义字符 \% ,这是默认的,但也可以自己指定:
SQL> select ename from emp where ename like ‘%$%%‘ escape ‘$‘; //将$指定为转义字符