SQL查询语句[0]

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过滤条件

//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 ‘$‘; //将$指定为转义字符

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。