SQL实用简明教程第3章创建数据库。重点内容:创建数据库和表、列约束、创建索引、修改数据库和表。
·一、子查询定义:将一个函数调用作为另一个函数的输入参数一个子查询,即嵌套子查询。子查询具有两种不同处理方式的类型:子查询的两种不同处理方式的查询运行是不需要和外围查询发生联系。
子查询有多种用途:随着子查询返回的数据类型的不同,它的用途也随着发生变化。连接可以相互替换的情况下,由于性能相近,使用何种方式就依赖个人的风。
·二、子查询类型:
→1、无关子查询。SELECT dno Department. name Manager。
→2、子查询的规则:定的一些限制。
→3、子查询类型:SELECT name manager.id mgrid。子查询还可以用在外围查询的NOTIN子句和IN的使用基本一样。如果外围查询中用来比较的记录值被检测出与子查询产生的结果集中的所有值都不匹配,那么NOTIN子句就返回"真",然后将该记录指定列的值输入到最终。
→4、子查询的规则:
→5、返回多个值的子查询:子查询还可以用在外围查询的NOTIN子句和IN的使用基本一样。如果外围查询中用来比较的记录值被检测出与子查询产生的结果集中的所有值都不匹配,那么NOTIN子句就返回"真",然后将该记录指定列的值输入到最终。
→6、IN与相关子查询的联合使用:关键字EXISTS一般直接跟在外围查询的WHERE关键字后面。它的前面没。
→7、空集的查询:NOT EXISTS则和整个子查询结果集的比较就为真。关键字ALL与Ⅲ的区别在于:使用关键字ALL引入子查询时,外层查询比较。如果有一个比较为假,则和整个子查询结果集的比较就为假,只有所有的比较结果都为真,和整个子查询结果集的比较才为真。
→8、比较运算符和相关子查询:用标准比较运算符来直接引入该相关子查询。
→9、返回单个值的GROUP BY和HAVING子句。
→2、子查询与连接结合:用子查询和连接就可以利用它们的优势而避免它们的缺陷。
→3、在FROM中使用子查询。
→4、在UPDATE,DELETE和INSERT中使用子查询。在编写UPDATE和DELETE语句时,一般在它们的WHERE子句中使用子查询来代替连接。因为很多数据库都不支持在这两种语句中使用连接来对多个表进行操作。INSERT语句中没有HERE子句,但是它也可以和子查询一起使用。
→5、在FROM中使用子查询:的子查询相当于一个虚拟表,和视图的作用差不多。SELECT MAX(temp.avg salary)(SELECT dno,AVG(salary) avg_老抽。
本章小结:掌握子查询的定义和规则了解子查询的类型,掌握各种子查询的使用方法。