《数据库技术-课件.ppt》由会员分享,可在线阅读,更多相关《数据库技术-课件.ppt(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 2 2 章章 数据库技术数据库技术2.1 2.1 数据库技术的三个阶段数据库技术的三个阶段人工管理阶段人工管理阶段人工管理阶段人工管理阶段 文件系统阶段文件系统阶段文件系统阶段文件系统阶段 数据库系统阶段数据库系统阶段数据库系统阶段数据库系统阶段时间时间时间时间50505050年代中期以前年代中期以前年代中期以前年代中期以前50505050年代后期年代后期年代后期年代后期60606060年代中期年代中期年代中期年代中期60606060年代后期年代后期年代后期年代后期应用背景应用背景应用背景应用背景科学计算科学计算科学计算科学计算科学计算、管理科学计算、管理科学计算、管理科学计算、管理大规
2、模管理大规模管理大规模管理大规模管理硬件背景硬件背景硬件背景硬件背景无直接存取存储无直接存取存储无直接存取存储无直接存取存储设备设备设备设备磁盘、磁鼓磁盘、磁鼓磁盘、磁鼓磁盘、磁鼓大容量磁盘大容量磁盘大容量磁盘大容量磁盘软件背景软件背景软件背景软件背景没有操作系统没有操作系统没有操作系统没有操作系统有操作系统有操作系统有操作系统有操作系统(文件系统)(文件系统)(文件系统)(文件系统)有有有有DBMSDBMSDBMSDBMS处理方式处理方式处理方式处理方式批处理批处理批处理批处理批处理批处理批处理批处理联机实时处理联机实时处理联机实时处理联机实时处理批处理批处理批处理批处理联机实时处理联机实时
3、处理联机实时处理联机实时处理分布处理分布处理分布处理分布处理2.2 2.2 数据库概述数据库概述一、一、一、一、基本概念基本概念基本概念基本概念 1.1.1.1.数据数据数据数据 记录现实世界各种事物的物理符号序列。有多种表现记录现实世界各种事物的物理符号序列。有多种表现记录现实世界各种事物的物理符号序列。有多种表现记录现实世界各种事物的物理符号序列。有多种表现形式:数字、文字、图形、图像、声音等。形式:数字、文字、图形、图像、声音等。形式:数字、文字、图形、图像、声音等。形式:数字、文字、图形、图像、声音等。2.2.2.2.信息信息信息信息 信息是从数据中提取出的有用的东西,作为行为和决信息
4、是从数据中提取出的有用的东西,作为行为和决信息是从数据中提取出的有用的东西,作为行为和决信息是从数据中提取出的有用的东西,作为行为和决策的依据。策的依据。策的依据。策的依据。3.3.3.3.数据与信息的关系数据与信息的关系数据与信息的关系数据与信息的关系 数据是信息的载体。数据随媒体而变化。数据是信息的载体。数据随媒体而变化。数据是信息的载体。数据随媒体而变化。数据是信息的载体。数据随媒体而变化。信息是对数据的解释。信息不随媒体而变化。信息是对数据的解释。信息不随媒体而变化。信息是对数据的解释。信息不随媒体而变化。信息是对数据的解释。信息不随媒体而变化。4.4.数据处理数据处理 对数据进行采集
5、、整理、编码、输入、存储、加工对数据进行采集、整理、编码、输入、存储、加工/计算、计算、分类、检索、传输、输出等工作的过程。又称为信息处理。分类、检索、传输、输出等工作的过程。又称为信息处理。5.5.数据库数据库(DB database)(DB database)具有一定的组织方式、存储在计算机外部存储器中的、具有一定的组织方式、存储在计算机外部存储器中的、相互关联的、可共享的数据集合。相互关联的、可共享的数据集合。6.6.数据库管理系统数据库管理系统(DBMS database management system)(DBMS database management system)用于建立、操
6、纵、运行管理、维护和控制管理数据库的用于建立、操纵、运行管理、维护和控制管理数据库的程序集合。程序集合。通常为用户提供数据定义语言(通常为用户提供数据定义语言(DDLDDL)、数据操纵语言)、数据操纵语言(DMLDML)和数据控制语言()和数据控制语言(DCLDCL)等。)等。数据库系统的构成数据库系统的构成数据库数据库DBDBMS数据库管理数据库管理系统系统DBA完成某一功能的应用程序完成某一功能的应用程序1 1应用程序应用程序2 2应用程序应用程序n nDBAP 1DBAP 2DBAP n计计 算算 机机 系系 统统二、二、数据库系统的三级模式结构数据库系统的三级模式结构应用A应用B应用C
7、应用D外模式外模式1 1外模式外模式2 2外模式外模式3 3概念模式概念模式内模式内模式数据库外模式外模式/概念模式映象概念模式映象概念模式概念模式/内模式映象内模式映象DBMSDBMSOSOS19781978年由美国年由美国ANSI/SPARCANSI/SPARC数据库管理系统研究组提出数据库管理系统研究组提出1.1.三级模式三级模式l外模式:又称子模式或用户模式,是数据库用户看到的数外模式:又称子模式或用户模式,是数据库用户看到的数据视图。既描述用户视图中记录的组成、相互联系等。据视图。既描述用户视图中记录的组成、相互联系等。l概念模式:又称模式或逻辑模式,是数据库中全体数据的概念模式:又
8、称模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述。逻辑结构和特征的描述。l内模式:又称存储模式,使数据在数据库系统内部的表示,内模式:又称存储模式,使数据在数据库系统内部的表示,即为数据的物理结构和存储方式的描述。即为数据的物理结构和存储方式的描述。2.2.两级映像两级映像 外模式外模式/概念模式映像;概念模式概念模式映像;概念模式/内模式映像内模式映像3.3.两级独立性两级独立性l逻辑独立性:当数据的全局逻辑结构发生变化时,应用程逻辑独立性:当数据的全局逻辑结构发生变化时,应用程序不变。序不变。l物理独立性:当数据的存储结构发生变化时,应用程序不物理独立性:当数据的存储结构发生变化
9、时,应用程序不变。变。现实世界客观事物的抽象过程现实世界客观事物的抽象过程 现实世界信息世界:概念模型机器世界:具体DBMS支持的数据模型转换人的认识抽象三、实体三、实体-联系模型(联系模型(E-RE-R模型)模型)1.1.实体实体 客观存在并相互区别的事物。客观存在并相互区别的事物。如:具体的人、事、物;抽象的学生、选课等。如:具体的人、事、物;抽象的学生、选课等。2.2.实体集实体集 性质相同的同类实体的集合。性质相同的同类实体的集合。如:所有的学生、所有的课程。如:所有的学生、所有的课程。3.3.属性属性 实体所具有的某一特性。实体所具有的某一特性。包含:属性的型:学生的姓名,系别包含:
10、属性的型:学生的姓名,系别 属性的值:张三,计算机系属性的值:张三,计算机系4.4.实体型实体型 用实体名及其属性名集合来抽象和刻画同类实体。用实体名及其属性名集合来抽象和刻画同类实体。例如:学生(学号、姓名、系别例如:学生(学号、姓名、系别)四、结构数据模型四、结构数据模型 根据描述数据库的根据描述数据库的模式模式所使用的数据模型,可分为层次所使用的数据模型,可分为层次型、网状型、关系型和面向对象型四种型、网状型、关系型和面向对象型四种基本类型基本类型 。1.1.层次型层次型 代表系统:代表系统:IBMIBM的的IMS 20IMS 20世纪世纪6060年代年代 数据结构:树型结构数据结构:树
11、型结构 优点:数据模型简单,能描述优点:数据模型简单,能描述1 1:1 1、1 1:n n联系、存取效联系、存取效率高。率高。缺点:不能描述缺点:不能描述m m:n n联系,必须事先确定存取路径,难联系,必须事先确定存取路径,难以改变实体集间的关系。以改变实体集间的关系。2.2.网状型网状型 代表系统:代表系统:CODASYL CODASYL的的DBTGDBTG 数据结构:图结构数据结构:图结构 优点:能描述优点:能描述m m:n n联系,存取效率高。联系,存取效率高。缺点:必须事先确定存取路径,难以改变实体缺点:必须事先确定存取路径,难以改变实体集间的关系集间的关系 ,难学难用。,难学难用。
12、网状数据模型网状数据模型关系数据模型关系数据模型学号学号学号学号姓名姓名姓名姓名性别性别性别性别年龄年龄年龄年龄籍贯籍贯籍贯籍贯0101010101010101李勇李勇李勇李勇男男男男20202020江苏江苏江苏江苏0102010201020102刘晨刘晨刘晨刘晨女女女女19191919山东山东山东山东0103010301030103王明王明王明王明女女女女20202020北京北京北京北京0199019901990199张立张立张立张立男男男男18181818陕西陕西陕西陕西学生情况简表学生情况简表学生情况简表学生情况简表3.3.具有较高的数据独立性具有较高的数据独立性 物理数据独立性:内模式
13、改变时,不影响模式、物理数据独立性:内模式改变时,不影响模式、外模式和应用程序。外模式和应用程序。逻辑数据独立性:模式改变时,不影响外模式逻辑数据独立性:模式改变时,不影响外模式和应用程序。和应用程序。四、数据库的基本特征四、数据库的基本特征 与文件系统相比较,数据库有以下基本特征:与文件系统相比较,数据库有以下基本特征:1.1.数据是结构化的:描述数据与数据间的联系,将数据是结构化的:描述数据与数据间的联系,将整个组织的数据结构化成一个数据整体。整个组织的数据结构化成一个数据整体。2.2.数据共享,具有较小的数据冗余度,容易扩充。数据共享,具有较小的数据冗余度,容易扩充。4.4.统一的数据控
14、制和数据恢复功能统一的数据控制和数据恢复功能 数据完整性控制、数据安全性控制、数据并发数据完整性控制、数据安全性控制、数据并发性控制、数据恢复性控制、数据恢复2.2 2.2 关系数据库关系数据库一、基本概念一、基本概念1.1.关系定义关系定义 设有属性设有属性设有属性设有属性A A A A1 1 1 1、A A A A2 2 2 2、A A A An n n n分别在域分别在域分别在域分别在域D D D D1 1 1 1、D D D D2 2 2 2、D D D Dn n n n中取值,则笛卡儿积中取值,则笛卡儿积中取值,则笛卡儿积中取值,则笛卡儿积D D D D1 1 1 1D D D D2
15、 2 2 2 D D D Dn n n n的一个子集,的一个子集,的一个子集,的一个子集,称为域称为域称为域称为域D D D D1 1 1 1、D D D D2 2 2 2、D D D Dn n n n上的一个关系。记为上的一个关系。记为上的一个关系。记为上的一个关系。记为R R R R。例如:例如:姓名姓名张三张三李四李四王五王五性别性别男男女女=张三张三 男男张三张三 女女李四李四 男男李四李四 女女王五王五 男男王五王五 女女关系关系2.2.元组元组 关系中的一个元素。关系中的一个元素。3.3.元数元数 一个关系中的所含属性的个数。一个关系中的所含属性的个数。4.4.关键字关键字 一个关
16、系中能唯一标识每个元组的属性集合。也称为码。一个关系中能唯一标识每个元组的属性集合。也称为码。主关键字:被选中的关键字。候选关键字:未被选中的关键字。主关键字:被选中的关键字。候选关键字:未被选中的关键字。5.5.关系模式关系模式 关系中的所含属性的集合。记为关系中的所含属性的集合。记为R(R(A1,A2,AnA1,A2,An)。如:如:关系模式:学生(学号、姓名、性别、年龄、籍贯)关系模式:学生(学号、姓名、性别、年龄、籍贯)6.6.关系数据库关系数据库 关系模式及其各关系当前值的集合。关系模式及其各关系当前值的集合。7.7.关系的基本性质关系的基本性质1)1)关系中的属性是同质的,一属性的
17、值同类型关系中的属性是同质的,一属性的值同类型2)2)一个关系中的属性名是唯一的一个关系中的属性名是唯一的3)3)属性的次序可任意调换属性的次序可任意调换4)4)关系中的属性是不可再分的数据项关系中的属性是不可再分的数据项5)5)元组的次序可任意调换元组的次序可任意调换6)6)同一关系中无重复元组同一关系中无重复元组,即唯一性即唯一性二、关系模型的完整性二、关系模型的完整性1.1.域完整性域完整性属性值应是域中值或为空。属性值应是域中值或为空。如:职工年龄在如:职工年龄在18601860之间,月份在之间,月份在112112之间之间2.2.实体完整性实体完整性 关系表中的所有的表都必须有主码,而
18、且表中不允关系表中的所有的表都必须有主码,而且表中不允许存在如下的记录:许存在如下的记录:无主码值的记录;无主码值的记录;主码值相同的记录主码值相同的记录 如:职工关系中的职工编号如:职工关系中的职工编号3.3.用户定义的完整性用户定义的完整性如:规定职工奖金不得超过该部门平均工资的如:规定职工奖金不得超过该部门平均工资的30%30%二、关系模型的完整性二、关系模型的完整性4.4.参照完整性约束参照完整性约束 外码:取作本表属性之一的外表主码(主码值先在其主表中生成,后在其他表中引用)外码的取值只能是参照表中主码的有效值或空值。外码的取值只能是参照表中主码的有效值或空值。如:职工关系中的部门编
19、号或为空,或一正确值如:职工关系中的部门编号或为空,或一正确值 n 1职工部门(ENO,DNO,ENAME)(DNO,DNAME)三、关系运算三、关系运算1.1.传统的集合运算传统的集合运算1)1)并运算并运算:RS:RS 同类关系同类关系R R、S S的所有元组合并,删去重复的元组的所有元组合并,删去重复的元组c c4 4b bd d4 4a ac c2 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aC CB BA Ac c4 4b bc c2 2a ad d6 6a ad d4 4a aC CB BA ARSRSc c4 4b bd d4 4a ac c2
20、 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aC CB BA Ac c4 4b bd d4 4a aC CB BA ARSRS3)3)交运算:交运算:RS RS 同类关系同类关系R R与与S S的交由既属于的交由既属于R R又属于又属于S S的元组组成的集合构的元组组成的集合构成成RS=R-RS=R-(R-SR-S)c c4 4b bd d4 4a ac c2 2a aC CB BA Ac c4 4b bd d6 6a ad d4 4a aD DC CB BRSRS4)4)笛卡儿积:笛卡儿积:RS RS 关系关系R R、S S不要求同类不要求同类c c4 4
21、b bd d4 4a ad d6 6a ad d4 4a ad d4 4a ad d4 4a ad d4 4a ac c4 4b bc c4 4b bc c4 4b bd d6 6a ac c4 4b bc c4 4b bc c2 2a ac cc c2 22 2a aa ad d6 6a ad d4 4a aR.CR.CR.BR.BR.AR.AS.DS.DS.CS.CS.BS.B2 2)投影运算)投影运算CSCSM M2222F FS6S6MAMAF F2020E ES5S5CICIF F1919D DS4S4MAMAM M1919C CS3S3CSCSF F2121B BS2S2CSCSM
22、 M2020A AS1S1DEPDEPSEXSEXAGEAGESNSNS#S#CSCSF FMAMAE ECICID DMAMAC CCSCSB BCSCSA ADEPDEPSNSNCICIMAMACSCSDEPDEPS?对学生姓名和所在系属性取投影?对学生姓名和所在系属性取投影 SN,DEP(S)?查询学生关系中都有哪些系?查询学生关系中都有哪些系 DEP(S)Attr(S)其中:其中:AttrAttr是关系是关系S S的一个属性子集的一个属性子集3 3)连接运算)连接运算c c4 4a3a3d d4 4a2a2c c2 2a1a1C CB BA A1010e e4 4d dE ED D10
23、10e ec c4 4a3a31010e ed d4 4a2a21010e ec c2 2a1a14 4d dc c2 2a1a1E ED DC CB BA ARS4 4d dc c4 4a3a34 4d dd d4 4a2a21010e ec c4 4a3a31010e ed d4 4a2a21010e ec c2 2a1a14 4d dc c2 2a1a1E ED DC CB BA ARS 其中:其中:F F是一个条件表达式(逻辑表达式或布尔表达式)是一个条件表达式(逻辑表达式或布尔表达式)RFS=F(RS)RB20(S)S#(C#=C2(SC)1.求年龄超过求年龄超过20岁学生的姓名和性
24、别岁学生的姓名和性别2.求选修求选修C2课程的学生学号课程的学生学号3.求选修求选修C2课程的学生学号、姓名课程的学生学号、姓名 S#,SN()SS.S#=SC.S#and C#=C2 SC S#,SN()SS.S#=SC.S#(S#,C#(SC)C#(C)4.求选修了全部课程的学生学号和姓名求选修了全部课程的学生学号和姓名2.3 SQL2.3 SQL语言语言一、一、一、一、SQLSQLSQLSQL概述概述概述概述 SQL-Structured Query Language SQL-Structured Query Language SQL-Structured Query Language
25、SQL-Structured Query Language 1974 1979 1974 1979 1974 1979 1974 1979年,在年,在年,在年,在IBMIBMIBMIBM的的的的System RSystem RSystem RSystem R上实现。上实现。上实现。上实现。1986.10 1986.10 1986.10 1986.10批准为美国标准。不久被接受为国际标准。批准为美国标准。不久被接受为国际标准。批准为美国标准。不久被接受为国际标准。批准为美国标准。不久被接受为国际标准。1989 1989 1989 1989年公布年公布年公布年公布SQL89SQL89SQL89SQ
26、L89国际标准。国际标准。国际标准。国际标准。1992 1992 1992 1992年公布年公布年公布年公布SQL92SQL92SQL92SQL92国际标准,常称为国际标准,常称为国际标准,常称为国际标准,常称为SQL2SQL2SQL2SQL2。1999 1999 1999 1999年公布年公布年公布年公布SQL99SQL99SQL99SQL99国际标准,常称为国际标准,常称为国际标准,常称为国际标准,常称为SQL3SQL3SQL3SQL3。SQL SQL SQL SQL具有以下特点:具有以下特点:具有以下特点:具有以下特点:1.1.1.1.功能丰富功能丰富功能丰富功能丰富 2.2.2.2.语
27、言简洁语言简洁语言简洁语言简洁,高度非过程化高度非过程化高度非过程化高度非过程化,容易学习使用容易学习使用容易学习使用容易学习使用 3.3.3.3.即可交互使用即可交互使用即可交互使用即可交互使用,又可嵌入到高级程序设计语言中又可嵌入到高级程序设计语言中又可嵌入到高级程序设计语言中又可嵌入到高级程序设计语言中 4.4.4.4.便于移植便于移植便于移植便于移植二、二、SQL SQL数据定义语言数据定义语言DDL(Data Definition Language)DDL(Data Definition Language)1.1.基本表基本表 -实际存放数据的表实际存放数据的表3)3)删除基本表删除
28、基本表 DROP TABLE DROP TABLE 表名表名;如如:DROP TABLE Student;:DROP TABLE Student;2)2)修改基本表修改基本表 ALTER TABLE ALTER TABLE 表名表名 ADD ADD 新列名新列名 类型类型;如如:ALTER TABLE Student ADD Sex CHAR(2);:ALTER TABLE Student ADD Sex CHAR(2);1)1)定义基本表定义基本表 CREATE TABLE CREATE TABLE 表名表名(列名列名1 1 类型类型 NOT NULL NOT NULL ,列名列名2 2 类
29、型类型 NOT NULL )NOT NULL )其他参数其他参数;如如:CREATE TABLE Student(Sno CHAR(10)NOT NULL,:CREATE TABLE Student(Sno CHAR(10)NOT NULL,Sn CHAR(10),Age NUMBER(2);Sn CHAR(10),Age NUMBER(2);2.2.索引索引 加速存取数据加速存取数据 2)2)删除索引删除索引 DROP INDEX DROP INDEX 索引名索引名;如如:DROP INDEX ISno;:DROP INDEX ISno;1)1)定义索引定义索引 CREATE UNIQUE
30、INDEX CREATE UNIQUE INDEX 索引名索引名 ON ON 基表名基表名(列名列名1 1 次序次序 ,列名列名2 2 次序次序)其他参数其他参数;其中其中:次序次序-ASC-ASC表示升序表示升序,为缺省值为缺省值 DESC DESC表示降序表示降序如如:CREATE INDEX ISno ON Student(Sno);:CREATE INDEX ISno ON Student(Sno);SELECT DISTINCT SELECT DISTINCT SELECT DISTINCT SELECT DISTINCT 目标表达式目标表达式目标表达式目标表达式,目标表达式目标表达
31、式目标表达式目标表达式 FROM FROM FROM FROM 基表名基表名基表名基表名/视图名视图名视图名视图名,基表名基表名基表名基表名/视图名视图名视图名视图名 WHERE WHERE WHERE WHERE 条件条件条件条件 GROUP BY GROUP BY GROUP BY GROUP BY 子句子句子句子句 ORDER BY ORDER BY ORDER BY ORDER BY 子句子句子句子句;三、三、SQLSQL的的DMLDML语言语言1.1.查询语句查询语句格式格式工程工程零件零件供应商数据库供应商数据库上海上海4040为民为民S5S5天津天津3030丰盛泰丰盛泰S4S4北
32、京北京4040东方红东方红S3S3北京北京2020盛锡盛锡S2S2天津天津3030精益精益S1S1CITYCITYSTATUSSTATUSSNAMESNAMESNOSNOS南京南京半导体厂半导体厂J5J5唐山唐山机车厂机车厂J4J4天津天津船厂船厂J3J3长春长春一汽一汽J2J2北京北京三建三建J1J1CITYCITYJNAMEJNAMEJNOJNOJP红红2121齿轮齿轮P4P4黑黑3535凸轮凸轮P3P3绿绿1919螺栓螺栓P2P2红红1717螺母螺母P1P1WEIGHTWEIGHTCOLORCOLORPNAMEPNAMEPNOPNO300300P3P3S3S3100100P2P2S3S3
33、200200P5P5S2S2300300P5P5S2S2500500P3P3S2S2400400P3P3S2S2150150P3P3S2S2100100P3P3S2S2300300P2P2S1S1200200P1P1S1S1100100P1P1S1S1200200P1P1S1S1JNOJNOPNOPNOSNOSNOSPJQTYQTYJ1J1J2J2J3J3J2J2J5J5J4J4J2J2J1J1J4J4J5J5J2J2J1J1400400P3P3S5S5150150P3P3S5S5100100P3P3S5S5300300P2P2S5S5200200P1P1S4S4100100P1P1S4S42
34、00200P1P1S4S4JNOJNOPNOPNOSNOSNOQTYQTYJ4J4J2J2J1J1J4J4J5J5J2J2J1J1例例例例1.1.1.1.列出全体供应商的情况列出全体供应商的情况列出全体供应商的情况列出全体供应商的情况.SELECT *FROM S;SELECT *FROM S;例例2.2.列出全体供应商的编号、名称和所在城市列出全体供应商的编号、名称和所在城市.SELECT SNOSELECT SNO,SNAMESNAME,CITY FROM S;CITY FROM S;例例3.3.列出供应列出供应“P2”“P2”零件的最大数量零件的最大数量.SELECT SELECT MA
35、XMAX(QTYQTY)FROM SPJ FROM SPJ WHERE PNO=P2;WHERE PNO=P2;例例4.4.按供应按供应“P2”“P2”零件数量的降序列出供应商的编零件数量的降序列出供应商的编号号.SELECT SNOSELECT SNO,QTY FROM SPJQTY FROM SPJ WHERE PNO=P2 WHERE PNO=P2 ORDER BY QTY DESC ORDER BY QTY DESC;MAX(MAX(列名列名)MIN()MIN(列名列名)SUM()SUM(列名列名)AVG()AVG(列名列名)COUNT()COUNT(列名列名)称称为聚合函数为聚合函数
36、 其中:其中:其中:其中:ININININ称为谓词,用法是:称为谓词,用法是:称为谓词,用法是:称为谓词,用法是:列名列名列名列名 NOT IN(NOT IN(NOT IN(NOT IN(常数表常数表常数表常数表 或或或或 SELECT SELECT SELECT SELECT语句语句语句语句)例例5.5.列出供应了列出供应了“P2”“P2”或或“P3”“P3”零件的供应商的编号零件的供应商的编号.SELECT SNO FROM SPJSELECT SNO FROM SPJ WHERE PNO=P2 OR WHERE PNO=P2 OR PNO=P3 PNO=P3;SELECT SNO FRO
37、M SPJSELECT SNO FROM SPJ WHERE WHERE PNO IN PNO IN(P2P2,P3P3);SELECT SELECT DISTINCTDISTINCT SNO FROM SPJ SNO FROM SPJ WHERE WHERE PNO IN PNO IN(P2P2,P3P3);为了避免重复列出的供应了为了避免重复列出的供应了“P2”“P2”或或“P3”“P3”零件零件的供应商的编号,可写为:的供应商的编号,可写为:或或例例6.6.列出供应了列出供应了“P2”“P2”或或“P3”“P3”零件的供应商的编号和名零件的供应商的编号和名称称.SELECT DISTIN
38、CT SNOSELECT DISTINCT SNO,SNAMESNAME FROM S FROM S,SPJSPJ WHERE WHERE PNO IN PNO IN(P2P2,P3P3)AND S.SNO=SPJ.SNO AND S.SNO=SPJ.SNO ;Select distinct sno Select distinct sno,sname sname from s from s where sno in(Select sno where sno in(Select sno from spj from spj where where pno in pno in(P2,P3)(P2,P
39、3););或或谓词谓词LIKELIKE 的用法是:的用法是:列名列名 NOT LIKE NOT LIKE 匹配串匹配串在在“匹配串匹配串”中,可出现以下通配符:中,可出现以下通配符:%表示若干个任意字符表示若干个任意字符 _ _(下划线)(下划线)表示一个任意字符表示一个任意字符例例7.7.列出所在城市为列出所在城市为“天津天津”的供应商的情况的供应商的情况.SELECT *FROM SSELECT *FROM S WHERE CITY=WHERE CITY=天津天津 ;这样的语句不能列出所在城市为这样的语句不能列出所在城市为“天津市天津市”、“天津天津”、“中国天津中国天津”等供应商的情况等
40、供应商的情况.可使用谓词可使用谓词LIKELIKE查查询。询。SELECT *FROM SSELECT *FROM S WHERE CITY LIKE%WHERE CITY LIKE%天津天津%;上面的语句写为:上面的语句写为:例例8.8.列出至少供应某工程三种以上零件的供应商信列出至少供应某工程三种以上零件的供应商信息和相应工程编号。息和相应工程编号。SELECT JNO,S.*SELECT JNO,S.*FROM S,SPJ FROM S,SPJ WHERE S.SNO=SPJ.SNO WHERE S.SNO=SPJ.SNO GROUP BY JNO,SNOGROUP BY JNO,SNO
41、 HAVING COUNT(*)2HAVING COUNT(*)2 ORDER BY JNO,SNO ORDER BY JNO,SNO;这个语句的执行过程:这个语句的执行过程:100100P3P3S2S2J1J1JNOJNOPNOPNOSNOSNO将将SPJ按按JNO、SNO分组分组QTYQTY300300P3P3S3S3J1J1100100P2P2S2S2J2J2200200P5P5S2S2J3J3300300P5P5S2S2J2J2500500P3P3S2S2J5J5400400P3P3S2S2J4J4150150P3P3S2S2J2J2300300P2P2S1S1J4J4200200P1
42、P1S1S1J5J5100100P1P1S1S1J2J2200200P1P1S1S1J1J1JNOJNOPNOPNOSNOSNOQTYQTY150150P3P3S5S5J2J2100100P3P3S5S5J1J1300300P2P2S5S5J4J4200200P1P1S4S4J5J5100100P1P1S4S4J2J2200200P1P1S4S4J1J1400400P3P3S5S5J4J4将各分组按将各分组按HAVING子句计算,子句计算,结果为:结果为:JNO SNO SNAME STATUS CITY J2 S2 盛锡盛锡 20 20 北京北京例例9.9.列出供应了列出供应了“P2”“P2
43、”和和“P3”“P3”零件的供应商的编号和名零件的供应商的编号和名称称.SELECT S.SNO,S.SNAMESELECT S.SNO,S.SNAME FROM FROM SPJ S1,SPJ S2SPJ S1,SPJ S2,S,S WHERE S1.SNO=S2.SNO WHERE S1.SNO=S2.SNO AND S2.SNO=S.SNO AND S2.SNO=S.SNO AND S1.PNO=P2 AND S1.PNO=P2 AND S2.PNO=P3 AND S2.PNO=P3 ORDER BY S.SNO ORDER BY S.SNO;其中其中:SPJ S1,SPJ S2SPJ
44、S1,SPJ S2表示自连接表示自连接 S1.SNO=S2.SNOS1.SNO=S2.SNO表示自连接条件表示自连接条件例例10.10.列出供应了列出供应了“P2”“P2”零件的供应商的编号和名称零件的供应商的编号和名称.SELECT SNO,SNAMESELECT SNO,SNAME FROM S FROM S WHERE WHERE EXISTSEXISTS (SELECT*(SELECT*FROM SPJ FROM SPJ WHERE PNO=P2 WHERE PNO=P2 AND AND S.SNO=SNOS.SNO=SNO););其中其中:EXISTSEXISTS是谓词是谓词,其用法
45、为其用法为:NOT NOT EXISTSEXISTS (子查询子查询)INSERT INTO INSERT INTO 表名表名 (列名表列名表)VALUES ()VALUES (常量表常量表););2.2.插入语句插入语句格式格式或者或者INSERT INTO INSERT INTO 表名表名 (列名表列名表)()(子查询子查询););例例1.1.插入一个插入一个供应商的情况供应商的情况.例例2.2.把把SPJSPJ中中QTY=100QTY=100的供应商号、零件号和工程号的供应商号、零件号和工程号插入插入到到SPJ2SPJ2中中.Create table spj2(sno char(6)no
46、t null,Create table spj2(sno char(6)not null,pno char(10),jno char(10);pno char(10),jno char(10);Insert into spj2(sno,pno,jno)Insert into spj2(sno,pno,jno)(Select sno(Select sno,pnopno,jno from spj where qty=100);jno from spj where qty=100);INSERT INTO INSERT INTO S S VALUES (VALUES (S6,S6,恒利恒利,25,2
47、5,兰州兰州););DELETE FROM DELETE FROM 表名表名 WHERE WHERE 条件条件;3.3.删除语句删除语句格式格式例例1.1.删除一个删除一个供应商的情况供应商的情况.例例2.2.从从SPJSPJ中中删除删除STATUS30STATUS30的供应商的供应信息的供应商的供应信息.DELETE DELETE FROM FROM SPJ SPJ WHERE SNOWHERE SNO ININ (SELECT SNO FROM S (SELECT SNO FROM S WHERE STATUS 30);WHERE STATUS 30);DELETE FROM DELETE
48、 FROM S S WHERE SNO=WHERE SNO=S1S1;UPDATE UPDATE 表名表名 SET SET 列名列名=表达式表达式,列名列名=表达式表达式 WHERE WHERE 条件条件;4.4.修改语句修改语句格式格式例例1.1.修改一个修改一个供应商的供应商的STATUS.STATUS.例例2.2.把把SPJSPJ中全体红色零件的供应量增加中全体红色零件的供应量增加30%.30%.UPDATE UPDATE SPJ SPJ SET QTY=QTY*1.3 SET QTY=QTY*1.3 WHERE PNO WHERE PNO ININ (SELECT PNO FROM P
49、 (SELECT PNO FROM P WHERE COLOR=WHERE COLOR=红红 ););UPDATE UPDATE S SET STATUS=50 S SET STATUS=50 WHERE SNO=WHERE SNO=S1S1;5.5.视图视图6.6.视图是虚表,从一个或几个基本表(或视图)导出视图是虚表,从一个或几个基本表(或视图)导出 视图的优点视图的优点(用途用途)(1)(1)简化用户的操作:能够为复杂的查询构造视图,简化用户的操作:能够为复杂的查询构造视图,能够隐藏数据的复杂性能够隐藏数据的复杂性 (2)(2)使不同用户共享同一个数据库,减少冗余使不同用户共享同一个数据
50、库,减少冗余 (3)(3)提供了一定的逻辑独立性提供了一定的逻辑独立性 (4)(4)有利于数据的安全保密有利于数据的安全保密1)1)定义视图定义视图格式格式 CREATE VIEW CREATE VIEW 视图名视图名 (列名表列名表)AS )AS 子查询子查询例例1 1 创建一个有关计算机系学生情况的视图创建一个有关计算机系学生情况的视图CS_SCS_S。CREATE VIEW CS_S CREATE VIEW CS_S AS SELECT Sno,Sn,Age,Sex AS SELECT Sno,Sn,Age,Sex FROM Student FROM Student WHERE Dept