第五章关系数据库标准语言SQLppt课件.ppt

上传人:小飞机 文档编号:1355701 上传时间:2022-11-13 格式:PPT 页数:52 大小:150KB
返回 下载 相关 举报
第五章关系数据库标准语言SQLppt课件.ppt_第1页
第1页 / 共52页
第五章关系数据库标准语言SQLppt课件.ppt_第2页
第2页 / 共52页
第五章关系数据库标准语言SQLppt课件.ppt_第3页
第3页 / 共52页
第五章关系数据库标准语言SQLppt课件.ppt_第4页
第4页 / 共52页
第五章关系数据库标准语言SQLppt课件.ppt_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《第五章关系数据库标准语言SQLppt课件.ppt》由会员分享,可在线阅读,更多相关《第五章关系数据库标准语言SQLppt课件.ppt(52页珍藏版)》请在三一办公上搜索。

1、1,第五章,目 录,上一页,下一页,退 出,关系数据库标准语言SQL,2,本 章 要 点,1SQL概述2查询功能3操纵功能4定义功能,3,1、SQL语言的特点综合统一 SQL语言集数据定义、数据查询、数据操纵和数据控值的功能于一体,语言风格统一,可以独立完成数据库活动中的全部操作,包括定义关系模式、录入数据及建立数据库、查询、更新、维护数据、数据库的重新构造、数据库安全性等一系列操作的要求,为数据库应用系统开发者提供了良好的环境。 高度非过程化语言简洁,易学易用以同一种语法结构提供两种使用方式:交互方式和程序方式,5.1 SQL概述,4,5.2 查询功能,数据库中的数据很多时侯是为了查询的,因

2、此,数据查询是数据库的核心操作。而在SQL语言中,查询语言中有一条查询命令,即SELECT语句。 5.2.1 简单查询 1、无条件查询【格式】SELECT ALL | DISTINCT FROM 【功能】无条件查询。【说明】ALL: 表示显示全部查询记录,包括重复记录。 (可省略) DISTINCT: 表示显示无重复结果的记录。,本节重点,5,例1、显示STUD(学生信息数据表)中的所有记录。 SELECT * FROM STUD说明:命令中的 * 表示输出表中所有字段, FROM后面 的表文件名指明数据的来源,表中的内容以浏览 方式显示。例2、显示职工表中的所有工资值。 SELECT 工资

3、FROM 职工表例3、显示职工表中的所有工资值,同时能去除重复值。 SELECT DISTINCT 工资 FROM 职工表例4、显示成绩表中的所有记录,并将成绩一项乘以0.7。 SELECT 学号,课程号,成绩* 0.7 AS 成绩 ; FROM 成绩,本节重点,6,2 带条件(WHERE)的查询,【格式】SELECT ALL | DISTINCT FROM WHERE 【功能】从一个表中查询满足条件的记录。【说明】 WHERE 子句用来查询满足条件的记 录。例5、显示STUD表中所有男生记录的学号,姓名和 性别字段值。 SELECT 学号,姓名,性别 ; FROM STUD WHERE 性别

4、=男,本节重点,7,例6、显示STUD表中出生日期在85年之间的学生的 学号,姓名,出生日期。 SELECT 学号, 姓名, 出生日期 FROM STUD ; WHERE (出生日期= 01/01/85) AND (出生日期= 12/31/85)例7、显示职工表中在仓库“WH1” 或“WH2”工作,并且 工资少于1250元的职工号 。 SELECT 职工号 FROM 职工表 ; WHERE 工资1250 AND (仓库号=“WH1” OR ; 仓库号=“WH2” ),本节重点,8,5.2.2 简单的连接查询,【说明】在一个数据库中的多个表之间一般都存在着某些联系,在一个查询语句中同时涉及到两个

5、或两个以上的表时,这种查询称之为连接查询(也称为多表查询)。在多表之间查询必须处理表与表之间的连接关系。【格式】 SELECT ALL | DISTINCT FROM ,. WHERE ,本节重点,9,例8、查询并显示各个学生的学号,姓名,课程名称及成绩。 SELECT 学生.学号,姓名,课程名称,成绩 ; FROM 学生 ,课程,成绩 ; WHERE 学生.学号=成绩.学号 AND 成绩.课程号=课程.课程号例9、查询工资多于1230元的职工号(职工表)和他们所在的 城市(仓库表)。 SELECT 职工号,城市 FROM 职工表,仓库表 ; WHERE (工资1230 ) . AND . 职

