Oracle数据库SQL查询数据.docx
《Oracle数据库SQL查询数据.docx》由会员分享,可在线阅读,更多相关《Oracle数据库SQL查询数据.docx(11页珍藏版)》请在冰豆网上搜索。
Oracle数据库SQL查询数据
1.查询全部信息
select*fromstudent
2.从数据表中查询列
selectnamefromstudent
上面是从表student中查询一列名字叫做name
3.指定过滤条件where
selectnamefromstudentwhereage>30
4.
如上面所示,上面有两个表,一个是course,另一个是student,现在我们定义course表用e代替,而student表用s代替(在from后面定义了),那么我们就可以使用它,在他前面e.coursename就是一个它的列,而s.name是student表的列,然后再where后面也可以进行使用。
4.获取唯一记录
selectdistincte.coursename,s.namefromcoursee,students
wheree.studentid=s.id
distinct关键字。
5排序:
排序有两种,默认是升序(asc),还有降序(desc)
6.过滤分组---having
Having是特地用来对groupby子句所产生分组,因为where对groupby子句产生的分组无效。
用having前如上所示
用having后如上所示。
7.子查询
如上所示,在一个查询中加一个查询,括号里面的就是子查询。
8.
8.1求并集----union运算
运算结果是合并两个结果集中的所有记录,并将其中重复记录删除,保证结果集中的记录唯一。
8.2unionall---将结果进行合并,但不去除重复的部分。
8.3求交集----intersect运算
8.4求差集----minus运算
该运算将返回第一个集合中存在,而第二个集合中不存在的记录。
9链接
9.1自然链接----naturaljoin
所谓自然链接,就是后者每一个都要对应前者的各个一遍。
如:
如上所示,后者为student,而前者是course,那么后者的每一个(如第一个为白小兵)都要和前者的任何一个对应一遍。
变成了很多,共66=11*6
9.2内连接---innerjoin
内连接可以自行指定连接列和连接条件。
这里定义只显示coursename、courseteacher、name、sex
并且连接的条件是c.studentid=s.id.
Orcle的连接默认为内连接。
9.3外连接
内连接指定的俩个数据源,处于平等的地位,而外连接不同,外连接总有一个数据源作为基础,将另一个数据源与之进行条件匹配,即使条件不匹配,基础数据源中的数据总是出现在结果集中。
9.3.1左连接,以前面这个为基础源
左连接也可以这样写:
selectc.coursename,c.studentid,s.name,s.sex,s.id
fromcoursec,students
wherec.studentid=s.id(+)
这样相当于把student作为了附属表
9.3.2右连接,以后面这个为基础源
右连接也可以这样写,效果和上面是一样的。
selectc.coursename,c.studentid,s.name,s.sex,s.id
fromcoursec,students
wherec.studentid(+)=s.id
9.4完全连接---fulljoin
完全连接实际上是左连接和右连接的组合,首先进行左连接,再进行右连接,最后再删除其中的重复记录。