欢迎来到天天文库
浏览记录
ID:57927016
大小:215.00 KB
页数:98页
时间:2020-09-03
《【数据库系统】关系数据库标准语言SQL.ppt》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、西华师范大学计算机学院第三章关系数据库标准语言SQL第三章关系数据库标准语言SQL3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图3.6数据控制3.7嵌入式SQL3.8小结SQL的产生与发展1970年,美国IBM研究中心的E.F.Codd连续发表多篇论文,提出关系模型。1972年,IBM公司开始研制实验型关系数据库管理系统SYSTEMR,配制的查询语言称为SQUARE(SpecifyingQueriesAsRelationalExpression)语言,在语言中使用了较多的数学符号。197
2、4年,Boyce和Chamberlin把SQUARE修改为SEQUEL(StructuredEnglishQUEryLanguage)语言。后来SEQUEL简称为SQL(StructuredQueryLanguage),即“结构式查询语言”,SQL的发音仍为“sequel”。1986年10月美国国家标准局(ANSI)数据库委员会批准了SQL作为关系数据库语言的美国标准。同年公布了SQL标准文本(简称SQL-86)。1987年6月,国际标准化组织(ISO)将其采纳为国际标准。在此之后,对SQL进行修改和扩充
3、的标准化工作不断进行着,相继出现了SQL-89、SQL2(1992)和SQL3(1999)。SQL数据库的体系结构从图中可以看出,模式与基本表相对应,外模式与视图相对应,内模式对应于存储文件。基本表和视图都是关系。1.基本表(BaseTable)基本表是模式的基本内容。每个基本表都是一个实际存在的关系。2.视图(View)视图是外模式的基本单位,用户通过视图使用数据库中基于基本表的数据(基本表也可作为外模式使用)。一个视图虽然也是一个关系,但是它与基本表有着本质的区别。任何一个视图都是从已有的若干关系导出
4、的关系,它只是逻辑上的定义,实际并不存在。在导出时,给出一个视图的定义(从哪几个关系中,根据什么标准选取数据,组成一个什么视图与基本表名称的关系等),此定义存放在数据库(数据字典)中,但没有真正执行此定义(并未真正生成此关系)。当使用某一视图查询时,将实时从数据字典中调出此视图的定义;根据此定义以及现场查询条件,从规定的若干关系中取出数据,组织成查询结果,展现给用户。因此,视图是虚表,实际并不存在,只有定义存放在数据字典中。当然,用户可在视图上再定义视图,就像在基本表上定义视图一样,因为视图也是关系。视图
5、与基本表(续)3.存储文件存储文件是内模式的基本单位。每一个存储文件存储一个或多个基本表的内容。一个基本表可有若干索引,索引也存储在存储文件中。存储文件的存储结构对用户是透明的。下面将介绍SQL的基本语句。各厂商的RDBMS实际使用的SQL语言,与标准SQL语言都有所差异及扩充。因此,具体使用时,应参阅实际系统的有关手册。3.1SQL概述SQL的特点1.综合统一2.高度非过程化3.面向集合的操作方式4.以同一种语法结构提供两种使用方法5.语言简洁,易学易用5.语言简捷,易学易用第三章关系数据库标准语言SQ
6、L3.1SQL概述3.2数据定义3.3查询3.4数据更新3.5视图3.6数据控制3.7嵌入式SQL3.8小结3.2数据定义3.2.1表定义语句格式CREATETABLE<表名>(<列名><数据类型>[<列级完整性约束条件>][,<列名><数据类型>[<列级完整性约束条件>]]…[,<表级完整性约束条件>]);<表名>:所要定义的基本表的名字。在一个数据库中,不允许有两个基本表同名(应该更严格的说,任何两个关系都不能同名,包括视图)。<列名>:组成该表的各个属性(列)。一个表中不能有两列同名。<类型>:规定
7、了该列的数据类型。各具体DBMS所提供的数据类型是不同的。但下面的数据类型几乎都是支持的:INT或INTEGER全字长二进制整数SMALLINT半字长二进制整数DEC(p[,q])压缩十进制数,共p位,其中小数点后有q位,FLOAT双字长的浮点数CHAR(n)或CHARTER(n)长度为n的定长字符串VARCHAR(n)最大长度为n的变长字符串DATE日期型,格式为YYYY―MM―DDTIME时间型,格式为HH.MM.SSTIMESTAMP日期加时间<列的完整性约束>:该列上数据必须符合的条件。<表级完整
8、性约束>:对整个表的一些约束条件,常见的有定义主码(外码),各列上数据必须符合的关联条件等。SQL只要求语句的语法正确就可以,对格式不作特殊规定,不区分大小写。一条语句可以放在多行上,字和符号间有一个或多个空格分隔。一般每个列定义单独占一行(或数行),每个列定义中相似的部分对齐(这不是必须的),从而增加可读性,一目了然。例题[例1]建立一个“学生”表Student,它由学号Sno、姓名Sname、性别Ssex、年龄Sage、所
此文档下载收益归作者所有