软件工程之关系数据库基础幻灯片.ppt
软件工程之关系数据库基础第1页,共39页,编辑于2022年,星期三2数据库系统构成 数据库系统(数据库系统(DataBase SystemDataBase System,简称为,简称为DBSDBS)是指计算机系)是指计算机系统中引入数据库后的系统,由数据库、软件(操作系统、数据库管理统中引入数据库后的系统,由数据库、软件(操作系统、数据库管理系统、开发工具、编译系统和应用系统等)、用户、硬件构成系统、开发工具、编译系统和应用系统等)、用户、硬件构成。数据库数据库硬件硬件数据库系统数据库系统软件软件操作系统操作系统 OS数据库管理系统数据库管理系统 DBMS高级语言编译系统高级语言编译系统各种各种应用应用开发工具开发工具应用系统应用系统用户用户终端用户终端用户应用程序员应用程序员数据库管理员数据库管理员数据库系统分析与设计人员数据库系统分析与设计人员 第2页,共39页,编辑于2022年,星期三3数据库系统的构成图DatabaseOSDBMS应用开发工具应用开发工具应用程序应用程序DBA用户用户A用户用户C用户用户B应用程序员应用程序员第3页,共39页,编辑于2022年,星期三数据库系统的构成图24有组织的集成的可共享的数据数据集合 DBDBMSComputer SystemSQLSQLOSDBA完成某一功能的应用程序1应用程序2应用程序nDBAP 1DBAP 2DBAP n应用程序员第4页,共39页,编辑于2022年,星期三关系数据库实例5第5页,共39页,编辑于2022年,星期三6数据库管理系统 数据库管理系统(数据库管理系统(Data Base Management Data Base Management SystemSystem,简称,简称DBMSDBMS)是位于用户与操作系统之间)是位于用户与操作系统之间的一种非常复杂的、对数据库进行管理的系统软的一种非常复杂的、对数据库进行管理的系统软件。它在操作系统支持下工作。在确保数据件。它在操作系统支持下工作。在确保数据“安安全可靠全可靠”的同时,提高用户使用的同时,提高用户使用“数据数据”的简明的简明性和方便性。用户对数据的一切操作,包括性和方便性。用户对数据的一切操作,包括数据数据定义定义、查询查询、更新更新及各种及各种控制控制,都是通过,都是通过DBMSDBMS进进行。行。第6页,共39页,编辑于2022年,星期三DBMS的主要功能p 数据库定义功能数据库定义功能允允许许用用户户用用一一种种叫叫做做数数据据定定义义语语言言的的专专用用语语言言建建立立新新的的数数据据库库和和指指定定它它们的逻辑结构(也称为模式)。们的逻辑结构(也称为模式)。p 数据存取功能数据存取功能使用户能够用适当的语言查询数据和更新(插入、修改和删除)数据。使用户能够用适当的语言查询数据和更新(插入、修改和删除)数据。p 数据控制功能数据控制功能对对数数据据库库安安全全性性、完完整整性性和和并并发发性性(多多用用户户对对数数据据的的并并发发使使用用)进进行行有有效效的的控控制制和管理,确保数据库中数据正确有效和数据库系统的有效运行。和管理,确保数据库中数据正确有效和数据库系统的有效运行。p 数据库的建立维护功能数据库的建立维护功能对数据库转储、恢复、重组织、系统性能监视分析等数据库维护工作。对数据库转储、恢复、重组织、系统性能监视分析等数据库维护工作。DBMSDBMS是由许多是由许多“系统程序系统程序”所组成的一个集合。每个程序都有自己的功能,一个或几个程所组成的一个集合。每个程序都有自己的功能,一个或几个程序一起完成序一起完成DBMSDBMS的一个或几个功能。各种的一个或几个功能。各种DBMSDBMS的组成因系统而异,一般说来,它由的组成因系统而异,一般说来,它由语言编译处理程序;系统运行控制程序;系统建立、维护程序;数据字典等程序语言编译处理程序;系统运行控制程序;系统建立、维护程序;数据字典等程序组成。组成。7第7页,共39页,编辑于2022年,星期三数据库的用户p终端用户终端用户 p应用程序员应用程序员p数据库管理员数据库管理员 l系统需求分析、数据库设计、系统功能设计与实现。系统需求分析、数据库设计、系统功能设计与实现。l数据库系统软件的安装和维护数据库系统软件的安装和维护l监控监控DBMSDBMS的运行,系统参数的配置与调整的运行,系统参数的配置与调整l权限管理权限管理l日常维护(备份与恢复)日常维护(备份与恢复)lDBDB中的数据进行扩充或重组中的数据进行扩充或重组lDBDB的文档管理的文档管理8第8页,共39页,编辑于2022年,星期三计算机硬件系统p硬件硬件l存储数据库和运行存储数据库和运行DBMSDBMS、OSOS的硬件资源的硬件资源 。p要求要求l需需要要足足够够大大的的内内存存来来存存放放OSOS,DBMSDBMS核核心心模模块块、数数据据库库数数据据缓冲区和应用程序缓冲区和应用程序l由由于于数数据据库库中中数数据据庞庞大大,需需要要足足够够大大的的磁磁盘盘等等直直接接存存取取设备存储数据设备存储数据l为安全,需要足够的磁带、光盘等存贮介质做数据库的备份为安全,需要足够的磁带、光盘等存贮介质做数据库的备份l要求具有较高的通道能力,以提高数据传送率要求具有较高的通道能力,以提高数据传送率l要求系统支持联网能力要求系统支持联网能力 9第9页,共39页,编辑于2022年,星期三10目前常用的DBMSp目前常用的目前常用的 DBMS lORACLE(甲骨文)lDB2(IBM)lSYBASElMicrosoft SQL Server 2000、2005(MS)lMYSQLlACCESSlxBASE类:Visual FoxPro dBASEp常用的开发工具常用的开发工具lPower BuilderPower BuilderlDelphiDelphilVisual BASICVisual BASIC,Visual Studio.NetVisual Studio.Net等。等。l数据库厂商提供的开发工具。例如,数据库厂商提供的开发工具。例如,ORACLEORACLE的的Design 2000Design 2000和和SYBASESYBASE的的Power DesignerPower Designer。第10页,共39页,编辑于2022年,星期三关系模型概述p关系数据库关系数据库l 使用关系模型的数据库使用关系模型的数据库p关系数据库系统关系数据库系统l 支持关系模型的数据库系统支持关系模型的数据库系统p关系模型关系模型l 关系数据结构、关系操作集合和关系完整性约束三部分组关系数据结构、关系操作集合和关系完整性约束三部分组成成111.1.关系数据结构关系数据结构(二维表二维表)2.2.关系操作集合关系操作集合3.3.关系完整性约束关系完整性约束关系关系模型模型实体完整性实体完整性参照完整性参照完整性用户定义完整性用户定义完整性第11页,共39页,编辑于2022年,星期三12关系数据模型关系模型是用关系模型是用二维表格结构二维表格结构来表示实体以及实体间联系的模型来表示实体以及实体间联系的模型p 关系模型的数据结构关系模型的数据结构关系模型的数据结构是一个关系模型的数据结构是一个“二维表框架二维表框架”组成的集合,每个二维表又可组成的集合,每个二维表又可称为关系,因此可以说,关系模型是称为关系,因此可以说,关系模型是“关系框架关系框架”组成的集合。组成的集合。p 关系模型使用的术语关系模型使用的术语关系:关系可理解为由关系(二维表)的框架和若干元组构成。关系:关系可理解为由关系(二维表)的框架和若干元组构成。元组:表中的行。通常称为元组:表中的行。通常称为记录记录。属性:表中的列,通常称为属性:表中的列,通常称为字段字段。关系键:表中的某个属性组,它的值可以唯一确定一个关系键:表中的某个属性组,它的值可以唯一确定一个记录记录。域:属性的取值范围。域:属性的取值范围。分量:分量:记录记录中的一个属性值。中的一个属性值。第12页,共39页,编辑于2022年,星期三13关系数据模型-关系实例学号学号姓名姓名性别性别年龄年龄籍贯籍贯9901李勇李勇男男20江苏江苏9902刘晨刘晨女女19山东山东9903王明王明女女20北京北京9999张立张立男男18陕西陕西学生记录表学生记录表学生记录表学生记录表关系名关关系系记录(行)字段(列)关系键男女域分量关系模式:学生(学号、姓名、性别、年龄、籍贯)学生(学号、姓名、性别、年龄、籍贯)学生(学号、姓名、性别、年龄、籍贯)学生(学号、姓名、性别、年龄、籍贯)字段名第13页,共39页,编辑于2022年,星期三14关系键p关系键的文字定义:关系键的文字定义:在关系中能惟一标识元组的一个属性或不包含有多余属性在关系中能惟一标识元组的一个属性或不包含有多余属性的属性组合称为该关系的关系键。的属性组合称为该关系的关系键。学号课程号成绩9901990199029903C1C2C2C390807080学号姓名年龄性别所在系9901990299039904张三李四王五赵六20181920男女女男计算机计算机计算机计算机第14页,共39页,编辑于2022年,星期三15候选键和主关系键,主属性和非主属性p 候选键、主关系键候选键、主关系键某些关系中会发现具有关系键特性的属性或属性组有多个,那么把他们都称某些关系中会发现具有关系键特性的属性或属性组有多个,那么把他们都称为该关系的候选关系键,或称为候选关键字或候选码。从候选关系键中选择为该关系的候选关系键,或称为候选关键字或候选码。从候选关系键中选择一个作为主关系键(也称为主键、主关键字、主码)。一个作为主关系键(也称为主键、主关键字、主码)。为了惟一地标识表中的每一个记录,保证记录的惟一性,每个表都必须选择为了惟一地标识表中的每一个记录,保证记录的惟一性,每个表都必须选择一个主关系键,而且只能有一个主关系键。对于任意一个表,主关系键一经一个主关系键,而且只能有一个主关系键。对于任意一个表,主关系键一经选定,通常是不能随意改变的。选定,通常是不能随意改变的。p 主属性主属性包含在关系键中的属性包含在关系键中的属性p 非主属性非主属性不包含在关系键中的属性称为非主属性不包含在关系键中的属性称为非主属性第15页,共39页,编辑于2022年,星期三16外部关系键p如果关系如果关系R2的一个或一组属性的一个或一组属性X不是不是R2的关系键,而是另一关系的关系键,而是另一关系R1的关的关系键,则该属性或属性组系键,则该属性或属性组X称为关系称为关系R2的外部关系键的外部关系键(或称外关键字或或称外关键字或外部码外部码)。外部关系键与其相符的另一个表的键起着两个表的连接和参照作。外部关系键与其相符的另一个表的键起着两个表的连接和参照作用。外部关系键也称为外部键或外键。用。外部关系键也称为外部键或外键。学号学号姓名所在系99019901990299029903990399049904张三李四王五赵六计算机计算机计算机计算机课程号课程号课程名学时数C01C01C02C02C03C03C04C04高等数学数据结构操作系统数据库100708060学号学号课程号课程号成绩9901990199019901990299029904990499049904C01C01C02C02C04C04C04C04C03C039080908570学生关系学生关系课程关系课程关系学习成绩关系学习成绩关系外部关系键外部关系键主关系键主关系键第16页,共39页,编辑于2022年,星期三17关系模型的完整性约束 关系模型中的操作必须满足关系的完整性约束条关系模型中的操作必须满足关系的完整性约束条件。关系的完整性约束条件包括三大类:件。关系的完整性约束条件包括三大类:l实体完整性实体完整性l参照完整性参照完整性l用户定义的完整性用户定义的完整性 第17页,共39页,编辑于2022年,星期三18实体完整性规则p规则:规则:l主属性(关系键中包括的属性)不能取空值或部分空值的约束条件称为实体主属性(关系键中包括的属性)不能取空值或部分空值的约束条件称为实体完整性规则。完整性规则。p目的:目的:l如果出现空值,那么主键值就起不了唯一标识元组的作用。如果出现空值,那么主键值就起不了唯一标识元组的作用。lDBMS利用主键值来避免元组重复。利用主键值来避免元组重复。p 实例:实例:9080908570C02C04C04C039901990199049904成绩成绩课程号课程号学号学号不能为空不能为空主属性第18页,共39页,编辑于2022年,星期三19参照完整性规则p规则规则l 如果关系如果关系R2的外部关系键的外部关系键X与关系与关系R1的(主)关系键相符,那么外部关系键的(主)关系键相符,那么外部关系键X的每个值的每个值必须在关系必须在关系R1中关系键的值中找到,或者取空值。中关系键的值中找到,或者取空值。p目的目的l定义了外部关系键与关系键的引用规则,外部关系键的值要根据参照的关系键的值进行定义了外部关系键与关系键的引用规则,外部关系键的值要根据参照的关系键的值进行检查,参照该关系键的列值以确定其合法性,保持数据的一致性,不引用不存在的实体;检查,参照该关系键的列值以确定其合法性,保持数据的一致性,不引用不存在的实体;外部关系键与关系键对应可实现两个表的关联。外部关系键与关系键对应可实现两个表的关联。p实例实例职工表职工表(R2)(R2)部门表部门表(R1)(R1)主关系键外部关系键参照参照空值李娟0298039803万名 98029802张山0198019801姓名姓名部门编号部门编号职工编号职工编号公关部0202人事部0101部门名部门名部门编号部门编号第19页,共39页,编辑于2022年,星期三20用户定义完整性p规则:规则:l用户定义的完整性是针对某一具体的实际数据库的约用户定义的完整性是针对某一具体的实际数据库的约束条件,它由应用环境所决定。束条件,它由应用环境所决定。p例如例如:l属性的取值范围约束属性的取值范围约束l数据的输入格式约束数据的输入格式约束l数据类型(类型、长度、精度等)约束数据类型(类型、长度、精度等)约束l空值的约束等空值的约束等关系数据库管理系统应提供定义和检验这类完整性的机制,关系数据库管理系统应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。功能。第20页,共39页,编辑于2022年,星期三21完整性约束的作用 p 执行插入操作时检查完整性规则执行插入操作时检查完整性规则执行插入操作时,需要分别检查实体完整性规则、参照完执行插入操作时,需要分别检查实体完整性规则、参照完整性规则和用户定义完整性规则。整性规则和用户定义完整性规则。p 执行删除操作时检查完整性规则执行删除操作时检查完整性规则执行删除操作时,一般只需要检查参照完整性约束规则。执行删除操作时,一般只需要检查参照完整性约束规则。p 执行更新操作时检查完整性规则执行更新操作时检查完整性规则执行更新操作时,分别进行上述两种情况。执行更新操作时,分别进行上述两种情况。第21页,共39页,编辑于2022年,星期三22关系性质学号姓名性别年龄曾用名99019901张建军张建军男男2020张高升张高升99029902李萌李萌女女1818李招弟李招弟99039903王红军王红军男男1919王小小王小小99049904赵妮赵妮女女2020赵小娟赵小娟99019901张建军张建军男男2020张高升张高升重复的元组重复的元组!学号姓名性别年龄99019901张建军张建军男男202099029902李萌李萌女女181899039903王红军王红军男男191999049904赵妮赵妮女女2020学号姓名性别年龄99049904赵妮赵妮女女202099019901张建军张建军男男202099039903王红军王红军男男191999029902李萌李萌女女1818p 1 1、任意两个元组不能全同(不允许有重复的记录)任意两个元组不能全同(不允许有重复的记录)p 2 2、行行(记录记录)的顺序可以任意交换的顺序可以任意交换第22页,共39页,编辑于2022年,星期三23关系性质p 3 3、表中列表中列(字段字段)的顺序可以任意交换的顺序可以任意交换学号学号姓名姓名性别性别年龄年龄曾用名曾用名9901张建军男20张高升9902李萌女18李招弟9903王红军男19王小小9904赵妮女20赵小娟学号学号姓名姓名曾用名曾用名性别性别年龄年龄9901 张建军张高升男209902李萌李招弟女189903 王红军王小小男199904赵妮赵小娟女20学号学号姓名姓名性别性别年龄年龄姓名姓名9901张建军男20张高升9902李萌女18李招弟9903王红军男19王小小9904赵妮女20赵小娟此处的属性名不能使用姓名,属性名重复!可改用为“曾用名”p 4 4、关系中的属性名关系中的属性名(字段名字段名)必须唯一必须唯一第23页,共39页,编辑于2022年,星期三24关系性质学号学号姓名姓名性别性别年龄年龄曾用名曾用名9901张建军男20张高升9902李萌女18李招弟9903王红军119王小小9904赵妮21981/2/28赵小娟p 5 5、属性、属性(字段字段)名下的诸属性值名下的诸属性值(同列同列)是同类型数据,来自同一个域是同类型数据,来自同一个域此处的属性值类型不对!父父母母孩孩李男王男丁女肖女李一李二王一父父母母孩孩大大小小李男王男丁女肖女李一王一李二父父母母孩孩李男李男王男丁女丁女肖女李一李二王一父父母母大孩大孩小孩小孩李男王男丁女肖女李一王一李二非规范化关系规范化关系p 6 6、每一个分量都是不可分的数据项、每一个分量都是不可分的数据项第24页,共39页,编辑于2022年,星期三关系代数运算p关系代数运算关系代数运算关关系系代代数数(Relation Relation algebraalgebra)是是施施加加于于关关系系上上的的一一组组集集合合代代数数运运算算,每每个个运运算算都都以以一个或多个关系作为运算对象,并生成另外一个关系作为该关系运算的结果。一个或多个关系作为运算对象,并生成另外一个关系作为该关系运算的结果。p关系代数用到的运算符关系代数用到的运算符l集合运算符集合运算符 (并并)、一、一(差差)、(交交)、(广义笛卡积)(广义笛卡积)l专门的关系运算符专门的关系运算符 选择、选择、(投影投影)、(连接连接)、*(*(自然连接自然连接)、(除除);l算术比较符:算术比较符:,;l逻辑运算符逻辑运算符 (ANDAND与与)、(OROR或或)、(NOTNOT非非)p分类分类 按运算符的不同分为:传统的集合运算和专门的关系运算按运算符的不同分为:传统的集合运算和专门的关系运算25第25页,共39页,编辑于2022年,星期三传统的集合运算_关系并运算26ABCa a2 2c ca a4 4d db b4 4c cABCa a4 4d da a6 6d db b4 4c cABCa a2 2c ca a4 4d db b4 4c ca a6 6d dRSRSp关系关系R R和关系和关系S S的并是属于的并是属于R R或属于或属于S S或同时属于或同时属于R R和和S S的元组组成的集合,记为的元组组成的集合,记为RSRS。p形式定义如下:形式定义如下:p实例:第26页,共39页,编辑于2022年,星期三传统的集合运算_关系差运算27ABCa a2 2c ca a4 4d db b4 4c cABCa a4 4d da a6 6d db b4 4c cABCa a2 2c cRSRSp关系关系R R和关系和关系S S的差是由属于的差是由属于R R而不属于而不属于S S的所有元组组成的集合,即在关系的所有元组组成的集合,即在关系R R中删去与中删去与S S关系中相同的元组,组成一个新关系,记为关系中相同的元组,组成一个新关系,记为R-SR-S。p形式定义如下:形式定义如下:p实例:第27页,共39页,编辑于2022年,星期三传统的集合运算_关系交运算p关系关系R和关系和关系S的交是由既属于的交是由既属于R又属于又属于S的元组组成的集合,即在两个关系的元组组成的集合,即在两个关系R与与S中取相同的元组,组成一个新关系,记为中取相同的元组,组成一个新关系,记为RS。如果两个关系没有相同的。如果两个关系没有相同的元组,那么它们的交为空。元组,那么它们的交为空。R与与S的交运算如图的交运算如图2.5(e)所示。所示。p形式定义如下:形式定义如下:28ABCa a2 2c ca a4 4d db b4 4c cABCa a4 4d da a6 6d db b4 4c cABCa a4 4d db b4 4c cRSRSp实例:第28页,共39页,编辑于2022年,星期三广义笛卡尔积29ABCa a2 2c ca a4 4d db b4 4c cABCa4 4da6 6db4 4cABCDEFa a2 2c ca a4 4d da a2 2c ca a6 6d da a2 2c cb b4 4c ca a4 4d da a4 4d da a4 4d da a6 6d da a4 4d db b4 4c cb b4 4c ca a4 4d db b4 4c ca a6 6d db b4 4c cb b4 4c cRSRSp实例实例:p关系的笛卡尔积称为广义的笛卡尔积,以区别一般的集合笛关系的笛卡尔积称为广义的笛卡尔积,以区别一般的集合笛卡尔积。笛卡尔积也是属于二目运算,但参加运算的两个关卡尔积。笛卡尔积也是属于二目运算,但参加运算的两个关系不要求是同类关系。系不要求是同类关系。p形式定义如下:形式定义如下:第29页,共39页,编辑于2022年,星期三选取运算30S#S#SNSNAGEAGESEXSEXDEPDEPS1S1A A2020M MCSCSS2S2B B2121F FCSCSS3S3C C1919M MMAMAS4S4D D1919F FCICIS5S5E E2020F FMAMAS6S6F F2222M MCSCSS#S#SNSNAGEAGESEXSEXDEPDEPS1S1A A2020M MCSCSS2S2B B2121F FCSCSS6S6F F2222M MCSCSSDEP=CS(S)或5=CS(S)?求计算机系?求计算机系(CS)CS)的学生基本情况的学生基本情况第5列p在指定的关系中,按给定的条件选取其中的若干个元组,组成一个新的关系的运算。在指定的关系中,按给定的条件选取其中的若干个元组,组成一个新的关系的运算。p形式定义如下:形式定义如下:p实例:第30页,共39页,编辑于2022年,星期三投影运算31S#S#SNSNAGEAGESEXSEXDEPDEPS1S1A A2020M MCSCSS2S2B B2121F FCSCSS3S3C C1919M MMAMAS4S4D D1919F FCICIS5S5E E2020F FMAMAS6S6F F2222M MCSCSSNDEPA ACSCSB BCSCSC CMAMAD DCICIE EMAMAF FCSCSDEPCSCSMAMACICIS对学生姓名和所在系属性取投影对学生姓名和所在系属性取投影SN,DEP(S)或2,5(S)查询学生关系中都有哪些系查询学生关系中都有哪些系DEP(S)或5(S)p设关系设关系R R(X,YX,Y),),X,YX,Y均为属性集合。关系均为属性集合。关系R R在属性在属性X X上的投影是在关系上的投影是在关系R R中选取中选取X X属性的相应列并删属性的相应列并删去重复行,组成一个新关系。这是从关系的垂直方向上(列的角度)取子集的运算。去重复行,组成一个新关系。这是从关系的垂直方向上(列的角度)取子集的运算。p投影结果关系记作:投影结果关系记作:p实例:第31页,共39页,编辑于2022年,星期三专门的关系运算_连接运算32ABCa1a12 2c ca2a24 4d da3a34 4c cDEd d4 4e e1010ABCDEa1a12 2c cd d4 4a1a12 2c ce e1010a2a24 4d de e1010a3a34 4c ce e1010RSR S BEBEABCDEa1a12 2c cd d4 4a1a12 2c ce e1010a2a24 4d dd d4 4a2a24 4d de e1010a3a34 4c cd d4 4a3a34 4c ce e1010RSp连接运算就是从两个关系的笛卡尔乘积中选取满足连接条件的那些元组。连接运算就是从两个关系的笛卡尔乘积中选取满足连接条件的那些元组。p连接结果记作:连接结果记作:p实例:实例:第32页,共39页,编辑于2022年,星期三专门的关系运算_等值连接运算33S SD DSNOSNOSNAMESNAMEDNODNODNODNODEPTDEPTSNOSNOSNAMESNAMEDNODNOD.DNOD.DNODEPTDEPTC1Li0101计算机C1Li0101计算机C2Wang0102信息C2Wang0101计算机C3Jin0203园林C3Jin0202信息C4Zhang03C4Zhang0303园林C5Yang02C5Yang0202信息设有关系设有关系S S和和D D,如下图所示。如下图所示。S S与与D D在在DNODNO属性上的等值连接结果如图所示属性上的等值连接结果如图所示。第33页,共39页,编辑于2022年,星期三34SQL语言概述 pSQL:Structured Query Language,结构化查询语言,结构化查询语言l一种介于关系代数与关系演算之间的语言一种介于关系代数与关系演算之间的语言l美国美国19861986年年1010月正式把月正式把SQLSQL语言作为关系数据库的标准语言作为关系数据库的标准语言,并公布了第一个语言,并公布了第一个SQLSQL语言的标准,即语言的标准,即SQL86SQL86。此。此后不久,国际标准化组织(后不久,国际标准化组织(ISOISO)也于)也于19871987年通过了这年通过了这个标准。个标准。l19891989年,年,ISOISO又公布了又公布了SQL89SQL89标准。标准。l19921992年,年,ISOISO又公布了又公布了SQL92SQL92标准。标准。l目前,新标准目前,新标准SQL3SQL3也正式发表。也正式发表。l关系数据库的标准语言关系数据库的标准语言 p功能功能l数据的定义、查询、操纵、控制数据的定义、查询、操纵、控制第34页,共39页,编辑于2022年,星期三35SQL语言的动词SQLSQL功能功能动词动词数据查询数据查询SELECTSELECT数据定义数据定义CREATECREATE,DROPDROP,ALTERALTER数据操纵数据操纵INSERTINSERT,UPDATEUPDATE,DELETEDELETE第35页,共39页,编辑于2022年,星期三36数据查询语句SELECTpSQL语言格式语言格式SELECT SELECT :投影:投影FROM FROM :连接:连接WHERE WHERE :选取:选取GROUP BY GROUP BY :分组:分组HAVING HAVING :分组条件:分组条件ORDER BY ORDER BY :排序:排序第36页,共39页,编辑于2022年,星期三37简单的SELECT查询语句例p查询指定的列查询指定的列l查询学生的姓名年龄和性别查询学生的姓名年龄和性别SELECT 姓名,年龄,性别姓名,年龄,性别 FROM student;p查询使用有表达式的列查询使用有表达式的列lSELECT子句的子句的不仅可以是表中的属不仅可以是表中的属性列,也可以是表达式。性列,也可以是表达式。l查询全体学生的姓名及其出生年份。查询全体学生的姓名及其出生年份。SELECT 姓名,姓名,2000-年龄年龄 FROM student;第37页,共39页,编辑于2022年,星期三38比较复杂的SELECT语句例p检索出至少选修三门课的学生学号、姓名、平均检索出至少选修三门课的学生学号、姓名、平均成绩和选课门数成绩和选课门数SELECT S.SNO AS 学号学号,SN AS 姓名姓名,AVG(GRADE)AS 平均分平均分,COUNT(*)AS 选课门数选课门数,FROM S,SC,CWHERE S.SNO=SC.SNO AND SC.CNO=C.CNOGROUP BY S.SNO,SNHAVING COUNT(*)=3第38页,共39页,编辑于2022年,星期三39程序中SELECT语句的优化p应用程序经常要面对海量的数据库数据,要快速应用程序经常要面对海量的数据库数据,要快速的检索出所需数据,需对查询语句进行优化。的检索出所需数据,需对查询语句进行优化。p例如数据的分页显示。例如数据的分页显示。p分页分页SQL语句例:语句例:lSELECT TOP PAGESIZE*FROM ZZZY WHERE ID NOT IN(SELECT TOP PAGESIZE*PAGE ID FROM ZZZY ORDER BY ID)ORDER BY IDlSELECT TOP PAGESIZE*FROM ZZZY WHERE ID (SELECT MAX(ID)FROM(SELECT TOP PAGESIZE*PAGE ID FROM ZZZY ORDER BY ID)ORDER BY ID第39页,共39页,编辑于2022年,星期三