Oracle数据库(2)

联合查询
交叉连接(笛卡尔积连接)、内连接、自连接、外连接(全连接、左外连接、右外连接)、自然连接
(1)交叉连接(笛卡尔积连接)
将会返回被连接的两个表的笛卡尔积,返回结果的行数等于两个表行数的乘积.
语法:
select 列名,列名,...
from a表  cross join b表;
(2)内连接
内连接:是把两个表中符合条件的数据连接为一条数据,如果哪个表中存在不符合连接条件的数据,那么这些数据就会被过滤掉(不显示)
语法:
select 列名,...,列名
from a表  inner join b表  on 连接条件
inner join:中的inner可以省略不写

在查询字段的位置出现*,系统回去数据字典里面找到当前表
提取出来当前表的所有字段
无论多么复杂的语句都是先从from开始执行的
直接写列名的效率要比写*(星号)的效率高
*号的执行效率比写列名时的执行效率低,
(*在执行sql语句时,oracle会去查数据库中的数据字典,
查询这个张表都有哪些列,然后查出这张表的所有列的数据)

in:后面跟一个集合或者子查询
oracle中表示一个简单的集合 ,(元素,元素,元素,... 元素) 例如 (1,2,3,4,5)  ('a','b','c','d')
--查询emp表中,工资是800,1600,或者3000的员工信息
select * from  emp  where sal in(800,1600,3000);

not in:和in是相反的
select * from  emp  where sal not in(800,1600,3000);
like:它只用在字符串列,表示对字符串进行模糊匹配

空值处理
nvl(a,b) 
a:要进行空值处理的字段
b:要给它赋的值

select col_name,col_name,...,col_name 
from 表名
where 条件
group by 分组列
having 条件
order by 排序列;

先from 再 where 再group by 再having 再 select 再order by;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值