数据库系统管理课件(王岚主编)第四章优质PPT.ppt
《数据库系统管理课件(王岚主编)第四章优质PPT.ppt》由会员分享,可在线阅读,更多相关《数据库系统管理课件(王岚主编)第四章优质PPT.ppt(157页珍藏版)》请在冰豆网上搜索。
它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。
它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,在多数情况下,在其他语言中需要一大段程序实现的功能只需要一个SQL语句就可以达到目的,这也意味着用SQL语言可以写出非常复杂的语句。
数据库基础4.1SQL概述概述结构化查询语言(StructuredQueryLanguage)最早是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEMR开发的一种查询语言,它的前身是SQUARE语言。
SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言得到了广泛的应用。
如今无论是像Oracle、Sybase、Informix、SQLServer这些大型的数据库管理系统,还是像VisualFoxporo、PowerBuilder这些PC上常用的数据库开发系统,都支持SQL语言作为查询语言。
数据库基础4.1SQL概述概述美国国家标准局(ANSI)与国际标准化组织(ISO)已经制定了SQL标准。
ANSI是一个美国工业和商业集团组织,负责开发美国的商务和通讯标准。
ANSI同时也是ISO和InternationalElectrotechnicalCommission(IEC)的成员之一。
ANSI发布与国际标准组织相应的美国标准。
1992年,ISO和IEC发布了SQL国际标准,称为SQL-92。
ANSI随之发布的相应标准是ANSISQL-92。
ANSISQL-92有时被称为ANSISQL。
尽管不同的关系数据库使用的SQL版本有一些差异,但大多数都遵循ANSISQL标准。
SQLServer使用ANSISQL-92的扩展集,称为T-SQL,其遵循ANSI制定的SQL-92标准。
数据库基础4.1SQL概述概述SQL语言包含3个部分:
数据定义语言(DDL),例如:
CREATE、DROP、ALTER等语句。
数据操作语言(DML),例如:
SELECT、INSERT、UPDATE、DELETE语句。
数据控制语言(DCL),例如:
GRANT、REVOKE、COMMIT、ROLLBACK等语句。
数据库基础4.1SQL概述概述SQL语言包括三种主要程序设计语言类别的陈述式:
数据定义语言(DDL),数据操作语言(DML)及数据控制语言(DCL)。
其中数据操作语言(DML)又分为数据查询(SELECT)和数据更新(INSERT、UPDATE、DELETE)。
数据库基础4.1SQL概述概述在SQLServer2005中,可以使用界面方式进行上述操作(详见第三章SQLServer2005的界面操作),也可以使用SQL语句完成。
见图4.1,在ManagementStudio界面中,使用数据库引擎查询工具,可以出现图中的书写SQL语句的窗口,书写后点击执行按钮,即可在下面的消息框中看到执行的结果。
注意:
默认状态下,SQL语言不区分大小写。
数据库基础4.1SQL概述概述图4.1ManagementStudio界面数据库基础第四章第四章关系数据库标准语言关系数据库标准语言SQL4.1SQL概述4.2SQL数据定义4.3SQL数据查询4.4SQL数据更新数据库基础4.2SQL数据定义数据定义4.2.1SQL数据库的体系结构4.2.2基本表的定义与删改数据库基础4.2.1SQL数据库的体系结构数据库的体系结构在具体介绍数据定义功能之前,首先需要了解SQL语言支持的关系数据库三级模式结构。
SQL语言可以对两种基本数据结构进行操作,一种是“表”,另一种是“视图(View)”。
视图是由不同的数据库中满足一定条件约束的数据所组成,用户可以像基本表一样对视图进行操作。
当对视图操作时,由系统转换成对基本表的操作。
视图可以作为某个用户的专用数据部分,这样便于用户使用,提高了数据的独立性,有利于数据的安全保密。
数据库基础4.2.1SQL数据库的体系结构数据库的体系结构SQL语言支持关系数据库三级模式结构,如图4.2所示。
用户可以用SQL语言对视图和基本表进行查询等操作,在用户观点里,视图和基本表都是关系。
视图是从一个或几个基本表导出的表,它本身不独立存储在数据库中,即数据库中只存储视图的定义而不存储对应的数据,因此视图是一个虚表。
视图在概念上与基本表等同,用户可在视图上再定义新的视图。
基本表是本身独立存在的表,一个(或多个)基本表对应一个存储文件,一个表可以带若干索引,索引也存放在存储文件中。
存储文件的逻辑结构组成了关系数据库的内模式。
数据库基础4.2.1SQL数据库的体系结构数据库的体系结构在SQL中,关系模式称为基本表,存储模式称为存储文件,子模式称为视图,元组称为行,属性称为列。
数据库基础4.2.1SQL数据库的体系结构数据库的体系结构图4.2SQL支持的数据库体系结构数据库基础4.2SQL数据定义数据定义4.2.1SQL数据库的体系结构4.2.2基本表的定义与删改数据库基础4.2.2基本表的定义与删改基本表的定义与删改SQL的数据定义功能包括3部分:
定义基本表、定义视图和定义索引。
我们以一个简单的图书管理关系数据模型为基础,通过示例来介绍SQL的使用方法。
设图书管理关系数据模型包括以下3个关系模式:
图书(图书编号,书名,作者,出版社,单价)读者(借书证号,姓名,性别,单位,职称,地址)借阅(借书证号,图书编号,借阅日期,备注)数据库基础4.2.2基本表的定义与删改基本表的定义与删改1定义基本表2修改基本表3删除基本表数据库基础1定义基本表定义基本表定义一个基本表相当于建立一个新的关系模式,但尚未输入数据,只是一个空的关系框架。
系统将一个基本表的数据描述存入数据字典中,供系统或用户查阅。
定义基本表就是创建一个基本表,对表名(关系名)和它所包括的各个属性及其数据类型做出具体规定。
不同的系统支持的数据类型有区别,SQLServer2005支持的数据类型请见3.2.1。
数据库基础1定义基本表定义基本表定义基本表使用SQL语言数据定义功能中的CREATETable语句实现,其一般格式为:
CREATETABLE(列级完整性约束定义,列级完整性约束定义,表级完整性约束定义)数据库基础1定义基本表定义基本表注意:
上述语法中用到了一些特殊的符号,这些符号是语法描述的常用符号,而不是SQL语句的组成部分。
我们先介绍一下这些符号,后面的语句语法介绍中也会用到。
方括号()中的内容是可选的(即可出现0次或1次)。
花括号()与省略号()一起,表示其中的内容也是可选的(即可出现0次或1次)。
另外常用的还有竖杠(|)表示在多个短语中选择一个,例如term1|term2|term3,表示在这三个选项中任选一项,它将在后面的语法中用到。
数据库基础1定义基本表定义基本表其中:
是所定义的基本表的名字。
是表中所包含的列的名字。
一个表可以有多个列。
是指列的数据类型。
完整性约束定义数据库基础1定义基本表定义基本表在定义表的同时还可以定义与表有关的完整行约束条件,这些完整性约束条件都存储在系统的数据字典中。
如果完整性约束只涉及表中的一个列,则这些约束条件可以在列级完整性约束定义处定义,也可以在表级完整性约束定义处定义,但如果完整性约束条件涉及表中多个列,则必须在表级完整性约束定义处定义。
在列级完整性约束定义处可以定义以下约束:
数据库基础1定义基本表定义基本表NOTNULL:
限制列取值非空。
DEFAULT:
给定列的默认值。
UNIQUE:
限制列取值不重。
CHECK:
限制列的取值范围。
PRIMARYKEY:
指定本列为主码。
FOREIGNKEY:
定义本列为引用其他表的外码。
使用形式为:
FOREIGNKEY()REFERENCES()数据库基础1定义基本表定义基本表上述约束中,除了NOTNULL和DEFAULT不能在表级完整性约束定义处定义外,其他约束均可在表级完整性约束定义处定义。
但要注意以下几点:
第一,如果CHECK约束是定义多列之间的取值约束,则只能在表级完整性约束处定义;
第二,如果表的主码由多个列组成,则也只能在表级完整性约束处定义,并将主码列用括号括起来,即:
PRIMARYKEY(列1,列2);
第三,如果在表级完整性约束处定义外码,则“FOREIGNKEY()”部分不能省。
关于完整性详见第七章。
数据库基础1定义基本表定义基本表例4.1创建图书、读者和借阅三个二维表。
CREATETABLE图书(图书编号CHAR(8)PRIMARYKEY,书名CHAR(30),作者CHAR(8),出版社CHAR(30),单价DECIMAL(10,2)CREATETABLE读者(借书证号CHAR(8)PRIMARYKEY,数据库基础1定义基本表定义基本表姓名CHAR(8),性别CHAR
(2),CHECK性别IN(男,女)单位CHAR(30),职称CHAR(10),地址CHAR(30)CREATETABLE借阅(借书证号CHAR(8),数据库基础1定义基本表定义基本表图书编号CHAR(8),借阅日期DATATIME,备注CHAR(30),PRIMARYKEY(借书证号,图书编号),FOREIGNKEY借书证号REFERENCES读者(借书证号),FOREIGNKEY图书编号REFERENCES图书(图书编号)用NOTNULL指出该属性在输入数据时不允许有空值。
在一般情况下不允许主关键字为空值,而其他属性可以暂时不填写,或是未知的值。
数据库基础2修改基本表修改基本表修改基本表是指对已经定义的基本表增加、删除或修改某一列(属性)。
修改基本表使用SQL语言数据定义功能中的ALTERTABLE语句实现,其一般格式为:
数据库基础2修改基本表修改基本表ALTERTABLEALTERCOLUMN|ADDCOLUMN约束|DROPCOLUMN|ADD