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结构化查询语言的主要内容,如果未能解决你的问题,请参考以下文章

oracle之基本SQL语句

Oracle数据库学习笔记1—SQL

Oracle之PL/SQL编程

Oracle学习笔记之PL/SQL编程

数据库技能实战进阶之常用结构化sql语句(上)

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29