数据查询,Oracle关于SELECT查询及其子句

数据查询     Author:ZZU_ZZX

SELECT的基本语法:

    •SELECT……FROM……   最基本的结构,最基本的两个子句
    •还有一些其他的子句。例如:
                INTO子句              创建新表并把查询结果插入新表
                WHERE子句           指定查询条件
                GROUP BY子句      指定查询结果的分组条件
                HAVING子句          指定组或统计函数的搜索条件(COUNT(),AVG()………
                ORDER BY子句       指定结果集的排序

SELECT INTO FROM语句:
                语句形式为: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关键字和通配符%(说多了没用,看下面的实例比较浅显易懂)



若要添加多个查询条件用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子句中包含有多个条件,则必须在所有条件中都包含(+ )操作符。
     •③(+)操作符只适用于列,而不能用在表达式上。
     •④(+)操作符不能与ORIN操作符一起使用。
     •⑤(+)操作符只能用于实现左外连接和右外连接,而不能用于实现完全外连接

下面两种连接方法执行结果相同(方法①使用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
    如果加号(+)写在左表,右表就是全部显示,所以是右连接

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页