6、工表.仓库号=仓库表.仓库号例10、找出工作在面积大于400的仓库的职工号(职工表)以 及这些职工工作所在的城市(仓库表)。 SELECT 职工号,城市 FROM 职工表,仓库表 ; WHERE (面积400 ) . AND . 职工表.仓库号=仓库表.仓库号,本节重点,10,5.2.3 嵌套查询 在SQL语句中,一个SELECTFROMWHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING 短语的条件中的查询称为嵌套查询或子查询。例11、在STUD.DBF 表中显示“李宁”所在班级的学生名单。 SELECT 学号,姓名,班级名 FROM STUD ; WH

7、ERE 班级名=(SELECT 班级名 FROM STUD ; WHERE 姓名=“李宁”)例12、哪些城市至少有一个仓库的职工工资为1250元? SELECT 城市 FROM 仓库表 ; WHERE 仓库号 IN (SELECT 仓库号 FROM 职工表 ; WHERE 工资=1250)练习:找出和职工E4中同样工资的所有职工。,本节重点,11,5.2.4 几个特殊的运算符(1) NOT BETWEEN AND (2) NOT IN ()(3) NOT LIKE (通配符: _ %)例13、检索出工资在1220元到1240元范围内的职工信息 SELECT * FROM 职工表 ; WHERE

8、 工资 BETWEEN 1220 AND 1240例14、从供应商关系中检索出全部公司的信息,不要工厂或 其他供应商的信息。 SELECT * FROM 供应商表 ; WHERE 供应商名 LIKE “%公司”练习、找出地址在北京的供应商的全部信息,本节重点,12,5.2.5 排序将查询的结果排序【格式】SELECT ALL | DISTINCT FROM WHERE ORDER BY ASC | DESC , ASC | DESC 【说明】利用ORDER BY 子句将查询的结果 进行排序例15、按出生日期降序显示STUD表中的学号,姓名,出生 日期。 SELECT 学号,姓名,出生日期 FR

9、OM STUD ; ORDER BY 出生日期 DESC,本节重点,13,例16、按成绩升序显示成绩表中的学号,课程号,成绩。 SELECT 学号,课程号,成绩 FROM 成绩 ; ORDER BY 成绩 ASC例17、先按仓库号排序,在按工资排序,并输出全部职工的 信息。 SELECT * FROM 职工表 ORDER BY 仓库号, 工资例18、按成绩降序显示成绩表中03级同学的学号,姓名,课 程名称,成绩。 SELECT 学号,姓名,课程名称,成绩 ; FROM 成绩,学生 ,课程; WHERE LEFT(学生.学号,2)=“03” AND 学生.学号=成绩.; 学号 AND 成绩.课程

10、号=课程.课程号 ORDER BY 成绩 DESC练习: 先按课程名称,再按成绩升序显示同学的学号,姓名 ,课程名称,成绩。,本节重点,14,5.2.6 简单的计算查询 SQL 不仅具有一般的检索能力,而且还具有计算方式的检索。比如:检索某门课程的最高分数、或检索职工的平均工资等。 用于计算检索的函数有: COUNT 计数 SUM 求和 AVG 计算平均值 MAX 求最大值 MIN 求最小值例19、找出供应商所在地的数目。 SELECT COUNT(DISTINCT 地址) FROM 供应商表 SELECT COUNT(* ) FROM 供应商表 功能?,本节重点,15,例20、求应支付给职工

11、的工资总额。 SELECT SUM(工资) FROM 职工表例21、求北京和上海的仓库职工的工资总和。 SELECT SUM(工资) FROM 职工表 WHERE 仓库号 IN (SELECT 仓库号 FROM 仓库表; WHERE 城市=“上海” OR 城市=北京) 例22、求所有职工的工资都多于1210 元的仓库的平均面积。 SELECT AVG(面积) FROM 仓库表 WHERE 仓库号; NOT IN (SELECT 仓库号 FROM 职工表 WHERE ; 工资=1210) AND 仓库号 IN (SELECT 仓库号 ; FROM 职工表 )练习:求在 WH2 仓库工作的职工的最

