数据库原理与设计方法.ppt

上传人:龙*** 文档编号:3791792 上传时间:2019-07-17 格式:PPT 页数:326 大小:1.40MB
下载 相关 举报
数据库原理与设计方法.ppt_第1页
第1页 / 共326页
数据库原理与设计方法.ppt_第2页
第2页 / 共326页
数据库原理与设计方法.ppt_第3页
第3页 / 共326页
数据库原理与设计方法.ppt_第4页
第4页 / 共326页
数据库原理与设计方法.ppt_第5页
第5页 / 共326页
点击查看更多>>
资源描述

1、数据库原理与设计方法,参考书: 1王能斌。数据库系统。电子工业出版社。1995年。 2王能斌编。数据库系统原理。电子工业出版社。2000年。 3王珊 陈红。数据库系统原理教程。 4美JD厄尔曼。数据库系统原理。,第一章 Introduction1.1 Concepts 1.1.1 Data、DataBase、DataBase System、DataBase Management System 1. Data(李明,男,1972,江苏,计算机系,1990)数据、信息、知识三者之间的关系:数据的语义即为信息,信息在计算机中的存储(表示形式)即为数据。从信息中提升、推理、推导出的新的信息即为知识。例

2、如:40(数据)40(信息)发烧(知识),2. DatabaseDB 3. Database Management SystemDBMS 4. database systemDBS数据库管理员(database administrator,简称DBA)。,5. Data Model数据模型是用来描述数据的一组概念和定义。一般来说,数据的描述包括两个方面:(1)数据的静态特性它包括数据的基本结构、数据间的联系和数据中的约束。(2)数据的动态特性它指定义在数据上的操作。如文件系统。数据模型要面向现实世界,面向用户。,数据模型要面向实现,面向计算机。 1) conceptual data model

3、如ER模型、面向对象数据模型等。 2) logical data model如关系数据模型、层次模型、网状模型等。 3) physical data model概念数据模型只用于数据库的设计,逻辑数据模型和物理数据模型用于DBMS的实现。,6. Data Schematype: 型是该数据所属数据类型的说明。value: 值是型的一个实例(instance或occurrence)。对某一类数据的结构、联系和约束的描述是型的描述,型的描述称为数据模式(Data Schema)。在同一数据模式下,可以有很多的值,即实例。例如,学生记录可以定义为图1-3(a)的形式,这是数据模式。而图1-3(b)是

4、其一个实例。,数据模型是描述数据的手段而数据模式是用给定数据模型对具体数据的描述。美国国家标准协会(ANSI)的ANSIX3SPARC报告把数据模式分为三级(见图1-4)。,1) conceptual schema/logical schema 2) external schema 3) internal schema 7. Database Instance数据模式是相对稳定的,而实例是相对变动的。数据模式反映一个单位的各种事物的结构、属性、联系和约束,实质上是用数据模型对一个单位的模拟。而实例反映数据库的某一时刻的状态,也就是这一单位在此时的状态。,1.1.2 数据库技术的产生与发展 1.

5、 人工管理阶段 人工管理数据具有如下特点: 1) 数据不保存。 2) 数据需要由应用程序自己管理,没有相应的软件系统负责数据的管理工作。 3) 数据不共享。 4) 数据不具有独立性。人工管理阶段应用程序与数据之间的对应关系可用图l-3表示。,2. 文件系统阶段 用文件系统管理数据具有如下特点: 1) 数据可以长期保存。 2) 由专门的软件即文件系统进行数据管理。 3) 数据共享性差。 4) 数据独立性低。,文件系统阶段应用程序与数据之间的关系如图1-4所示。,3. 数据库系统阶段用数据库系统来管理数据具有如下特点:,1) 数据结构化学生人事记录,图1-5,2) 数据的共享性好,冗余度低 3)

6、数据独立性高 4) 数据由DBMS统一管理和控制 l 数据的安全性(security) l 数据的完整性(integrity) l 并发(concurrency)控制 l 数据库恢复(recovery),量大 持久 共享,1.1.3 数据库技术的研究领域 1. 数据库管理系统软件的研制 2. 数据库设计 3. 数据库理论1.2 数据库工程与应用 1.2.1 数据库设计的目标与特点,图 1-10,1.2.2 数据库设计方法新奥尔良方法:需求分析(分析用户要求)、概念设计(信息分析和定义)、逻辑设计(设计实现)和物理设计(物理数据库设计)。SBYao:需求分析、模式构成、模式汇总、模式重构、模式分

