SQL 基础之where过滤和比较运算符(五)

使用WHERE子句,将不满足条件的行过滤掉:

WHERE过滤的注意事项:

WHERE子句紧随FROM子句。

WHERE子句后跟条件表达式

列名、表达式、常量

比较运算符:=, <=, BETWEEN, IN, LIKE, 和 NULL

–逻辑运算符: AND, OR和 NOT

替代变量

DEFINE 和 VERIFY 命令

文字值

WHERE子句后不能跟列别名

语法如下:

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

FROM table

[WHERE condition(s)];

1、比如现在查找一下部门ID为90的部门里面有哪些员工

select last_name,department_id from employees  where department_id = 90;

2、查找部门ID 为100的人员信息,如:姓名、员工编号等

select first_name,employee_id,job_id,department_id  from employees where department_id = 100;

3、当条件为字符和日期要包含在单引号中。

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

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

3.1 查找last_name为Whalen的员工departmen id等信息

select last_name,job_id,department_id from employees where last_name = ‘Whalen‘;

3.2 查找入职日期为07年12月19日的员工first_name 和部门ID

select first_name,department_id,hire_date from employees where hire_date = ‘19-DEC-07‘;

4、比较运算符

     操作符                           含义 
        =                  等于
        >                  大于
        >=                 大于等于
        <                 小于
        <=                小于等于
         <>                不等于

BETWEEN ...AND...

             在 ....和....之间
      IN(set)              在这些之中

LIKE


选择类似值

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

% 代表一个或多个字符

_  代表一个字符

    IS NULL             为空的时候

4.1 查找一下工资小于2800 的员工的名字和部门id号

select last_name,department_id,salary from employees where salary < 2800 order by salary;

4.2 查找一下工资大于等于3000 的员工 的名字和job_id,并采用升序排列

select last_name,job_id,salary from employees where salary>=3000 orader by salary;

4.3 查找一下工资大于等于10000的员工姓名,并按照 xxx ‘s salary is 10000的格式输入

select first_name||q‘[‘s salary is ]‘ || salary as "salary is 10000 of emp"

from employees

where salary=10000;

4.4  查找一下工资在8000-10000之间的员工姓名和员工id

select employee_id,first_name,salary from employees where  salary between 8000 and 10000 order by salary;

4.5 查找一下工资为7000、3100、8100、9000、10000的员工名字

select first_name,salary from employees where salary in(7000,3100,8000,9000,10000);

4.6 查找员工名称为S开头的job_id

select first_name,job_id from employees where first_name like ‘S%‘;

4.7 查找员工名称中带有s的 job_id

select first_name,job_id from employees where first_name like ‘%s‘;

4.8 查找名字第二个字母是o的员工信息

select first_name,job_id from employees where first_name like ‘_o%‘;

4.9 查找名字第三个字母为e和a的员工名字

select employee_id,last_name,salary,department_id from employees where manager_id= &mgr_num order by &order_col

4.9.1 查找manager_id 为空的名字

select  first_name,manager_id  from employees where manager_id is null;

4.9.2 查找到04年入职的员工姓名

select last_name,hire_date from employees where hire_date like ‘%04‘;

5、逻辑运算符

操作符 含义
AND 逻辑并,两个条件都为“真”则返回TRUE
OR 逻辑或,其中一个条件为“真”则返回TRUE
NOT 逻辑否,如果条件为“假”则返回TRUE

5.1、查找工资大于10000并且 job_id 含有MAN的员工信息

select first_name,employee_id,salary from employees where salary>=1000 and  job_id like ‘%MAN%‘;

5.2、查找工资大于等于10000 或者job_id 含有MAN的员工 的名字和employee_id

select first_name,employee_id,job_id,salary from employees where salary>=10000  or  job_id  like ‘%MAN%‘;

5.3 查找job_id  不在‘HR_EMP‘,‘ST_MAN‘,‘ST_CLERK‘ 这工作id里面的员工名字和job_id

select last_name,job_id from employees  where job_id not in(‘HR_EMP‘,‘ST_MAN‘,‘ST_CLERK‘);

5.4  列出工资不在 5000-12000 范围的员工的姓名和工资

SQL >select last_name,salary from employees where salary not between 5000 and 12000 order by salary;

LAST_NAME      SALARY

------------------------- ----------

Olson2100

Philtanker2200

Markle2200

Landry2400

Gee       2400

Vargas2500

Patel2500

Colmenares2500

Marlow2500

Sullivan       2500

Perkins        2500

OConnell       2600

Grant2600

Matos2600

Himuro2600

Mikkilineni2700

Seo        2700

Atkinson       2800

Geoni2800

Tobias2800

Jones2800

Rogers2900

Baida2900

Gates2900

Feeney3000

Cabrio3000

Walsh3100

Fleaur3100

Khoo3100

Davies3100

Stiles3200

Nayer3200

Taylor3200

McCain3200

Bissot3300

Mallin3300

Dellinger        3400

Rajs        3500

Dilly        3600

Ladwig3600

Chung3800

Everett         3900

Bell        4000

Bull        4100

Sarchand        4200

Lorentz         4200

Whalen4400

Pataballa        4800

Austin4800

Higgins                 12008

Greenberg       12008

Hartstein               13000

Partners               13500

Russell                14000

De Haan                17000

Kochhar                17000

King               24000

57 rows selected.

6、优先级(可以使用括号改变优先级顺序)