12、高工资。,SELECT max(工资) FROM 职工表 WHERE 仓库号=WH2,本节重点,16,5.2.7 分组与计算查询【格式】SELECT ALL | DISTINCT FROM WHERE GROUP BY HAVING ORDER BY ASC | DESC 【说明】利用GROUP BY 子句进行分组计算 利用HAVING 子句进一步限定分组 的条件。 注意: HAVING 子句必须跟随GROUP BY 使用 。,本节重点,17,例23、求每个仓库的职工的平均工资。 SELECT 仓库号, AVG(工资) FROM 职工表; GROUP BY 仓库号例24、求至少有两个职工的仓库

13、的平均工资。 SELECT 仓库号, COUNT( * ), AVG(工资) ; FROM 职工表; GROUP BY 仓库号 HAVING COUNT( * )=2 练习:求STUD 表中的各班的总人数。,SELECT 班级名, COUNT(班级名 ) AS 总人数 ;FROM STUD; GROUP BY 班级名,本节重点,18,5.2.8 利用空值查询例25、找出尚未确定供应商的订购单。 SELECT * FROM 定购单表; WHERE 供应商号 IS NULL例26、列出已经确定了供应商的订购单信息。 SELECT * FROM 定购单表; WHERE 供应商号 IS NOT NUL

14、L5.2.9 别名与自连接查询例27、查询并显示各个学生的学号,姓名,课程名称及成绩。 SELECT a.学号,a.姓名,b.课程名称,c.成绩 ; FROM 学生 a,课程 b,成绩 c ; WHERE a.学号=c.学号 AND b.课程号=c.课程号,本节重点,19,5.2.10 内外层互相关嵌套查询 (略)5.2.11 使用谓词和量词的查询 在SQL语句的嵌套查询或子查询中,还可以使用下列两类运算符:量词: ANY、ALL、SOMEANY、SOME在进行比较运算时,只要子查询中有一行能使 结果为真,则结果就为真;ALL要求子查询中的所有行都使结果为真时,结果才为真。谓词: EXISTS

15、 、NOT EXISTSEXISTS 用来检查在子查询中是否存在元组(记录)格式:SELECT FROM WHERE ANY | ALL | SOME (子查询) 或:WHERE NOT EXISTS (子查询),本节重点,20,例28、检索那些仓库中还没有职工的仓库的信息。 SELECT * FROM 仓库表 WHERE NOT EXISTS ; (SELECT * FROM 职工表 WHERE 仓库号=仓库表.仓库号) 或: SELECT * FROM 仓库表 WHERE NOT IN ; (SELECT 仓库号 FROM 职工表 )例29、检索有职工的工资大于或等于WH1仓库中任何一名

16、职工工资的仓库号。 SELECT DISTINCT 仓库号 FROM 职工表 WHERE 工资= ; ANY (SELECT 工资 FROM 职工表 WHERE 仓库号=“WH1”)或:SELECT DISTINCT 仓库号 FROM 职工表 WHERE 工资=; (SELECT MIN(工资) FROM 职工表 WHERE 仓库号=“WH1” )练习:检索那些仓库中至少有一名职工的仓库的信息。,SELECT * FROM 仓库表 WHERE EXISTS ; (SELECT * FROM 职工表 WHERE 仓库号=仓库.仓库号) 或: SELECT * FROM 仓库表 WHERE IN

17、; (SELECT 仓库号 FROM 职工表 ),本节重点,21,5.2.12 超联接查询 在SQL语句中,在FROM子句中提供了一种称之为连接的子句,连接分为内连接和外连接,外连接又可分为左外连接、右外连接和全外连接。格式:SELECT FROM INNER | LEFT | RIGHT | FULL JOIN ON 指定连接条件 WHERE (1)内连接 内连接是指只有符合条件的记录,才出现在查询结果中。 INNER JOIN 等价于 JOIN ,普通连接。(内连接),本节重点,22,例30、查询并显示各个学生的学号,所学课程名称及成绩。 SELECT 学号,课程名称,成绩 FROM 课程