7、析和物理数据库设计。IRPalmer则主张把数据库设计当成一步接一步的过程,并采用一些辅助手段实现每一过程。此外,基于ER模型的数据库设计方法,基于3NF(第三范式)的设计方法,基于抽象语法规范的设计方法等。,规范设计法在具体使用中又可以分为两类:手工设计和计算机辅助数据库设计。ORACLE Designer 20001.2.3 数据库设计步骤,1. 需求分析2. 概念结构设计3. 逻辑结构设计,图1-11,4. 数据库物理设计5. 数据库实施6. 数据库运行和维护,在数据库设计过程中必须注意以下问题。1. 数据库设计过程中要注意充分调动用户的积极性。2. 应用环境的改变、新技术的出现等都会导

8、致应用需求的变化,因此设计人员在设计数据库时必须充分考虑到系统的可扩充性,使设计易于变动。3. 系统的可扩充性最终都是有一定限度的。1.2.4Database Application,各种用户的数据视图,DBA主要职责包括:1. 设计与定义数据库系统2. 帮助最终用户使用数据库系统3. 监督与控制数据库系统的使用和运行4. 改进和重组数据库系统,调优数据库系统的性能5. 转储与恢复数据库6. 重构数据库,第二章 Data Model数据模型应满足三方面要求:一是能比较真实地模拟现实世界;二是容易为人所理解;三是便于在计算机上实现。两类:概念模型也称信息模型,数据模型包括网状模型、层次模型、关系

9、模型。2.1 数据模型的要素 2.1.1 数据结构 2.1.2 数据操作 2.1.3 数据的约束条件,2.2 概念模型E-R Data Model,2.2.1 ConceptsE-R数据模型(Entity-Relationship Data Model)EER数据模型(Extended Entity-Relationship Data Model)1实体(entity)、实体集(entity set)entity set与entity是型(type)与值(value)的关系(类似于前述data schema与database instance)2属性(attribute)值集(value se

10、t) 实体键(entity key)实体主键(entity primary key),3联系(relationship)基数比约束(cardinality ratio constraint)参与约束(participation constraint):部分参与、全参与 结构约束(structural constraint) 两个实体之间的联系可以分为三类:l 一对一联系(1:1)l 一对多联系(1:m)l 多对多联系(m:n)所有(ownership)关系弱实体(weak entity),2.2.2 E-R diagram用E-R数据模型对某一单位进行模拟,可以得到ER数据模式,ER数据模式可

11、以ER图来直观地表示。entity:weak entity:relationship:attribute:示例:,说明:,1学位类型:硕士/博士2导师类型:主要指导老师、协助指导3研究生可能换导师,换专业、方向4选课性质:学位课/非学位课5任课类型:主讲/辅讲6可担任描述有哪些老师可以上哪些课7任课是指目前该课程的任课老师8开课学期:春/秋季9上课地点:目前该课程的上课教室,问题:1课性质属性为什么不属于课程实体,而属于选课联系?2专业、方向可不可以属于研究生?2.2.3 EER data model1特殊化(specialization)和普遍化(generalization)全特殊化(to

12、tal specialization)/部分特殊化(partial specialization)不相交特殊化(disjoint specialization)/重叠特殊化(overlapping specialization),2聚集(aggregation)3范畴(category),2.3 Hierarchy Data Model 2.3.1 层次数据模型的数据结构 1层次模型的基本结构,图 TS数据模式,图 TS数据模式的一个值,2多对多联系在层次模型中的表示2.3.2 层次数据模型的操纵与完整性约束2.3.3 层次数据模型的存储结构2.3.4 层次数据模型的优缺点层次数据模型的优点主

13、要有:l层次数据模型本身比较简单,只需很少几条命令就能操纵数据库,比较容易使用。l对于实体间联系是固定的,且预先定义好的应用系统,采用层次模型来实现,其性能优于关系模型,不次于网状模型。l层次数据模型提供了良好的完整性支持。,层次数据模型的缺点主要有:l现实世界中很多联系是非层次性的,如多对多联系、一个结点具有多个双亲等,层次模型表示这类联系的方法很笨拙,只能通过引入冗余数据(易产生不一致性)或创建非自然的数据组织(引入虚拟结点)来解决。l对插入和删除操作的限制比较多。l查询子女结点必须通过双亲结点。l由于结构严密,层次命令趋于程序化。2.4 网状数据模型 2.4.1 网状数据模型的数据结构,

