(数据库原理)第4章标准查询语言SQL_第1页
(数据库原理)第4章标准查询语言SQL_第2页
(数据库原理)第4章标准查询语言SQL_第3页
(数据库原理)第4章标准查询语言SQL_第4页
(数据库原理)第4章标准查询语言SQL_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库原理与应用教程

第4章标准查询语言SQL数据库原理与应用教程标准查询语言SQL结构化查询语言SQL(StructuredQueryLanguage)是关系数据库系统的国际标准语言,它在大型或中小型数据库中都能使用。SQL语言集数据定义(DDL)、数据操纵(DML)、数据控制(DCL)于一身,学会了它,等于学会了在各种关系型数据库中,各种不同的DBMS中都能进行DDL、DML、DCL操作。本章主要叙述SQL语言的概念与特点、SQL语言的数据定义、SQL语言的数据查询、SQL语言的数据更新、SQL语言处理视图等方面知识,最后介绍了嵌入式SQL语言概念以及在VisualBasic、C#和Java中SQL语言的具体使用方法数据库原理与应用教程

本章目录

4.1SQL语言概述及其数据定义4.2SQL语言的数据查询4.3SQL语言的数据更新与视图4.4嵌入式SQL本章小结习题数据库原理与应用教程4.1SQL语言概述及其数据定义SQL语言无论是在Oracle、Sybase、Informix、SQLServer这样的大型数据库管理系统中,还是在VisualFoxpro、Access这样的中小型数据库管理系统中都能获得支持。本节首先说明SQL语言的发展过程和它的特点,然后就详细介绍SQL语言对数据库表、索引文件的定义方法。数据库原理与应用教程SQL语言概述及其数据定义目录4.1.1SQL语言的基本概念及其特点4.1.2SQL语言的数据定义4.1.3SQL对索引的创建与删除数据库原理与应用教程SQL语言的基本概念及其特点SQL语言的发展过程:1989年,美国国家标准局(ANSI)定义了关系型数据库的SQL标准语言,称为ANSISQL89,随后,国际标准化组织采用这一标准,推出SQL89。1992年,国际标准化组织推出SQL92,也称为SQL2。目前,SQL99正在起草中,其中增加了面向对象功能,也称为:SQL3。我国在1990年颂布“信息处理系统数据库语言SQL”,把其定为国家标准。4.1.1SQL语言的基本概念及其特点数据库原理与应用教程SQL语言是一种介于关系代数和关系演算之间的语言,其功能包括查询、操纵、定义和控制4个方面,是一个通用的、功能极强的关系数据库语言,它完全适合关系数据库的三级模式结构(外模式、模式、内模式),遵循关系模型中3类完整性约束:实体完整性、参照完整性和自定义完整性。目前已成为关系数据库的标准语言,广泛应用于各种数据库。数据库原理与应用教程SQL语言的主要特点

