oracle数据库之SQL结构化查询语言
Posted 皇后娘娘
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle数据库之SQL结构化查询语言相关的知识,希望对你有一定的参考价值。
1.select
select * from test //查询test里的所有列的信息 select test1,2,3 from test //查询test表中的test1,2,3列中的数据
1.1 分组和排序
select * from test group by test1 //查看test表中的所有信息以test1列中的信息进行分组 select * from test order by(test1) desc/asc //查看test表中的所有信息以test1列中的信息进行排序 desc降序排序,asc升序排序
1.2 聚合函数
select max(test1) xx from test //查看test表中test1列中的最大值 xx为第二别名可有可无 select min(test1) from test //最小值 select avg(test1) from test //平均值 select count(test1) from test //统计test1列中的数据个数 select nvl(test1,1) from test //查询时要是test1列中的数据为空时,默认为1显示出来(1可以更改为任何符合约束条件的值)
1.3 连接查询
select * from test1,test2 where test1.1=test2.1 //等值连接 select test1.*,test2.* from test1 inner join test2 on test1.1=test2.1 //内连接 select test1.*,test2.* from test1 right outer join test2 on test1.1=test2.1 //外连接1.1 右外连接,显示时以右面test2表数据为主,右面的表不加限制 通常省略outer select test1.*,test2.* from test1 left outer join test2 on test1.1=test2.1 //1.2 左外连接 select test1.*,test2.* from test1 full outer join test2 on test1.1=test2.1 //1.3 全外连接 ,显示全部的列的数据,都不限制
1.3.1
非等值连接
select test1 from test2,test3 where test1 between test2.1 and test3.1 //查询test1列的值位test2.1和test3.1 中的数据
1.3.2自然连接
1)列名要相同
2)数据类型也要相同,如果不同会出错
3)不能用表名.列名去限定,可以直接写列名
select test1.*,test2.* from test1 natural join test2 //自然连接 原理:两个表中找到的名字相同。数据类型也相同的列进行连接 select test1.*,test2.* from test1 natural join test2 using(test3) //如果有多个列符合条件,用using 选定要连接的列名
1.3.3 联合查询
union / union all union自带distance(去掉重复数据)
多个查询结果之间用union / union all 连接可以连为一个表进行输出查看
以上是关于oracle数据库之SQL结构化查询语言的主要内容,如果未能解决你的问题,请参考以下文章