14、2.4.2 网状数据模型的操纵与完整性约束2.4.3 网状数据模型的存储结构2.4.4 网状数据模型的优缺点,网状数据模型的优点主要有:l能够更为直接地描述现实世界,如一个结点可以有多个双亲、允许结点之间为多对多的联系等。l具有良好的性能,存取效率较高。网状数据模型的缺点主要有:l其DDL语言极其复杂。l数据独立性较差。由于实体问的联系本质上是通过存取路径指示的,因此应用程序在访问数据时要指定存取路径。,2.5 Relation Data Model 2.5.1 Concepts 1. Attribute and DomainDomain: 第一范式1NF(first nomal form)

15、atomic data非第一范式(Non-First Nomal Form)NF2空值:NULL 2. relation and tuple设有一命名为R的关系,它有属性A1、A2、An,其对应的城分别为Dl、D2、Dn则关系R可表示为:,R(D1/Al,D2/A2,Dn/An)或 R(A1,A2,An)或 R(A1A2An)R.A1表示关系R的属性A1。degree(arity):nR的值:r r(R)r=t1,t2,tmt=, viDi,1in笛卡尔乘积,A B AB,关系模式:SUDENT(姓名,学号,性别,出生年份籍贯,系别,入学年份)投影:RX tX STUDENT姓名,性别3. k

