全国计算机等级考试四级教程—数据库原理(共60页).doc
精选优质文档-倾情为你奉上全国计算机等级考试四级教程数据库原理(2013版)2015年4月9日录入目 录第1章 数据库原理概述1.1 数据库技术基本概念1.1.1 信息、数据与数据处理1.信息现实世界事物的存在方式或运动状态的反映。自然属性:可感知、可存储、可加工、可传递和可再生。社会属性:资源2.数据符号记录,可以鉴别。包括:数字、文字、图形、图像、声音及其他特殊符号。数字化后存入计算机。3.信息与数据的关联数据是信息符号的表示,载体;信息是数据的内涵,是数据的语义解释。4.数据处理的基本环节原始信息称为源数据。信息的价值:准确性、及时性、完整性、可靠性。1.1.2 数据库、数据字典、数据库管理系统、数据库系统1.数据库存放数据的仓库。按一定的数据模型组织、较小的冗余、较高的数据独立和易扩展性、在一定范围内共享。2.数据字典数据可分:用户数据和系统数据。系统数据称为数据字典、系统目录或元数据。对数据库的描术信息、数据库的存储管理信息、数据库的控制信息、用户管理信息和系统事务管理信息。3.数据库管理系统。位于用户与系统之间,定义、操纵、管理、构建和维护数据库的软件。定义数据库中的数据。操作:查询、插入、删除、更新。数据库的建立、运行、维护,保证数据安全性、完整性、多用户并发使用,系统恢复、事务支持。数据库重组织、性能监视、分析。4.数据库系统由用户数据库、操作系统、数据库管理系统、应用开发工具、应用系统、数据库管理员和数据库用户构成。(1)硬件平台计算机和网络设备布置方式:集中方式、客户机/服务器方式、浏览器/服务器方式。DBMS对硬件资源要求:大内存、大磁盘、通信能力。(2)软件平台DBMS, OS或网络操作系统NOS,高级语言编译系统,应用开发工具,数据库应用系统。(3)人员数据库管理员、系统分析员、数据库设计人员、应用程序员和最终用户。1.1.3 数据库系统中的人员1.数据库管理员DBA确定数据中信息内容与结构;确定数据中存储结构和存取策略(选择索引);定义数据的安全性要求和完整性约束;监控数据库的使用和运行;数据库性能改进;定期对数据库进行重组或重构。2.系统分析员和数据库设计人员系统分析员应用系统需求分析和规范说明系统软件配置与数据库系统概要设计数据库设计人员参加用户需求调查和系统分析数据确定、各级模式的设计。3.应用程序员4.用户。1.2 数据管理技术的产生与发展数据库管理技术:对数据的分类、组织、编码、存储、检索和维护的技术。三个阶段:人工管理、文件系统、数据库系统。人工管理文件系统数据库系统背景应用背景科学计算科学计算、数据管理大规模管理硬件背景无直接存取存储设备磁盘、磁鼓大容量磁盘、磁盘列阵软件背景没有操作系统有文件系统有数据库管理系统特点处理方式批处理联机实时处理、批处理联机实时处理、分布处理、批处理数据的管理者用户(程序员)文件系统数据库管理系统数据面向的对象某一应用程序某一应用现实世界中的某个部门、企业、组织等数据的共享程度无共享、冗余度极大共享性差、冗余度大共享性高、冗余度小数据的独立性不独立、完全依赖于程序独立性差具有高度的物理独立性和一定的逻辑独立性数据的结构化无结构记录内有结构、整体无结构整体结构化、用数据模型描述数据的控制能力应用程序自己控制应用程序自己控制由数据库管理系统控制,提供数据安全性、完整性、并发控制和恢复能力1.3 数据库方法与文件系统方法1.3.1 数据库库方法的优势与人工管理和文件系统比较1.自描述特点数据库系统不仅包括数据库本身,还包括数据库数据的结构和约束条件(元数据)。2.数据结构化数据之间的联系3.数据共享性高、冗余度小、易扩充4.由DBMS进行统一数据管理和控制安全性;备份和恢复功能;定义和确保数据库完整性检查;提供并发控制功能;数据查询处理与优化;提供多用户界面;1.3.2 数据库与文件系统数据库劣势:初期对硬件、软件和培训的高额投资,DBMS为了定义和处理数据而提供的性导致额外开销;为安全性、并发控制、恢复和完整性功能而导致的额外开销。文件系统应用范围:应用简单,易于定义并且一般不会发生变化;实用性和专用性要求;不需多个用户访问数据。1.4 数据库应用简史1.5 数据库技术的研究领域1.DBMS管理系统的研究。2.数据库设计技术和方法的研究3.数据库理论的研究。第2章 数据模型和数据库系统的模式结构2.1 数据模型和数据模型的组成要素2.1.1 数据模型的概念模型现实世界特征的模拟和抽象。数据模型描述数据库数据的结构、定义在结构上的操纵、以及数据约束的一组概念和定义,是数据库系统的核心。数据模型应满足:(1)较真实地模拟现实世界;(2)容易为人们所理解;(3)便于在计算机上实现。2.1.2 数据模型组成的要素1.数据结构(静态)。层次、网状、关系。2.数据操作(动态)。检索和修改(插入、删除、更新)。3.数据约束。完整性约束、数据安全约束、并发控制约束。2.2 数据模型的分类1.概念层模型。形成ER图。2.逻辑层模型。3.物理层模型。物理存存储结构,数据存储路径及调整、优化数据库的性能。目标:提高数据库性能和有效利用存储空间。2.3 概念数据库模型E-R模型2.3.1 概念数据模型的产生和基本概念用于信息世界的建模,与DBMS无关。1.信息世界中的基本概念(1)实休。可区别的事物,如一个供应商、一个学生。(2)属性。实体的某一特性。(3)码或键。唯一标识实休的属性的码或键。(4)域。属性的取值范围。(5)实体型。相同属性的实体的共同特征或性质。学生(学号,姓名,性别,出生日期)(6)实体集。同型实休的集合,如全体学生。2.两个实体之间的联系。(1)一对一联系。(2)一对多联系。(3)多对多联系。同一个实体集内部也可以存在以上关系,如班干部。2.3.2 概念模型的一种表示方法E-R图实体型,用矩形表示。属性,用椭圆形表示。联系,用棱形表示。联系本身也是实体,可以有属性。优点:近人思维,容易理解,与计算机无关,用户易接受。缺点是不能详细说明的数据结构。2.4 常用的逻辑数据模型有:层次、网状、关系、面向对象、对象-关系数据模型。前三种建立在ER模型上,后两种基于对象的模型。2.4.1 层次和网状模型2.4.2 关系模型用二维表格结构表示各类实体及实体间的联系,由多张二维表组成。二维表中的数据称为关系实例。表头称关系模式。2.4.3 面向对象模型将面向对象方法与数据库相结合。面向对象模型既是概念模型,又是逻辑模型。将每个对象的状态(对象属性值的集合)和行为(对象状态上的操作)封装在一起。对象外部靠消息传递来完成,对数据进行查、增、删。类继承单继承,一个类只能有一个超类。类继承多重继承,一个类可以有多个超类。2.4.4 对象-关系数据模型关系模型与面向对象模型的结合。关系模型优点:事务处理较好适应性强。面向对象模型优点:功能强,适应面宽,便于用不方便。整合后优点:(1)有完整关系模型全部功能,且表示复杂数据结构与抽象数据类型能力。(2)处理事务应用领域及非事务处理领域应用。(3)关系表作为基本结构。(4)风格接近关系模型,易接受。(5)构建简单,容易实现。2.5 数据库系统的模式层次和角度不同分。三级模式结构。最终用户看:集中式、分布式、客户机/服务器结构、面向WEB应用的三层和n层。2.5.1 数据库系统中模式、实例和数据状态的概念型:结构和属性。静态值:具体赋值。动态数据库模式:逻辑结构和特征的描述,型。实例:模式的具体值。状态或快照:具体值或实例的当前集合。空状态,初始状态,元数据或数据字典:模式结构的描述和约束。模式演化。2.5.2 数据库系统的三级模式结构三级模式结构:外模式、模式、内模式。1.模式(Schema):逻辑结构和特征的描述,中间层。不涉及物理存储和硬件环境,也与高级开发语言无关。一个数据库一个模式,是基础的数据模型。例:逻辑结构、数据项、取值范围、数据之间的联系、数据有关的安全性、完整性要求。数据定义语言DDL来操作。2.外模式:用户模式。一个数据库可以有多个外模式,一个应用程序只能使用一个外模式。是保证数据安全的有力措施。3.内模式:物理模式或存储模式。一个数据库只有一个内模式。例:存储方式、索引方式组织、数据压缩、是否加密。2.5.3 数据库的两层映像与数据独立性1.外模式/模式映像,简称逻辑独立性2.模式/外模式映像。保证数据库独立性:物理独立、逻辑独立性,最终用户程序可以不改变。第3章 关系数据模型和关系数据库系统3.1 关系数据库系统概述关系数据库系统支持关系数据模型的数据库系统。应用数学方法来处理数据库中的数据。3.1.2 关系数据模型由数据结构、关系操作集合、关系完整性约束三大要素组成。1.关系数据结构逻辑结构为一张二维表。2.关系操作集合选择、投影、连接、除、并、交、差,查询、插入、删除、更新操作两大部分。特点(1)集合操作。(2)高度非过程化。不必建存取路径,不必求助于循环和递归来重复操作。操作能力表示:代数方式、逻辑方式。关系语言SQL:数所定义、数据操作、数据控制。3.关系完整性约束目标:与现实世界和数据之间正确性、一致性、相容性。3.2 关系模型的数据结构3.2.1 关系模型的数据结构和基本术语(1)关系:一个关系对应一张二维表。(2)属性和值域。属性:列字段元或度:属性的个数。值域:属性取值范围。(3)关系模式。行定义。关系名(属性1,属性2,属性n)(4)元组。二维表中的一行(记录值)关系:关系模式和元组的集合。(5)分量。元组中的一个属性值。(6)码或键。用于区别元组的不同,唯一标识该关系的元组。(7)超码或超键。关系码中移去某个属性,它仍是关系的码。每个关系至少有一个默认的超码或超键,即该关系的所有属性的集合。(8)候选码或候选键。在关系一的个码或键中,不能移去任何一个属性。(9)主码或主键。指定用来唯一标识该关系的元组。(10)全码或全键。所有属性的集合是这个关系的主码或主键。(11)主属性和非主属性。包含在任何一个候选码中的属性称主属性。(12)外码或外键。某个属性是另外一个关系的主码时,称该属性为这个关系外码或外键。(13)参照关系与被参照关系。通过外码相关系。3.2.2 关系的形式定义和关系数据库对关系的限定1.关系的形式定义。定义方法:(1)集体论。关系是一个度为K的元组的有限集合。(2)值域的概念来定义。关系是属性值域笛卡儿积的一个子休。2.关系数据库对关系的限定(1)每一个属性是不可分解的。(2)每一个关系仅仅有一种关系模式。(3)属性必须命名,一个关系模式中,属性名必须不同。(4)元组顺序无关紧要。(5)属性顺序无关紧要。(6)不允许出现候选码工候选键值完全相同的元组。3.2.3 关系数据库中常用的表示方法(1)大写字母表示关系名。Q、R、S、T(2)小定字母表示关系状态或元组集合。 q、r、s、t(3)小写字母表示元组。W、u、v(4)关系名也表示当前元组集合。STUDENT当前关系状态,STUDENT(s#,sname,sex,age,dept)表示关系模式。(5)下划线的属性表示关系的主码。(6)用关系名限定属于它的一个属性。R.A,STUDENT . sname(7)关系中元组表示。t=<,张明,男, 21,计算机>ts#=<>,tsex,age,dept= <男, 21,计算机>(8)度为n的关系模式。R(A1,A2,An)(9)关系模式的集合和完整性约束IC的集合表示为S=R1,R2,Rm(10)数据库状态集合。3.3 关系模型的完整性约束3.3.1 关系模型完整性约束的分类分实体完整性约束、参照完整性约束、用户定义完整性约束。3.3.2 实体完整性约束对主码或主键的约束,主属性不能取空。包含三层意思:(1)是对关系的约束。(2)每个关系必须有主码,主码的值唯一,用于标识关系的元组。(3)主码的属性不能取空值3.3.3 参照完整性约束实体间存在联系即主码与外码的关系。(1)外码或者取空值(2)外码或者等于某个元组的主码。3.3.4 用户定义完整性约束主要用于对属性取值进行限定,域完整性约束。域完整性约束:类型、精度、取值范围、是否允许空值、是否有默认值分类:静态定义和动态定义两种。3.3.5 关系模型完整性约束的检查1.执行插入时:实体完整性约束检查参照完整性约束用户定义完整性约束2.执行删除检查:参照完整性约束检查,进行外码引用检查。检查后有如下操作方法:拒绝删除、空值删除、联级删除。3.执行更新检查。实际分为先执行删除操作,再执行插入操作。3.4 关系操作语言关系代数操作对象、操作符、操作结果是操作的三大要素。3.4.1 关系代数操作的分类(1)基于传统的集合论操作,关系的水平方向。并、交、差、笛卡儿积。(2)专门的关系操作。一元操作(选择、投影)、二元操作(连接和除)连接操作又分:连接、等值连接、自然连接。(3)扩充关系操作。广义投影、赋值、外连接、半连接、聚集、外部并等。关系代数常用到的操作符操作符含义集合操作符并差交×广义笛卡儿积专门的关系操作符选择投影连接÷除比较操作符大于大于等于小于小于等于等于不等于逻辑操作符非与或tR表示t是R的一个元组,tAi表示元组t中相应于属性Ai的一个分量。3.4.2 基于传统集合论的关系操作并差交笛卡儿积3.4.3 一元专门关系操作(1)选择:行分解记作F(R)。F表示条件(表达式为XY, 表示比较操作符),R表示关系。例3.5 查询全体学生。dept=信息(STUDENT)或5=信息(STUDENT)(2)投影。列分解,记作A(R),A表示指定的列,并消除重复元组。例3.7 查询学生的姓名和所在系sname,dept(STUDENT)或2,5(STUDENT)3.4.4 二元的专门关系操作1.连接。记作(1)等值连接。选取笛卡儿积中A、B属性值相等的元组。(2)自然连接。等值连接的角度,还要取消重复列。2.除。记作R÷S3.4.5 扩展关系操作扩展关系操作主要有广义投影、赋值、外连接、半连接、聚集和外部并。1.广义投影。算述表达式上投影。例3.11 查询关系中学号为的学生年龄增加2岁后的年龄2.赋值。赋值给新的关系RS例3.12 增加新课程COURSE COURSE(C06,电子商务,陈伟钢)例3.13 删除同学信息选课信息SCSC-()3.外连接。不想抛弃自然连接时没有的元组就使用,记作,右外连接,左外连接4.半连接5.聚集,加G例:求女同学平均年龄求选修数据库课程的平均成绩6. 外部并是为了得到从两个不满足相容性条件的关系得到它们的元组集合而被开发的。第4章 关系数据库标准语言SQL(一)4.1 SQL概述4.1.1 结构化查询语言SQL4.1.2 SQL语言的特点1.综合统一。数据定义语言(DDL)、数据操纵语言(DML)、数据控制语。2.高度非过程化。只需指出做什么,不必要求怎么做。3.面向集合的操作方式。一次多记录。4.灵活的使用方式。自含语言,又是嵌入语言。5.语言简洁,易学易用,功能强。SQL语言的动词SQL功能动词数据查询SELECT数据定义CREATE、DROP、ALTER数据操纵INSERT、UPDATE、DELETE数据控制GRANT、REVOKE4.1.3 SQL的数据类型四类:预定义、构造、用ALTER户定义、大对象数据类型。SQL数据类型及其说明分类类型类型名说明预定义数据类型数值型INT整数类型SMALLINT短整数类型REAL浮点类型DOUBLEPRECISION双精度浮点数类型FLOAT(n)浮点类型,精度至少为n位数字NUMERIC(p,d)定点数类型,共p位数字,小数点后面有d位数字字符串型CHAR(n)长度为n的定长字符串类型VARCHAE(n)最大长度为n的可变长字符串类型位串型BIT(n)长度为n的二进制位串类型BITVARYING(n)最大长度为n的变长二进制位串类型时间型DATE日期类型,形如YYYY-MM-DDTIME时间类型,形如:HH:MM:SSTIMESTAMP时间戳类型(DATE加TIME)布尔型BOOLEAN值可为TRUE、FALSE、UNKNOWN构造数据类型由特定保留字和预定义数据类型构造而成,如用REF定义引用类型,用ROW定义行类型,用ARRAY定义聚合数据类型等用户定义数据类型是一个对象类型,由用户按照一定的规则用预定义数据类型组合定义的用户自己专用的数据类型大对象型可存储多达10亿字节的串,LOB又可分BLOB,二进制大对象,用于存储音频,图像。CLOB,字串大对象,用于存储长字串数据4.1.4 SQL对关系数据库模SQL支持数据库三级模式结构元组对应表中的行(Row),属性对应表中的列(Column)具体说明:(1)数据库模式基本表集合。(2)一个关系一个基本表(3)一个表可以若干索引,索引存放在存储文件中(4)存储文件的逻辑结构构成内模式。(5)一个SQL表可以是基本,也可以是视图。(6)一个基本表可以跨一个或多个存储文件,一个存储文件可以放多个基本表,每个存储文件对应一个物理文件。(7)SQL用户可以是应用程序,也可以是用户。(8)SQL环境是SQL数据存在和SQL语句执行的语境,环境还包括用户标识和授权。(9)目录用目录名标识,每个目录可以饮食若干个SQL模式。(10)SQL模式用模式名标识,模式元素包括:基本表、约束、视图、域、和其他构造。4.1.5 SQL语言的组成和语句类型1.组成(1)数据定义语言(DDL)(2)数据操纵语言(DML)(3)数据控制语言(DCL)(4)嵌入式和动态SQL规则,用于高级语言。(5)SQL调用和会话规则。2.语句类型(1)SQL定义语句:创建、更改、删除数据库模式及其对象(或元素)。(2)SQL操纵语句:查询和插入、删除、更新操作SELECTINSERTDELETEUPDATE。(3)SQL事务控制语句:完成数据库授权、事务管理、以及控制SQL语句集的运行。GRANTREVOKESTART TRANSACTIONCOMMITROBACKSAVEPOINTLOCKNULOCKCALL.(4)SQL连接、会话和诊断语句:建立数据库连接,为SQL会话设置参数,获取诊断等。SET CONNECTIONSET ZONESET SESSION AUTHORIZATIONGET DIAGNOSTICS等。3.SQL的语句基本结构由动词、SQL对象、限定词等组成。聚簇(Cluster)、授权ID、特权(Privilege)、目录(Catalog)、模式(Schema)、表(Table)、列(Column)、SQL域(Domain)、用户定义类型(User Defined Type)、约束和断言(Constraint and Assertion)、字符集(Character Set)、聚合(Collation)、翻译(Translation)、触发器(Trigger)、模块(Module)、调用例程(SQL-Invoked Routime)4.2 SQL的数据定义操作对象操作方式创建删除修改模式CREATE SCHEMADROP SCHEMA基本表CREATE TABLEDROP TABLEALTER TABLE视图CREATE VIEWDROP VIEW索引CREATE INDEXDROP INDEX域CREATE DOMAINDROP DOMAIN过程触发器定义约束定义默认值4.2.1 模式的定义和删除1.定义模式create schema <模式名> authorization <用户名>2.删除模式drop schema <模式名> cascade|restrict -表示连级删除或约束删除4.2.2 基本表的定义、删除和修改1.创建基本表create table 模式名.<表名>(<列名><数据类型>列级完整性约束,.,<表级完整性约束>,)其他参数如果涉及多表的完整性约束,必须在表级上定义。示例:create table s_sc_c.student(S# char(8),sname char(20) not null unique,sex char(2) not null default '男',age int,dept char(20),primary key(s#)2.扩充和修改基本表alter table <表名>add <列名> <数据类型> 完整性约束add <完整性约束>drop <列名>cascade|restrictdrop <完整性约束>modify <列名><数据类型>注意:(1)原来表中是否有数据,新增列一律为允许空值;(2)被指定为主码的列必须是值非空且唯一。3.删除基本表drop table s_sc_c.student cascade|restrict)4.2.3 索引的建立和删除建立一个或多个索引,以提供存取路径,加快查找速度。1.创建索引create uniquecluser index<索引名>on <表名>(<列名><顺序>,<列名>顺序.)唯一索引:指一个索引项只对应唯一的数据。聚簇索引:指索引项的顺序与表中记录的物理顺序一致的索引。一个表上只能建一个聚簇索引。用法:经常更新的列不宜建聚簇索引。示例:create index no_indexon student(S# ASC,sname DESC)2.删除索引drop index on <表名> <索引名>4.2.4 域的建立和删除域:用户自定义的数据类型,带有域约束的数据类型和默认值一起构成。create domain <域名> as <数据类型> default<默认值>check<约束条件>删除域drop domain <域名>4.3 SQL的数据查询SELECT ALL|DISTINCT<目标列>,<目标列表达式>FROM <基本表名(或视图)>, <基本表名(或视图)WHERE <条件表达式>GROUP BY <列名1>HAVING<条件表达式>ORDER BY <列名2>ASC|DESC4.3.1 简单查询即单表查询1.表中查询若干列(投影操作)select * from s_sc_c.student2.查询经计算的值select sname,2012-age from s_sc_c.student3.消除取值重复的行select distinct S# from s_sc_c.sc4.条件查询(相当于投影操作)WHERE子句常用的查询条件查询条件谓词比较=,<,>,!=,!>,!<Not+上述比较符号确定范围BETWEEN AND,NOT BETWEEN AND确定集合IN,NOT IN字符匹配LIKE,NOT LIKE空值IS NULL,IS NOT NULL多重条件ADND,OR(1)使用BETWEEN查询。select sname,age from s_sc_c.studentwhere age between 20 and 22(2)利用LIKE的查询select * from s_sc_c.studentwhere sname like '张%'LIKE常用参数:_表示可以匹配任意匹配单个字符。%表示可任意长度字符串5.涉及空值NULL的查询select s#,c# from s_sc_c.sc where grade is null写法:IS NULL,IS NOT NULL6.对查询结果排序select * from s_sc_c.studentorder by dept,age desc7.使用聚集函数聚合函数有:COUNT(DISTINCT|ALL*) 统计元组个数COUNT(DISTINCT|ALL<列名>) 统计一列中值的个数SUM(DISTINCT|ALL<列名>) 计算一列的总合值AVG(DISTINCT|ALL<列名>) 平均值MAX(DISTINCT|ALL<列名>) 最大值MIN(DISTINCT|ALL<列名>) 最小值DISTINCT为取消列中得复值select COUNT(*) from s_sc_c.student8.对查询结果分组select S# from s_sc_c.scgroup by s# having COUNT(*)>24.3.2 连接查询多个表中取数据,称为连接查询。1.等值与非等值连接查询select student.*,sc.* from student,scwhere student.s#=sc.s#-如果无where则表示笛卡儿积select sname,age from student,scwhere c#='c01' and student.s#=sc.s#比较符可用=、>、<、=、>=、<=、!=、BETWEEN2.自身连接查询select S1.name,S1.age from student as S1,student as S2where s1.age>s2.age and s2.sname='郭晓新'3.复合条件连接WHERE子句包含由AND连接起来的多个连接条件4.3.3 嵌套查询由里向外处理1.带有谓词IN的子查询多值select s#,sname,dept from s_sc_c.student s1where s1.dept in(select dept from s_sc_c.student s2where s2.name='郭晓新')2.带比较运算符的子查询单值select s#,sname,dept from s_sc_c.student s1where s1.dept =(select dept from s_sc_c.student s2where s2.name='郭晓新')3.带有ANY(SOME)或ALL的子查询内存多值select sname,age from s_sc_c.studentwhere age< ANY(select age from s_sc_c.studentwhere dept='计算机')and dept<>'计算机'4.带NOTEXISTS谓词的子查询EXISTS代表存在量词由于EXISTS子查询只返回真或假值,一般用目标列都用*表示。select sname from s_sc_c.student swhere exists (select * from s_sc_c.sc scwhere sc.s#=s.s# and c#='002')4.3.4 集合查询并、交、差1.并,行合并select s# from s_sc_c.sc where c#='C01'union select s# from s_sc_c.sc where c#='C02'2.交,公共集部分select s# from s_sc_c.sc where c#='C01'intersectselect s# from s_sc_c.sc where c#='C02'3.差Except,差集select s# from s_sc_c.sc where c#='C01'exceptselect s# from s_sc_c.sc where c#='C02'4.3.5 SQL中的连接表和外连接1.SQL中的连接表自连接,NATURAL select sname,agefrom (student join sc on student.s#=sc.s#)where c#='C01'2.SQL中的外连接LEFT JOIN,保留左边关系所有元组RIGHT JOIN,保留右边关系所有元组FULL JOIN,保留左右关系两边所有元组4.4 SQL的数据修改数据修改语句:插入、删除和更新。4.4.1 插入数据INSERT INTO表名(字段名,字段名)VALUES(常量 ,常量)或子查询4.4.2 删除数据DELETE FROM <表名>WHERE<条件表达式>4.4.3 更新数据可以把更新看作,先删除再插入。UPDATE <表名>SET <列名>=<表达式>,<列名>=<表达式>WHERE <条件表达式>4.5 SQL的数据控制数据控制包括:安全性控制、完整性控制、事物控制、并发控制、故障恢复。GRANT和REVOKE权限控制。4.5.1 权限授予(1)授予角色权限GRANT <角色> TO <用户>PUBLIC(2)授予权限GRANT <权限>,<权限>|ALLON <对象名>TO <用户>|<角色>,<角色>|PUBLICWITH GRANT OPTIONgrant select on tab_1 to role_1 with grant optiongrant update(grade),select on table sc to user3权限列表对象操作权限COLUMNSELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGESVIEWSELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGESTABLESELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,INDEX,ALL PRIVILEGES4.5.2 权限收回(1)收回角色的REVOKE命令REVOKE <角色> FROM <用户>,<用户>(2)收回特权的REVOKE命令REVOKE <角色> ,<权限>ON <对象类型><对象名>FROM <用户>,<用户>CASCADERESTRICErevoke select on tab_1 from role_1revoke update(grade)on table sc from user3第5章 关系数据库标准语言SQL(二)5.1 SQL视图5.1.1 视图的概念和定义1.视图的概念视图:提供给用户以多种角度观察数据库中数据的重要机制。是从一个或多个基本表(或其他视图)中使用SELECT FROM语句导出的表。本身不存放数。一切对视图的操作都将转换成基本表。视图一基本表一样,可以修改(插入、删除、更新)。2.视图的创建CREATE VIEW <视图名>(列名>,<列名>)AS <子查询>WITH CHECK OPTION其中:子查询一般不包括ORDER BY、DISTINCT的SELE