sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果


一、视图


sql server 语句查询视图 sql在视图中查询_SQL_02


视图就是存储在数据库中并具有名字的 SQL 语句,或者说是以预定义的 SQL 查询的形式存在的数据表的成分。视图可以包含表中的所有列,或者仅包含选定的列。视图可以创建自一个或者多个表,这取决于创建该视图的 SQL 语句的写法。

数据库视图由 CREATE VIEW 语句创建。视图可以创建自单个表、多个表或者其他视图。要创建视图的话,用户必须有适当的系统权限。具体需要何种权限随数据库系统实现的不同而不同。CREATE VIEW 语句的基本语法如下所示:


CREATE


这里在mayan:SQL初体验建立的数据库基础之上进行操作
ex:


sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果_03


二、子查询

子查询(Sub Query)或者说内查询(Inner Query),也可以称作嵌套查询(Nested Query),是一种嵌套在其他 SQL 查询的 WHERE 子句中的查询。
子查询用于为主查询返回其所需数据,或者对检索数据进行进一步的限制。
子查询可以在 SELECT、INSERT、UPDATE 和 DELETE 语句中,同 =、<、>、>=、<=、IN、BETWEEN 等运算符一起使用。

使用子查询必须遵循以下几个规则:

  • 子查询必须括在圆括号中。
  • 子查询的 SELECT 子句中只能有一个列,除非主查询中有多个列,用于与子查询选中的列相比较。
  • 子查询不能使用 ORDER BY,不过主查询可以。在子查询中,GROUP BY 可以起到同 ORDER BY 相同的作用。
  • 返回多行数据的子查询只能同多值操作符一起使用,比如 IN 操作符。
  • SELECT 列表中不能包含任何对 BLOB、ARRAY、CLOB 或者 NCLOB 类型值的引用。
  • 子查询不能直接用在集合函数中。
  • BETWEEN 操作符不能同子查询一起使用,但是 BETWEEN 操作符可以用在子查询中。


sql server 语句查询视图 sql在视图中查询_子查询_04


sql server 语句查询视图 sql在视图中查询_子查询_05


ex:找出每个课程号里成绩最低的学生(in子查询)
错解1:


sql server 语句查询视图 sql在视图中查询_sql视图 权限_06


错解2:


sql server 语句查询视图 sql在视图中查询_SQL_07


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_08


正解:


sql server 语句查询视图 sql在视图中查询_SQL_09


3.拓展


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_10


ex:
1.哪些学生成绩比课程0002全部成绩里的任意一个高:(any)


sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果_11


2..哪些学生成绩比课程0002全部成绩里的都高: (all)


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_12


4.注意事项及总结


sql server 语句查询视图 sql在视图中查询_SQL_13


sql server 语句查询视图 sql在视图中查询_SQL_14


三、标量子查询

1.定义
当使用另一个select语句来产生结果中的一列的值的时候,这个查询必须只能返回一行一列的值,这种类型的子查询成为标量子查询。
标量子查询在结果集中的每一行结果产生时都要执行一遍,在某些情况下可以进行优化以减少标量子查询才重复执行,标量子查询是很耗性能的注意使用。2.应用场景


sql server 语句查询视图 sql在视图中查询_SQL_15


复杂查询


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_16


3.ex
3.1大于平均成绩学生的学号和成绩


sql server 语句查询视图 sql在视图中查询_SQL_17


3.2统计学生成绩与平均成绩(使用round近似)


sql server 语句查询视图 sql在视图中查询_SQL_18


四、关联子查询

这篇文章写的很好AD王子:简单易懂教你学会SQL关联子查询,子查询里的where是在不断地取数查询。

ex:查找出每个课程中大于对应课程平均成绩的学生


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_19


五、总结


sql server 语句查询视图 sql在视图中查询_SQL_20


六、各种函数


sql server 语句查询视图 sql在视图中查询_SQL_21


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_22


sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果_23


sql server 语句查询视图 sql在视图中查询_SQL_24


附SQLzoo练习章节SELECT within SELECT Tutorial:


sql server 语句查询视图 sql在视图中查询_sql server 语句查询视图_25


sql server 语句查询视图 sql在视图中查询_子查询_26


sql server 语句查询视图 sql在视图中查询_sql视图 权限_27


sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果_28


sql server 语句查询视图 sql在视图中查询_子查询_29


sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果_30


sql server 语句查询视图 sql在视图中查询_sql视图 权限_31


sql server 语句查询视图 sql在视图中查询_子查询_32


sql server 语句查询视图 sql在视图中查询_SQL_33


sql server 语句查询视图 sql在视图中查询_写一个sql实现以下查询结果_34