18、,成绩; WHERE 成绩.课程号=课程.课程号 如果采用内连接方式,则命令为: SELECT 学号,课程名称,成绩; FROM 课程 a JOIN 成绩 b ON a.课程号=b.课程号(2)外连接:外连接是指把两个表分为左右两个表。LEFT JOIN 左外连接:是指除满足连接条件的记录出现在查 询结果中外,左侧表中不满足条件 的记录也出现在查询结果中。RIGHT JOIN 右外连接:,右侧表中不满足条件的记录也出 现在查询结果中。FULL JOIN 全外连接:,两个表中不满足条件的记录也出现 在查询结果中 。,本节重点,23,例31、左连接: SELECT 学号,课程名称,成绩; FROM

19、 课程 LEFT JOIN 成绩 ; ON 课程.课程号 = 成绩.课程号例32、右连接: SELECT 学号,课程名称,成绩; FROM 课程 RIGHT JOIN 成绩 ; ON 课程.课程号=成绩.课程号例33、全连接: SELECT 学号,课程名称,成绩; FROM 课程 FULL JOIN 成绩 ; ON 课程.课程号=成绩.课程号,本节重点,24,5.2.13 集合的并运算 集合操作主要包括:UNION(并)、INTERSECT(交)、 MINUS(差)运算。例34、查询城市为北京和上海的仓库的信息。 SELECT * FROM 仓库表 WHERE 城市=“北京” ; UNION;

20、 SELECT * FROM 仓库表 WHERE 城市=“上海” 或: SELECT * FROM 仓库表 WHERE 城市=“上海” OR ; 城市=北京,本节重点,25,5.2.14 SQL中的几个特殊选项和查询去向1、显示部分结果 TOP n PERCENT 说明: PERCENT省略时,n 为整数,表示前n个记录; 选择时, n 为0.01到99.99 的小数,表示前百分之n的记录例35、只显示工资最高的三位职工的信息。 SELECT * TOP 3 FROM 职工表; ORDER BY 工资 DESC例36、显示工资最低的那40%职工的信息。 SELECT * TOP 40 PERC

21、ENT FROM 职工表; ORDER BY 工资练习、显示工资最高的那40%职工的信息。,SELECT * TOP 40 PERCENT FROM 职工表; ORDER BY 工资 DESC,本节重点,26,2、查询去向 默认情况下,查询输出到一个浏览窗口,若想改变查询去向,可在“SELECT”语句中使用: INTO | TO FILE | TO SCREEN | TO PRINTER 子句选择查询去向。INTO ARRAY 数组名:将查询结果保存到一个数组中。INTO CURSOR :将查询结果保存到一个临时的表 文件中,该表文件是只读的,且关闭文件时自动删除。INTO DBF | TAB

22、LE :将查询结果保存到一个永久表中。TO FILEADDITIVE:将查询结果保存到文本文件中。如果带“ADDITIVE”关键字,查询结果以追加方式添加到指定的文件,否则,以新建或覆盖方式添加到指定的文件(.TXT)。,本节重点,27,TO SCREEN:将查询结果显示在屏幕上。TO PRINTER:将查询结果送打印机打印。例37、打印计算机系非男生的名单。(SUTD表) SELECT 学号,姓名,系别代号,性别 ; FROM STUD ; WHERE 系别代号=“01” AND 性别=“女” TO PRINTER例38、将选修了C03课程而没有选修E02课程的学生信息 保存到永久文件XKC

23、03.DBF中。 SELECT * FROM 课程,成绩; WHERE 课程.课程号=C03 AND 学号 NOT IN; (SELECT 学号 FROM 成绩 WHERE 课程号=E02) ; AND 课程.课程号=成绩.课程号; INTO TABLE XKC03,本节重点,28,第 2 节 小结(1),1 、简单查询 无条件查询 SELECT ALL | DISTINCT FROM 带条件(WHERE)的查询 SELECT ALL | DISTINCT FROM WHERE 2、简单的连接查询 SELECT ALL | DISTINCT FROM ,. WHERE 3、嵌套查询 SELEC

