欢迎来到天天文库
浏览记录
ID:50047248
大小:1.16 MB
页数:343页
时间:2020-03-08
《数据库基础与应用 教学课件 作者 王珊 李盛恩 第03章.ppt》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、第3章关系数据库标准语言SQLSQL(StructuredQueryLanguage,结构化查询语言)是关系数据库的标准语言,是介于关系代数和关系演算之间的一种语言。SQL是一个通用的、功能极强的关系数据库语言。退出3.1SQL概述3.2学生—课程数据库3.3数据定义3.4数据更新(一)3.5数据查询3.6数据更新(二)3.7视图3.8数据控制之一:安全性控制3.9数据控制之二:完整性控制3.10空值的处理3.11嵌入式SQL3.12PL/SQL简介3.13数据库系统的三级模式3.1SQL概述3.1.1SQL的产生与发展SQL是在1974年由Boyce和Chambe
2、rlin提出,并在IBM公司研制的关系数据库管理系统原型SystemR上实现的。SQL简单易学、功能丰富,深受用户及计算机工业界人士的欢迎,并被数据库厂商所采用。1986年10月,SQL-86。1989年公布了SQL-89标准,1992年公布了SQL-92标准(又称SQL2),1999年公布了SQL-99标准(SQL3)。3.1.2SQL的基本概念用户可以用SQL对数据库中的表(Table)和视图(View)进行查询或其他操作,表和视图就是关系模型中的关系。表由表名、表结构(关系模式)和数据三部分组成。表亦称为基本表。视图由视图名和视图定义两部分组成。表的名字和结构
3、存放在系统中的数据字典中。表中的数据在数据库中有专门的地方存放。视图是从一个或几个表导出的表,它实际上是一个查询结果,视图的名字和视图对应的查询存放在数据字典中。在数据库中视图对应的数据没有单独存放,这些数据仍存放在导出视图的表中,因此视图是一个虚表。3.1.3SQL的组成SQL包括了对数据库的所有操作,在功能上可以分为以下4个部分。1.数据定义(DataDefinition)2.数据操纵(DataManipulation)3.数据控制(DataControl)4.嵌入式SQL(EmbededSQL)3.1.4SQL的特点1.综合统一2.高度非过程化3.面向集合的操
4、作方式4.以同一种语法结构提供两种使用方式5.语言简捷,易学易用3.2学生—课程数据库学生—课程数据库中包括3个表,如表3.2~表3.4所示。学生表:Student(Sno,Sname,Ssex,Sage,Sdept)其中属性Sno、Sname、Ssex、Sage和Sdept分别表示学号、姓名、性别、年龄和所在系,Sno为主码。课程表:Course(Cno,Cname,Cpno,Ccredit)其中属性Cno、Cname、Cpno和Ccredit分别表示课程号、课程名、先修课号和学分,Cno为主码。学生选课表:SC(Sno,Cno,Grade)其中属性Sno、
5、Cno和Grade分别表示学号、课程号和成绩,主码为属性组(Sno,Cno)。3.3数据定义建立数据库的第一步是建立表结构(关系模式)、定义视图和创建索引,这些操作要用SQL的数据定义语句来完成。对一个关系的存取方法有两种:一种是顺序扫描,即先存取第一个元组,再存取第二个元组,直至最后一个元组;另一种是建立索引(Index),通过索引找到所要查找的元组,可以大大加快访问速度。索引不是关系模型中的概念层和逻辑层的概念,它属于物理存储结构的范畴。决定在哪个关系上建立索引是需要认真考虑的,因为索引虽然可以加快查找速度,但维护索引也要付出代价。索引一般由DBA建立。在执行一
6、个查询时,是否利用关系上的索引,利用哪个索引是在查询优化时由DBMS决定的,用户不能干预,或者说索引被DBMS屏蔽掉了。视图和索引都是依附于表的,因此SQL通常不提供修改视图定义和修改索引定义的操作。如果想修改视图定义或索引定义,只能先将它们删除掉,然后再重建。对表允许增加新的属性,但是一般不允许删除属性,确实要删除一个属性,必须先将表删除掉,再重新建立表并装入数据。增加一个属性不用修改已经存在的程序,而删除一个属性必须修改那些使用了该属性的程序。用户必须从DBA获得权利,如建立表的权利。用户建立了一个表以后,对该表拥有所有权利,其他用户一般只拥有查询权利,要重新分
7、配权利必须使用授权语句。3.3.1定义、修改与删除表3.3.1.1定义表其一般格式如下:CREATETABLE<表名>(<列名><数据类型>[列级完整性约束条件][,<列名><数据类型>[列级完整性约束条件]]…)[,<表级完整性约束条件>];其中<表名>是所要定义的表的名字,它可以由一个或多个属性(列)组成。建表的同时通常还可以定义与该表有关的完整性约束条件,这些完整性约束条件被存入系统的数据字典中。当操作表中数据时由DBMS自动检查该操作是否违背这些完整性约束条件。如果完整性约束条件涉及到该表的多个属性列,则必须定义在表级上,否则既可以定义在列级也可以定义在
此文档下载收益归作者所有