16、ey定义:如果关系的某一属性或属性组的值唯一地决定其他所有属性的值,也就是唯一地决定一个元组,而其任何真子集无此性质,则这个属性或属性组称为该关系的候选键(candidate key),或简称为键。superkey primary key alternate key all key (SUPPLY(供应商,零件名,工程名),prime attribute non-prime attributeforeign keyCOURSE(课程名,课程号,学分,开课时间,先修课程号)GRADE(学号,课程号,成绩)2.5.2 ConstraintR(D1/Al,D2/A2,Dn/An)1. Domain

17、integrity constraint2. Entity integrity constraint3. Referential integrity constraint4. General integrity constraint,2.5.3 Operationrelational algebra operations1. Select operation(),2. Project operation()性别,籍贯、出生年份(STUDENT)若包含则:(R)=(R),姓名(性别=女(STUDENT)3. Set operationABA-(A-B)union compatibility课程号

18、(COURSE)-先修课程号(COURSE)系别=计算机系(STUDENT)系别=电子系(STUDENT)RS=|tR AND gS4 Join operationR S=(RS)连接条件:ANDANDAND 连接:AiBj,等连接(equijoin) 自然连接(natural join)例:GRADE GRADE.课程号=COURSE.课程号(课程名,课程号,学分(COURSE)关系代数操作集,-,是完备的操作集。,-, relationally complete5. Outer join operation6. Outer union operation,2.5.4 Relational

19、Calculus1. Tuple Relational Calculus2. Domain Relational Calculus,第三章Database Language SQL结构化查询语言(structured query language,简称SQL) 3.1 IntroductionSQL语言是1974年由Boyce和Chamberlin提出的。1975年至1979年IBM System R实现了这种语言。1986年10月 美国国家标准局(简称ANSI) SQL-861987年国际标准化组织(简称ISO)也通过了这一标准。ANSI 1989年第二次公布SQL标准(SQL-89)199

20、2年 SQL-92标准,目前ANSI正在酝酿新的SQL标准:SQL3。现在SQL已被重新解释成为:Standard Query LanguageSQL按其功能可分为四大部分:1.数据定义语言(Data Definition Language,简称DDL)2.查询语言(Query Language,简称QL) 3.数据操纵语言(Data Manipulation Language,简称DML)4.数据控制语言(Data Control Language,简称DCL),3.1.1SQL的特点1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方式5.语言简洁,易学易用

21、表3-1 SQL语言的动词,3.1.2 SQL语言的基本概念,3.2 数据定义表3-2 SQL的数据定义语句,3.2.1 定义、删除与修改基表 1. 定义基表,CREATE TABLE 表名 (列名数据类型列级完整件约束条件,列名数据类型列级完整性约束条件 表级完整性约束条件);列级完整性约束条件格式:NOT NULL UNIQUE DEFAULT 字值|USER|NULL表级完整性约束条件有三个任选项。用于定义主键的PRIMARY KEY子句,用于定义外键的FOREIGN KEY子句和用于定义列值限制条件的CHECK子句。格式:,,PRIMARY KEY (),FOREIGN KEY 外键名

22、 ()REFERENCES ON DELETE RESTRICT |CASCADE|SET NULL,CHECK (条件)IBM DB2 SQL主要支持以下数据类型:SMALLINT 半字长二进制整数。INTEGER或INT 全字长二进制整数。DECIMAL(p,q)或DEC(p,q) 压缩十进制数,共p位,其中小数点后有q位。0qp15,q0时可以省略。FLOAT 双字长浮点数。CHARTER(n)或CHAR(n) 长度为n的定长字符串。VARCHAR(n) 最大长度为n的变长字符串。,GRAPHIC(n) 长度为n的定长图形字符串。VARGRAPHIC(n) 最大长度为n的变长图形字符串。

23、DATE 日期型,格式为YYYYMMDD。TIME 时间型,格式为HH.MM.SS。TIMESTAMP 日期加时间。例1 建立Student(学生)、Course(课程)、SC(选课)表。1“学生”表student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄Sage、所在系(Sdept)5个属性组成,可记为Student(Sno,Sname,Ssex,Sage,Sdept)其中sno为主键。,2 “课程”表course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)4个属性组成,可记为:Course(Cno,Cname,Cpno,Ccred

24、it)其中Cno为主键。3“学生选课”表SC由学号(Sno)、课程号(Cno)、成绩(Grade)3个属性组成,其中(Sno,Cno)为主键。CREATE TABLE Student (Sno CHAR(5) NOT NULL UNIQUE, Sname VARCHAR(20) NOT NULL, Ssex CHAR(1), Sage INT, Sdept CHAR(15),PRIMARY KEY(Sno);,CREATE TABLE Course (Cno CHAR(1) NOT NULL,Cname VARCHAR(20),Cpno CHAR(1)Ccredit DEC(2,1),PRIM

25、ARY KEY(Cno),FOREIGN KEY (Cpno) REFERENCES Course ON DELETE RESTRICT);,CREATE TABLE SC (Sno CHAR(5) NOT NULL, Cno CHAR(1) NOT NULL, Grade DEC(4,1) DEFAULT NULL,PRIMARY KEY(Sno,Cno),FOREIGN KEY (Sno) REFERENCES Student ON DELETE CASCADE,FOREIGN KEY (Cno) REFERENCES Course ON DELETE RESTRICT);,2. 修改基表

26、 ALTER TABLE表名 ADD新列名数据类型完整性约束 DROP完整性约束名 MODIFY列名数据类型;例2 向student表增加“入学时间”列,其数据类型为日期型。 ALTER TABLE Student ADD Scome DATE;例3 将年龄的数据类型改为半字长整数。ALTER TABLE Student MODIFY Sage SMALLINT;例4 删除(撤消)Student表主键定义。ALTER TABLE Student DROP PRIMARY KEY;,3. 删除基表DROP TABLE 表名;例5删除Student表。DROP TABLE Student; 3.2

27、.2 建立与删除索引 1. 建立索引CREATE UNIQUE CLUSTER INDEX ON ( 次序 , 次序);排列次序,包括ASC(升序)和DESC(降序)两种,缺省值为ASC。CREATE CLUSTER INDEX Stusname ON Student(Sname);,例6 为学生课程数据库中的Student,Course,SC 3个表建立索引。其中Student表按学号升序建立唯一索引,course表按课程号升序建立唯一索引,SC表按学号升序和课程号降序建唯一索引。CREATE UNIQUE INDEX Stusno ON Student(Sno);CREATE UNIQUE

28、 INDEX Coucno ON Course(Cno);CREATE UNIQUE INDEX SCno ON SC(Sno ASC,Cno DESC); 2. 删除索引DROP INDEX索引名;例7 删除Student表的Stusname索引。DROP INDEX Stusname;,3.3 查询SELECT ALL| DISTINCT 目标列表达式,目标列表达式FROM 表名或视图名,表名或视图名WHERE条件表达式GROUP BY列名1HAVING条件表达式ORDER BY列名2ASC | DESC;,3.3.1 单表查询1. 选择表中的若干列1) 查询指定列例1 查询全体学生的学号

29、与姓名。SELECT Sno,SnameFROM Student;例2 查询全体学生的姓名、学号、所在系。SELECT Sname,Sno,SdeptFROM Student;2) 查询全部列例3 查询全体学生的详细记录SELECT *FROM Student;,3) 查询经过计算的值例4 查询全体学生的姓名及其出生年份。SELECT Sname,2004-SageFROM Student;例5 查询全体学生的姓名、出生年份和所在系,要求用小写字母表示所在系名SELECT Sname,Year of Birth:,2004-Sage,ISLOWER(Sdept)FROM Student;SEL

