当前位置: 代码迷 >> SQL >> SQL条件查询(2)
  详细解决方案

SQL条件查询(2)

热度:105   发布时间:2016-05-05 14:44:44.0
SQL条件查询(二)

SQL条件查询

1.条件查询

SELECT *|{[DISTINCT] column|expression [alias],...}

FROM??? table

[WHERE?????? condition(s)];

Condition(s)要使用到比较运算符常用的比较运算符如下:

操作符

含义

=

等于

>?

大于

>=

大于等于

<?

小于

<=

小于等于

<>?

不等于 等效于!=

其它操作

And 逻辑运算? 逻辑与

Or? 逻辑运算? 逻辑或

Not 逻辑运算? 逻辑否

Between 起始值 and 结束值:使用 BETWEEN 运算来显示在一个区间内的值 包含(起始结束值)

In: 使用 IN运算显示列表中的值。 In(,,,)相当于一个集合,只要出现集合中匹配的就显示

Like

l?????? 使用 LIKE 运算选择类似的值

l?????? 选择条件可以包含字符或数字:

????????? % 代表零个或多个字符(任意个字符)

????????? _ 代表一个字符。

?

Escape

?? 回避特殊符号的:使用转义符。例如:将[%]转为[\%][_]转为[\_],然后再加上[ESCAPE ‘\’] 即可

Null:

使用 IS (NOT) NULL 判断空值。

?

//查询部门号为10的员工信息? 部门为整数类型

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno=10;

//查询职位号为MANAGER的员工信息? 岗位的类型为字符类型

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER';

//查询部门号为10并且员工的职位为MANAGER的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where job='MANAGER' and deptno=10;

注意:

l??????? 字符和日期要包含在单引号中

l??????? 字符大小写敏感,日期格式敏感

l??????? 默认的日期格式是 DD-MON-RR

?

//查询部门号大于10的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno>10;

//查询薪水大于等于3000的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=3000;

//查询薪水不等于3000的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal<>3000;

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal !=3000;

//查询薪水大于2000并且小于3000的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>2000 and sal<3000;

//查询薪水大于等于2000并且小于等于3000的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal between 1600 and 3000;

//等效于

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where sal>=1600 and sal<=3000;

//查询部门号位1020的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno in(10,20);

//注意:相当于如下操作:

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where deptno =10 or deptno=20;

//查询员工名称以S开头的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like 'S%';

//查询员工名称以S结尾的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%S';

//查询员工名称第三个字符为N的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '__N%';

//查询员工名称中含有N的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%N%';

//查询员工名称中倒数第二个字符为%的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%_'escape'\';

//查询员工名称总含有%的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where ename like '%\%%'escape'\';

//查询奖金为null的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is null;

//查询奖金非null的员工信息

SQL> select empno,ename,job,mgr,hiredate,sal,comm,deptno from emp where comm is not null;

优先级表格:

优先级

?

1

算术运算

2

连接符

3

比较符

4

Is not null like not in

5

Not between

6

not

7

and

8

Or

备注:可以采用括号改变优先级

?

?

?

  相关解决方案