- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 关系数据库标准语言SQL SQL(Structured Query Language,结构化查询语言)是关系数据库的标准语言,是介于关系代数和关系演算之间的一种语言。SQL是一个通用的、功能极强的关系数据库语言。 3.1 SQL概述 3.2 学生—课程数据库 3.3 数据定义 3.4 数据更新(一) 3.5 数据查询 3.6 数据更新(二) 3.7 视 图 3.8 数据控制之一:安全性控制 3.9 数据控制之二:完整性控制 3.10 空值的处理 3.11 嵌入式SQL 3.12 PL/SQL简介 3.13 数据库系统的三级模式 3.1 SQL概述 3.1.1 SQL的产生与发展 SQL是在1974年由Boyce和Chamberlin提出,并在IBM公司研制的关系数据库管理系统原型System R上实现的。 SQL简单易学、功能丰富,深受用户及计算机工业界人士的欢迎,并被数据库厂商所采用。1986年10月,SQL-86。1989年公布了SQL-89标准,1992年公布了SQL-92标准(又称SQL2),1999年公布了SQL-99标准(SQL3)。 3.1.2 SQL的基本概念 用户可以用SQL对数据库中的表(Table)和视图(View)进行查询或其他操作,表和视图就是关系模型中的关系。表由表名、表结构(关系模式)和数据三部分组成。表亦称为基本表。视图由视图名和视图定义两部分组成。 表的名字和结构存放在系统中的数据字典中。表中的数据在数据库中有专门的地方存放。 视图是从一个或几个表导出的表,它实际上是一个查询结果,视图的名字和视图对应的查询存放在数据字典中。在数据库中视图对应的数据没有单独存放,这些数据仍存放在导出视图的表中,因此视图是一个虚表。 3.1.3 SQL的组成 SQL包括了对数据库的所有操作,在功能上可以分为以下4个部分。 1.数据定义(Data Definition) 2.数据操纵(Data Manipulation) 3.数据控制(Data Control) 4.嵌入式SQL(Embeded SQL) 3.1.4 SQL的特点 1.综合统一 2.高度非过程化 3.面向集合的操作方式 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、Cno和Grade分别表示学号、课程号和成绩,主码为属性组 (Sno,Cno)。 3.3 数据定义 建立数据库的第一步是建立表结构(关系模式)、定义视图和创建索引,这些操作要用SQL的数据定义语句来完成。 对一个关系的存取方法有两种:一种是顺序扫描,即先存取第一个元组,再存取第二个元组,直至最后一个元组;另一种是建立索引(Index),通过索引找到所要查找的元组,可以大大加快访问速度。索引不是关系模型中的概念层和逻辑层的概念,它属于物理存储结构的范畴。决定在哪个关系上建立索引是需要认真考虑的,因为索引虽然可以加快查找速度,但维护索引也要付出代价。索引一般由DBA建立。在执行一个查询时,是否利用关系上的索引,利用哪个索引是在查询优化时由DBMS决定的,用户不能干预,或者说索引被DBMS屏蔽掉了。 视图和索引都是依附于表的,因此SQL通常不提供修改视图定义和修改索引定义的操作。如果想修改视图定义或索引定义,只能先将它们删除掉,然后再重建。对表允许增加新的属性,但是一般不允许删除属性,确实要删除一个属性,必须先将表删除掉,再重新建立表并装入数据。增加一个属性不用修改已经存在的程序,而删除一个属性必须修改那些使用了该属性的程序。 用户必须从DBA获得权利,如建立表的权利。用户建立了一个表以后,对该表拥有所有权利,其他用户一般只拥有查询权利,要重新分配权利必须使用授权语句。 3.3.1 定义、修改与删除表 3.3.1.1 定义表 其一般格式如下: CREATE TABLE 表名(列名 数据类型[ 列级完整性约束条件 ] [,列名 数据类型[ 列级完整性约束条件] ]…) [,表级完整性约束条件 ]; 其中<表名>是所要定义的表的名字,它可以由一个或多
文档评论(0)