------简单数据查询------
1.简单查询是指对关系的简单投影操作,即对二维表的列查询,或只包含简单查询条件的查询
2.查询输出基本表中指定列
select sno,sname,sdept from stu;
select * from stu;
all:指明查询结果中可以显示值相同的列,all是系统默认的
distinct:指明查询结果中如果有值相同的列,则只显示其中的一列;对distinct来说,null值被认为是相同的值
3.对数据列进行运算并输出
select sno,sname,sage+1,sgender from stu;
对数据列进行运算的select子句并不会改变原基本表或试图中的数据
可对列或者运算后的列给与别名:
select sno 学号,sname 姓名,sage+1 年龄,sgender 性别 from stu;
4.单条件查询
单条件查询是指where子句后的条件只有一个
select sno,sname,sage,sgender,sdept from stu where sno = '10001';
5.根据查询结果创建和复制表
将select获取到的数据记录作为源数据,重新创建一个结构与stu表相同的stu1表,并将源数据写入到stu1表中:
create table stu1
as
select sno,sname,sage,sgender,sdept from stu where sage = 22;
select * from stu1;
6.返回表中的前N行记录
select * from stu where rownum < 4;
select * from stu where rownum <= 5;
select * from stu where rownum != 6;
使用游标rownum来实现获取表的前N行记录;rownum是对查询结果集加的一个伪列,其需要先查到结果集;简单地说,rownum是符合条件的结果集的序号,从1开始
rownum的使用只能用<,<=和!=等比较运算符
Oracle中经常使用order by子句与rownum组合来实现获取查询的前N行记录,即先用order by子句排序,再使用rownum取出排在前面的N行记录
7.消除重复行
使用distinct关键字:
select distinct sage from stu;
其中,distinct关键字并不是消除数据表中的重复记录,而是消除查询结果中的重读记录,并不会对数据表中的数据造成影响
8.null值的判定
一般来说,下列情况可导致数据表的一个字段值为null:
该字段值未知
该字段值不存在
该字段对表的记录不可用
空值并不包括零、一个或多个空格组成的字符串,空值代表未知的空值,所以并不是所有的空值都相等
select sno sname,sgender,sage from stu where sdept is null;
9.查询字段为某个范围内的记录
范围运算符:between...and
select sno,sname,sgender,sdept from stu where sage between 22 and 25;
其中,between...and运算符在比较值的范围时,其取值范围含两个值本身(如上例,包含22和25)
10.返回字段值为列表中某个值的记录
列表运算符in,允许where子句后的字段从值列表中任取一个都为真
select * from stu where sdept in ('12信息管理','12外语');
null值是不参与in和not in以及其中的值比较的
11.条件组合查询
select * from stu where (sage=22 and sdept='12信息管理');
select * from stu where (sage=22 or sdept='12信息管理');
and运算符将两个条件表达式组合在一起使查询范围更小更精确,or运算符使条件范围更广泛
12.复合条件查询
select * from stu where (sdept='12信息管理' and sgender='男') or (sdept='12外语' and sgender='女');
在一个条件语句中含有两个以上的逻辑运算符时,就需要考虑其运算的优先级:先not,再and,最后or
13.模糊查询
指在给出的限制条件不完整的情况下进行的查询
select * from stu where sname like '李%';
模糊查询的运算符是like,一般只用于字符串数据类型,用于比较字符串表达式和SQL表达式中的模式
%为通配符,在Oracle PL/SQL中常用的通配符四种:
_:与任意单字符匹配
%:与包含一个或多个字符的字符串匹配
[]:与特定范围或特定集中的任意单字符匹配
like运算符后的字段值可以是完整的值,此时不需要使用通配符,like的功能与比较运算符=相同
14.使用escape和转义字符
select * from class where ms like '%0!%' escape '!';
'%0!%'中的第一个%为通配符,后一个%是普通的字符百分号,为了区别,在前面加上了转义字符!,用escape子句定义转义符;
转义符可以自定义
本文深入解析SQL查询的多种技巧,包括简单数据查询、条件筛选、数据运算、表创建与复制、消除重复行、范围查询、条件组合及模糊查询等,帮助读者掌握高效的数据检索方法。
1246

被折叠的 条评论
为什么被折叠?