优先级
1 算数运算符
2 连接符
3 比较符
4 IS [NOT] NULL, LIKE, [NOT] IN 
5 [NOT] BETWEEN
6 不等于
7 NOT
8 AND
9 OR

1、查找部门为SA_REP或者AD_PRES部门里面工资大于15000的员工名字、job_id、工资等信息

SELECT last_name, job_id, salary FROM employees WHERE job_id = ‘SA_REP‘ OR job_id = ‘AD_PRES‘ AND salary > 15000;

2、查找job_id 为SA_REP或者AD_PRES部门里面工资大于15000的员工姓名、job_id

SELECT last_name, job_id, salary FROM employees WHERE (job_id = ‘SA_REP‘ OR job_id = ‘AD_PRES‘) AND salary > 15000;

3、列出工资不在 5000-12000,部门在 20 或 50 的员工的姓名和工资

select last_name,department_id,salary from employees where salary not between 5000 and 12000 and department_id=20 or department_id=50;

select last_name,department_id,salary from employees where salary not between 5000 and 12000 and department_id in(20,50);

时间: 2024-10-29 19:07:27

SQL 基础之where过滤和比较运算符(五)的相关文章

(转载)SQL基础--&gt; 约束(CONSTRAINT)

感谢Leshami的分享,原文地址:http://blog.csdn.net/leshami/article/details/5711367 --============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完整性 实体完整性:表中记录不重复(任何两条记录不全等)并且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合 参照完整性:不能引

Oracle实践--PL/SQL基础之代码块

PL/SQL基础入门之代码块 PL/SQL:过程语言(Procedure  Language)和结构化语言(Structured Query Language)结合而成的编程语言,是对SQL的扩展,支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制语句,可创建存储过程,程序包和触发器等,给sql语句的执行添加程序逻辑,与Oracle服务器和Oracle工具紧密集成,具有可移植性,灵活性和安全性. 优点: 1.       支持SQL,可以使用:DML,DCL,游标控制和SQL运算符 2

SQL基础--&amp;gt;层次化查询(START BY ... CONNECT BY PRIOR)

--====================================================== --SQL基础-->层次化查询(START BY ... CONNECT BY PRIOR) --====================================================== 层次化查询,即树型结构查询,是SQL中经经常使用到的功能之中的一个,通常由根节点,父节点,子节点,叶节点组成,其语法例如以下: SELECT [LEVEL] ,column,ex

SQL基础语法(笔记)

SQL基础语法:1.SELECT :SELECT 列名称 FROM 表名称 以及 SELECT * FROM 表名称2.DISTINCT:SELECT DISTINCT 列名称 FROM 表名称3.WHERE:SELECT 列名称 FROM 表名称 WHERE 列 运算符 值4.ORDER BY 语句用于根据指定的列对结果集进行排序.默认升序:ASC,降序:DESC5.INSERT:INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....),

[SQL] SQL 基础知识梳理(三)- 聚合和排序

SQL 基础知识梳理(三)- 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 目录 一.对表进行聚合查询 1.聚合函数 (1)5 个常用函数: ①COUNT:计算表中的记录(行)数. ②SUM:计算表中数值列的数据合计值. ③AVG:计算表中数值列的数据平均值. ④MAX:求出表中任意列中数据的最大值. ⑤MIN:求出表中任意列中数据的最小值. (2)聚合:将多行汇总成一行. 图1-1 Shohin 表 2.计算

SQL基础语法和函数

SQL常用查询语句和函数 (2012-05-09 09:44:55) 转载▼ 标签: sql查询 函数 sql常用语句 it 分类: SQL SQL SELECT 语法 SELECT 列名称 FROM 表名称 SELECT LastName,FirstName FROM Persons --------------------------------------------------------------------------------- SQL SELECT DISTINCT 语句 在

SQL基础知识回顾整理

20150929~20151016所学SQL基础知识回顾整理,后续完善补充 服务器名称:是指你要连接的安装的数据库服务器所在的那台电脑的ip地址,如果是本机的话,就是  . mdf 结尾:数据库数据文件,一个数据库有且只有一个 ldf:数据库日志文件,一个数据库有且至少有一个 数据库中存放数据的结构,是通过表的形式来存储的,一个数据库中有很多个表 基础知识(创建.使用数据库及创建表.添加数据.删除表) 约束 查询 子查询 表连接 视图 各类函数 存储过程 触发器 分页语句 事务 20150929

SQL基础--&amp;gt; 约束(CONSTRAINT)

--============================= --SQL基础--> 约束(CONSTRAINT) --============================= 一.几类数据完整性 实体完整性:表中记录不反复(不论什么两条记录不全等)而且每条记录都有一个非空主键 域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合 參照完整性:不能引用不存在的值 自己定义完整性:依据特定业务领域定义的需求完整性 保证数据完整性的几种经常用法 约束(最经常使用) 过程 函数 触发器 实体

数据库复习2——SQL基础

数据库复习 CH4 SQL SQL(Structured Query Language,结构化查询语言)是通用的关系数据库系统操作语言,下面从几个方面来复习SQL基础 4.1 DDL SQL语句可根据其操作性质分成三类: DDL(Data Definition Language) DCL(Data Constraint Language) DML(Data Manipulation Language) DCL完成完整性和安全性的约束,也可以看作从属于DDL,下面介绍DCL除外的DDL部分SQL语