sql限定查询语句(where子句)

本文详细介绍了SQL查询的基础语法,包括SELECT、FROM和WHERE子句的使用,以及各种查询条件如关系运算符、逻辑运算符、范围运算符、空判断、IN和NOT IN操作符以及模糊查询LIKE。通过实例展示了如何查询特定条件的数据,帮助读者掌握SQL查询的核心技能。
摘要由CSDN通过智能技术生成

简单查询是查询一张表的全部记录,限定查询是查询满足指定条件的记录。

   **语法结构:

【3控制要显示的数据列】SELECT[DISTINCT]*|列名称[别名],…FROM 表名称[别名];

【1确定数据来源】FROM 表名称[别名]

【2确定满足条件的数据行】[WHERE 过滤条件(s)];

 限定查询需要的运算符:

      关系运算符:>、<、>=、<=、<>(!=)

      逻辑运算符:AND、OR、NOT

      范围运算符:BETWEEN……AND

      谓词范围:IN、NOT IN

      空判断:IS NULL、IS NOT NULL

      模糊查询:LIKE

关系运算符

#查询工资大于1500的所有雇员信息

  select *

 from emp

where sal>1500;

#查询SMITH的完整信息

Select *from emp where ename=’SMITH’;

#查询工资等于5000的雇员信息

select *fron where sal=5000;

#查询职位不是销售人员的雇员的姓名、编号、职位

     筛选行                   筛选列

select empno,ename,job from emp where job!=’SALESMAN’; 

逻辑运算符

#查询出工资范围在1500-3000范围的雇员信息

select * from emp where sal>=1500 and sal<=3000;

#查询所有工资大于2000或者职位是办事员的雇员信息

select *from emp where sal>2000 or job=’ANALIST’

#查询所有工资小于200的雇员信息(用非表示)

select * from emp where  sal<200;

范围运算符

#查询工资在1500-2000之间的雇员(包含两个值)

select * from emp where sal>=1500 and sal<=3000;//匹配一个条件

Select* from emp where sal BETWEEN 1500 AND 2000;//匹配两个条件

#查询所有在1981年雇佣的雇员

select *from emp

where HIREDATE BETWEEN ’01-1月-81’ AND ’31-12月-81’;

空判断

  空在数据库中指不确定的内容。NULL

**数据列为空的时候不代表数据是0;

select *from emp where comm=null;  //错误未选定行

select *from emp where comm is null;

select *from emp where comm is  not null;

**空不能用关系运算符完成判断,只能使用IS NULL 或IS NOTNULL

IN操作符 IN 和NOT IN

#要求查出雇员编号是7369、7566、7788、9999的雇员信息

select *from emp where empno=7369 or empno=7566 OR empno=7788 OR empno=9999;

  ---如果使用IN

Select * from emp where empno IN(7369,7566,7788,9999);

#要求查出雇员编号不是7369、7566、7788、9999的雇员信息

Select * from emp where empno NOT IN(7369,7566,7788,9999);

Select * from emp where NOT empno IN(7369,7566,7788,9999);

select *from emp where empno in (7369,7566,7788,null);

select *from emp where empno not in (7369,7566,7788,null);

**使用NOT IN 进行范围判断时,如果范围之中有NULL,则不会执行,返回未选定行;

相反,NULL对IN的使用没有任何影响。

模糊查询LIKE

模糊查询使用LIKE时,可使用两个通配符

“_”下划线匹配任意一个字符

“%”百分号匹配任意的0位,1位,2位

#查询雇员姓名中第一个字母是A

select* from emp where ename LILE ‘A%’;

#查询雇员姓名中第二个字母是A

select * from emp where ename LIKE ‘_A%’;

#查询姓名任意位置包含A

select * from emp where ename LIKE ‘%A%’;

#查询工资中包含数字9的雇员信息

select * from emp where sal LIKE ‘%9%’;

**LIKR如果不设置查询关键字,就相当于查询全部

select * from emp where sal LIKE ‘%%’;

总结:WHERE子句一般都写在FROM子句之后,紧跟FROM子句后边执行;

WHERE 控制查询显示的数据行,SELECT控制显示列

[DISTINCT]去重,紧跟SELECT后

空判断不能用关系运算符,必须用IS NULL或者IS NOT NULL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值