测试数据:create table test1 as select * from dba_objects where rownum<=10000;--10000条记录create table test2 as select * from dba_objects;--13438条记录 分析执行计划:SQL1:SQL> select * 2 from test 3 where object_id = 4 (select max(object_id) 5 from test1 6 where tes
一.子查询 子查询:把一条查询语句,当做值来使用子句的查询结果必须是一列子句可以返回多行数据,但必须是一列 子句返回的值为一个值的时候: 例如: 我只知道c026这个编号,我要查询比这个车价格低的全部车辆信息select *from car where price<(select price from car where code='c026') --先执行括号内返回一个值,再执行外边.此时括号内返回的是一个值的时候 若子句返回的是一列值而不是一个值的时候: 例如: 查询油耗与c016相等的
1.模糊查询 like % 表示多个任意字符 _ 表示任意一个字符 例如:查询黄姓同学 select * from student where name '黄%' select * from student where name '黄_' 2. 范围查询 in 表示在一个非连续的范围内 select id from student where id in (1,2,3) 优先级由高到低的顺序为:小括号,not, 比较运算符 ,逻辑运算符 and 比 or 先运算, 同时出现并希望先算 or ,需
1.in关键字.in的效率高于or. in (value1,value2,...) 或者not in (value1,value2,...) 2.between ... and ... between value1 and value2或者not between value1 and value2 3.like,“%”匹配任意多个字符,“_”匹配一个字符. 4.查询空值.空值表示数据未知.不适用. 1>is null: 2>is not null: 5.order by. 支持单列排序,也支持
1.order by 默认按升序排列(asc/desc),多字段排序 order by 字段 排序方式,字段2 排序方式,..: 在分组排序中,排序是对分组后的结果进行排序,而不是在组中进行排序. select * from stu order by score desc,name asc;//优先score ,然后name排序 2.limit 在语句表示,截取记录的条数.一般和order by 配合使用(大数据下Limit使用) limit[offset][N] offset: 偏移量 N
--exists 结合 if else 以及 where 条件来使用判断是否有数据满足条件 select * from Class where Name like '%[1-3]班' if (not exists(select * from Class where len(Name)>=5)) select '满足条件' else select '不满足条件' --in not in 用来做范围判断 select * from Student where ClassId in(select Id
首先初始化表和数据 create table t_student( Id INT, Name varchar(), Score int, ClassId INT ); insert into t_student values (,,); insert into t_student values (,,); insert into t_student values (,,); insert into t_student values (,,); insert into t_stud