大数据学习从入门到精通(day2 查询语句)

本文详细解读了SQL查询语句,包括基本语法、条件查询、模糊查询,以及like操作的深入解析,还介绍了all, any和null操作。适合SQL初学者和进阶者参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL语句的语法

 1.查询语句:

关键字:select

select 列名,列名, from 表名;

例:select * from emp;
单行注释:--
多行注释:以/* 开始,以*/结尾

别名语法: 

关键字:as

对象名 as 别名
对象名  别名
如:
select empno as 员工编号,ename 姓名,job 工作,mgr 上级编号,
hiredate 入职日期,sal 工资,comm 佣金,deptno 部门编号 from emp;

注意:给表、视图取别名时不能加as
select e.* from emp e; --select * from emp; 
select e.empno,e.ename,e.job,e.sal from emp e;
select emp.empno,emp.ename,emp.job,emp.sal from emp;

2.条件查询

关键字 where

条件表达式:>,<,>=,<=,!=,=

--查询工资大于1500的员工信息
select * from emp where sal>1500;
--查询名字叫SMITH的员工的信息
select * from emp where ename='SMITH';

条件连接符:

and 表示并且,and连接的两个条件必须都成立总条件才能成立,只有一个条件成立时总条件不能成立。

or 表示或者,or连接的两个条件只要有一个条件成立时总条件就能成立,只有都不成立时总条件才不能成立

between 表示在两者之间,常用语数字类型和日期

--查询10号部门,工资大于1000的员工信息
select * from emp where deptno=10 and sal>1000;

--查询10号部门,或者工资小于2000的员工信息
select * from emp where deptno=10 or sal<2000;

--查询工资在1000到3000之间的员工信息
select * from emp where sal>=1000 and sal<=3000;
select * from emp where sal between 1000 and 3000;

--查询工资大于1000并且小于3000的员工信息
select * from emp where sal>1000 and sal<3000;
select * from emp where sal between 1000 and 3000 and sal!=1000 and sal!=3000; 

点位符:_ 占用一个字符;% 占用0个或多个字符

like:模糊匹配;not like:与like相反


3.模糊查询

--查询员工姓名以S结尾的员工信息
select * from emp where ename like '%S';

--查询emp表中员工姓名的第二个字符是L的员工信息
select * from emp where ename like '_L%';

--查询emp表中员工姓名第三个字符是A的员工信息
select * from emp where ename like '__A%';

转义字符:\  转义字符需要手动定义 escape '\'

转义字符会将紧跟在后面的一个字符当做一个普通的字符去处理

select * from emp where ename like '%\_%' escape '\';
/*此时“\”后面的“_”没有站位符的意义,处理时只会被当做普通字符对待,
查询时会查询出所有包含“_”的数据*/
select * from emp where ename like '___\_%' escape '\';
/*同理,此时“\”后面的“_”同样没有站位符的意义,但是前面的两个“_”仍然具有站位符的意义
处理过程中会查询出第三位是“_”的数据*/
select * from emp where ename like '%a%%'  escape 'a';
/*只要经过“escape ' '”处理过后的任意字符均会被当做转义符对待,在这条查询语句中
“a”不会被查询,相同只有紧跟在“a”后面的“%”会具有普通字符的意义被查询*/

all、any:后面都跟一个集合或者子查询

>all:表示大于集合中最大的元素  >all(1,2,3,4,5) 等价于 >5

<all:表示小于集合中最小的元素  <all(1,2,3,4,5) 等价于 <1

>any:表示大于集合中最小的元素  >any(1,2,3,4,5) 等价于 >1

<any:表示小于集合中最大的元素  <any(1,2,3,4,5) 等价于 <5

--查询员工信息,要求员工的工资比以下的值都低 1600,2000,3000
select * from emp where sal <all(1600,2000,3000);

--查询比下任意一个(1600,2000,3000)工资高的员工信息
select * from emp where sal>any(1000,2000,3000);

--查询工资比所有人(1600,2000,3000)都高的员工信息
select * from emp where sal > all(1600,2000,3000);

简记:任意用any,所有用all

is null:为空

is not null:不为空

注意:空格不是null

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值