数据库管理系统课件_第1页
数据库管理系统课件_第2页
数据库管理系统课件_第3页
数据库管理系统课件_第4页
数据库管理系统课件_第5页
已阅读5页,还剩134页未读 继续免费阅读

下载本文档

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

文档简介

精品课件,1,第6章SQL与查询设计器,在VisualFoxPro数据库管理系统中,除了具有VisualFoxPro命令外,它也支持结构查询语言(SQL)命令。SQL命令利用Rushmore技术实现优化处理,一条SQL命令可以替代多条VisualFoxPro命令。本章我们将从数据定义、数据修改和数据查询3个方面介绍VisualFoxPro支持的SQL。,精品课件,2,第6章SQL与查询设计器,6.1SQL概述6.1.1SQL的主要特点6.1.2SQL的执行方式与常用命令6.2SQL的数据定义功能6.2.2修改表结构6.2.3建立临时表6.2.4删除表6.3SQL的数据修改功能6.3.1插入数据6.3.2删除数据6.3.3更新数据6.4SQL的数据查询功能6.4.1简单查询6.4.2嵌套查询6.4.3连接查询6.4.4分组及使用库函数查询6.5利用查询设计器建立查询6.5.1建立查询6.5.2查询设计器界面6.5.3查询去向6.6实战演练6.6.1SQL的数据定义与修改6.6.2SQL查询6.6.3查询设计器的使用本章要点习题6,精品课件,3,本章要点,VisualFoxPro支持的SQL语句,主要包括数据定义、数据修改及数据查询。数据定义功能包括CREATETABLE-SQL,CREATECURSOR-SQL,ALTERTABLE-SQL和DROPTABLE-SQL语句。建立表结构:CREATETABLE语句。用PRIMARYKEY和FOREIGNKEYREFERERENCES子句定义完整性规则,即定义主索引和外索引(主码和外码)。建立临时表:CREATCURSOR语句。临时表建立在当前未使用的最小有效工作区中,并且只在该表被关闭之前存在。修改表结构:ALTERTABLE语句,3种不同的语句格式对应3种不同的修改功能。删除表:DROPTABLE语句,从磁盘中物理删除表文件,包括表结构和表中的记录。数据修改功能包括INSERT-SQL,DELETE-SQL和UPDATE-SQL语句。,精品课件,4,添加数据:INSERTINTO语句,在表的最后添加一条记录。删除数据:DELETEFROM语句,为指定表中的若干条记录加删除标记。更新数据:UPDATATE语句,对表中记录数据进行修改,注意与ALTER语句的区别。数据查询功能SELECT-SQL语句,可以实现对表的选择、连接与投影操作。WHERE子句对应选择操作(选择行),SELECT子句对应投影操作(选择列),FROM子句对应连接操作(多表连接)。消除重复行用DISTINCT子句。库函数(COUNT、MIN、MAX、AVG、SUM)常用于SELECT语句。按列名的值进行分组用GROUPBY子句。组选择子句HAVING必须与GROUPBY子句配合使用。对输出列进行排序用ORDERBY子句,该子句放在整条语句的最后。WHERE子句有时要与特殊运算符(IN、ANY、ALL)一起使用。利用查询设计器产生查询,输出结果形式多样。查询设计器与视图设计器在界面上与使用上有很多相同之处。,精品课件,5,6.1SQL概述,SQL是StructuredQueryLanguage的缩写,即结构化查询语言。它是关系数据库的标准语言。由于SQL具有功能丰富、使用方式灵活、语言简洁、易学易用等突出特点,在计算机界深受广大用户欢迎。,精品课件,6,6.1.1SQL的主要特点,1一体化2语言简洁,易学易用3高度非过程化4统一的语法结构5视图数据结构,精品课件,7,1一体化,SQL提供了一系列完整的数据定义和操纵功能,用SQL可以实现数据库生命周期中的全部活动,包括简单地定义数据库和表的结构,实现表中数据的录入、修改、删除及查询、维护,数据库重构,数据库安全性控制等一系列操作要求。,精品课件,8,2语言简洁,易学易用,SQL的语法很简单,词汇相当有限,初学者经过短期的学习就可以使用SQL进行数据库的存取等操作,易学易用是它的最大特点。,精品课件,9,3高度非过程化,SQL和其他数据操作语言不同的关键是:SQL是一种非过程性语言,用户只需要说明做什么操作,而不用说明怎样做,不必了解数据存储的格式及SQL命令的内部执行过程,就可以方便地对关系数据库进行操作。,精品课件,10,4统一的语法结构,无论联机交互使用方式,还是嵌入到高级语言中使用,其语法结构是基本一致的,这大大改善了最终用户和程序设计人员之间的通信。,精品课件,11,5视图数据结构,SQL可以对两种基本数据结构进行操作:一种是表,另一种是视图(View)。当对视图操作时,由系统转换成对基本关系的操作。视图可以作为某个用户的专用数据部分,这样便于用户使用,提高了数据的独立性,有利于数据的安全保密。,精品课件,12,6.1.2SQL的执行方式与常用命令,在VisualFoxPro数据库管理系统中,它支持的SQL语句可以在命令窗口中执行,一条完整的SQL语句用回车键结束。如果语句太长,可以用“;”号续行。SQL语句也可以写在程序文件中运行。SQL语言常用的几条命令,见表6-1。表6-1SQL命令动词分类表,精品课件,13,6.2SQL的数据定义功能,数据定义命令用于定义数据库和表结构。VisualFoxPro支持的SQL定义命令包括下列语句:CREATETABLE-SQL,CREATECURSOR-SQL,ALTERTABLE-SQL,DROPTABLE-SQL。下面给出各语句的格式和功能,并举例说明。,精品课件,14,6.2.1建立表结构,当用户需要建立新的表文件存储数据时,可以用CREATETABLE命令建立表的结构。该命令可以指明表名及结构,包括表中各字段的名字、类型、精度、比例、是否允许空值及参照完整性规则。语句格式:,精品课件,15,精品课件,16,注意:命令中大多数子句使用时需要打开一个数据库,即在数据库中建立表。如果没有打开数据库,创建表时会产生错误。,【例6-1】建立研究生表,该表不属于任何数据库,其结构为见表6-2。,精品课件,17,表6-2研究生表,定义该表的SQL命令为:CREATETABLE研究生FREE(学号C(6),姓名C(8),性别C(2),年龄N(3),入学年月DNULL),精品课件,18,【例6-2】假设已经建立了xsk数据库,在xsk中建立学生表,该表结构及要求见表6-3。,表6-3学生表,表6-3学生表,精品课件,19,创建该表的SQL命令为:OPENDATABASExsk备注MNOCPTRANS)在xsk中建立了学生表后,通过浏览窗口向学生表输入数据或修改数据时,由于学号字段建立了主索引,学号字段不能输入重复值;年龄字段的值必须在1045之间,否则显示“年龄范围在1045,请输入正确的年龄”信息,并等待输入合法的值;添加新记录时,入学年月字段自动填入1999/09/01;当学生表的数据转换为其他格式时,备注字段不转换。,精品课件,20,【例6-4】在xsk中建立选课表,其结构及要求见表6-5。,表6-5选课表,精品课件,21,注:学号和课号组合为主关键字索引。创建该表的SQL命令为:OPENDATABASExskCREATETABLE选课(学号C(6)REFERENCES学生,课号C(4),成绩N(5,2),;PRIMARYKEY学号+课号TAG学号课号,FOREIGNKEY课号;TAG课号REFERENCES课程TAG课号)在xsk数据库中建立的选课表,由于在学号上定义了外索引,与学生表在学生表的学号字段上建立了关系;在课号上定义了外索引,与课程表在课程表的课号字段上建立了关系。因此,在该例子中用了两种不同的子句定义外索引。由于选课表的主索引关键字是两个字段的组合,所以用PRIMARYKEYTAG子句定义。输入记录或修改记录数据时,表达式“学号+课号”的值不能重复。,精品课件,22,6.2.2修改表结构,用户使用数据库时,随着应用要求的改变,往往需要对原有的表格结构进行修改,而不改变原有的数据。此时可使用ALTERTABLE命令。,精品课件,23,1)语句格式1,ALTERTABLE表名1ADD|ALTERCOLUMN字段名1字段类型(长度,小数位数)NULL|NOTNULLCHECK逻辑表达式1ERROR字符型文本信息DEFAULT表达式1PRIMARYKEY|UNIQUEREFERENCES表名2TAG标识名1NOCPTRANS功能:对指定的表(表名1)的指定字段进行修改(ALTER)或添加(ADD)指定的字段。注意:命令中子句的用法基本上与CREATETABLE命令相同。,精品课件,24,【例6-5】为课程表添加一个开课学期字段,字段类型为数值型,长度为1,其SQL命令为:,ALTERTABLE课程ADD开课学期N(1)若要修改开课学期字段为字符型,合法值为1或2,则SQL命令为:ALTERTABLE课程ALTER开课学期C(1);CHECK开课学期=1OR开课学期=2执行该命令前,需要将课程表中所有记录的开课学期字段值置为l或2,以满足CHECK规则。,精品课件,25,2)语句格式2,ALTERTABLE表名1ALTERCOLUMN字段名2NULL|NOTNULLSETDEFULT表达式2SETCHECK逻辑表达式2ERROR字符型文本信息2DROPDEFAULTDROPCHECK功能:修改指定表(表名1)中指定列(COLUMN)字段的DEFAULT、CHECK约束规则,但不影响原有表的数据。其中,SET为重新设置,DROP为删除原默认值(DEFAULT)或字段合法值(CHECK)。,精品课件,26,【例6-6】删除课程表中对开课学期字段的合法值约束,设置默认值为1,SQL命令为:,ALTERTABLE课程ALTER开课学期DROPCHECKALTERTABLE课程ALTER开课学期SETDEFAULTl,精品课件,27,3)语句格式3,ALTERTABLE表名1DROPCOLUMN字段名3SETCHECK逻辑表达式3ERROR字符型文本信息3DROPCHECKADDPRIMARYKEY表达式3TAG标识名2DROPPRIMARYKEYADDUNIQUE表达式4TAG标识名3DROPUNIQUETAG标识名4ADDFOREIGNKEY表达式5TAG标识名4REFERENCES表名2TAG标识名5DROPFOREIGNKEYTAG标识名6SAVERENAMECOLUMN字段名4TO字段名5NOVALIDATE,精品课件,28,功能:删除(DROP)指定表中的指定字段、修改字段名、修改指定表的完整性规则,包括主索引(PRIMARYKEY)、外索引(FOREIGNKEY)、候选索引(UNIQUE)及表的合法值限定(CHECK)的添加或删除。说明:一个表只能有一个主索引,可以有多个候选索引与多个外索引。NOVALIDATE短语:修改表结构时,允许违反该表的数据完整性规则。默认值为禁止违反数据完整性规则。,精品课件,29,【例6-7】删除课程表中“开课学期”字段,修改“课程名”字段为“课名”字段,SQL命令为:,ALTERTABLE课程DROP开课学期RENAMECOLUMN课程名TO课名如果在删除字段上建立了索引,要先将索引删除再删除该字段。,精品课件,30,【例6-8】在学生表的“年龄”字段上建立候选索引,SQL命令为:,ALTERTABLE学生ADDUNIQUE年龄TAG年龄,【例6-9】在学生表中添加一个“出生日期”字段,删除“年龄”字段,SQL命令为:,ALTERTABLE学生ADD出生日期D,ALTERTABLE学生DROPUNIQUETAG年龄DROP年龄,精品课件,31,6.2.3建立临时表,VisualFoxPro支持创建临时表命令。创建的临时表只在该表被关闭之前存在,创建的临时表一旦被关闭,该临时表将消失,精品课件,32,语句格式:,CREATECURSOR别名(字段名1类型(字段宽度,小数位数)NULL|NOTNULLCHECK逻辑表达式ERROR字符型文本DEFAULT表达式UNIQUE,字段名2)|FROMARRAY数组名各子句的功能与CREATETABLE命令基本相同。别名用来指明要创建的临时表的表名。CREATECURSOR命令创建的临时表在当前未使用的最小号的有效工作区中以独占方式打开,可以通过别名来访问它。临时表可以像其他基本表一样进行浏览、索引、添加或修改记录。,精品课件,33,【例6-10】在1号工作区中打开学生表,在2号工作区中打开课程表,如果根据应用的需要,想建立一个临时表,使之包含两个字段:xh,字符型,长度为6;kh,字符型,长度为2。则SQL命令为:,CREATCURSORls(xhC(6),khC(2)ls临时表将在3号工作区中打开。,精品课件,34,6.2.4删除表,随着数据库应用的变化,往往有些表连同它的数据不再需要了,这时可以删除这些表,以节省存储空间。删除表使用DROPTABLE命令。语句格式:DROPTABLE表名【例6-11】删除已建立的学生表。DROPTABLE学生,精品课件,35,6.3SQL的数据修改功能,6.3.1插入数据6.3.2删除数据6.3.3更新数据,精品课件,36,6.3.1插入数据,当一个表新生成时,它里面没有数据,这时就需要向表中插入数据。在数据库应用中,需要经常不断地向表中插入数据,这由INSERT-SQL命令实现。,精品课件,37,1)语句格式1,INSERTINTO表名(字段名1,字段名2,)VALUES(表达式1,表达式2,)功能:在指定表的表尾添加一条新记录,其值为VALUES后面表达式的值。当需要插入表中所有字段的数据时,表名后面的字段名可以省略,但插入数据的格式必须与表的结构完全吻合;若只插入表中某些字段的数据,那么就要列出插入数据的字段名,当然,相应表达式的数据位置应与之对应。,精品课件,38,【例6-12】在学生表中插入数据。,INSERTINTO学生VALUES(890163,张文青,男,;20,.T.,CTOD(1999/09/01),三好生)或者INSERTINTO学生(学号,年龄)VALUES(890239,20),精品课件,39,2)语句格式2,INSERTINTO表名FROMARRAY数组名|FROMMEMVARFROMARRAY数组名:添加一条新记录到指定的表中,新记录的值是指定数组中各元素的数据。数组中各元素与表中各字段顺序对应。如果数组中元素的数据类型与其对应的字段类型不一致,则新记录对应的字段为空值;如果表中字段个数大于数组元素的个数,则多出的字段为空值。,精品课件,40,【例6-13】定义数组A(6),A中各元素的值分别为:A(1)=980012,A(2)=张洋,A(3)=女,A(4)=18,A(5)=.F.,A(6)=1999/09/01。在学生表中插入一条记录:INSERTINTO学生FROMARRAYA新记录的备注字段为空。使用FROMMEMVAR添加新记录:将内存变量的值赋给表中指定记录的同名字段变量。如果同名的内存变量不存在,则相应的字段为空。,精品课件,41,【例6-14】已定义内存变量:学号=960012,姓名=李明,年龄=20,且保存在memvar.mem文件中,在学生表中再添加一条李明的记录。INSERTINTO学生FROMMEMVAR新记录中除“学号”、“姓名”、“年龄”字段外,其他字段均为空值。,精品课件,42,6.3.2删除数据,在VisualFoxPro中,DELETE-SQL语句可以为指定的数据表中的记录加删除标记。其语句格式为:DELETEFROM数据库名!表名WHERE条件表达式1AND|OR条件表达式2其中,FROM数据库名!表名:指定加删除标记的表名及该表数据库名,用“!”符号分割表名和数据库名。WHERE条件表达式1AND|OR条件表达式2:指定只对满足条件的记录加删除标记。加了删除标记的记录并没有从物理上删除,只有执行了PACK命令后,有删除标记的记录才能真正从物理上删除。加了删除标记的记录可以用RECALL命令取消删除标记。,精品课件,43,【例6-15】给学生表中男生的记录加上删除标记。DELETEFROM学生WHERE性别=男注意:如果指定的表在非当前工作区中打开,添加或删除记录后,指定的表仍在非当前工作区中打开,保持原当前工作区。,精品课件,44,6.3.3更新数据,更新数据就是对存储在表中的记录进行修改,命令为UPDATE-SQL。可以对用SELECT-SQL语句选择出的记录进行数据更新。,精品课件,45,语句格式:,UPDATE数据库名!表名SET列名l=表达式1,列名2=表达式2WHERE条件表达式1AND|OR条件表达式2其中,数据库名!表名:指明将要更新数据的记录所在的表名和数据库名。SET子句:指明被更新的字段及该字段的新值。如果省略WHERE子句,则该字段每一行都用同样的值更新。WHERE子句:指明将要更新数据的记录,即表中符合条件表达式的记录。,精品课件,46,【例6-16】将选课表中的01号课程的成绩都分别提高5分,04号课程的成绩置为空值。UPDATE选课SET成绩=成绩+5WHERE课号=01UPDATE选课SET成绩=NULLWHERE课号=04,精品课件,47,【例6-17】将软件专业全体学生的各科成绩置为0。解决该问题需要先选出软件专业学生的学号,相应的SQL语句为:SELECT学号FROM学生WHERE专业=软件即对用SELECT-SQL语句选出的记录进行数据更新。关于SELECT-SQL语句下一节将要介绍。SQL更新语句为:UPDATE选课SET成绩=0;WHERE学号IN(SELECT学号FROM学生WHERE专业=软件),精品课件,48,6.4SQL的数据查询功能,数据库中最常见的操作是数据查询,SQL给出了简单而又丰富的查询语句形式,VisualFoxPro支持的SQL查询语句是SELECT_SQL。其语句格式如下:,精品课件,49,精品课件,50,整个语句的含义为:根据WHERE子句中的条件表达式,从一个或多个表中找出满足条件的记录,按SELECT子句中的目标列,选出记录中的分量形成结果表。如果有ORDER子句,则结果表要根据指定的表达式按升序(ASC)或降序(DESC)排序。如果有GROUP子句,则将结果按列名分组,根据HAVING指出的条件,选取满足该条件的组予以输出。上述语句形式可以实现数据库上的任何查询,为清楚起见,将其概括为4大类:简单查询、嵌套查询、连接查询和分组及使用库函数查询。在讨论各种操作之前,假定xsk库中有学生表、课程表、选课表及必修课表,分别如图6-1、图6-2、图6-3和图6-4所示。,精品课件,51,图6-1学生表,图6-2课程表,精品课件,52,图6-3选课表,图6-4必修课表,精品课件,53,6.4.1简单查询,SELECT-SQL语句可以实现表的任何查询,包括选择满足条件的行或列、排序等。【例6-18】列出全部学生的信息。SELECT*;FROM学生SELECT子句指出被选择的目标表列的名称,“*”号表示表的全部数据列,FROM子句指出表的名称,这个查询的结果就是从学生表中取出所存放的全部学生信息,结果如图6-1所示。,精品课件,54,【例6-19】列出软件专业全部学生的学号及姓名。SELECT学号,姓名;FROM学生;WHERE专业=软件使用WHERE子句可以说明查询的限制条件,只选择出满足条件的那些行中的相应的数据,本例查询结果如图6-5所示。【例6-20】列出所有必修课的课号。SELECTDISTINCT课号FROM必修课必修课表中存放着所有必修课的课号,但如果直接用SELECT选取就会有重复行出现。因此,用DISTINCT可去掉重复行。本例选择的结果为(1,2,3,4)。,精品课件,55,【例6-21】求1号课成绩大于80分的学生的学号及成绩,并按成绩由高到低列出。SELECT学号,成绩;FROM选课;WHERE课号=lAND成绩=80;ORDERBY成绩DESC查询结果如图6-6所示。,精品课件,56,图6-5例6-19查询结果,图6-6例6-21查询结果,精品课件,57,由本例看出,ORDERBY子句中的DESC是用来指明显示结果的顺序的,即成绩由高到低输出。另外,多个查询条件可以用AND、OR或NOT连接。SELECT-SQL语句的查询方式很丰富,在WHERE子句中可以用关系运算符、逻辑运算符及特殊运算符构成较复杂的条件表达式。,精品课件,58,【例6-22】查询1989年9月1日以后入学的学生的名单。SELECT姓名;FROM学生;WHERE入学年月CTOD(1989/09/01)查询结果如图6-7所示。【例6-23】列出非软件专业学生的名单。SELECT学号,姓名;FROM学生;WHERE专业软件或SELECT学号,姓名FROM学生;WHERE专业!=软件也可用逻辑运算符表示:SELECT学号,姓名FROM学生;WHERENOT(专业=软件)查询结果如图6-8所示。,精品课件,59,图6-7例6-22的查询结果,图6-8例6-23的查询结果,精品课件,60,特殊运算符包括BETWEEN、IN、ISNULL和LIKE。下面举例说明这4种特殊运算符的使用方法。,精品课件,61,1)BETWEENAND运算符,在查找中,如果要求某列的数值在某个区间内,可使用该运算符。【例6-24】查找成绩在7080分之间的学生选课得分情况。SELECT*;FROM选课;WHERE成绩BETWEEN70AND80它等价于SELECT*;FROM选课;WHERE成绩70AND成绩=80查询结果如图6-9所示。与BETWEENAND运算符含义相反的,可以使用NOTBETWEENAND运算符,精品课件,62,2)IN运算符,在查找中,经常会遇到要求表的列值是某几个值中的一个。此时,用IN运算符。【例6-25】列出选修1号课或3号课的全体学生的学号和成绩。SELECT学号,成绩;FROM选课;WHERE课号IN(1,3)它等价于:SELECT学号,成绩;FROM选课;WHERE课号=lOR课号=3查询结果如图6-10所示。同样可以使用NOTIN运算符来表示与IN运算符完全相反的含义。,精品课件,63,图6-9例6-24的查询结果,图6-10例6-25的查询结果,精品课件,64,3)LIKE运算符,在查找中,LIKE运算符专门对字符型数据进行字符串比较。LIKE运算符提供两种字符串匹配方式:一种是使用下划线符号“_”匹配任意一个字符,另一种是使用百分号“%”匹配0个或多个字符的字符串。【例6-26】列出所有98级学生的学习情况。SELECT*FROM选课WHERE学号LIKE98_INNERJOIN职务INNERJOIN工资;ON工资.gzdj=职务.gzdjON职工.bh=职务.bh查询结果如图6-33所示。,精品课件,116,图6-32销售部职工信息,图6-33全体职工,精品课件,117,SELECTxm,bmFROM职工INNERJOIN职务ON职工.bh=职务.bh;WHERE职工.bhIN(SELECTbhFROM职务WHEREzw=总工)查询结果为:万福发销售部。SELECT*FROM工资WHEREjbgzBETWEEN600AND700查询结果如图6-34所示。SELECTxm,bm,zwFROM职工JOIN职务ON职工.bh=职务.bh职务;WHERExmLIKE“陈%”查询结果如图6-35所示。,精品课件,118,图6-34基本工资在600700元之间,图6-35姓“陈”的职工,精品课件,119,SELECT职工.bh,xm,bm,职工.gz+工资.gl*0.5ASnew_gz;FROM职工INNERJOIN职务INNERJOIN工资;ON工资.gzdj=职务.gzdjON职工.bh=职务.bh;ORDERBY4desc查询结果如图6-36所示。SELECTbm,MAX(gz)ASMAX,MIN(gz)ASMIN,SUM(gz)ASSUM;FROM职工GROUPBYbm查询结果如图6-37所示。INSERTINTO职工VALUES(1000,李西,888.00,销售部)SELECT职工.bh,xm,gzFROM职工;LEFTJOIN职务on职工.bh=职务.bh查询结果如图6-38所示。,精品课件,120,图6-36工资最高的前4位,图6-37部门工资最高值、最低值及总和,精品课件,121,图6-38增加部分职工,图6-38增加部分职工,精品课件,122,6.6.3查询设计器的使用,使用查询设计器做6.6.2节的第小题,要求只查询有职务的职工,查询结果按基本工资升序排列,并以工资等级分组显示。,精品课件,123,操作步骤如下。,(1)通过新建查询文件打开查询设计器。(2)添加数据库表职工、职务和工资。(3)打开“字段”选项卡,从3个表中选取所要的字段并双击,使各字段出现在“选定字段”列表框内,如图6-39所示。(4)在“联接”选项卡中设置并查看连接条件。(5)在“筛选”选项卡中设置查询条件,如图6-40所示。(6)在“排序依据”选项卡中设置:基本工资按升序排列。(7)在“分组依据”选项卡中选定“工资.gzdj”为分组字段。(8)在“杂项”选项卡中选择:列在前面的记录“全部”。执行查询,其结果如图6-41所示。,精品课件,124,图6-39在“字段”选项卡中选定查询字段,精品课件,125,图6-40“筛选”查询条件,精品课件,126,图6-41有职务的职工,精品课件,127,本章要点,VisualFoxPro支持的SQL语句,主要包括数据定义、数据修改及数据查询。数据定义功能包括CREATETABLE-SQL,CREATECURSOR-SQL,ALTERTABLE-SQL和DROPTABLE-SQL语句。建立表结构:CREATETABLE语句。用PRIMARYKEY和FOREIGNKEYREFERERENCES子句定义完整性规则,即定义主索引和外索引(主码和外码)。建立临时表:CREATCURSOR语句。临时表建立在当前未使用的最小有效工作区中,并且只在该表被关闭之前存在。修改表结构:ALTERTABLE语句,3种不同的语句格式对应3种不同的修改功能。删除表:DROPTABLE语句,从磁盘中物理删除表文件,包括表结构和表中的记录。数据修改功能包括INSERT-SQL,DELETE-SQL和UPDATE-SQL语句。,精品课件,128,添加数据:INSERTINTO语句,在表的最后添加一条记录。删除数据:DELETEFROM语句,为指定表中的若干条记录加删除标记。更新数据:UPDATATE语句,对表中记录数据进行修改,注意与ALTER语句的区别。数据查询功能SELECT-SQL语句,可以实现对表的选择、连接与投影操作。WHERE子句对应选择操作(选择行),SELECT子句对应投影操作(选择列),FROM子句对应连接操作(多表连接)。消除重复行用DISTINCT子句。库函数(COUNT、MIN、MAX、AVG、SUM)常用于SELECT语句。按列名的值进行分组用GROUPBY子句。组选择子句HAVING必须与GROUPBY子句配合使用。对输出列进行排序用ORDERBY子句,该子句放在整条语句的最后。WHERE子句有时要与特殊运算符(IN、ANY、ALL)一起使用。利用查询设计器产生查询,输出结果形式多样。查询设计器与视图设计器在界面上与使用上有很多相同之处。,精品课件,129,习题6,一、单选题二、填空题三、上机题,精品课件,130,一、单选题,l.SQL的数据操作语句不包括()。A.INSERTB.UPDATEC.DELETED.CHANGE2.SQL语句中删除表的命令是()。A.DROPTABLEB.DELETETABLEC.ERASETABLED.DELETEDBF3.在SQL查询时,使用WHERE子句指出的是()。A.查询目标B.查询结果C.查询条件D.查询视图,精品课件,131,4.CREATETABLE命令在建立表的同时还可以()。A.建立索引B.建立约束规则C.定义默认值D.以上全部都可以5.在SQL的ALTERTABLE命令中要删除表的一列(字段)应该包括短语()。A.DROPFIELDB.DROPCOLUMNC.DELETEFIELDD.DELETECOLUMN6.在SQLSELECT命令中用于排序的短语是()。A.SORTB.SORTBYC.ORDERD.ORDERBY,精品课件,132,7.SQL语句中修改表结构的命令是()。A.ALTERTABLEB.MODIFYTABLEC.ALTERSTRUCTURED.MODIFYSTRUCTURE8.要使“产品”表中所有单价下浮5,正确的SQL命令是()。A.REPLACE产品SET单价=单价*0.95B.UPDATE产品SET单价=单价*0.95C.EDIT产品SET单价=单价*0.95D.CHANGE产品SET单价=单价*0.959.如下SQL语句查询结果的记录个数为()。SELECT*TOP1FROM职工ORDERBY工资A.0B.1C.3D.5,精品课件,133,10.如下SQL语句的执行结果是()。SELECTSUM(工资)FROM职工A.工资的最大值B.工资的最小值C.工资的平均值D.工资的合计11.使用查询设计器()。A.可以生成所有的查询B.不能

温馨提示

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

评论

0/150

提交评论