24、T FROM ; WHERE ,29,第 2 节 小结(2),4、几个特殊的运算符 (1) NOT BETWEEN AND (2) NOT IN () (3) NOT LIKE (通配符: _ %)5、将查询结果排序 SELECT ALL | DISTINCT FROM ; WHERE ORDER BY ASC | DESC; , ASC | DESC 6、简单的计算查询 用于计算检索的函数有: COUNT 计数 SUM 求和 AVG 计算平均值 MAX 求最大值 MIN 求最小值,30,第 2 节 小结(3),7、分组与计算查询 SELECT ALL | DISTINCT FROM ; WH

25、ERE GROUP BY HAVING 8、使用谓词和量词的查询 SELECT FROM WHERE ANY | ALL | SOME (子查询)或:WHERE NOT EXISTS (子查询)9、超联接查询 SELECT FROM INNER | LEFT | RIGHT | FULL JOIN ON 指定连接条件 WHERE ,31,第 2 节 小结(4),10、集合的并运算 UNION(并)11、显示部分结果 TOP n PERCENT12、查询去向 INTO ARRAY 数组名 INTO CURSOR INTO DBF | TABLE TO FILEADDITIVE TO SCREEN

26、 TO PRINTER,32,数据操作功能是完成对数据库中的数据进行: 插入(INSERT) 、删除(DELETE)和更新(UPDATE)数据的操作。5.3.1 插入记录【格式1】INSERT INTO () VALUES ()【格式2】INSERT INTO FROM ARRAY | FROM MEMVAR【功能】在指定的表文件末尾追加一条记录。 格式1:用表达式表中的各表达式值赋值给中 的相应的各字段。 格式2:用数组或同名内存变量的值赋值给表文件中各字 段。,5.3 数据操作功能,本节重点,33,【说明】如果某些字段名在INTO子句中没有出现,则新记录在这些字段名上将取空值(或默认值)。

27、但必须注意的是,在表定义说明了NOT NULL的字段名不能取空值。:指定表文件中的字段,缺省时,按表文件字段的顺序依次赋值。:指定要追加的记录各个字段的值。例1、在表文件STUD的末尾追加三条记录。 *用表达式方式追加第一条记录* INSERT INTO STUD (学号,姓名,性别,班级名,系别代号,地址,出生日期,是否团员) ; VALUES (011110,李建国,男,计0121,01,湖北武汉,09/28/02,.T.),本节重点,34,DIMENSION DATA(8)DATA(1)=011103DATA(2)=李宁DATA(3)=女DATA(4)=电0134DATA(5)=02DA

28、TA(6)=江西九江DATA(7)=05/06/85DATA(8)=.F.INSERT INTO STUD FROM ARRAY DATA,*用数组方式追加第二条记录*,本节重点,35,学号=011202姓名=赵娜性别=女班级名=英0112系别代号=03地址=广西南宁出生日期=02/21/84是否团员=.F.INSERT INTO STUD FROM MEMVARLIST,*用内存变量方式追加第三条记录*,本节重点,36,5.3.2 更新记录【格式】UPDATE SET = ,= WHERE 【功能】更新指定表文件中满足WHERE条件子句的数据。其中SET子句用于指定列和修改的值,WHERE用

29、于指定更新的行,如果省略WHERE子句,则表示表中所有行。【说明】更新操作又称为修改操作。例2、将成绩表中,所有课程号为C03的成绩各加5分。 UPDATE 成绩 SET 成绩=成绩+5; WHERE 课程号=“C03“ REPLACE 成绩 WITH 成绩+5 FOR 课程号=“C03“,本节重点,37,5.3.3 删除记录【格式】DELETE FROM WHERE 【功能】从指定的表中删除满足WHERE条件的所有记录。如果在DELETE语句中没有WHERE子句,则该表中的所有记录都将被删除。【说明】这里的删除是逻辑删除,即在删除的记录前加上一个删除标记“*”。例3、删除STUD表中所有性别

