数据查询 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.csdn.net/postedit/79950966中有详细的解释,并且有详细的执行结果的截图
WHERE子句 设置查询条件:
添加条件时可以用=
也可以用
LIKE
关键字和通配符
%(说多了没用,看下面的实例比较浅显易懂)
![](https://i-blog.csdnimg.cn/blog_migrate/5eb8e1fdc51be32d44dce625da5ba7f0.png)
若要添加多个查询条件用AND连接:
![](https://i-blog.csdnimg.cn/blog_migrate/380f1dcb427ce5b73213f037231b0c2d.png)
ORDER BY 子句 对查询结果进行排序:
默认状态下结果是升序排列的:
![](https://i-blog.csdnimg.cn/blog_migrate/f88d16890391a2a490f410d5e7d8c739.png)
如果需要降序排列用DESC 关键字:
![](https://i-blog.csdnimg.cn/blog_migrate/12b13484224fe87c7110d567d7aeda61.png)
使用统计函数COUNT()求和,MAX()求最大........ :
![](https://i-blog.csdnimg.cn/blog_migrate/771bcfa87dd1e14993837b054a91d430.png)
使用COUNT()和MAX():
![](https://i-blog.csdnimg.cn/blog_migrate/4b221aea6a3929664a73d8c87d984e36.png)
连接查询:
•
连接查询分为内连接
INNER JOIN
和外连接
•
外连接又分为左外连接
(
LEFT OUTER JOIN/ LEFT JOIN
),
右外连接
(RIGHTOUTER JOIN/RIGHT JOIN
)和全外连 接
(
FULL OUTER JOIN/FULL JOIN
)
•
内连接取交集
•
左连接左边的全取
右连接右边的全取
右连接右边的全取
•
如果加号(
+
)写在左表,右表就是全部显示,所以是右连接。
为了更清楚的认识内外连接的区别特举实例:(图中红色字体为查询结果)
![](https://i-blog.csdnimg.cn/blog_migrate/01a56e29d44f5eaa4a26d5d8b31f8f7e.png)
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
如果加号(
+
)写在左表,右表就是全部显示,所以是右连接。