数据查询,Oracle关于SELECT查询及其子句
数据查询 Author:ZZU_ZZX
SELECT的基本语法:
•SELECT……FROM…… 最基本的结构,最基本的两个子句
•还有一些其他的子句。例如:
INTO子句 创建新表并把查询结果插入新表
SELECT INTO FROM语句:
WHERE子句 指定查询条件
GROUP BY子句 指定查询结果的分组条件
HAVING子句 指定组或统计函数的搜索条件(COUNT(),AVG()………)
ORDER BY子句 指定结果集的排序
语句形式为:SELECT value1, value2 INTO Table2 FROMTable1
要求目标表Table2不存在,因为在插入时会自动创建表Table2,并将Table1中指定字段数据复制到Table2中。
给查询返回的列起别名:
有三种方法:
①在需要返回的列名后面直接加上别名
SELECT TS# 编号,NAME表空间名 FROM V$TABLESPACE;
②在需要返回的列名后面加AS 别名。执行效果与①中相同。
SELECT TS# AS 编号,NAMEAS 表空间名 FROM V$TABLESPACE;
③把我们想用的别名用双引号引起来,此方法与上两种方法的区别我在另一篇文章 https://mp.****.net/postedit/79950966中有详细的解释,并且有详细的执行结果的截图
WHERE子句 设置查询条件:
添加条件时可以用= 也可以用LIKE关键字和通配符%(说多了没用,看下面的实例比较浅显易懂)
若要添加多个查询条件用AND连接:
ORDER BY 子句 对查询结果进行排序:
默认状态下结果是升序排列的:
如果需要降序排列用DESC 关键字:
使用统计函数COUNT()求和,MAX()求最大........ :
使用COUNT()和MAX():
连接查询:
•连接查询分为内连接INNER JOIN和外连接
•外连接又分为左外连接(LEFT OUTER JOIN/ LEFT JOIN),右外连接(RIGHTOUTER JOIN/RIGHT JOIN)和全外连 接(FULL OUTER JOIN/FULL JOIN)
•内连接取交集
•左连接左边的全取
右连接右边的全取
右连接右边的全取
•如果加号(+)写在左表,右表就是全部显示,所以是右连接。
为了更清楚的认识内外连接的区别特举实例:(图中红色字体为查询结果)
SELECT中(+)的使用:(只用在外连接中)
•①(+)操作符只能出现在WHERE子句中,并且不能与OUTER JOIN语法同时使用。•②当使用(+)操作符执行外连接时,如果在WHERE子句中包含有多个条件,则必须在所有条件中都包含(+ )操作符。•③(+)操作符只适用于列,而不能用在表达式上。•④(+)操作符不能与OR和IN操作符一起使用。•⑤(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接下面两种连接方法执行结果相同(方法①使用RIGHT JOIN,方法②使用操作符(+)):
①SELECT STU.ID, EXAM.ID, STU.NAME, EXAM.GRADE FROM STU RIGHT JOIN EXAM ON STU.ID =EXAM.ID
②SELECT STU.ID, EXAM.ID, STU.NAME, EXAM.GRADE FROM STU,EXAM WHERE STU.ID(+) =EXAM.ID
如果加号(+)写在左表,右表就是全部显示,所以是右连接。