30、为男的记录。 DELETE FROM STUD ; WHERE 性别=“男”,本节重点,38,第 3 节 小结,1 、插入记录 INSERT INTO () ; VALUES () INSERT INTO FROM ARRAY ; | FROM MEMVAR2、更新记录 UPDATE SET = ,= WHERE 3、删除记录 DELETE FROM WHERE ,39,数据定义功能用于执行数据定义的操作,如创建或删除表、索引和视图之类的对象。由CREATE、DROP、ALTER命令组成,完成数据库对象的建立(CREATE)、删除(DROP)和修改(ALTER)。5.4.1 表的定义(创建)【

31、格式】CREATE TABLE ( (,) 完整性约束 NULL| NOT NULL , )【功能】定义(也称创建)一个表。【说明】数据类型是指字段的类型:C, N, F, B, I, Y, D, T, L, M, G,5.4 数据定义功能,本节重点,40,完整性约束: 可以定义字段的有效性规则如: CHECK ERROR DEFAULT 可以定义主索引(主关键字)或候选索引: PRIMARY KEY | UNIQUE 可以定义当前表与其他表之间的联系: FOREIGN KEY TAG REFERENCE 以与当前表建立永久联系,本节重点,41,例1、创建一个学生信息表SSTT,它由以下字段组

32、成:学号 (C,8);姓名(C,8);性别(C,2);出生日期 (D);入学成绩 (N,5,1);简历 (M) 。并设置性别的有效规则。 CREATE TABLE SSTT ( 学号 C(8),姓名 C(8),性别 C(2) CHECK 性别$“男女” ERROR “请输入男或女” DEFAULT “女”,入学成绩 N( 5,1), 出生日期 D,简历 M ) LIST STRUCTURE例2、创建一个表SC(课程表),它由以下字段组成: 课程号(C,2) ;课程名(C,12);学分 I(1) 。 并以课程号建立主索引。 CREATE TABLE SC ( 课程号 C(2) PRIMARY K

33、EY , ; 课程名 C(12),学分 I (1) ),本节重点,42,例3、创建一个表XS(成绩表),它由以下字段组成: 学号(C,6);课程号(C,2)成绩 (N,5,1)。 并以学号建立主索引,以课程号与SC表建立永久联系。 CREATE TABLE XS ( 学号 C(6) PRIMARY KEY , 课程号 C(2) , 成绩 N(5,1) , FOREIGN KEY 课程号 TAG 课程号 REFERENCE SC ) SC表为父表5.4.2 表的删除【格式】DROP TALBE 【功能】删除指定表的结构和内容(包括在此表上建立的索引)。【说明】如果只是想删除一个表中的所有记录,则

34、应使用 DELETE语句。,本节重点,43,5.4.3 表结构的修改(1)【格式1】ALTER TABLE ; ADD (,) ; NULL | NOT NULL 【功能】修改表结构,增加字段。【说明】ADD子句用于增加指定表的字段名、数据类型、宽度 和完整性约束条件。例4、在课程表中,增加一个成绩字段变量(N,2)。 ALTER TABLE 课程 ADD 成绩 N(2) LIST STRUCTURE,本节重点,44,5.4.3 表结构的修改(2)【格式2】ALTER TABLE ; DROP COLUMN 【功能】修改表结构,删除字段。【说明】DROP子句用于删除字段。例5、在课程表中,将分

35、数字段删除。 ALTER TABLE 课程 DROP COLUMN 分数,本节重点,45,5.4.3 表结构的修改(3)【格式3】ALTER TABLE ; ALTER (宽度)修改类型、宽度 ALTER SET 设置有效性规则 ALTER DROP 删除有效性规则 RENAME COLUMN TO 修改字段名 ADD PRIMARY KEY TAG DROP PRIMARY KEY 建立、删除主索引 ADD UNIQUE TAG DROP UNIQUE TAG 建立、删除候选索引 ADD FOREIGN KEY TAG ; REFERENCES 建立、删除永久联系 DROP FOREIGN