30、ECT Sname NAME,Year of Birth: BIRTH,2004-Sagc BIRTHDAY, ISLOWER(Sdept) DEPARTMENTFROM Student;,结果为:NAME BIRTH BIRTHDAY DEPARTMENT 李勇 Year of Birth: 1976 cs 刘晨 Year of Birth: 1977 if 王名 Year of Birth: 1978 ma 张立 Year of Birth: 1978 if 2. 选择表中的若干元组 1) 消除取值重复的行例6 查询所有选修过课的学生的学号。SELECT SnoFROM SC;,假设SC表

31、中有下列数据:Sno Cno Grade95001 1 9295001 2 8595001 3 8895002 2 9095002 3 80执行上面的SELECT语句后,结果为:Sno9500195001950019500295002,SELECT DISTINCT SnoFROM SC;执行结果为:Sno9500195002SELECT SnoFROM SC;与SELECT ALL SnoFROM SC;完全等价。,2) 查询满足条件的元组表3-5 常用的查询条件,比较大小 等于 大于 小于, 大于等于 小于等于!或 不等于有些产品中还包括:! 不大于! 不小于逻辑运算符NOT可与比较运算符

32、同用,对条件求非。例7 查计算机系全体学生的名单。SELECT SnameFROM StudentWHERE SdeptCS;,例8 查所有年龄在20岁以下的学生姓名及其年龄。SELECT Sname,SageFROM studentWHERE Sage20;或SELECT Sname,SageFROM studentWHERE NOT Sage=20;例9 查考试成绩有不及格的学生的学号。SELECT DISTINCT SnoFROM SCWHERE Grade60;,确定范围谓词BETWEENAND和NOT BETWEENAND可以用来查找属性值在(或不在)指定范围内的元组,其中BETWE

33、EN后是范围的下限(即低值),AND后是范围的上限(即高值)。例10 查询年龄在20至23岁之间的学生的姓名、系别和年龄。SELECT Sname,Sdept,SageFROM StudentWHERE Sage BETWEEN 20 AND 23;与BETWEENAND相对的谓词是NOT BETWEENAND。,例11 查询年龄不在20至23岁之间的学生姓名、系别和年龄。SELECT Sname,Sdept,SageFROM StudentWHERE Sage NOT BETWEEN 20 AND 23;确定集合谓词IN可以用来查找属性值属于指定集合的元组。例12 查信息系(IS)、数学系(

34、MA)和计算机科学系(CS)的学生的姓名和性别。SELECT SnameSsexFROM StudentWHERE Sdept IN(IS,MA,CS);与IN相对的谓词是NOT IN,用于查找属性值不属于指定集合的元组。,例13 查既不是信息系、数学系,也不是计算机科学系的学生的姓名和性别。SELECT SnameSsexFROM StudentWHERE Sdept NOT IN(IS,MA,CS);字符匹配谓词LIKE可以用来进行字符串的匹配。其一般语法格式如下:NOT LIKE 匹配串其含义是查找指定的属性列值与匹配串相匹配的元组,匹配串可以是一个完整的字符串,也可以含有通配符和_。其

35、中:(百分号) 代表任意长度(长度可以为0)的字符串。,例如a%b表示以a开头,以b结尾的任意长度的字符串,acb,adefb,ab等都满足该匹配串。_(下划线) 代表任意单个宁符。例如a_b表示以a开头,以b结尾,长度为3的字符串,acb,adb等都满足该匹配串。例14 查询学号为95001的学生的详细情况SELECT *FROM StudentWHERE Sno LIKE 9500l;该语句实际上与下面的语句完全等价:SELECT *FROM StudentWHERE Sno=9500l;,例15 查所有姓刘的学生的姓名、学号和性别。SELECT Sname,Sno,SsexFROM St

36、udentWHERE Sname LIKE 刘%;例16 查姓“欧阳”且全名为3个汉字的学生的姓名。SELECT SnameFROM StudentWHERE Sname LIKE 欧阳_;例17 查名字中第二字为“阳”字的学生的姓名和学号。SELECT Sname,SnoFROM StudentWHERE Sname LIKE _阳;,例18查所有不姓刘的学生姓名。SELECT Snamc,Sno,SsexFROM StudentWHERE Sname NOT LIKE 刘%;涉及空值的查询谓词IS NULL和IS NOT NULL可用来查询空值和非空值。例19 某些学生选修某门课程后没有参

