第6次课程教案本次课授课章节第3章关系数据库标准语言SQL2学时数本次课教学了解:SQL的特点、基本概念目的与要求掌握:数据定义教学SQL对关系数据库模式的支持重点模式及基本表的定义、删除与修改本次课重点与难点教学基本表的定义、删除与修改难点教学方法理论讲授与多媒体演示相结合、例题分析法与手段教学内容课时分配(分钟)30SQL的特点、基本概念教学内容15模式的定义与删除时间分配45基本表的定义、删除与修改一、新课导入第2章课外作业总结对于关系数据库中的各种操作应该如何实现?-SQL语言都能实现哪些功能?二、 讲授教学内容1.SQL概述■SQL的特点■1.综合统一■2.高度非过程化教学过■3.面向集合的操作方式程设计■4.以同一种语法结构提供两种使用方法■5.语言简洁,易学易用2.数据定义1)定义语句格式2)建立与删除索引■建立索引是加快查询速度的有效手段■建立索引■DBA或表的属主(即建立表的人)根据需要建立■有些DBMS自动建立以下列上的索引-PRIMARYKEY12
12 第 6 次课程教案 授 课 章 节 第 3 章 关系数据库标准语言 SQL 本次课 学时数 2 本 次 课 教 学 目 的 与 要 求 了解:SQL 的特点、基本概念 掌握:数据定义 本次课 重 点 与 难 点 教学 重点 SQL 对关系数据库模式的支持 模式及基本表的定义、删除与修改 教学 难点 基本表的定义、删除与修改 教 学 方 法 与手段 理论讲授与多媒体演示相结合、例题分析法 教 学 内容 时 间 分 配 教学内容 课时分配(分钟) SQL 的特点、基本概念 30 模式的定义与删除 15 基本表的定义、删除与修改 45 教学过 程设计 一、新课导入 第 2 章课外作业总结 对于关系数据库中的各种操作应该如何实现? SQL 语言都能实现哪些功能? 二、讲授教学内容 1. SQL 概述 SQL 的特点 1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4. 以同一种语法结构提供两种使用方法 5. 语言简洁,易学易用 2. 数据定义 1)定义语句格式 2)建立与删除索引 建立索引是加快查询速度的有效手段 建立索引 DBA 或表的属主(即建立表的人)根据需要建立 有些 DBMS 自动建立以下列上的索引 PRIMARY KEY
-UNIQUE维护索引-DBMS自动完成■使用索引■DBMS自动选择是否使用索引以及使用哪些索引a、建立索引■语句格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名><次序>[,<列名>[<次序>]]..);用<表名>指定要建索引的基本表名字■索引可以建立在该表的一列或多列上,各列名之间用逗号分隔■用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省值:ASC■UNIQUE表明此索引的每一个索引值只对应唯一的数据记录■CLUSTER表示要建立的索引是聚簇索引B、删除索引DROPINDEX<索引名>;■删除索引时,系统会从数据字典中删去有关该索引的描述。三课堂讨论题小结1.给学生表增加一个属性Nation(民族),数据类型为char(20)2.为学生表创建一个名为DEPTINDEX的索引,以系号排序3.删除该索引思考题或预习超星作业:教材123页课后习题3,4题或作业题参考资料《数据库系统概论(第6版)》,王珊,高等教育出版社课后小结13
13 UNIQUE 维护索引 DBMS 自动完成 使用索引 DBMS 自动选择是否使用索引以及使用哪些索引 a、建立索引 语句格式 CREATE [UNIQUE] [CLUSTER] INDEX <索引名> ON <表名>(<列名>[<次 序>][,<列名>[<次序>] ].); 用<表名>指定要建索引的基本表名字 索引可以建立在该表的一列或多列上,各列名之间用逗号分隔 用<次序>指定索引值的排列次序,升序:ASC,降序:DESC。缺省 值:ASC UNIQUE 表明此索引的每一个索引值只对应唯一的数据记录 CLUSTER 表示要建立的索引是聚簇索引 B、删除索引 DROP INDEX <索引名>; 删除索引时,系统会从数据字典中删去有关该索引的描述。 三 课堂讨论题 小结 1. 给学生表增加一个属性 Nation(民族),数据类型为 char(20) 2. 为学生表创建一个名为 DEPTINDEX 的索引,以系号排序 3. 删除该索引 思考题或预习 题或作业题 超星作业:教材 123 页 课后习题 3,4; 参 考 资 料 《数据库系统概论(第 6 版)》,王珊,高等教育出版社 课 后 小 结
第7次课程教案本次课2授课章节第3章关系数据库标准语言SQL学时数本次课教学掌握:①单表查询的方法:②连接查询的方法:目的与要求教学单表查询、连接查询重点本次课重点与难点教学连接查询难点教学方法理论讲授与多媒体演示相结合,案例教学法与手段教学内容课时分配(分钟)45单表查询教学内容连接查询45时间分配新课导入如何在网络教学平台中查询学生的个人成绩?二、 讲授教学内容学生-课程数据库学生表:Student(Sno,Sname,Ssex,Sage,Sdept)■课程表:Course(Cno,Cname,Cpno,Ccredit)■学生选课表:SC(Sno,Cno,Grade)1、单表查询查询仅涉及一个表,是一种最简单的查询操作教学过(1)、选择表中的若干列程设计(2)、选择表中的若干元组(3)、对查询结果排序(4)、使用集函数(5)、对查询结果分组【例1]查询全体学生的学号与姓名。SELECTSno,SnameFROM Student:【例2]查询全体学生的姓名、学号、所在系。SELECTSname,Sno,Sdept14
14 第 7 次课程教案 授 课 章 节 第 3 章 关系数据库标准语言 SQL 本次课 学时数 2 本 次 课 教 学 目 的 与 要 求 掌握:① 单表查询的方法;② 连接查询的方法; 本次课 重 点 与 难 点 教学 重点 单表查询、连接查询 教学 难点 连接查询 教 学 方 法 与手段 理论讲授与多媒体演示相结合,案例教学法 教 学 内容 时 间 分 配 教学内容 课时分配(分钟) 单表查询 45 连接查询 45 教学过 程设计 一、新课导入 如何在网络教学平台中查询学生的个人成绩? 二、讲授教学内容 学生-课程数据库 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 1、单表查询 查询仅涉及一个表,是一种最简单的查询操作 (1)、选择表中的若干列 (2)、选择表中的若干元组 (3)、对查询结果排序 (4)、使用集函数 (5)、对查询结果分组 [例 1] 查询全体学生的学号与姓名。 SELECT Sno,Sname FROM Student; [例 2] 查询全体学生的姓名、学号、所在系。 SELECT Sname,Sno,Sdept
FROM Student;[例3]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。SELECT Sname,SsexFROM StudentWHERESdeptNOTIN(IS",MA',"CS');【例4]查询名字中第2个字为”阳”字的学生的姓名和学号。SELECTSname,SnoFROM StudentWHERESnameLIKE阳%:[例5]查询DBDesign课程的课程号和学分。SELECT Cno, CcreditFROM CourseWHERECnameLIKE'DB\DesignESCAPE'[例6]某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查询缺少成绩的学生的学号和相应的课程号。SELECT Sno,CnoFROMSCWHERE Grade IS NULL:【例7]查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。SELECTSno,GradeFROMSCWHERECno=3ORDERBY GradeDESC;【例8]】查询有3门以上课程是90分以上的学生的学号及(90分以上的)课程数SELECTSno,COUNT(*)FROMSCWHERE Grade>=90GROUPBYSnoHAVING COUNT(*)>=3;2、连接查询同时涉及多个表的查询称为连接查询用来连接两个表的条件称为连接条件或连接谓词一般格式:■[<表名1>.]<列名1><比较运算符》[<表名2>.]<列名2>比较运算符:=、>、《、>=、<=、!=■[<表名1>.]<列名1>BETWEEN[<表名2>.]<列名2》AND[<表名2>.]<列名3>(1)、广义笛卡尔积■不带连接谓词的连接■很少使用(2)、等值与非等值连接查询等值连接■连接运算符为=的连接操作■[<表名 1>.]<列名 1>=[<表名 2>.,]<列名 2>15
15 FROM Student; [例 3]查询既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。 SELECT Sname,Ssex FROM Student WHERE Sdept NOT IN ( 'IS','MA','CS' ); [例 4] 查询名字中第 2 个字为"阳"字的学生的姓名和学号。 SELECT Sname,Sno FROM Student WHERE Sname LIKE '_阳%'; [例 5] 查询 DB_Design 课程的课程号和学分。 SELECT Cno,Ccredit FROM Course WHERE Cname LIKE 'DB\_Design' ESCAPE '\' [例 6] 某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查 询缺少成绩的学生的学号和相应的课程号。 SELECT Sno,Cno FROM SC WHERE Grade IS NULL; [例 7] 查询选修了 3 号课程的学生的学号及其成绩,查询结果按分数降序排列。 SELECT Sno,Grade FROM SC WHERE Cno= ' 3 ' ORDER BY Grade DESC; [例 8] 查询有 3 门以上课程是 90 分以上的学生的学号及(90 分以上的)课程数 SELECT Sno, COUNT(*) FROM SC WHERE Grade>=90 GROUP BY Sno HAVING COUNT(*)>=3; 2、连接查询 同时涉及多个表的查询称为连接查询 用来连接两个表的条件称为连接条件或连接谓词 一般格式: [<表名 1>.]<列名 1> <比较运算符> [<表名 2>.]<列名 2> 比较运算符:=、>、<、>=、<=、!= [<表名 1>.]<列名 1> BETWEEN [<表名 2>.]<列名 2> AND [<表名 2>.]<列名 3> (1)、广义笛卡尔积 不带连接谓词的连接 很少使用 (2)、等值与非等值连接查询 等值连接 连接运算符为 = 的连接操作 [<表名 1>.]<列名 1> = [<表名 2>.]<列名 2>
国任何子句中引用表1和表2中同名属性时,都必须加表名前缀。引用唯一属性名时可以加也可以省略表名前缀。自然连接■等值连接的一种特殊情况,把目标列中重复的属性列去掉。(3)、自身连接■一个表与其自己已进行连接,称为表的自身连接■需要给表起别名以示区别■由于所有属性名都是同名属性,因此必须使用别名前缀(4)、外连接(OuterJoin)■外连接与普通连接的区别■普通连接操作只输出满足连接条件的元组■外连接操作以指定表为连接主体,将主体表中不满足连接条件的元组一并输出(5)、复合条件连接WHERE子句中含多个连接条件时,称为复合条件连接三课堂讨论题小结小结:连接查询时的关键是连接条件语句讨论:等值连接和自然连接的区别是什么?思考题或预习预习3.4.3嵌套查询:作业:PTA第三章练习题题或作业题参考资料《数据库系统概论(第6版)》,王珊,高等教育出版社课后小结16
16 任何子句中引用表 1 和表 2 中同名属性时,都必须加表名前缀。引 用唯一属性名时可以加也可以省略表名前缀。 自然连接 等值连接的一种特殊情况,把目标列中重复的属性列去掉。 (3)、自身连接 一个表与其自己进行连接,称为表的自身连接 需要给表起别名以示区别 由于所有属性名都是同名属性,因此必须使用别名前缀 (4)、外连接(Outer Join) 外连接与普通连接的区别 普通连接操作只输出满足连接条件的元组 外连接操作以指定表为连接主体,将主体表中不满足连接条件的元 组一并输出 (5)、复合条件连接 WHERE 子句中含多个连接条件时,称为复合条件连接 三 课堂讨论题 小结 小结:连接查询时的关键是连接条件语句 讨论:等值连接和自然连接的区别是什么? 思考题或预习 题或作业题 预习 3.4.3 嵌套查询;作业:PTA 第三章练习题 参 考 资 料 《数据库系统概论(第 6 版)》,王珊,高等教育出版社 课 后 小 结