36、KEY TAG ,本节重点,46,【功能】修改表结构,修改字段名、类型、宽度;或定义、删除字段有效性;或修改字段名;或定义、删除表一级的有效性规则。【说明】ALTER子句用于修改原有的字段变量的值。例6、在课程表中,将成绩字段的宽度由2 改为 3。 ALTER TABLE 课程 ALTER 成绩 N(3)例7、在课程表中,定义学分字段的有效性规则。 ALTER TABLE 课程 ALTER 学分 SET CHECK 学分=4; ERROR “学分不超过4分”例8、在课程表中,将成绩字段改名为分数。 ALTER TABLE 课程 RENAME COLUMN 成绩 TO 分数例9、在课程表中,删除

37、学分字段的有效性规则。 ALTER TABLE 课程 ALTER 学分 DROP CHECK,本节重点,47,第 4 节 小结,1、 表的定义(创建) CREATE TABLE ( (, ) ) 2、表结构的修改 ALTER TABLE ; ADD (,) ; NULL | NOT NULL DROP COLUMN ALTER (宽度) | DROP | SET ADD PRIMARY KEY TAG DROP PRIMARY KEY 3、表的删除 DROP TALBE ,48,2003年9月 笔试题(1),第(32)-(35)题使用如下三个表: 学生.DBF: 学号C(8),姓名C(12),

38、性别C(2),出生日期D,院系C(8) 课程.DBF: 课程编号C(4), 课程名称C(10), 开课院系C(8) 学生成绩.DBF: 学号C(8), 课程编号C(4), 成绩I,49,2003年9月 笔试题(2),32、查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是 A)SELECT课程名称,SUM(成绩)AS 分数FROM课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUPBY课程名称 B) SELECT课程名称,MAX(成绩) 分数 FROM课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUPBY课程名称 C) SEL

39、ECT课程名称,SUM(成绩)分数 FROM课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUPBY课程.课程编号 D)SELECT课程名称,MAX(成绩)AS分数FROM课程,学生成绩; WHERE课程.课程编号=学生成绩.课程编号; GROUPBY课程编号,50,2003年9月 笔试题(3),33、统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称、开课院系和选课人数,并按选课人数排序,正确的命令是 A)SELECT课程名称,开课院系,COUNT(课程编号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号;

40、GROUPBY学生成绩.课程编号HAVINGCOUNT(*)=2; ORDERBYCOUNT(课程编号) B)SELECT课程名称,开课院系,COUNT(学号)选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 学生成绩.学号 HAVINGCOUNT(*)=2; ORDER BYCOUNT(学号) C)SELECT课程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程WHERE课程.课程编号=学生成绩.课程编号; GROUP BY 课程名称 HAVINGCOUNT(学号)=2; ORDER BY 选修人数 D)SELECT课

41、程名称,开课院系,COUNT(学号)AS选修人数; FROM学生成绩,课程HAVINGCOUNT(课程编号)=2; GROUPBY课程名称ORDERBY选修人数,51,2003年9月 笔试题(4),34、查询所有目前年龄是22岁的学生信息:学号、姓名和年龄,正确的命令组是 A) CREATEVIEWAGE_LISTAS; SELECT学号,姓名,YEAR(DATE()-YEAR(出生日期)年龄FROM学生 SELECT学号,姓名,年龄FROMAGE_LIST WHERE年龄=22 B) CREATEVIEWAGE_LISTAS; SELECT学号,姓名,YEAR(出生日期 )FROM 学生 S

42、ELECT学号,姓名,年龄FROMAGE_LISTWHEREYEAR(出生日期)=22 C) CREATEVIEWAGE_LISTAS; SELECT学号,姓名,YEAR(DATE()-YEAR(出生日期)年龄FROM学生 SELECT学号,姓名,年龄FROM学生WHEREYEAR(出生日期)=22 D) CREATEVIEWAGE_LISTAS; SELECT学号,姓名,YEAR(DATE()-YEAR(出生日期)年龄FROM学生 SELECT学号,姓名,年龄FROMSTUDENTWHERE年龄=22,52,2003年9月 笔试题(5),35、向学生表插入一条记录的正确命令是 APPENDINTO学生valueS(“10359999”,张三,男,会计,1983-10-28) INSERTINTO学生valueS(“10359999”,张三,男,1983-10-28,“会计”) APPENDINTO学生valueS(“10359999”,张三,男,1983-10-28,“会计”)INSERTINTO学生valueS(10359999,张三,男,1983-10-28),

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号