资源描述:
《【数据库系统概论】关系数据库标准语言sql》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
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更好.3.1SQL概述SQL(StructuredQueryLanguage)的英文名称是结构查询语言。实际上它的功能包括查询(Query),操纵(Manipulation),定义(Definition)和控制(Control)四个方面,是一个综合的、通用的、功能极强的关系数据库语言。3.1.1SQL的主要特点1.综合统一2.高度非过程化3.面向
3、集合的操作方式4.两种使用方式,统一的语法结构5.语言简洁,易学易用(1).数据库查询SELECT(2).数据定义CREATE,DROP(3).数据操纵INSERT,UPDATE,DELETE(5).数据控制GRANT,REVOKE3.1.2SQL语言的基本概念图3.1SQL对关系数据库模式的支持SQLViewV1ViewV2BasetableB1BasetableB2BasetableB3BasetableB4StoredfileS1StoredfileS2外模式模式内模式3.2SQL数据定义SQL的数据定义功能包括三部分:定义基本表,定义视图和
4、定义索引,他们是:CREATETABLECREATEVIEWCREATEINDEXDROPTABLEDROPVIEWDROPINDEXALTERTABLE3.2.1定义、删除和修改基本表一.定义基本表的语句1.格式:CREATETABLE<表名>(<列名1><类型>[列级完整性约束条件][,<列名2><类型>[列级完整性约束条件]]…[<表级完整性约束条件>];)2.举例:例1:P88CREATETABLEStudent(SnoCHAR(5)NOTNULLUNIQUE,SnameCHAR(20)UNIQUE,SsexCHAR(1),SageINTS
5、deptCHAR(15));二.修改基本表1.格式:ALTERTABLE<表名>[ADD<新列名><数据类型>[完整性约束]];[DROP<完整性约束名>][MODIFY<列名><数据类型>];2.举例例2:ALTERTABLEStudentADDScomedate;三.删除基本表1.格式:DROPTABLE<表名>;2.举例例5:删除Student表ALTERTABLEStudent;例3:ALTERTABLEStudentMODIFYSageSMALLINT;例4:ALTERTABLEStudentDROPUNIQUE(Sname);5.2.2
6、建立与删除索引通常索引的建立和删除由DBA(DadaBaseAdministrator)或表的主人负责.一.建立索引1.格式CREATE[UNIQUE][CLUSTER]INDEX<索引名>ON<表名>(<列名>[<次序>][,<列名>[<次序.]]…);2.举例:例6:CREATEUNIQUEINDEXStusnoONStudent(Sno);CREATEUNIQUEINDEXCoucnoONCouse(Cno);CREATEUNIQUEINDEXSCnoONSC(SnoASC,CnoDESC);二.删除索引1.格式DROPINDEX<索引名>;
7、2.举例例7:删除Student表的Stusname索引.DROPINDEXStusname小结在关系数据库中允许DBA随时使用SQL数据定义语句来定义基本表、索引和视图,系统十分方便灵活。在非关系系统中,数据库的模式一经建立再要加入新的记录型或修改老的记录型是十分费事的工作。而象DB2这样的SQL关系数据库系统,增删改基本表、索引和视图都不必停止系统的其它处理,不会影响其它用户对数据库的正常使用。3.3查询数据库查询是数据库的核心操作。SQL语句提供了SELECT语句进行数据库的查询。查询语句的一般格式SELECT[ALL
8、DISTINCT]<目
9、标列表达式>[,<目标列表达式>]…FROM<表名或视图名>[,<表名或视图名>]…[WHERE<条件表达式>][GROU