资源描述:
《【数据库系统概论】关系数据库标准语言——sql.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第五章关系数据库标准语言——SQLSQL(StructuredQueryLanguage)是1974年由Boyce和Chamberlin提出的。在IBM公司SanJoseResearchLaboratory研制的SystemR上实现了这种语言。由于它功能丰富、使用方式灵活、语言简洁易学等突出优点,在计算机工业界和计算机用户中倍受欢迎并深深扎根。1986年10月,美国国家标准局(ANSI)的数据库委员会X3H2批准了SQL作为关系数据库语言的美国标准。同年公布了标准SQL文本。此后不久,国际标准化组织(ISO)也作出了同样的决定。本章介绍SQL语言,并
2、进一步讨论关系数据库的基本概念.SQL标准文本和实施的SQL语言相比,后者常常作了许多必要的扩充,因此我们选用IBM公司在DB2上的SQL语言.它基本上和标准SQL一致,而在对关系模型的符合程度上比标准SQL更好.5.1SQL概貌及其特点SQL(StructuredQueryLanguage)的英文名称是结构查询语言。实际上它的功能包括查询(Query),操纵(Manipulation),定义(Definition)和控制(Control)四个方面,是一个综合的、通用的、功能极强的关系数据库语言。一、SQL的主要特点1.一体化的特点2.两种使用方式,
3、统一的语法结构3.高度非过程化4.语言简洁,易学易用(1).数据库查询SELECT(2).数据定义CREATE,DROP(3).数据操纵INSERT,UPDATE,DELETE(5).数据控制GRANT,REVOKE二.SQL语言支持关系数据库三级模式结构(图5-1)SQLViewV1ViewV2BasetableB1BasetableB2BasetableB3BasetableB4StoredfileS1StoredfileS2StoredfileS3StoredfileS4外模式模式内模式用户图5-15.2SQL数据定义功能SQL的数据定义功能包
4、括三部分:定义基本表,定义视图和定义索引.他们是:CREATETABLECREATEVIEWCREATEINDEXDROPTABLEDROPVIEWDROPINDEXALTERTABLE5.2.1基本表定义和修改一.定义基本表的语句1.格式:CREATETABLE表名(列名1类型[NOTNULL][,列名1类型[NOTNULL]]…)[其它参数];2.几点说明(1).任选项“其它参数”是与物理存储有关的参数,随具体系统而异.(2).DB2支持的数据类型①.INTEGER全字长(31bits)的二进制整数.②.SMALLINT半字长(15bits)的二
5、进制整数③.DECIMAL(p[,q])压缩十进制数,共p位,小数点后有q位.④.FLOAT双字长的浮点数.⑤.CHAR(n)长度为n的定长字符串.⑥.VARCHAR(n)变长字符串,最大长度为n.(3).SQL支持空值的概念3.举例:CHEATETABLES(S#CHAR(3)NOTNULL,SNCHAR(15),SDCHAR(15),SASMALLINT);二.修改基本表定义的语句1.格式:ALTERTABLE表名ADD列名类型;2.举例ALTERTABLESADDSEXSMALLINT;三.删除基本表的语句1.格式:DROPTABLE表名;2.
6、举例ALTERTABLES;5.2.2索引的建立和删除通常索引的建立和删除由DBA(DadaBaseAdministrator)或表的主人负责.一.建立索引的语句1.格式CREATE[UNIQUE]INDEX索引名ON基本表名(列名[次序][,列名[次序]]…)[其它参数];2.举例:CREATEUNIQUEINDEXXSNOONS(S#)CREATEUNIQUEINDEXXCNOONC(C#)CREATEUNIQUEINDEXXSCONSC(S#ASC,C#DESC)二.删除索引的语句1.格式DROPINDEX索引名;2.举例DROPINDEXXS
7、NO;5.2.3小结在关系数据库中允许DBA随时使用SQL数据定义语句来定义基本表、索引和视图,系统十分方便灵活。在非关系系统中,数据库的模式一经建立再要加入新的记录型或修改老的记录型是十分费事的工作。而象DB2这样的SQL关系数据库系统,增删改基本表、索引和视图都不必停止系统的其它处理,不会影响其它用户对数据库的正常使用。5.3SQL数据操纵功能SQL的数据操纵功能包括SELECT,INSERT,DELETE,和UPDATE四个语句,即检索和更新(包括增、删、改)两部分功能.5.3.1SQL查询语句1.查询语句的格式SELECT目表列FROM基本表
8、(或视图)[WHERE条件表达式][GROUPBY列名1[HAVING内部函数表达式]][ORDERBY列名