(1)综合统一。SQL语言集数据定义(DDL)、数据操纵(DML)、数据控制(DCL)于一体,语言风格统一,可以独立完成数据库中模式定义、建立数据库表、录入、查询、更新、维护数据、数据库重构、数据库安全控制等一系列操作。便得用户的数据库投入运行后,还可以根据实际需要,在不影响数据库整体运行的情况下,修改数据库模式,具有良好的扩充性。数据库原理与应用教程SQL语言的主要特点(2)高度非过程化。SQL语言与各种关系数据库DBMS中的语言一样是一种高度非过程化语言。使用时,只要指明“做什么?”不必像高级语言那样指明“怎样做?”,因此用户无需了解文件与数据的存取路径,这种存取路径的SQL语句的操作过程是由系统自动来完成。这不仅大大减轻了编程人员的负担,还有利于提高数据的独立性。数据库原理与应用教程SQL语言的主要特点(3)面向集合的操作方式。SQL语言操作与各种关系数据库DBMS中的语言一样是面向集合的操作方式。这就是说,它的操作方式不是针对某一个数据,而是针对一条记录和符合条件的多条记录进行的。例如,有一个班的学生关系(设为R)表,共有10多列内容,任意条(有限)记录,其中有1列是平均成绩,当要显示平均成绩在80分以上同学的情况(10多列内容一起显示)时,只要使用下列一条简单选择语句,就或把符合条件的所有学生情况显示出来:Select*FromRWhere平均成绩>=80数据库原理与应用教程SQL语言的主要特点(4)提供两种不同格式的使用方式。SQL语言提供的两种不同格式的使用方法是:自含式和嵌入式。所谓SQL的自含式语言,是和各种关系数据库DBMS中的语言一样,能够独立地用于联机交互的使用方式,用户可以在键盘上直接键入SQL命令对数据进行操作,当然也可以写成代码程序,在DBMS环境下运行;所谓SQL嵌入式语言,是把SQL语言的各种命令嵌入到高级语言程序中使用。这种方式可使高级语言与数据库结合起来,克服高级语言处理大量数据效率不高的缺点,这在当今各种应用系统开发中发挥很大的作用。目前应用较多的高级语言是VisualBasic、C语言一簇(VC、C++、C#)、Java等。数据库原理与应用教程SQL语言的主要特点(5)语言简捷,易学易用。SQL语言功能强大,但语言本身却很简单。一套语言完成所有功能只使用9个动词,它们是:查询命令(Select)、数据定义中的创建(Create)、删除(Drop)、修改(Alter)、数据操纵中插入(Insert)、修改(Update)、删除(Delete)、数据控制中的权力授于(Grant)、权力回收(Revoke)。SQL语法简单,接近口语,易学易用。数据库原理与应用教程SQL语言的数据定义1.定义数据库一般格式为:CREATEDATABASE<数据库名>例如要建立一个教师(teacher)的数据库,在查询分析器中输入命令:CREATEDATABASEteacher在SQLServer2005中,打开数据库,就会见到teacher的名称。4.1.2SQL语言的数据定义数据库原理与应用教程SQL语言的数据定义2.定义基本表选择teacher数据库后,在查询分析器中输入建立基本表的命令就可以建立基本表,定义基本表的结构,格式形式为:CREATETABLE<基本表名>(<列名><数据类型>,……完整性约束,……)数据库原理与应用教程SQL语言的数据定义定义数据表命令的说明:(1)<表名>:规定所创建的基本表的名称。在一个数据库中,不允许有两个基本表同名。(2)<列名>:规定了该列(属性)的名称。一个表中不能有两列同名。(3)<数据类型>:规定了该列的数据类型。各具体DBMS所提供的数据类型是不同的;本书使用的是SQLServer2005中规定的数据类型。(4)完整性约束:完整性约束规则在该命令中较为复杂,为了学习方便,没有把命令的全部内容一次写出来,这里主要用到下列三类子句:数据库原理与应用教程定义主键子句:Primarykey<属性名1,…>检查子句:Check(<条件>)外键子句:Constraint<约束名>ForeignKey<副表属性名1…>References<主表属性名1…>这里定义的主键一定要遵守实体完整性规则;外键一定要遵守参照完整性规则;检查子句是遵守用户自定义完整性规则。数据库原理与应用教程定义数据库内基本表实例说明:(1)“教师”表:T,由教师编号(TNO)、姓名(TN)、性别(SEX)、年龄(AGE)、职称(ZC)和所在专业(DEPT)6个属性组成。可记为:T(TNO,TN,SEX,AGE,ZC,DEPT)(2)“课程”表:C,由课程号(CNO)、课程名(CN)、课程性质(CX)和学分(CT)4个属性组成。可记为:C(CNO,CN,CX,CT)(3)“教师授课”表:TC,由教师编号(TNO)、课程号(CNO)、教龄(YEAR)3个属性组成,这里的教龄是指教授这门课的教龄。可记为:TC(TNO,CNO,YEAR)数据库原理与应用教程定义“教师”表【例4.1】创建“教师”表T,其中教师编号是主键,姓名、性别和年龄不能为空,性别只能选“男”或“女”,年龄大于18岁。CREATETABLET(TNOCHAR(4)NOTNULL,TNCHAR(8)NOTNULL,SEXCHAR(2)NOTNULLCHECK(SEXIN('男','女')),AGEINTNOTNULLCHECK(AGE>18),ZCCHAR(10),DEPTVARCHAR(12),PRIMARYKEY(TNO))(应在实际环境中演示)数据库原理与应用教程“教师”表数据库原理与应用教程定义“课程”表【例4.2】建立“课程”表C,课程号CNO是主键,课程名CN和CT不能为空,CT大于1。CREATETABLEC(CNOCHAR(4)NOTNULL,CNVARCHAR(10)NOTNULL,CXCHAR(8),CTINTNOTNULLCHECK(CT>1),PRIMARYKEY(CNO))(应在实际环境中演示)数据库原理与应用教程“课程”表数据库原理与应用教程定义“教师授课”表【例4.3】建立“教师授课”表TC,定义TNO和CNO是外键盘同时又是该表的主键,教龄不为空,并且YEAR大于1。CREATETABLETC(TNOCHAR(4)NOTNULL,CNOCHAR(4)NOTNULL,YEARINTNOTNULLCHECK(YEAR>1),PRIMARYKEY(TNO,CNO),CONSTRAINTTC_TFOREIGNKEY(TNO)REFERENCEST(TNO),CONSTRAINTTC_CFOREIGNKEY(CNO)REFERENCESC(CNO))(应在实际环境中演示)数据库原理与应用教程“教师授课”表数据库原理与应用教程

修改基本表结构

(1)增加属性。格式:ALTERTABLE<基本表名>ADD<新属性名><新属性类型>【例4.4】在基本表T中增加一个联系电话(TELE)属性,可用下列语句:ALTERTABLETADDTELECHAR(13)注意:新增加的属性不能定义为:NOTNULL,因为基本表在增加一个属性后,原来所有记录在新增加的属性列上的值都被定义为空值(NULL)。(应在实际环境中演示)数据库原理与应用教程修改基本表结构

(2)修正原属性数据类型。格式为:ALTERTABLE<基本表名>ALTERCOLUMN<新属性名><新属性类型>【例4.5】将T表中年龄的数据类型改为SMALLINT,可用下列语句:ALTERTABLETALTERCOLUMNAGESMALLINT修改原有的列定义,会使列中数据类型作新旧自动变化,有可能会破坏已有数据。(应在实际环境中演示)数据库原理与应用教程修改基本表结构(3)删除原有属性。格式为:ALTERTABLE<基本表名>DROPCOLUMN<属性名>在基本表中删除某一属性时要注意,引用到该属性的视图和约束也会一起自动地被删除。【例4.6】在基本表T中删除TELE属性,可用下列语句:ALTERTABLETDROPCOLUMNTELE(应在实际环境中演示)数据库原理与应用教程修改基本表结构(4)禁止参照完整性约束。格式为:ALTERTABLE<基本表名>NOCHECKCONSTRAINT<约束名>【例4.7】禁止TC中参照完整性约束TC_T。ALTERTABLETCNOCHECKCONSTRAINTTC_T(应在实际环境中演示)数据库原理与应用教程删除基本表

删除基本表命令的一般格式为:DROPTABLE<表名>【例4.8】删除表T。DROPTABLET注意:删除表需要相应的操作权限,一般只删除自己建立的无用表,如有用表一定要备份或保存好建立该表的程序。(应在实际环境中演示)数据库原理与应用教程SQL对索引的创建与删除

1.索引的概念数据库中的索引是为了加速对表中记录的检索而创建的一种分散存储结构,是对表或视图而建立的。索引建立后,如果改变了表或视图中数据,增加或减少记录,系统会自动更新索引。当查询到索引字段时,系统会自动使用索引进行查询,查询时的速度会比没建索引快得多。4.1.3SQL对索引的创建与删除数据库原理与应用教程按照索引记录存放的位置可以分为聚集索引(ClusteredIndex)与非聚集索引(NonClusteredIndex)两类。聚集索引是指索引项的顺序与表中记录的物理顺序一致的索引组织,检索记录的速度快。规定一个表中只能有一个属性或属性组,设定为聚集索引的字段,这一字段一定是查询时用得最频繁的。非聚集索引也按照索引的字段排列记录,但是排列的结果不会存储在表中,而是另外存储,因此检索记录速度没有聚集索引快。数据库原理与应用教程SQL对索引的创建与删除2.创建索引创建索引的语句其一般格式可以写成:CREATE[UNIQUE][CLUSTERED|NONCLUSTERED]INDEX<索引名>ON{<表名>|<视图名>}(<列名>[ASC|DESC][,...n])其中,UNIQUE表明建立唯一索引,CLUSTERED表示建立聚集索引,NONCLUSTERED表示建立非聚集索引。索引可以建在该表或视图的一列或多列上,各列名之间用逗号分隔,每个<列名>后面还可以用<次序>指定索引值的排列次序,包括ASC(升序)和DESC(降序)两种,缺省值为ASC。数据库原理与应用教程SQL对索引的创建与删除创建索引举例:【例4.9】为teacher中的T、C、TC三个表建立索引。其中T表按教师编号升序建唯一索引,C表按课程号降序建立聚集索引,TC表按TNO升序、CNO降序建非聚集索引。CREATEUNIQUEINDEXT_TNOONT(TNO)CREATECLUSTEREDINDEXC_CNOONC(CNODESC)CREATENONCLUSTEREDINDEXTC_TNO_CNOONTC(TNOASC,CNODESC)(应在实际环境中演示)数据库原理与应用教程SQL对索引的创建与删除删除索引删除索引的一般格式为:DROPINDEX表名.<索引名>∣视图名.<索引名>[,...n]【例4.10】删除TC表中TC_TNO_CNO索引。DROPINDEXTC.TC_TNO_CNO值得用户注意的是索引一旦建立,所在的DBMS系统会自动维护它,不需用户关心,建立索引文件的目的是提高查询速度,如果所建索引表的数据或记录增减太频繁,索引数目又多,每次打开表操作,系统会花费大量时间来维护这些索引,反而对加快查询操作不利。因此用户应根据具体情况,对数据库表做索引。(应在实际环境中演示)数据库原理与应用教程4.2SQL语言的数据查询查询是数据库应用的核心内容,用户一定要深刻领会和熟练掌握它。SQL只提供一条查询语句——SELECT,但该语句功能丰富,使用方法灵活,可以满足用户合理查询的任何要求。本节详细介绍了利用SELECT语句在各种情况下如何应用,并配合大量实例,初学者必须上机练习,并能举一反三。使用SELECT语句时,用户不需指明被查询关系的路径,只需要指出关系名,查询什么,有何附加条件即可。SELECT既可以在基本表关系上查询,也可以在视图关系上查询。数据库原理与应用教程SQL语言的数据查询目录

4.2.1SELECT命令的格式及其含义4.2.2单表查询4.2.3多表间连接和合并查询4.2.4嵌套查询4.2.5保存查询结果及分步查询数据库原理与应用教程SELECT命令的格式SELECT语句的一般格式为:SELECT[ALL|DISTINCT]<目标列表达式>[,<目标列表达式>]...[INTO<新表名>]FROM<表名或视图名>[,<表名或视图名>]...[WHERE<条件表达式>][GROUPBY<列名1>...[HAVING<条件表达式>]][ORDERBY<列名2>[ASC|DESC]]...4.2.1SELECT命令的格式及其含义数据库原理与应用教程SELECT命令的含义查询语句从功能上分可分为4部分:(1)无条件的简单查询。使用SELECT和FROM格式(上述命令的前3行或1,3行)。(2)有条件的查询,使用SELECT、FROM加上WHERE格式(上述命令的前4行或1,3,4行)。(3)如果要按各表中属性分组查询,可能要用到上述命令的前5行(或者1,3,4,5行)。(4)如果查询结果的记录要排序,一般情况下,可能要用到上述命令的1,3,4,6行。SELECT语句既可以完成简单的单表查询,也可以完成复杂的连接查询或嵌套查询。数据库原理与应用教程单表查询

1. 指定列或列表达式的查询2. 消除重复行的查询3. 条件子句的使用4.分组查询5. 排序查询注意:所的实例都应在实际环境中演示,这方面课件略4.2.2单表查询数据库原理与应用教程4.2.3多表间连接和合并查询1.等值与非等值连接查询2.自身连接3.外连接

4.合并查询注意:所的实例都应在实际环境中演示4.2.3多表间连接和合并查询1.等值与非等值连接查询其一般格式为:[<表名1>.]<列名1><比较运算符>[<表名2>.]<列名2>当比较运算符为“=”时,称为等值连接。使用其它运算符称为非等值连接。[例4.34]查询职称为讲师的授课情况。SELECT*FROMT,TCWHERET.TNO=TC.TNOANDZC=‘讲师’[例4.35]对T表和TC表作讲师的自然连接。SELECTt.*,CNO,YEARFROMT,TCWHERET.TNO=TC.TNOANDZC=‘讲师’多表中遇到相同的字段名时,应指明是哪个表的。2.自身连接连接操作不仅可以在两个表之间进行,也可以是一个表与其自己进行连接,这种连接称为自身连接。只有当对某一表进行多次扫描时才要进行自身连接。[例4.36]查询比邹敏老师年龄大的老师的姓名,年龄和邹敏的年龄。SELECTX.TNAS姓名,X.AGEAS年龄,Y.AGEAS邹敏的年龄FROMTASX,TASYWHEREX.AGE>Y.AGEANDY.TN=‘邹敏’3.外连接外连接概念与第3章中的外连接概念完全一样,目的是为了保存无条件连接的本来要删除的记录信息。FULL[OUTER]JOINLEFT[OUTER]JOINRIGHT[OUTER]JOIN例4.37略4.合并查询合并查询结果就是使用UNION操作符将来自不同查询的数据组合起来,形成一个具有综合信息的查询结果该操作全自动将重复的数据行剔除。各子查询使用的表结构应该相同。[例4.38]从TC表中查询出教师编号为“S4”和“S5”的教师编号和总教龄。SELECTTNOAS教师编号,SUM(YEAR)AS总教龄FROMTCWHERETNO=‘S4’GROUPBYTNOUNIONSELECTTNOAS教师编号,SUM(YEAR)AS总教龄FROMTCWHERETNO=‘S5’GROUPBYTNOSELECTTNOAS教师编号,SUM(YEAR)AS总教龄FROMTCWHERETNO=‘S4’ORTNO=‘S5’GROUPBYTNO数据库原理与应用教程嵌套查询1.带有IN谓词和比较运算符的子查询2.带有ANY或ALL谓词的子查询3.带有EXISTS谓词的子查询注意:所的实例都应在实际环境中演示,这方面课件略4.2.4嵌套查询数据库原理与应用教程对于EXISTS谓词的说明使用存在量词EXISTS后,若内层检查非空,则外层的WHERE子句返回真值,否则返回假值。用EXISTS谓词相反意义的是NOTESISTS。使用谓词NOTEXISTS后,若内层查询结果为空,则外层的WHERE子句返回真值,否则返回假值。数据库原理与应用教程保存查询结果及分步查询1.保存查询的结果

2.分步查询注意:所的实例都应在实际环境中演示,这方面课件略4.2.5保存查询结果及分步查询数据库原理与应用教程4.3SQL语言的数据更新与视图SQL语言中的数据更新命令(包括数据插入、修改、删除、视图处理等)是数据操纵功能中的重要组成部分,是维护数据表中数据正确的重要要操作方法,大家应该熟练掌握它们。数据库原理与应用教程SQL语言的数据更新与视图目录4.3.1插入数据1.插入记录2.插入子查询结果4.3.2修改数据1.修改某一个记录的值2.带子查询的修改语句4.3.3删除数据1.删除表中记录2.带子查询的删除语句注意:所的实例都应在实际环境中演示,这方面课件略数据库原理与应用教程视图创建、删除与更新

1.视图的概念视图是数据库系统三级模式中外模式的主要形式之一,开发数据库系统程序编写相当部分也是根据视图来编写的,因此用户必须要掌握视图知识。视图是根据基本表(一至多个基本表或已有的视图)导出的关系。当基本表中数据变化时,可以从视图中反映出来,在一定条件下,也可以通过视图中数据更新来改变基本表中的数据。在创建视图时,并不存储视图中的数据,而是在用户使用视图时才去显示对应的数据,因此视图被称为“虚表”。视图在很多方面与基本表相同,当视图一经定义,可以与基本表一样被查询、删除,也可以再定义新的视图,但对视图的更新操作有一定的限制。数据库原理与应用教程视图创建、删除与更新2.创建视图SQL语言用CREATEVIEW命令建立视图,其一般格式为:CREATEVIEW<视图名>[(<列名>[,<列名>]...)]AS<子查询>其中子查询可以是任意复杂的SELECT语句,但通常不允许含有ORDERBY子句和DISTINCT短语。注意:所的实例都应在实际环境中演示,这方面课件略数据库原理与应用教程创建视图的注意点如果CREATEVIEW语句仅指定了视图名,省略了组成视图的各个属性列名,则隐含该视图由子查询中SELECT子句目标列中的诸字段组成。在以下情况下必须明确指定组成视图的所有列名。(1)其中某个目标列不是单纯的属性名,而是集函数或列表达式。(2)多表连接时选出了几个同名列作为视图的字段。(3)需要在视图中为某个列启用新的更合适的名字。注意:所的实例都应在实际环境中演示,这方面课件略数据库原理与应用教程视图的删除和更新3.删除视图语句的格式为:DROPVIEW<视图名>一个视图被删除后,由此视图导出的其他视图也将失效,用户应该使用DROPVIEW语句将他们一起删除。4.更新视图更新视图包括插入(INSERT)、删除(DELETE)和修改(UPDATE)三类操作。注意:所的实例都应在实际环境中演示,这方面课件略数据库原理与应用教程更新视图数据的一般要求(1)如果一个视图是从多个基本表使用连接操作导出的,则此视图不允许更新。(2)如果在导出视图的过程中,使用了分组和聚合操作,也不允许该视图更新。(3)若视图的字段来自字段表达式或常量,则不允许对此视图执行INSERT和UPDATE操作,但可以进行DELETE操作。(4)若视图定义中含有GROUPBY、DISTINCT短语或嵌套查询,且内层查询的FROM子句中涉及的表也是导出该视图的基本表,则此视图不允许更新。数据库原理与应用教程SQL数据控制数据库中的数据由多个用户共享,为保证数据库的安全,SQL语言提供数据控制语句(DataControlLanguage,DCL)对数据库进行统一的控制管理。SQL数据控制语句有2个命令动词,一个是GRANT语句,是系统对下级用户授予权限;另一个是REVOKE语句,是系统对下级用户授予权限后的回收。这些内容均在本课程的下续课程“大型数据库系统”一书中详细讲解,本课程只讲解单机系统,在此不作介绍,有兴趣的用户可参考相关书籍。数据库原理与应用教程4.4嵌入式SQL

在目前许多数据库应用系统开发中,嵌入式SQL语言是开发平台与数据库联系的重要桥梁,它的具体应用是本课程要求学会的最重要的实践知识,也是计算机有关专业在软件开发中要具体应用的重要的基本方法。本节介绍了嵌入式SQL的基本工作方式,并对以VisualBasic、C#、Java三种高级语言为平台,与SQLServer结合开发程序的方法作了实例说明。在教学时,可根据学生学习高级语言的实际情况,可选择其中一种已学过的高级语言进行实践教学。数据库原理与应用教程4.4嵌入式SQL目录4.4.1嵌入式SQL语言介绍4.4.2VB平台下的嵌入式SQL语言4.4.3C#平台下的嵌入式SQL语言4.4.4Java平台下的嵌入式SQL语言注意:4.4.2-4.4.3内容是根据各学校对学生已学过的高级语言不同而选择的内容,课件略,这里仅介绍4.4.1节内容。数据库原理与应用教程嵌入式SQL语言介绍(1)1.嵌入式SQL概念从本章开始讲述的SQL特点中知道,前面介绍的SQL语言在SQLServer中的各种应用是属于自含式语言,嵌入式SQL语言是将SQL语言各种命令嵌入到某种高级语言中,利用高级语言的过程性结构来弥补SQL语言在实现逻辑关系复杂应用方面的不足,这种方式下使用的SQL语言称为嵌入式SQL(EmbeddedSQL)。数据库原理与应用教程嵌入式SQL语言介绍(2)能够使用SQL语句的高级语言称为主语言或宿主语言。目前使用比较广泛的宿主语言有VB、PB、C#、VB.NET、DELPHI、JAVA等。不管使用什么宿主语言,凡是通过SQL来对数据库操作均称为嵌入式SQL应用。数据库原理与应用教程嵌入式SQL语言的处理方法在宿主语言中,对于嵌入的SQL语句,一般可用两种方法处理:一种是把嵌入的SQL语句先进行编译,使它们能被宿主语言识别与运行,这种方式称为预编译;另一种方式是修改或扩充宿主语言的功能,使之能够把SQL语句的命令看作和本身语言命令一样能给于解释和执行。后一种方法改动太大,目前采用较多的是第一种方法。数据库原理与应用教程嵌入式SQL语言预编译的处理方法宿主语言+SQL源程序预编译系统宿主语言源程序(含SQL)宿主语言编译系统目标程序连接数据库并运行

处理过程如课本图4.45所示。宿主语言+SQL源程序→预编绎系统→宿主语言源程序(含SQL)→宿主语言的编绎系统→目标程序→连接数据库并运行。数据库原理与应用教程嵌入式SQL语言在数据库系统开发中的重要作用

目前使用的中小型或大型数据库系统,都具有数据整体结构化、数据共享性高、冗余度小、易扩充、数据独立性高的优点,还具有数据安全性控制、完整性约束、并发控制、数据库恢复、集合式操作等特点,这是任何一种高级语言所不具备的。一般高级语言,特别是面向对象的高级语言具有:逻辑运算功能强、运算速度快、集成开发环境好的特点,这一点同样是各种数据库系统较为逊色的功能。要设计一个优秀的数据库应用系统,一定要具有以上所讲的二者优点,使用SQL语言就可以把两者结合起来。数据库原理与应用教程嵌入式SQL语言在数据库系统开发中的实例介绍实例介绍以VB、C#、Java三种高级语言为平台,与SQLServer数据库相结合,开发各种数据库应用系统的基本方法。教学时可根据学生学习高级语言的具体情况,选择其中一种教学,务求学生掌握这种方法,并能在本课程设计中加以应用。在SQLServer中建一个学生数据库STUDENT,在此数据库中建一个学生成绩的数据表:XC。表记录字段为:学号(NO),姓名(NAME),性别(SEX),年龄(AGE),基础课程(BC),实践课程(PC),专业课程(SC)和毕业考试(GT)。关系模式为:XC(NO,NAME,SEX,AGE,BC,PC,SC,GT)利用以上所讲的三种高级语言为平台,使用SQL语言,能对XC表中的任意内容作查询和修改数据的操作。数据库原理与应用教程嵌入式SQL语言在数据库系统开发中的实例介绍数据库原理与应用教程本章小结

1.由于SQL语言具有高度综合统一、高度非过程化、面向集合操作模式、包括自含式和嵌入式两种使用方式、语言易学易用等5大特点,注定要成为标准的、使用广泛的最重要语言。SQL定义语言包括创建、修改、删除数据库表及其数据库表之间的完整性约束方法,也包括对数据库表创建、修改、删除索引的基本方法。这些内容都是重要的实践知识,必须牢固掌握。2.Select查询语句是SQL操纵语言中应用最多的语句,应该熟练掌握各种查询数据方法,包括利用比较运算符、确定范围、确定集合、字符匹配、空值和多重条件的查询;分组查询和排序查询;多表间的各种连接查询;各种嵌套查询等内容。3.SQL操纵语言另一重要内容是对数据库表中的数据进行插入、修改和删除操作。这些操作方法与视图的建立、修改、查询、删除等知识,都是需要掌握的重要内容。4.鉴于嵌入式SQL语言在目前数据库应用系统开发中的重要地位,应对它的工作方式有明确的认识,要掌握以VB、C#、Java语言为平台中至少一种,与SQLServer结合起来,开发数据库应用系统的编程方法,编写的程序都能在计算机上正确运行。数据库原理与应用教程习题一、选择题1.在SQL语言中,增加或删除数据库表中的字段名所使用的命令动词是()。A.alter和updateB.drop和deleteC.alter和dropD.update和delete2.SQL语言的综合统一特点是指()。A.能创建、修改和删除数据库表,能遵守完整性约束规则B.能对数据库和数据库表中数据进行插入、修改和删除操作,并能创建、修改、查询和删除操作C.能对它的用户授予或回收各种操作权限D.集有DDL、DML和DCL语言于一体3.在嵌入式SQL语言中,使用的某种高级语言称为()。A.主体语言B.配合语言C.宿主语言D.不完整4.设有关系R=(A1,A2,A3)。与SQL语句SELECTDISTINCTA3FROMRWHEREA2=’S3’等价的关系代数表达式是________。A.πA3(R)B.σA2=’S3’(R)C.πA3(σA2=’S3’(R))D.σA2=’S3’(πA3(R))5.两个子查询的结果()时,可以执行并、交、差操作。A.结构完全一致B.结构完全不一致C.结构部分一致C.主键一致数据库原理与应用教程习题6.在SQL查询语句中,用于合并查询的谓词是()。A.ExistsB.UniqueC.SomeD.All7.使用SQL语句进行查询操作时,若希望查询出全部存在的元组,一般使用()保留字。A.UniqueB.AllC.ExceptD.Distinct8.操作视图不可能完成的功能是()。A.更新视图中的数据B.查询视图中的内容C.定义新的基本表D.定义新视图9.SQL中涉及属性所学专业Dept是否是空值的比较操作,写法()是错误的。A.Dept=NullB.Not(DeptIsNull)C.DeptIsNullD.DeptIsNotNull10.假定学生关系是S(S#,Sname,Sex,Age),课程关系是C(C#,CName,TEACHER),学生选课关系是SC(S#,C#,Grade)。要查找选修“数据结构”课程(指Cname字段)“男”学生学号,将涉及到关系()。A.S,CB.SC,CC.S,SCD.S,SC,C数据库原理与应用教程习题二、填空题1.SQL语言集DDL、DML、DCL语言于一体,操作命令CREATE、DROP、ALTER是属于_________语言。2.SQL语言提供两种使用方法,它们是________语言和________语言。3.SQL语言中删除数据库表使用_____________命令,删除数据库表中数据使用_____________命令。4.视图是数据库系统三级结构中的外模式的主要形式,它是从______________________导出的表。5.视图是虚表,它

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论