【学习目标
��本章的内容是关系数据库的标准语言SQL(Structured Query Language)--结构化查询语言,课程从SQL的起源和基本结构开始,逐步深入到SQL的各个方面。因此,本章的学习目标主要是熟练掌握SQL的语法,能够在实践中熟练地运用SQL实现各种查询请求。

学习方法
��除了深刻理解SQL的语法以外,并且要上机做一些练习,以便加深理解,达到学习目标。由于本章主要采用SQL-92的标准进行讲述,不涉及任何商业DBMS的SQL实现,而在实际当中,SQL-92的标准与具体的DBMS的SQL实现还是有很大差别的。因此,要求大家将课程中讲到的例子在Microsoft SQL Server 7.0中进行上机练习,看一看SQL-92标准与SQL Server的Transaction-SQL(简称T-SQL)到底有什么不同,看一看SQL-92标准讲到的内容在SQL Server的T-SQL中是如何实现的。最后,根据实验情况完成一份实验报告。

【学习指南
��SQL是结构化查询语言(Structured Query Language)的简称,它除了具有查询数据库的功能以外,还具有定义数据结构、修改数据和说明安全性约束条件等特性。由于大家已经在实践中或多或少有一些SQL的基础,因此为了避免冗长的SQL语法的具体介绍,本章只是讲述SQL的基本结构,同时讲述大家在实践当中容易忽略的地方和一些技巧性的东西,并用具体的例子加以说明。本章的重点是4.2节4.3节4.4节4.5节4.6节4.7节4.9节4.10节4.11节,难点是4.4节4.6节4.7节4.10节,其中4.12节4.13节的详细内容要求大家在课下自己找有关的参考书进行自学。请你仔细阅读教材的第三章"关系数据库标准语言SQL"(链接到本课程所指定的教材的介绍)和参考书的第4章"SQL"(链接到本课程所指定的参考书的介绍)。

【预习思考题
��1、 你知道SQL最早是由谁提出来的吗?它有哪些版本的标准?最新的标准是什么?
��2、 结构化查询语言SQL主要包括哪些内容?
��3、 为什么SQL的查询结果中允许有重复元组存在?
��4、 如何对查询结果进行排序?
��5、 为什么要对SQL表达式中的关系和属性进行更名?
��6、 当对字符串进行模式匹配时,通常要用到like操作符。请问like操作符涉及哪些特殊字符?各自的含义是什么?
��7、 在集合的并、交、差运算中,如何计算查询结果里一个元组的重复次数?
��8、 SQL中的聚集函数都包括哪些?聚集函数是否可以嵌套?在SQL表达式中使用符号"*"时,应注意哪些事项?
��9、 什么是分组聚集?having子句的作用是什么?它与where子句的关系是什么?
��10、 在SQL中如何对空值null进行测试?空值null对SQL表达式有哪些影响?
��11、 什么是子查询?使用子查询的目的是为了什么?
��12、 什么是派生关系?它和普通关系一样吗?
��13、 满足什么样的条件,才可以通过视图修改数据库?
��14、 SQL-92支持的连接类型和条件是什么?它们各自具有什么样的含义?
��15、 SQL DDL的主要功能是什么?
��16、 drop table r与delete from r语句有什么区别?
��17、 为什么要使用嵌入式SQL?对含有嵌入式SQL的宿主语言的处理过程是什么?
��18、 你了解第四代语言吗?你认为它的前途如何?