37、加考试,所以有选课记录,但没有考试成绩,下面来查一下缺少成绩的学生的学号和相应的课程号。SELECT Sno,CnoFROM SCWHERE Grade IS NULL;,例20 查所有有成绩的记录的学生学号和课程号。SELECT Sno,CnoFROM SCWHERE Grade IS NOT NULL;多重条件查询例21 查CS系年龄在20岁以下的学生姓名SELECT SnameFROM StudentWHERE Sdept=CSAND Sage20;例12中的IN谓词实际上是多个OR运算符的缩写,因此,例l2中的查询也可以用OR运算符写成如下等价形式:,SELECT SnameSsexF

38、ROM StudentWHERE Sdept=ISOR Sdept=MAOR Sdept=CS; 3.对查询结果排序例22 查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。SELECT Sno,GradeFROM SCWHERE Cno3ORDER BY Grade DESC;例23 查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。,SELECT * FROM StudentORDER BY Sdept, Sage DESC; 4.使用集函数COUNT(DISTINCT | ALL *) 统计元组个数COUNT(DISTINCT | ALL列名)

39、统计一列中值的个数SUM(DISTINCT | ALL 列名) 计算一列值的总和(此列必须是数值型)AVG(DISTINCT | ALL 列名) 计算一列值的平均值(此列必须是数值型)MAX(DISTINCT | ALL 列名) 求一列值中的最大值MIN(DISTINCT | ALL 列名) 求一列值中的最小值,例24 查询学生总人数。SELECT COUNT(*)FROM Student;例25 查询选修了课程的学生人数。SELECT COUNT(DISTINCT Sno)FROM SC;例26 计算1号课程的学生平均成绩。SELECT AVG(Grade)FROM SCWHERE Cnol

40、;例27 查询学习l号课程的学生最高分数。SELECT MAX(Grade)FROM SCWHERE Cno1;,5. 对查询结果分组例28 查询各个课程号与相应的选课人数。SELECT Cno,COUNT(Sno)FROM SCGROUP BY Cno;例29 查询信息系选修了3门以上课程的学生的学号,为简单起见,假设SC表中有一列Dept,它记录了学生所在系。SELECT SnoFROM SCWHERE DeptISGROUP BY SnoHAVING COUNT(*)3;,3.3.2 连接查询1. 等值与非等值连接查询 表名1列名1比较运算符表名2列名2其中比较运算符主要有:、!。此外,

41、连接谓词还可以使用下面形式:表名1列名1BETWEEN表名2当连接运算符为时,称为等值连接。使用其它运算符称为非等值连接。,例30 查询每个学生及其选修课程的情况。SELECT Student.*,SC.*FROM Student,SCWHERE Student.SnoSC.Sno;例31 Student表和SC表的笛卡尔积。SELECT Student.*,SC.*FROM Student,SC例32 自然连接Student表和SC表。SELECT Student.Sno,Sname, Ssex, Sage, Sdept, Cno, GradeFROM Student,SCWHERE Stu

42、dent.SnoSC.Sno;,或SELECT Student.*,Cno, GradeFROM Student,SCWHERE Student.SnoSC.Sno; 2. 自身连接例33 查询每一门课的间接先修课(即先修课的先修课)。,SELECT FIRST.Cno,SECOND.CpnoFROM Course FIRST,Course SECONDWHERE FIRST.CpnoSECOND.Cno;Cno Cpno 1 7 3 5 5 63. 外连接例34SELECT Student.Sno,Sname, Ssex, Sage, Sdept, Cno, GradeFROM Studen

43、t,SCWHERE Student.SnoSC.Sno(*);,Student.Sno,Sname, Ssex, Sage, Sdept, Cno, Grade 9500l 李勇 男 20 CS 1 92 9500l 李勇 男 20 CS 2 85 9500l 李勇 男 20 CS 3 88 95002 刘晨 女 19 IS 2 90 95002 刘晨 女 19 IS 3 80 95003 王名 女 18 MA 95004 张立 男 18 IS 4.复合条件连接 例35 查询选修2号课程且成绩在90分以上的所有学生。 SELECT Student.Sno,Sname FROM Student, SC WHERE Student .SnoSC.Sno AND SC.Cno2AND SC.Grade90;,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 重点行业资料库 > 1

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。