数据库概论3.ppt
《数据库概论3.ppt》由会员分享,可在线阅读,更多相关《数据库概论3.ppt(150页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、四川农业大学四川农业大学数据库系统概论数据库系统概论An Introduction to Database System第三章第三章 关系数据库标准语言关系数据库标准语言SQLSQLAnIntroductiontoDatabaseSystemWhatisSQL?vData manipulation:ad-hoc queries and updatesSELECT*FROM Account WHERE Type=checking;v Data definition:creation of tables and viewsCREATE TABLE Account (Number integer N
2、OT NULL,Owner character,Balance currency,Type character,PRIMARY KEY(Number);vControl:assertions to protect data integrity CHECK(Owner IS NOT NULL)AnIntroductiontoDatabaseSystem关系代数与关系代数与SQLv关系代数关系代数=queryonlyvSQL=datamanipulation+datadefinition+controlvSQLdatamanipulationissimilarto,butnotexactlythe
3、sameasrelationalalgebraSQLisbasedonsetandrelationaloperationswithcertainmodificationsandenhancementsWewillstudythedifferencesAnIntroductiontoDatabaseSystem本章重点与难点本章重点与难点vSQL是关系数据库的标准语言,对关系模型的是关系数据库的标准语言,对关系模型的发展和商用发展和商用DBMS的研制起着重要的作用。的研制起着重要的作用。v本章详细介绍本章详细介绍SQL的核心部分:的核心部分:数据定义、数据查询、数据更新、数据控制数据定义、数据查
4、询、数据更新、数据控制,本章的本章的另一重点是视图的定义、查询、更新及用途。另一重点是视图的定义、查询、更新及用途。v本章难点本章难点:SQL的数据查询功能的数据查询功能AnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义数据定义3.4数据查询数据查询3.5数据更新数据更新3.6视图视图3.7小结小结AnIntroductiontoDatabaseSystem3.1SQL概述概述vSQL(StructuredQueryLanguage)结构化查询语言,是关系数据库
5、的标准语言结构化查询语言,是关系数据库的标准语言vSQL是一个通用的、功能极强的关系数据库语言是一个通用的、功能极强的关系数据库语言AnIntroductiontoDatabaseSystemSQL概述(续)概述(续)v3.1.1SQL的产生与发展的产生与发展v3.1.2SQL的特点的特点v3.1.3SQL的基本概念的基本概念AnIntroductiontoDatabaseSystemSQL标准的进展过程标准的进展过程标准标准大致页数大致页数发布日期发布日期nSQL/861986.10nSQL/89(FIPS127-1)120页页1989年年nSQL/92622页页1992年年nSQL9917
6、00页页1999年年nSQL20032003年年AnIntroductiontoDatabaseSystem3.1SQL概述概述v3.1.1SQL的产生与发展的产生与发展v3.1.2SQL的特点的特点v3.1.3SQL的基本概念的基本概念AnIntroductiontoDatabaseSystem3.1.2SQL的特点的特点1.综合统一综合统一n集数据定义语言(集数据定义语言(DDL),),数据操纵语言数据操纵语言(DML),),数据控制语言(数据控制语言(DCL)功能于一体。功能于一体。n可以独立完成数据库生命周期中的全部活动:可以独立完成数据库生命周期中的全部活动:定义关系模式,插入数据,
7、建立数据库;定义关系模式,插入数据,建立数据库;对数据库中的数据进行查询和更新;对数据库中的数据进行查询和更新;数据库重构和维护数据库重构和维护数据库安全性、完整性控制等数据库安全性、完整性控制等n用户数据库投入运行后,可根据需要随时逐步修改用户数据库投入运行后,可根据需要随时逐步修改模式,不影响数据的运行。模式,不影响数据的运行。n数据操作符统一数据操作符统一AnIntroductiontoDatabaseSystem2.高度非过程化高度非过程化v非关系数据模型的数据操纵语言非关系数据模型的数据操纵语言“面向过程面向过程”,必须制定存取路径必须制定存取路径vSQL只要提出只要提出“做什么做什
8、么”,无须了解存取路径。,无须了解存取路径。v存取路径的选择以及存取路径的选择以及SQL的操作过程由系统自动的操作过程由系统自动完成。完成。AnIntroductiontoDatabaseSystem3.面向集合的操作方式面向集合的操作方式v非关系数据模型采用面向记录的操作方式,操作对非关系数据模型采用面向记录的操作方式,操作对象是一条记录象是一条记录vSQL采用采用集合操作集合操作方式方式v操作对象、查找结果可以是元组的集合操作对象、查找结果可以是元组的集合v一次插入、删除、更新操作的对象可以是元组一次插入、删除、更新操作的对象可以是元组的集合的集合AnIntroductiontoDatab
9、aseSystem4.以同一种语法结构提供多种使用方式以同一种语法结构提供多种使用方式vSQL是独立的语言是独立的语言能够独立地用于联机交互的使用方式能够独立地用于联机交互的使用方式vSQL又是嵌入式语言又是嵌入式语言SQL能够嵌入到高级语言(例如能够嵌入到高级语言(例如C,C+,Java)程序中,供程序员设计程序时使用程序中,供程序员设计程序时使用AnIntroductiontoDatabaseSystem5.语言简洁,易学易用语言简洁,易学易用vSQL功能极强,完成核心功能只用了功能极强,完成核心功能只用了9个动词。个动词。AnIntroductiontoDatabaseSystem3.1
10、SQL概述概述v3.1.1SQL的产生与发展的产生与发展v3.1.2SQL的特点的特点v3.1.3SQL的基本概念的基本概念AnIntroductiontoDatabaseSystemSQL的基本概念(续)的基本概念(续)SQL视图视图2视图视图1基本表基本表2基本表基本表1基本表基本表3基本表基本表4存储文件存储文件2存储文件存储文件1外模式外模式模模 式式内模式内模式SQL支持关系数据库三级模式结构支持关系数据库三级模式结构AnIntroductiontoDatabaseSystemSQL的基本概念(续)的基本概念(续)v基本表基本表n本身独立存在的表本身独立存在的表nSQL中一个关系就对
11、应一个基本表中一个关系就对应一个基本表n一个一个(或多个或多个)基本表对应一个存储文件基本表对应一个存储文件n一个表可以带若干索引一个表可以带若干索引v存储文件存储文件n逻辑结构组成了关系数据库的内模式逻辑结构组成了关系数据库的内模式n物理结构是任意的,对用户透明物理结构是任意的,对用户透明v视图视图n从一个或几个基本表导出的表从一个或几个基本表导出的表n数据库中只存放视图的定义而不存放视图对应的数据数据库中只存放视图的定义而不存放视图对应的数据n视图是一个虚表视图是一个虚表n用户可以在视图上再定义视图用户可以在视图上再定义视图AnIntroductiontoDatabaseSystem第三章
12、第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义数据定义3.4数据查询数据查询3.5数据更新数据更新3.6视图视图3.7小结小结AnIntroductiontoDatabaseSystem3.2学生学生-课程课程数据库数据库v学生学生-课程模式课程模式S-T:学生表:学生表:Student(Sno,Sname,Ssex,Sage,Sdept)课程表:课程表:Course(Cno,Cname,Cpno,Ccredit)学生选课表:学生选课表:SC(Sno,Cno,Grade)AnIntroductiontoDatabaseSy
13、stemStudent表表学学号号Sno姓姓名名Sname性性别别Ssex年年龄龄Sage所所在在系系Sdept200215121200215122200215123200515125李勇李勇刘晨刘晨王敏王敏张立张立男男女女女女男男20191819CSCSMAISAnIntroductiontoDatabaseSystemCourse表表课程号课程号Cno课程名课程名Cname先行课先行课Cpno学分学分Ccredit1234567数据库数据库数学数学信息系统信息系统操作系统操作系统数据结构数据结构数据处理数据处理PASCAL语言语言516764243424AnIntroductiontoDa
14、tabaseSystemSC表表学学号号Sno课程号课程号Cno成绩成绩Grade200215121200215121200215121200215122200215122123239285889080AnIntroductiontoDatabaseSystem第三章第三章关系数据库标准语言关系数据库标准语言SQL3.1SQL概述概述3.2学生学生-课程数据库课程数据库3.3数据定义数据定义3.4数据查询数据查询3.5数据更新数据更新3.6视图视图3.7小结小结AnIntroductiontoDatabaseSystem3.3数据定义数据定义SQL的数据定义功能的数据定义功能:模式定义、表定义
15、、视图和索引的定义模式定义、表定义、视图和索引的定义 AnIntroductiontoDatabaseSystem三级模式三级模式AnIntroductiontoDatabaseSystem数据定义概述数据定义概述vSQL的数据定义功能的数据定义功能定义表定义表(模式模式)创建表创建表删除表删除表修改表定义修改表定义定义视图定义视图(外模式外模式)创建视图创建视图删除视图删除视图间接修改视图定义:删除间接修改视图定义:删除+创建创建AnIntroductiontoDatabaseSystem数据定义概述数据定义概述(续续)vSQL的数据定义功能(续)的数据定义功能(续)定义索引定义索引(内模式
16、内模式)创建索引创建索引删除索引删除索引间接修改索引定义:删除间接修改索引定义:删除+创建创建AnIntroductiontoDatabaseSystem3.3数据定义数据定义v3.3.1模式的定义与删除模式的定义与删除v3.3.2基本表的定义、删除与修改基本表的定义、删除与修改v3.3.3索引的建立与删除索引的建立与删除AnIntroductiontoDatabaseSystem定义模式(续)定义模式(续)例例1定义一个学生定义一个学生-课程模式课程模式S-TCREATESCHEMA“S-T”AUTHORIZATIONWANG;为用户为用户WANG定义了一个模式定义了一个模式S-T例例2CR
17、EATESCHEMAAUTHORIZATIONWANG;隐含为用户名隐含为用户名WANGn如果没有指定如果没有指定,那么,那么隐含为隐含为AnIntroductiontoDatabaseSystem定义模式(续)定义模式(续)v定义模式实际上定义了一个定义模式实际上定义了一个命名空间v在这个空间中可以定义该模式包含的数据库对象,例如基本表、在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等。视图、索引等。v在在CREATESCHEMA中可以接受中可以接受CREATETABLE,CREATEVIEW和和GRANT子句。子句。CREATESCHEMAAUTHORIZATION|A
18、nIntroductiontoDatabaseSystem定义模式(续)定义模式(续)例例3CREATESCHEMATESTAUTHORIZATIONZHANGCREATETABLETAB1(COL1SMALLINT,COL2INT,COL3CHAR(20),COL4NUMERIC(10,3),COL5DECIMAL(5,2);为用户为用户ZHANG创建了一个模式创建了一个模式TEST,并在其中定义了一并在其中定义了一个表个表TAB1。AnIntroductiontoDatabaseSystem二、删除模式二、删除模式nDROPSCHEMAnCASCADE(级联级联)删除模式的同时把该模式中所
19、有的数据库对象全部删除删除模式的同时把该模式中所有的数据库对象全部删除nRESTRICT(限制限制)如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝如果该模式中定义了下属的数据库对象(如表、视图等),则拒绝该删除语句的执行。该删除语句的执行。当该模式中没有任何下属的对象时当该模式中没有任何下属的对象时才能执行。才能执行。AnIntroductiontoDatabaseSystem删除模式(续)删除模式(续)例例4DROPSCHEMAZHANGCASCADE;删除模式删除模式ZHANG同时该模式中定义的表同时该模式中定义的表TAB1也被删除也被删除AnIntroductiontoDat
20、abaseSystem3.3数据定义数据定义v3.3.1模式的定义与删除模式的定义与删除v3.3.2基本表的定义、删除与修改基本表的定义、删除与修改v3.3.3索引的建立与删除索引的建立与删除AnIntroductiontoDatabaseSystem3.3.2基本表的定义、删除与修改基本表的定义、删除与修改一、定义基本表一、定义基本表CREATETABLE(,););v如果完整性约束条件涉及到该表的多个属性列,则必须如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在表定义在表级上,否则既可以定义在列级也可以定义在表级。级。AnIntroductio
21、ntoDatabaseSystem定义基本表(续)定义基本表(续)v表级完整性约束与列级完整性约束表级完整性约束与列级完整性约束v常用完整性约束常用完整性约束主码约束:主码约束:PRIMARYKEY参照完整性约束参照完整性约束:FOREIGNKEY唯一性约束:唯一性约束:UNIQUE非空值约束:非空值约束:NOTNULL取值约束:取值约束:CHECKAnIntroductiontoDatabaseSystem建表语句的处理建表语句的处理AnIntroductiontoDatabaseSystemAnIntroductiontoDatabaseSystem学生表表Student例5 建立“学生”
22、表Student,学号是主码,姓名取值唯一。CREATE TABLE Student (Sno CHAR(9)PRIMARY KEY,/*列级完整性约束条件*/Sname CHAR(20)UNIQUE,/*Sname取唯一值*/Ssex CHAR(2),Sage SMALLINT,Sdept CHAR(20);主码主码AnIntroductiontoDatabaseSystem课程表课程表Course 例6 建立一个“课程”表Course CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4),Ccredi
23、t SMALLINT,FOREIGN KEY(Cpno)REFERENCES Course(Cno);先修课先修课 Cpno是外码是外码 被参照表是被参照表是Course被参照列是被参照列是CnoAnIntroductiontoDatabaseSystem学生选课表学生选课表SC例7 建立一个“学生选课”表SCCREATETABLESC(SnoCHAR(9),CnoCHAR(4),GradeSMALLINT,PRIMARYKEY(Sno,Cno),/*主码由两个属性构成,必须作为表级完整性进行定义主码由两个属性构成,必须作为表级完整性进行定义*/FOREIGNKEY(Sno)REFERENCE
24、SStudent(Sno),/*表级完整性约束条件,表级完整性约束条件,Sno是外码,被参照表是是外码,被参照表是Student*/FOREIGNKEY(Cno)REFERENCESCourse(Cno)/*表级完整性约束条件,表级完整性约束条件,Cno是外码,被参照表是是外码,被参照表是Course*/);AnIntroductiontoDatabaseSystem二、数据类型二、数据类型vSQL中域的概念用中域的概念用数据类型数据类型来实现来实现v定义表的属性时定义表的属性时需要指明其数据类型及长度需要指明其数据类型及长度v选用哪种数据类型选用哪种数据类型n取值范围取值范围n要做哪些运算要
25、做哪些运算AnIntroductiontoDatabaseSystem二、数据类型二、数据类型数据类型数据类型含义含义CHAR(n)长度为长度为n的定长字符串的定长字符串VARCHAR(n)最大长度为最大长度为n的变长字符串的变长字符串INT长整数(也可以写作长整数(也可以写作INTEGER)SMALLINT短整数短整数NUMERIC(p,d)定点数,由定点数,由p位数字(不包括符号、小数点)组成,小数后面有位数字(不包括符号、小数点)组成,小数后面有d位数字位数字REAL取决于机器精度的浮点数取决于机器精度的浮点数Double Precision取决于机器精度的双精度浮点数取决于机器精度的双
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 概论
限制150内