文档库 最新最全的文档下载
当前位置:文档库 › SQL语句(有答案)

SQL语句(有答案)

SQL语句(有答案)
SQL语句(有答案)

一. SQL语句

【1】(C226)下列关于SQL语言特点的描述中,错误的是( )。

A)语言非常简洁B)是一种一体化语言

C)是一种高度过程化的语D)可以直接以命令方式交互使用,也可以程序方式使用【2】1103(7)负责数据库中查询操作的数据库语言是

A)数据定义语言B)数据管理语言C)数据操作语言D)数据控制语言

【3】Y3(18)SQL语言的核心是( )。

A)数据操纵B)数据定义C)数据查询D)数据定义

【4】Y1(24)VisualFoxPro在SQL方面,不支持的功能是( )。

A)数据控制B)数据操纵C)数据查询D)数据定义

【5】Y4(30)下列选项中,不属于SQL特殊运算符的是( )。

A)GROUP B)ON C)ALL D)EMPTY

二. SQL查询语句

【1】0904(12)SQL语句的查询语句是

A) INSERT B)UPDATE C) DELETE D) SELECT

【2】(C126)标准的SQL基本查询语句的格式是( )。

A)SELECT…FROM…WHERE B)SELECT…WHERE…FROM C)SELECT…WHERE…GROUP BY D)SELECT…FROM…ORDER BY 【3】Y3 (25)SQL语句中,SELECT语句中的JOIN是用来建立表间的联系短语应放在下列哪个短语之后( )。A)FROM B)WHERE C)ON D)GROUP BY

【4】Y2(20)SQL语句中,SELECT命令中的JOIN是用来建立表间的联系短语,连接条件应出现在下列哪个短语中A)WHERE B)ON C)HAVING D)INNER

【5】Y4(17)SQL SELECT语句中的WHERE用于说明( )。

A)查询数据B)查询条件C)查询分组D)查询排序

【6】Y4(18)SQL语句可以进行多个查询的嵌套,但Visual FoxPro中只支持( )层嵌套。

A)1 B)2 C)3 D)无穷

【7】(C128)在Visual FoxPro中,嵌套查询是基于( )的查询

A)2个关系B)3个关系C)多个关系D)2个或3个关系

【8】0704 (17)以下有关SELECT语句的叙述中错误的是

A)SELECT语句中可以使用别名B)SELECT语句中只能包含表中的列及其构成的表达式

C)SELECT语句规定了结果集中的顺序

D)如果FROM短语引用的两个表有同名的列,则SELECT短语引用它们时必须使用表名前缀加以限定

【9】0504 (31) 在Visual FoxPro中,以下有关SQL的SELECT语句的叙述中,错误的是 ( )。

A)SELECT子句中可以包含表中的列和表达式B)SELECT子句中可以使用别名

C)SELECT子句规定了结果集中的列顺序D)SELECT子句中列的顺序应该与表中列的顺序一致【10】0904(10) 在Visual FoxPro中,SELECT语句能够实现投影、选择和【】三种专门的关系运算。【11】0909(14) 学生表中有“学号”、“姓名”和“年龄”三个字段,下面SQL语句完成的操作称为SELECT 学号 FROM 学生

A) 选择B) 投影C) 连接D) 并

【12】0509(9)0709(8)0804 (7)在SQL的SELECT 查询中使用【】子句消除查询结果中的重复记录。【13】1003 (13)在SQL的SELECT查询中,使用【】关键词消除查询结果中的重复记录。

【14】(Y713)在SQL语句中,为了避免查询到的记录重复,可用__短语。

【15】1103(28) 消除SQL SELECT 查询结果中的重复记录,可采取的方法是

A)通过指定主关键字B)通过指定惟一索引C)使用DISTINCT短语D)使用UNIQUE短语

【16】0704(20) 0504(30)在SQL的SELECT查询的结果中,消除重复记录的方法是

A) 通过指定主索引实现B) 通过指定唯一索引实现 C) 使用DISTINCT短语实现D) 使用WHERE短语实现

【17】Y1(29)在SQL语句中,DISTINCT短语的作用是( )。

A)对查询结果进行分组B)消除重复出现的查询记录

C)按条件显示部分查询记录D)删除查询结果中符合条件的记录

【18】Y5(14)设有学生表XS(学号,课程号,成绩),用SQL语句检索每个学生的成绩总和的语句是:SELECT 学号,SUM(成绩) FROM XS__

【19】0709(7)在SQL的SELECT查询中,HAVING字句不可以单独使用,总是跟在【】子句之后一起使用。【20】0504(32)下列关于SQL中HAVING子句的描述,错误的是( )。

A)HAVING子句必须与GROUP BY子句同时使用B)HAVING子句与GROUP BY子句无关

C)使用WHERE子句的同时可以使用HAVING子句D)使用HAVING子句的作用是限定分组的条件

【21】0704(19)在SELECT语句中,以下有关HAVING语句的正确叙述是

A) HAVING短语必须与GROUP BY短语同时使用B) 使用HAVING短语的同时不能使用WHERE短语

C) HAVING短语可以在任意的一个位置出现D) HAVING短语与WHERE短语功能相同

【22】0704(15) 0904(24)SQL的SELECT语句中,“HAVING<条件表达式>”用来筛选满足条件的

A) 列B) 行C) 关系D) 分组

【23】1009(11) 1003(15) (C113)在SQL Select语句中使用Group By进行分组查询时,如果要求分组满足指定条件,则需要使用【】子句来限定分组。

【24】0904(14) 0509(14)使用SQL语言的SELECT语句进行分组查询时,如果希望去掉不满足条件的分组,应当在GROUP BY中使用【】子句

【25】Y2(15)在成绩表中,检索选修3门以上课程的学生及格学科的总成绩。成绩表中包含学号、姓名、课程名和成绩4个字段。请将下列SQL语句补充完整。

SELECT学号,SUM(成绩) FROM 成绩表 WHERE成绩>=60 GROUP BY 学号_____COUNT(*)>=3

【26】0804(13)在SELECT语句中使用ORDER BY是为了指定

A.查询的表B.查询结果的顺序C.查询的条件D.查询的字段

【27】0809(18) (Y727)在SQL SELECT查询中,为了使查询结果排序应该使用短语

A) ASC B) DESC C) GROUP BY D) ORDER BY

【28】0609(19)0909(27)在SQL SELECT语句的ORDER BY短语中如果指定了多个字段,则________。

A)无法进行排序B)只按第一个字段排序C)按从左至右优先依次排序D)按字段排序优先级依次排序【29】Y5(29)SQL用于显示部分查询结果的TOP短语,必须与下列哪个短语同时使用才有效( )。

A)HAVING B)DISTINCT C)ORDER BY D)GROUP BY

【30】1103(9)SQL语句“SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC”的查询结果是订单中金额__【】__的10%的定单信息。

【31】0704(11)Y6(13) “歌手”表中有“歌手号”、“姓名”、和“最后得分”三个字段,“最后得分”越高名次越靠前,查询前10名歌手的SQL语句是:

SELECT *【】FROM 歌手 ORDER BY 最后得分【】。

【32】1009(33)假设所有的选课成绩都已确定,显示“101”号课程成绩中最高的10%的记录信息,正确的SQL 命令是

A) SELECT * TOP 10 FROM 选课 ORDER BY 成绩 DESC WHERE课程号=“101”

B)SELECT * PERCENT 10 FROM 选课 ORDER BY 成绩 DESC WHERE课程号=“101”

C) SELECT * TOP 10 PERCENT FROM 选课 ORDER BY 成绩 WHERE课程号=“101”

D) SELECT * TOP 10 PERCENT FROM 选课 ORDER BY 成绩DESC WHERE课程号=“101”

【33】Y4(19)在成绩表中要求按“物理”降序排列,并查询前两名的学生姓名,正确的命令是( )。

A)SELECT 姓名 TOP 2 FROM 成绩表 WHERE 物理 DESC

B)SELECT 姓名 TOP 2 FROM 成绩表 FOR 物理 DESC

C)SELECT 姓名 TOP 2 FROM 成绩表 GROUP BY 物理 DESC

D)SELECT 姓名 TOP 2 FROM 成绩表ORDER BY物理 DESC

【34】Y1(28) 下列对SQL的嵌套查询排序的描述中,说法正确的是( )。

A)既能对外层查询排序,也能对内层查询排序B)只能对外层查询排序,不能对内层查询排序

C)只能对内层查询排序,不能对外层查询排序D)既不能对外层查询排序,也不能对内层查询排序【35】Y3(20)下列短语中,与排序无关的短语是

A)ASC B)DESC C)GROUP BY D)ORDER BY

【36】0609(9)在SQL SELECT语句中为了将查询结果存储到永久表应该使用【】短语。

【37】Y4(12)检索学生信息表中“籍贯”为“海南”的学生记录,将结果保存到表xx中,SQL语句为:SELECT * FROM 学生信息表 WHER E籍贯=”海南”______xx

【38】0809(21)SQL的SELECT语句中,与INTO TABLE等价的短语是

A) INTO DBF B) TO TABLE C) INTO FORM D) INTO FILE

【39】0809(9) 0509(11) Y2(29)在SQL DELETE语句中为了将查询结果存储到临时表中应该使用【】短语。【40】0709(26)在SQL SELECT 语句中为了将查询结果存储到临时表应该使用短语

A)TO CURSOR B)INTO CURSOR C)INTO DBF D)TO DBF

【41】(C115)检索学生成绩表中,总分在600分以上的学生记录,将结果保存到临时文件SCORE中,SQL语句为:SELECT * FROM 学生成绩表 WHERE总分>=600______SCORE

【42】1003 (32) 0909(31) 0904(32)查询“读者”表的所有记录并存储于临时表文件one中的SQL语句是

A)SELECT* FROM读者INTO CURSOR one B)SELECT* FROM读者TO CURSOR one

C)SELECT* FROM读者INTO CURSOR DBF one D)SELECT* FROM读者TO CURSOR DBF one

【43】0909(30)与“SELECT * FROM 教师表 INTO DBF A”等价的语句是

A)SELECT * FROM 教师表TO DBF A B)SELECT * FROM教师表TO TABLE A

C)SELECT * FROM 教师表INTO TABLE A D)SELECT * FROM 教师表INTO A

【44】Y1(13)检索学生表中“性别”为“男”的学生记录,将结果保存到文本文件xb中,SQL语句为:SELECT * FROM 学生表 WHERE 性别=“男”______xb

【45】0809(6)SELECT * FROM student【】FILE student命令将查询结果存储在student.txt文本文件中。【46】Y5(13)将SQL的查询结果如果要追加到文本文件的尾部,应使用__短语加以说明,

【47】(Y714)SQL SELECT的查询输出语句中,__短语表示将查询结果送到打印机。

1009(31)~(35)题使用如下数据表:

学生.DBF:学号(C,8),姓名(C,6),性别(C,2)

选课.DBF:学号(C,8),课程号(C,3),成绩(N,3)

【48】1009(32) 检索还未确定成绩的学生选课信息,正确的SQL命令是

A)SELECT 学生.学号,姓名,选课.课程号 FROM 学生JOIN 选课;

WHERE学生.学号=选课.学号 AND 选课.成绩IS NULL

B) SELECT 学生.学号,姓名,选课.课程号FROM 学生 JOIN 选课;

WHERE学生.学号 =选课.学号 AND 选课.成绩=NULL

C) SELECT 学生.学号,姓名,选课.课程号FROM 学生 JOIN 选课;

ON 学生.学号=选课.学号 WHERE 选课.成绩 IS NULL

D) SELECT 学生.学号,姓名,选课.课程号FROM 学生 JOIN 选课;

ON 学生.学号=选课.学号 WHERE 选课.成绩=NULL

【49】0809 (33)查询尚未最后确定订购单的有关信息的正确命令是

A) SELECT名称,联系人,电话号码,订单号FROM客户,订购单;

WHERE客户.客户号=订购单.客户号 AND订购日期IS NULL

B) SELECT名称,联系人,电话号码,订单号FROM客户,订购单;

WHERE客户.客户号=订购单.客户号 AND订购日期= NULL

C) SELECT名称,联系人,电话号码,订单号FROM客户,订购单;

FOR客户.客户号=订购单.客户号 AND订购日期IS NULL

D) SELECT名称,联系人,电话号码,订单号FROM客户,订购单;

FOR 客户.客户号=订购单.客户号AND订购日期= NULL

【50】0609(10)在SQL语句中空值用【】表示。

【51】Y6(30)SQL语句中进行空值运算时,需要使用到的短语是( )。

A)NULL B)=NULL C)IS NULL D)IS NOT NULL

【52】0709(6)如下命令查询雇员表中“部门号“字段为空值的记录

SELECT * FROM 雇员WHERE部门号【】。

【53】Y3(12)设有学生表文件,要查找学生表中还没有输入姓名的记录,则SQL语句为:

SELECT * FROM 学生表 WHERE 姓名______

【54】0804(11)在SQL语句中要查询表s在AGE字段上取空值的记录,正确的SQL语句为:SELECT * FROM s WHERE 【】。

【55】0904(34) 查询有选课记录,但没有考试成绩的学生的学号和课程号,正确的SQL语句是

A) SELECT 学号,课程号FROM sc WHERE成绩=“”

B) SELECT 学号,课程号FROM sc WHERE成绩=NULL

C) SELECT 学号,课程号FROM sc WHERE成绩 IS NULL

D) SELECT 学号,课程号FROM sc WHERE成绩

【56】Y4(28)检索尚未确定的供应商的订单号,正确的命令是( )。

A)SELECT * FROM 订购单 WHERE 供应商号 NULL B)SELECT * FROM 订购单 WHERE 供应商号=NULL

C)SELECT * FROM 订购单 WHERE 供应商号 IS NULL D)SELECT * FROM 订购单 WHERE 供应商号 IS NOT NULL 【57】(Y712)在SQL语句的SELECT中,字符串匹配运算符用__表示,%可用来表示0个或多个字符。

【58】0804(8)在SQL的WHERE子句的条件表达式中,字符串匹配(模糊查询)的运算符是__。

【59】Y5(15)检索当前表“学生”表中,全部姓“王”的学生记录,SQL语句为:

SELECT * FROM 学生 WHERE 姓名__“王%”

【60】Y1(14)查询“学生成绩”表中所有不是姓“李”的学生记录,完成下列SQL语句:

SELECT*FROM学生成绩WHERE姓名______“李%”

【61】0904(15)设有SC(学号,课程号,成绩)表,下面SQL的SELECT语句检索成绩高于或等于平均成绩的学生的学号

SELECT 学号 FROM SC WHERE 成绩 >=( SELECT【】FROM SC)

【62】1003 (12)在SQL语言中,用于对查询结果计数的函数是【】

【63】Y1(10)设有学生表(姓名,班级名称),用SQL语句检索每个班级的学生总人数的语句是:SELECT 班级名称,______ AS 人数 FROM 学生表 GROUP BY 班级名称

【64】Y3(15)利用SQL语句统计选修了“日语”课程的学生人数.请将下列语句补充完整.SELECT______FROM 选课表 WHERE 课程名=“日语”

【65】1009(13)将“学生”表中学号左4位为“2010”的记录存储到新表new中的命令是:

SELECT * FROM 学生 WHERE【13】=“2010”【14】DBF new。

【66】0609(33)与:SELECT DISTINCT 歌手号FROM歌手WHERE最后得分>ALL(SELECT 最后得分FROM;

歌手WHERE SUBSTR(歌手号,1,1)=“2”)等价的SQL语句是________。

A)SELECT DISTINCT歌手号FROM歌手WHERE最后得分>=;

(SELECT MAX(最后得分)FROM歌手WHERE SUBSTR (歌手号,1,1)=“2”)

B)SELECT DISTINCT歌手号FROM歌手WHERE最后得分>=;

(SELECT MIN(最后得分)FROM歌手WHERE SUBSTR (歌手号,1,1)=“2”)

C)SELECT DISTINCT歌手号FROM歌手WHERE最后得分>=;

ANY(SELECT MAX(最后得分)FROM歌手WHERE SUBSTR (歌手号,1,1)=“2”)

D)SELECT DISTINCT歌手号FROM歌手WHERE最后得分>=;

SOME(SELECT MAX(最后得分)FROM歌手WHERE SUBSTR (歌手号,1,1)=“2”)

【67】Y3(19)在成绩表中,查找物理分数最高的学生记录,下列SQL语句的空白处应填入的是()SELECT * FROM 成绩表WHERE 物理>=______(SELECT 物理 FROM 成绩表)

A)SOME B)EXISTS C)ANY D)ALL

【68】Y4(14)设有职工表文件,在职工表中查找奖金最高的职工记录,完成下列SQL语句。

SELECT * FROM 职工表 WHERE奖金>=______(SELECT奖金FROM职工表)

【69】(C112)嵌套查询命令中的______,相当于集合运算符号∈。

【70】Y2(19)当前目录下有XUESH.dbf和CHJI.dbf两个表文件,要求查找同时选修了课程号为“9801”和“9802”

的学生姓名,下列SQL语句的空白处应填入的语句为( )。

SELECT 姓名 FROM XUESH,CHJI WHERE XUESH.学号=CHJI.学号AND 课程号=“9801”AND 姓名____;

(SELECT 姓名 FROM XUESH,CHJI WHERE XUESH.学号=CHJI.学号 AND 课程号="9802")

A)IN B)EXISTS C)LIKE D)ALL

【71】(C215)SQL语句:

SELECT * FROM 仓库表 WHERE NOT EXISTS (SELECT * FROM 职工表 WHERE 仓库号=仓库.仓库号)

该语句等价于:SELECT * FROM 仓库表 WHERE 仓库号____(SELECT 仓库号 FROM 职工表)

【72】0509(15)设有S(学号,姓名,性别)和SC(学号,课程号,成绩)两个表,下面的SQL的SELECT 语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。

SELECT 学号,姓名,性别 FROM S WHERE【】(SELECT * FROM SC WHERE SC.学号 AND 成绩<85)

【73】1009(34)假设所有学生都已选课,所有的选课成绩都已确定,检索所有选课成绩都在90分以上(含)的学生信息,正确的SQL命令是

A) SELECT * FROM 学生 WHERE 学号 IN(SELECT学号 FROM 选课WHERE 成绩>=90)

B) SELECT * FROM 学生 WHERE 学号 NOT IN(SELECT学号 FROM 选课WHERE 成绩<90)

C) SELECT * FROM 学生 WHERE 学号!=ANY(SELECT学号 FROM 选课WHERE 成绩<90)!=ALL

D) SELECT * FROM 学生 WHERE 学号=ANY(SELECT学号 FROM 选课WHERE 成绩>=90)

【74】(Y730)检索那些城市至少有一个仓库的职工年龄在60以上,正确的命令是( )。

A)SELECT 城市 FROM 仓库 WHERE 仓库号 IN SELECT 仓库号 FROM 职工 WHERE 年龄>60

B)SELECT 城市 FROM 仓库 WHERE 仓库号 IN (SELECT 仓库号 FROM 职工 WHERE 年龄>60)

C)SELECT 仓库号 FROM 职工 WHERE 年龄>60 IN SELECT 城市 FROM 仓库 WHERE 仓库号

D)SELECT 仓库号 FROM 职工 WHERE 年龄>60 IN (SELECT 城市 FROM 仓库 WHERE 仓库号)

【75】0804(20)设有订单表order(其中包括字段:订单号,客户号,职员号,签订日期,金额),查询2007年所签订单的信息,并按金额降序排序,正确的SQL命令是:

A.SELECT * FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额 DESC

B.SELECT * FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额ASC

C.SELECT * FROM order WHERE YEAR(签订日期)=2007 ORDER BY 金额ASC

D.SELECT * FROM order WHILE YEAR(签订日期)=2007 ORDER BY 金额 DESC

【76】Y4(15)设有选课表,表中包含字段有:学号N(6),课程号C(6),成绩N(4)。要查询每门课程的学生人数,要求显示课程号和学生人数,对应的SQL语句为:

SELECT课程号,COUNT(学号) AS 学生人数 FROM 选课表 GROUP BY______

【77】Y6(12)SQL的SELECT语句中,用来定义一个区间范围的特殊运算符是__。

【78】0704(18)在SQL语句中,与表达式“年龄BETWEEN 12 AND 46”功能相同的表达式是

A)年龄>=12 OR<=46 B)年龄>=12 AND<=46 C) 年龄>=12OR年龄<=46 D)年龄>=12 AND年龄<=46 【79】0904(33) 查询成绩在70分至85分的之间的学生的学号、课程号和成绩,正确的SQL语句是

A) SELECT 学号,课程号,成绩 FROM sc WHERE成绩BETWEEN 70 AND 85

B) SELECT 学号,课程号,成绩 FROM sc WHERE成绩>=70 OR 成绩<=85

C) SELECT 学号,课程号,成绩 FROM sc WHERE成绩>=70 OR <=85

D) SELECT 学号,课程号,成绩 FROM sc WHERE成绩>=70 AND <=85

【80】1009(31)从“选课”表中检索成绩大于等于60并且小于90的记录信息,正确的SQL命令是

A) SELECT * FROM 选课 WHERE 成绩BETWEEN 60 AND 89

B) SELECT * FROM 选课 WHERE 成绩BETWEEN 60 TO 89

C) SELECT * FROM 选课 WHERE 成绩BETWEEN 60 AND 90

D) SELECT * FROM 选课 WHERE 成绩BETWEEN 60 TO 90

【81】Y2(24) Y3(28)有SQL SELECT语句:

SELECT * FROM 工资表 WHERE 基本工资<=3000 AND 基本工资>=1000 AND无顺序

下列与该语句等价的是( )。

A)SELECT * FROM 工资表 WHERE 基本工资 BETWEEN 1000 AND 3000 BETWEEN有顺序

B)SELECT * FROM 工资表 WHERE 基本工资 BETWEEN 3000 AND 1000

C)SELECT * FROM 工资表 WHERE 基本工资 FROM 1000 INTO 3000

D)SELECT * FROM 工资表 WHERE 基本工资 FROM 3000 INTO 1000

【82】Y2(28)有学生表和班级表文件,检索哪些班级中至少有一个学生的总分是大于700的,正确的命令是( )。

A)SELECT班级名称FROM班级表WHERE班级号IN SELECT班级号FROM学生表WHERE总分>700

B)SELECT班级名称FROM班级表WHERE班级号IN (SELECT班级号FROM学生表WHERE总分>700)

C)SELECT班级名称FROM班级表WHERE学号IN SELECT学号FROM学生表WHERE总分>700

D)SELECT班级名称FROM班级表WHERE学号IN (SELECT学号FROM学生表WHERE总分>700)班级表无“学号”【83】Y5(27)检索职工表中年龄大于50的职工姓名,正确的命令是( )。

A)SELECT 姓名 WHERE 年龄>50 B)SELECT 姓名 FROM 职工 FOR年龄>50

C)SELECT 姓名 FROM 职工 SET年龄>50 D)SELECT 姓名 FROM 职工 WHERE年龄>50

【84】(C228) Y4(20)有“仓库”表和“保管工”表,检索工资大于1500元的保管工姓名和他们所在的仓库名( )。

A)SELECT姓名,仓库名FROM保管工 WHERE工资>1500

B)SELECT姓名,仓库名FROM仓库 WHERE工资>1500

C)SELECT姓名,仓库名FROM保管工,仓库WHERE (工资>1500) OR (保管工.仓库号=仓库.仓库号)

D)SELECT姓名,仓库名FROM保管工,仓库WHERE (工资>1500) AND (职工.仓库号=仓库.仓库号)

【85】Y7(26)给出在工作中心“WCl”或“WC2”工作,并且年龄大于30的职工编号,正确命令是( )。

A)SELECT 编号 FROM 车间 WHERE 年龄>30 AND 工作中心=“WCl” OR 工作中心=“WC2”

B)SELECT 编号 FROM 车间 WHERE 年龄>30 AND (工作中心=“WCl” AND 工作中心=“WC2”)

C)SELECT 编号 FROM 车间 WHERE 年龄>30 0R 工作中心=“WCl”OR 工作中心=“WC2”

D)SELECT 编号 FROM 车间 WHERE 年龄>30 AND (工作中心=“WCl”OR 工作中心=“WC2”)

【86】 (C130)在当前目录下有数据表文件:“XS.dbf”,执行下列SQL语句后( )。

SELECT * FROM XS INTO CURSOR XS ORDER BY 学号

A)生成一个按“学号”升序的临时表文件,将原来的XS.dbf文件覆盖

B)生成一个按“学号”降序的临时表文件,将原来的XS.dbf文件覆盖

C)不会生成新的排序文件,保持原数据表内容不变

D)系统提示出错信息

【87】Y2(14)当前目录下有“选课表”文件,查找既选修了“计算机”,又选修了“日语”的学生号,则语句为:SELECT A.学号FROM选课表A,选课表B WHERE A.学号=B.学号AND A.课程名称=“计算机”AND____

【88】0704 (31)设有学生选课表SC(学号,课程号,成绩),用SQL检索同时选修课程号为”C1”和”C5”的学生的学号的正确命令是

A)SELECT 学号FROM SC WHERE 课程号=’C1’AND 课程号=’C5’

B)SELECT 学号FROM SC WHERE 课程号=’C1’AND 课程号=(SELECT 课程号 FROM SC WHERE 课程号=’C5’)

C)SELECT 学号FROM SC WHERE 课程号=’C1’AND 学号=(SELECT 学号 FROM SC WHERE 课程号=’C5’)

D)SELECT 学号FROM SC WHERE 课程号=’C1’AND 学号 IN (SELECT 学号 FROM SC WHERE 课程号=’C5’)【89】(C129)7列关于SQL的超连接查询的描述中,说法不正确的是( )。

A)VisualFoxPro支持超连接运算符“*=”和“=*”

B)在SQL中可以进行内部连接、左连接、右连接和全连接

C)SQL的超连接运算符“*=”代表左连接,“=*”代表右连接

D)即使两个表中的记录不满足连接条件,都会在目标表或查询结果中出现,只是不满足条件的记录对应部分

为空值

【90】Y4(13)SQL语句中,集合的并运算是通过______运算符进行合并的。

【91】(C230)下列SQL语句能实现的功能是( ),

SELECT * FROM 仓库 WHERE 仓库号=“WHI”UNION SELECT * FROM 仓库 WHERE 仓库号=“WH2”

A)查询在WHl或者WH2仓库中的职工信息B)查询仓库号为WHl或者WH2的仓库信息

C)查询即在仓库号为WHl,又在仓库号为WH2工作的职工信息D)语句错误,不能执行【92】Y330)SQL查询语句 SELECT * FROM 职工 TO FILE ZG.dbf语句的功能是错误:ZG.Dbf不是表文件

A)将职工表中所有记录查询输出到永久性表ZG.dbf中

B)将职工表中所有记录查询输出到文本文件ZG.txt中

C)将职工表中所有记录查询输出到文本文件ZG.dbf.txt中

D)语法错误

三. SQL定义语句

【1】Y4 (25)下列关于SQL对表的定义的说法中,正确的选项是( )。

A)利用ALTER TABLE来定义一个新的数据表结构

B)SQL的表定义语句定义自由表的域完整性、字段有效性规则等

C)SQL只能对数据库表实现其完整性、有效性规则等信息的设置

D)SQL的表定义语句只能定义表中的候选索引、惟一索引和普通索引,不能定义主索引

【2】0904(16)在Visual FoxPro中,下列关于SQL表定义语句(CREATE TABLE)的说法中错误的是

A)可以定义一个新的基本表结构B)可以定义表中的主关键字

C)可以定义表的域完整性,字段有效性规则等 D)对自由表,同样可以实现其完整性,有效性规则等信息的设置【3】1103(11)使用SQL的CREATE TABLE 语句建立数据库表时,为了说明主关键字应该使用关键词【11】 KEY。【4】0804(10) 0509(12)使用SQL的CREATE TABLE 语句定义表结构时,用__短语说明关键字(主索引)。

【5】0704(25)在Visual FoxPro数据库中创建表的CREATE TABLE命令中定义主索引,实现实体完整性规则的短语是

A) FOREIGN KEY B) DEFAULT C) PRIMARY KEY D) CHECK

【6】Y2(10) 0904(8)利用SQL语句的定义功能,建立一个学生表文件,其中为学号建立主索引,年龄的默认值为18,语句格式为:

CREATE TABLE 学生(学号C(5) ______ 年龄 I DEFAULT l8)

【7】0909(32)“教师表”中有“职工号”、“姓名”和“工龄”字段,其中“职工号”为主关键字,建立“教师表”的SQL命令是

A) CREATE TABLE 教师表(职工号C(10)PRIMARY姓名C(20),工龄 I)

B) CREATE TABLE 教师表(职工号C(10)FOREIGN姓名C(20),工龄 I)

C) CREATE TABLE 教师表(职工号C(10)FOREIGN KEY, 姓名C(20),工龄 I)

D) CREATE TABLE 教师表(职工号C(10)PRIMARY KEY, 姓名C(20),工龄 I)

【8】0509(13)在Visual FoxPro 中,使用SQL 的CREATE TABLE 语句建立数据库表时,使用【】子句说明有效性规则(域完整性规则或字段取值范围)。

【9】0904(13)下列与修改表结构相关的命令是

A) INSERT B) ALTER C) UPDATE D) CREATE

【10】0704(12)已有“歌手”表,将该表中的“歌手号”字段定义为候选索引、索引名是temp,正确的SQL语句是:

_________ TABLE 歌手 ADD UNIQUE 歌手号 TAG temp

【11】0709(29)在SQL的ALTER TABLE语句中,为了增加一个新的字段应该使用短语

A)CREATE B)APPEND C)COLUMN D)ADD

【12】0809(25) 0609(25)假设有student表,可以正确添加字段“平均分数”的命令是

A) ALTER TABLE student ADD 平均分数 F(6,2) B) ALTER DBF student ADD 平均分数 F6,2

C) CHANGE TABLE student ADD 平均分数 F(6,2) D) CHANGE TABLE student INSERT平均分数6,2

【13】Y1(34)为“仓库”表增加一个“面积”字段,类型为数值型,宽度是7,小数位数为2,正确的命令是( )。

A)CREATE TABLE仓库ADD面积N(7,2) B)CREATE TABLE仓库ALTER面积N(7,2)

C)ALTER TABLE仓库ADD面积N(7,2) D)ALTER TABLE仓库ALTER面积N(7,2)

【14】0804 (33)为“运动员”表增加一个字段“得分”的SQL语句是:

A.CHANGE TABLE 运动员 ADD 得分 I B.ALTER DATA 运动员 ADD 得分 I

C.ALTER TABLE 运动员 ADD 得分 I D.CHANGE TABLE 运动员 INSERT 得分 I

【15】(Y734)为“部门”表增加一个“人数”字段,类型为整型,正确的命令是( )。

A)ALTER TABLE 部门 ALTER 人数I B)ALTER TABLE 部门 ALTER FIELDS 人数 I

C)ALTER TABLE 部门 ADD 人数 I D)ALTER TABLE 部门 ADD FIELDS 人数 I

【16】1009(35)为“选课”表增加一个“等级”字段,其类型为C、宽度为2,正确的SQL命令是

A) ALTER TABLE 选课 ADD FIELD 等级 C(2) B) ALTER TABLE 选课 ALTER FIELD 等级 C(2)

C) ALTER TABLE 选课 ADD 等级 C(2) D) ALTER TABLE 选课 ALTER 等级 C(2)

【17】1103(14)给student 表增加一个“平均成绩”字段(数值型,总宽度6,2位小数)的SQL命令是

A)ALTER TABLE student ADD 平均成绩 N(6,2) B)ALTER TABLE student ADD 平均成绩 D(6,2)

C)ALTER TABLE student ADD 平均成绩 E(6,2) D)ALTER TABLE student ADD 平均成绩 Y(6,2)

【18】0504 (11) 为表“金牌榜”增加一个字段“奖牌总数”,同时为该字段设置有效性规则:奖牌总数>=0,应使用SQL语句

ALTER TABLE 金牌榜【11】奖牌总数I 【12】奖牌总数>=0

【19】0909-14为“成绩”表中“总分”字段增加有效性规则:“总分必须大于等于0并小于等于750”,正确的SQL语句是:

【14】 TABLE 成绩 ALTER 总分【15】总分>=0 AND 总分<=750

【20】1003(14)为“学生”表的“年龄”字段增加有效性规则“年龄必须在18~45岁之间”的SQL语句是ALTER TABLE学生ALTER年龄【】年龄<=45 AND 年龄>=18

【21】(C133)为“成绩”表中的“成绩”字段定义有效性检查及错误信息的提示,要求当成绩大于100分时,提示“成绩不能超过100分”的信息,正确的命令是()

A)ALTER TABLE成绩ALTER成绩 FOR CHECK 成绩<=100 ERROR“成绩不能超过100分”

B)ALTER TABLE成绩ALTER成绩 (WHERE CHECK 成绩<=100 ERROR“成绩不能超过100分”)

C)ALTER TABLE成绩ALTER成绩 SET CHECK成绩<=100 ERROR“成绩不能超过100分”

D)ALTER TABLE成绩ALTER成绩 (SET CHECK成绩<=100 ERROR“成绩不能超过100分”)

【22】0609(29)为“评分”表的“分数”字段添加有效性规则:“分数必须大于等于0并且小于等于10”,正确的SQL语句是________。

A)CHANGE TABLE 评分ALTER分数SET CHECK 分数>=0 AND 分数<=10

B)ALTER TABLE 评分ALTER分数SET CHECK 分数>=0 AND 分数<=10

C)ALTER TABLE评分ALTER分数CHECK分数>=0 AND 分数<=10

D)CHANGE TABLE评分ALTER分数SET CHECK 分数>=0 OR 分数<=10

【23】Y3 (32)为“课程”表中定义“开课系名”字段的默认值为“中文”,正确的命令是( )。

A)ALTER TABLE 课程 ALTER 开课系名 SET DEFAULT 中文

B)ALTER TABLE 课程 ALTER 开课系名 SET DEFAULT “中文”

C)ALTER TABLE 课程 ALTER 开课系名 SET DEFAULT 开课系名=中文

D)ALTER TABLE 课程 ALTER 开课系名 SET DEFAULT 开课系名=“中文”

【24】Y3(14)在“学生表”中删除字段“籍贯”的有效性规则命令为:

ALTER TABLE 学生表 ALTER 籍贯______

【25】1009(14) Y6 (14)将“学生”表中学号字段的宽度由原来的10改为12(字符型),应使用的命令是:ALTER TABLE学生【】

【26】Y3 (34)将“学生”表中“系名”字段的宽度由原来的6改为10,正确的命令是( )。

A)ALTER TABLE 学生 ADD 系名 C(10) B)ALTER TABLE 学生 FOR 系名 C(10)

C)ALTER TABLE 学生 ALTER 系名 C(10) D)ALTER TABLE 学生 SET 系名 C(10)

【27】Y629)在SQL的数据定义功能中,删除表字段名的命令格式是( )。

A)ALTER TABLE 数据表名 DELETE COLUMN 字段名B)ALTER TABLE 数据表名 DROP COLUMN 字段名

C)ALTER TABLE 数据表名 CANCEL COLUMN 字段名D)ALTER TABLE 数据表名 CUT COLUMN 字段名

【28】1103(18)删除student表的“平均成绩”字段的正确命令是

A)DELETE TABLE student DELETE COLUMN平均成绩

B)ALTER TABLE student DELETE COLUMN 平均成绩

C)ALTER TABLE student DROP COLUMN 平均成绩

D)DELETE TABLE student DROP COLUMN 平均成绩

【29】 (C114)删除学生表的候选索引XUESH_INDEX,该语句格式为:

ALTER TABLE 学生表______TAG XUESH_INDEX

【30】0609(15)如下命令将“产品”表的“名称”字段名修改为“产品名称”:

ALTER TABLE 产品RENAME 【】名称TO产品名称。

【31】(Y715)在“学生成绩”表中删除“物理分数”字段的命令为:

ALTER TABLE 学生成绩__物理分数

【32】0704(28)在Visual FoxPro中,如果要将学生表S(学号,姓名,性别,年龄)中“年龄”属性删除,正确的SQL 命令是

A)ALTER TABLE S DROP COLUMN年龄B)DELETE 年龄 FROM S

C)ALTER TABLE S DELETE COLUMN 年龄D)ALTEER TABLE S DELETE 年龄

【33】0504(26) 在Visual FoxPro中,删除数据库表S的SQL命令是( )。

A) DROP TABLE S B) DELETE TABLE S C) DELETE TABLE S.DBF D) ERASE TABLE S

【34】0609(30)根据“歌手”表建立视图myview,视图中含有包括了“歌手号”左边第一位是“1”的所有记录,正确的SQL语句是________。

A)CREATE VIEW myview AS SELECT * FROM歌手WHERE LEFT(歌手号,1)=“1”

B)CREATE VIEW myview AS SELECT * FROM歌手WHERE LIKE(“1”歌手号)

C)CREATE VIEW myview SELECT * FROM歌手WHERE LEFT(歌手号,1)=“1”

D)CREATE VIEW myview SELECT * FROM歌手WHERE LIKE(“1”歌手号)

【35】C1 (8)建立一个视图SCORE的命令是:______VIEW AS SELECT * FROM T_SCORE。

【36】Y3(35) (C134)在已打开数据库的情况下,利用SQL派生一个包含姓名、课程名称和成绩字段的xsview 视图,正确的命令是( )。

A)CREATE VIEW xsview AS SELECT 学生.姓名,课程.课程名称,成绩.成绩FROM 学生 INNER JOIN成绩;

INNER JOIN 课程WHERE成绩.课程编号=课程.课程编号AND学生.学号=成绩.学号

B)CREATE VIEW xsview AS (SELECT学生.姓名,课程,课程名称,成绩.成绩 FROM 学生 INNER JOIN 成绩;

INNER JOIN课程 ON 成绩.课程编号=课程.课程编号 ON 学生.学号=成绩.学号)

C)CREATE VIEW xsview AS SELECT 学生.姓名,课程.课程名称,成绩.成绩WHERE学生 INNER JOIN 成绩;

INNER JOIN 课程ON 成绩.课程编号=课程.课程编号 ON 学生.学号=成绩.学号

D)CREATE VIEW xsview AS SELECT 学生.姓名,课程.课程名称,成绩.成绩 FROM 学生INNER JOIN 成绩;

INNER JOIN 课程 ON 成绩.课程编号=课程.课程编号ON 学生.学号=成绩.学号

【37】0909-10 删除视图MyView的命令是【】

【38】1009(21) 0609(31)Y2(23)删除视图myview的命令是

A) DELETE myview B)DELETE VIEW myview C) DROP VIEW myview D) REMOVE VIEW myview 【39】0804(19)SQL 语句中删除视图的命令是:

A.DROP TABLE B.DROP VIEW C.ERASE TABLE D.ERASE VIEW

四. SQL操纵语句

【1】0604(22)SQL的数据操作语句不包括( )。

A)INSERT B)UPDATE C)DELETE D)CHANGE

【2】0704(11) 以下不属于SQL数据操作命令的是

A)MODIFY B) INSERT C) UPDATE D) DELETE

【3】0709(15)在SQL中,插入、删除、更新命令依次是INSERT、DELETE和【】。

【4】1003【】(25)SQL语言的更新命令的关键词是

A)INSERT B)UPDATE C)CREATE D)SELECT

【5】(C213)SQL语句中,____命令短语的功能是修改表中的记录

【6】Y1(32)有下列SQL语句:在命令窗口执行该命令后( )。

INSERT INTO职工VALUES(“WH4”,“E15”,“张清”2800)

A)向表中任意位置插入一条新记录B)在当前记录之前,插入一条新语句

C)在当前记录之后,插入一条新语句D)在表末尾新增一条记录

【7】1103(24)向student表插入一条新记录的正确SQL语句是

A)APPEND INTO student VALUES (’0401’,’王芳’,’女’,18)

B)APPEND student VALUES (’0401’,’王芳’,’女’,18)

C)INSER INTO student VALUES (’0401’,’王芳’,’女’,18)

D)INSER student VALUES (’0401’,’王芳’,’女’,18)

【8】0504 (28) 使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确的命令是 ( )。

A)APPEND INTO S (SNO,SN,SXE,AGE) values(‘0401','王芳','女',18)

B)APPEND S values(‘0401','王芳','女',18)

C)INSERT INTO S (SNO,SN,SEX,AGE)values(‘0401','王芳','女',18)

D)INSERT S value S (‘0401','王芳',18,'女')

【9】0704(16)设有关系SC(SNO,CNO,GRADE),其中SNO,CNO分别表示学号,课程号(两者均为字符型),GRADE表示成绩(数值型),若要把学号为“S101”的同学,选修课程号为“C11”,成绩为98分的记录插到表SC中,正确的语句是

A) INSERT INTO SC(SNO,CNO,GRADE) values(‘S101’,’C11’,’98’)

B) INSERT INTO SC(SNO,CNO,GRADE) values(S101, C11, 98)

C) INSERT (‘S101’,’C11’,’98’) INTO SC

D) INSERT INTO SC values(‘S101’,’C11’,98)

【10】0709(34)插入一条记录到“选课”表中,学号、课程号和成绩分别是“02080111”、“103”和80,正确的SQL语句是

A)INSERT INTO 选课valueS(“02080111”,”103”,80)

B)INSERT valueS(“02080111”,”103”,80)TO 选课(学号,课程号,成绩)

C)INSERT valueS(“02080111”,“103”,80)INTO 选课(学号,课程号,成绩)

D) INSERT INTO 选课(学号,课程号,成绩) FORM valueS(“02080111”,”103”,80)

【11】0609(26)插入一条记录到“评分”表中,歌手号、分数和评委号分别是“1001”、9.9和“105”,正确的SQL语句是________。

A)INSERT VALUES(“1001”,9“105”)INTO评分(歌手号,分数,评委号)

B)INSERT TO 评分(歌手号,分数,评委号)VALUES(“1001”,9.9“105”)

C)INSERT INTO评分(歌手号,分数,评委号)VALUES(“1001”,9.9,“105”)

D)INSERT VALUES(“100”9.9“105”)TO评分(歌手号,分数,评委号)

【12】(C135)向“成绩”表末尾插入—条“学号”为“08102002”,“课程编号”为“4001”,“成绩”为“86”

的新记录,正确的命令是( )。

A)INSERT INTO 成绩VALUES (08102002,4001,86)

B)INSERT INTO 成绩VALUES(“08102002”,“4001”,86)

C)INSERT FOR 成绩 VALUES(08102002,400l,“86”)

D)INSERT FOR成绩 VALUES(“08102002”,“4001”,86)

【13】Y2(13)使用SQL语句实现将一条新的记录插入“学生”表中:

INSERT______学生 (学号,姓名) VALUES ("9801",”李峰”)

【14】0904(14)对表SC(学号C(8),课程号C(2),成绩N(3),备注C(20)),可以插入的记录是A)(‘20080101’,’c1’,’90’,NULL)B)(’20080101’,’c1’,90,’成绩优秀’)

C)(‘20080101’,’c1’,’90’, ’成绩优秀’)D)(’20080101’,’c1’,’79’, ’成绩优秀’)【15】Y3(13)当前目录下有“工资表”文件,现要将“职称”.为“特级教师”奖金增加50元,则语句为:UPDATE 工资表______WHERE 职称=“特级教师”

【16】Y1(15)用SQL语句实现将所有教师的奖金提高10%:

UPDATE 教师______奖金=奖金*1.1

【17】0504(13)将金牌榜.DBF中的新增加的字段奖牌总数设置为金牌数、银牌数、铜牌数三项的和,应使用SQL 语句

【1 】金牌榜【2】奖牌总数=金牌数+银牌数+铜牌数

【18】0709(35)0509(35)将学号为“02080110”、课程号为“102”的选课记录的成绩改为92,正确的SQL语句是

A)UPDATE选课SET成绩WITH 92 WHERE学号=”02080110”AND课程号=”102”

B)UPDATE选课SET 成绩=92 WHERE学号=”02080110” AND课程号=”102”

C)UPDATE FROM选课SET成绩WITH 92 WHERE学号=”02080110”AND课程号=”102”

D)UPDATE FROM选课SET成绩=92 WHERE学号=”02080110” AND课程号=”102”

【19】0804 (34)计算每名运动员的“得分”(33题增加的字段)的正确SQL语句是:

A.UPDATE 运动员 FIELD 得分=2*投中2分球+3*投中3分球+罚球

B.UPDATE 运动员 FIELD 得分 WITH 2*投中2分球+3*投中3分球+罚球

C.UPDATE 运动员 SET 得分 WITH 2*投中2分球+3*投中3分球+罚球

D.UPDATE 运动员 SET 得分=2*投中2分球+3*投中3分球+罚球

【20】Y4(34)将“外汇名”表美元和欧元的基准价下调1%,下列SQL语句正确的是( )。

A)UPDATE 外汇名 FOR 基准价=基准价*0.99 WHERE 外币名称=“美元” OR 外币名称=“欧元”

B)UPDATE 外汇名 SET 基准价=基准价*0.99 WHERE 外币名称="美元" OR 外币名称="欧元"

C)UPDATE 外汇名 SET 基准价=基准价*0.99 WHERE外币名称=“美元”AND 外币名称=“欧元”

D)UPDATE 外汇名 FOR 基准价=基准价*0.99 WHERE外币名称=“美元”AND 外币名称=“欧元”

【21】Y6 (35)将“学生”表中,所有女学生的“年龄”加1,正确的命令语句是( )。

A)UPDATE 学生 FOR 年龄=年龄+1 WHERE 性别=“女”

B)UPDATE 学生 WHERE 年龄=年龄+1 ON 性别=“女”

C)UPDATE 学生 SET 年龄=年龄+1 WHERE 性别=“女”

D)UPDATE 学生 SET 年龄=年龄+I FOR 性别=“女”

【22】0509(34)从订单表中删除客户号为“1001“的订单记录,正确的SQL语句是( )。

A)DROP FROM 订单 WHERE 客户号=“1001“B)DROP FROM 订单 FOR 客户号=“1001“

C)DELETE FROM 订单 WHERE 客户号=“1001“D)DELETE FROM 订单FOR 客户号=“1001“

【23】1103(15)在VisuaI FoxPro 中,执行SQL的DELETE命令和传统的FoxPro DELETE命令都可以删除数据库表中的记录,下面正确的描述是

A)SQL的DELETE命令删除数据库表中的记录之前,不需要先用USE命令打开表

B)SQL的DELETE命令和传统的FoxPro DELETE命令删除数据库表中的记录之前,都需要先用命令USE打开表

C)SQL的DELETE命令可以物理地删除数据库表中的记录,而传统的ForPro DELETE命令只能逻辑删除数据库

表中的记录

D)传统的FoxPro DELETE命令还可以删除其他工作区中打开的数据库表中的记录

【24】1103(20) 0504(24)从student表删除年龄大于30的记录的正确SQL命令是

A)DELETE FOR 年龄>30 B)DELETE FROM student WHERE年龄>30

C)DELETE student FOR年龄>30 D)DELETE student WHERE年龄>30

【25】Y4(35)删除“持有数”表中所有外币名称为“法郎”的记录,下列SQL语句正确的是( )。

A)DELETE FROM 持有数WHERE 持有数.外币代码=外汇名.外币代码 AND 外币名称=”法郎”

B)DELETE FROM 持有数,外汇名WHERE 持有数.外币代码=外汇名.外币代码 AND 外币名称=“法郎”

C)DELETE FROM 持有数 WHERE 外币代码 IN (SELECT 外币代码 FROM 外汇名 WHERE 外币名称="法郎")

D)DELETE FROM 持有数 WHERE 外币代码 IN SELECT 外币代码 FROM 外汇名 WHERE 外币名称=“法郎”【26】0804 (21)设有订单表order(其中包括字段:订单号,客户号,客户号,职员号,签订日期,金额),删除2002年1月1日以前签订的订单记录,正确的SQL命令是:

A)DELETE TABLE order WHERE 签订日期<{^2002-1-1} B)DELETE TABLE order WHILE 签订日期>{^2002-1-1} C)DELETE FROM order WHERE 签订日期<{^2002-1-1} D)DELETE FROM order WHILE 签订日期>{^2002-1-1} 【27】0809(8)不带条件的SQL DELETE命令将删除指定表的【】记录。

【28】Y5(30)SQL语句DELETE FROM 学生 WHERE 年龄>25 的功能是( )。

A)删除学生表B)删除学生表中的年龄字段

C)将学生表中年龄大于25的记录逻辑删除D)将学生表中年龄大于25的记录物理删除

【29】Y6(15)在SQL语句中,要删除仓库关系中仓库号的字段值是WH2的记录,可利用命令:__FROM 仓库 WHERE 仓库号=“WH2”

【30】(C214)逻辑删除成绩表中总分在600分以下的学生记录,可使用SQL语句:

DELETE____成绩表WHERE总分<600

【31】 (Y732)检索最少有5名职工的每个部门的职工基本工资的总额( )。

A)SELECT 部门号,COUNT(*),SUM(基本工资) FROM 职工 HAVING COUNT(*)>=5

B)SELECT 部门号,COUNT(*),SUM(基本工资) FROM 职工 GROUP BY基本工资 HAVING COUNT(*)>=5

C)SELECT 部门号,COUNT(*),SUM(基本工资) FROM 职工 GROUP BY 部门号 HAVING COUNT(*)>=5

D)SELECT 部门号,COUNT(*),SUM(基本工资) FROM 职工 GROUP BY 部门号 WHERE COUNT(*)>=5

【32】Y6 (33)有下列SQL语句的含义是( )。

SELECT 班级名称,姓名,性别,年龄 FROM 班级,学生 WHERE 班级.班级号=学生.班级号;

AND 姓名 LIKE "李%" ORDER BY 学生.班级号

A)检索学生表中姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

B)检索学生表中不姓“李”的学生记录,并根据“班级号”分组显示学生的班级名称、姓名、性别和年龄

C)检索学生表中姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄

D)检索学生表中不姓“李”的学生记录,按“班级号”升序显示学生的班级名称、姓名、性别和年龄按“班

级号”升序显示学生的班级名称、

五. 综合

1103第(31)---(35) 题使用如下三个数据库表:

学生表:student (学号,姓名,性别,出生日期,院系)

课程表:course (课程号,课程名,学时)

选课成绩表:score(学号,课程号,成绩)

其中出生日期的数据类型为日期型,学时和成绩为数值型,其他均为字符型。

【1】1103(31)查询“计算机系”学生的学号、姓名、学生所选课程的课程名和成绩,正确的命令是

A)SELECT s.学号,姓名,课程名,成绩FROM student s,score sc,course c

WHERE s.学号 =sc.学号,sc.课程号 =c.课程号,院系 =’计算机系’

B)SELECT 学号,姓名,课程名,成绩 FROM student s,score sc,course c

WHERE s.学号 =sc.学号 AND sc.课程号 =c.课程号 AND院系 =’计算机系’

C) SELECT s.学号,姓名,课程名,成绩 FROM(student s JOIN score sc ON s.学号 =sc.学号)

JOIN course c ON sc.课程号 =c.课程号 WHERE 院系 =’计算机系’

D)SELECT 学号,姓名,课程名,成绩FROM(student s JOIN score sc ON s.学号 =sc.学号)

JOIN course c ON sc.课程号 =c.课程号WHERE 院系 =’计算机系’

【2】1103(32)查询所选修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是

A)SELECT 学号,姓名FROM student s WHERE NOT EXISTS

(SELECT * FROM score sc WHERE sc.学号= s.学号 AND 成绩<85)

B)SELECT 学号,姓名FROM student s WHERE NOT EXISTS

(SELECT * FROM score sc WHERE sc.学号= s.学号 AND 成绩>=85)

C)SELECT 学号,姓名FROM student s,score sc WHERE s.学号= sc.学号 AND 成绩>=85

D)SELECT 学号,姓名FROM student s,score sc WHERE s.学号= sc.学号 AND ALL成绩>=85

【3】1103(33)查询选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排列,正确的命令是

A)SELECT s.学号,姓名,平均成绩FROM student s,score sc WHERE s.学号= sc.学号

GROP BY s.学号 HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B)SELECT s.学号,姓名,AVG(成绩)FROM student s,score sc WHERE s.学号= sc.学号

AND COUNT(*)>=5 GROP BY 学号ORDER BY 3 DESC

C)SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc WHERE s.学号= sc.学号

AND COUNT(*)>=5 GROP BY s.学号ORDER BY 平均成绩 DESC

D)SELECT s.学号,姓名,AVG(成绩)平均成绩FROM student s,score sc WHERE s.学号= sc.学号

GROP BY s.学号HAVING COUNT(*)>=5 ORDER BY 3 DESC

【4】1103(34)查询同时选修课程号为C1和C5课程的学生的学号,正确的命令是

A)SELECT 学号 FROM score sc WHERE 课程号 =‘C1’AND 学号 IN

(SELECT 学号 FROM score sc WHERE 课程号 =‘C5’)

B)SELECT 学号 FROM score sc WHERE 课程号 =‘C1’AND 学号 =

(SELECT 学号 FROM score sc WHERE 课程号 =‘C5’)

C)SELECT 学号 FROM score sc WHERE 课程号 =‘C1’AND 课程号 =‘C5’

D)SELECT 学号 FROM score sc WHERE 课程号 =‘C1’OR‘C5’

【5】1103(35)删除学号为“20091001”且课程号为“C1”的选课记录,正确命令是

A)DELETE FROM score WHERE 课程号=‘C1’AND 学号=‘20091001’

B)DELETE FROM score WHERE 课程号=‘C1’OR学号=‘20091001’

C)DELETE FORM score WHERE 课程号=‘C1’AND 学号=‘20091001’

D)DELETE score WHERE 课程号=‘C1’AND 学号=‘20091001’

0609(25)~(33)使用的数据表如下:

当前盘当前目录下有数据库:大奖赛dbc,其中有数据库表“歌手dbf”、“评分dbf”“歌手”表:

“歌手”表歌手号姓名“评分”表歌手号分数评委号

1001 王蓉1001 9.8 101

2001 许可1001 9.6 102

3001 周杰伦1001 9.7 103

4001 林俊杰1001 9.8 104

【6】0609(27)假设每个歌手的“最后得分”的计算方法是,去掉一个最高分生个最低分,取剩下分数的平均分。根据“评分”表求每个歌手的“最后得分”并存储于表TEMP中。表TEMP中有两个字段:“歌手号”和“最后得分”,并且按最后得分降序排列,生成表TEMP的SQL语句是________。

A)SELECT歌手号,(COUNT(分数)- MAX(分数)-MIN(分数))/(SUM(*)-2)最后得分;

FROM评分INTO DBF TEMP GROUP BY 歌手号ORDER BY 最后得分DESC

B)SELECT歌手号,(COUNT(分数)-MAX(分数)-MIN(分数))/(SUM(*)-2)最后得分;

FROM评分INTO DBF TEMP GROUP BY 评委号ORDER BY 最后得分DESC

C)SELECT 歌手号,(SUM(分数)-MAX(分数)-MIN(分数))/(COUNT(*)-2)最后得分;

FROM评分INTO DBF TEMP GROUP BY评委号ORDER BY 最后得分DESC

D)SELECT歌手号,(SUM(分数)-MAX(分数)-MIN(分数))/(COUNT(*)-2)最后得分;

FROM评分INTO DBF TEMP GROUP BY歌手号ORDER BY最后得分DESC

【7】0609(32)假设temp. dbf数据表中有两个字段“歌手号”和“最后得分”下面程序的功能是:将temp. dbf 中歌手的“最后得分”填入“歌手”表对应歌手的“最后得分”字段中(假设已增加了该字段)在下线处应该填写的SQL语句是________。

USE 歌手典型程序

DO WHILE . NOT. EOF()

________________

REPLACE 歌手最后得分WITH a[2]

SKIP

ENDDO

A)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号TO ARRAY a

B)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号INTO ARRAY a

C)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号TO FILE a

D)SELECT * FROM temp WHERE temp.歌手号=歌手.歌手号INTO FILE a

【】0504 (11)——(13)题使用如下三个数据库表:

金牌榜.DBF国家代码 C(3),金牌数 I,银牌数 I,铜牌数 I

获奖牌情况.DBF国家代码 C(3),运动员名称 C(20),项目名称 C(20),名次 I

国家.DBF国家代码 C(3),国家名称 C(20)

【9】0504 (12) 使用“获奖牌情况”和“国家”两个表查询“中国”所获金牌(名次为1)的数量,应使用SQL 语句

SELECT COUNT(*) FROM 国家 INNER JOIN 获奖牌情况【】国家.国家代码=获奖牌情况.国家代码;

WHERE 国家.国家名称=“中国” AND 名次=1

0504第(34)——(35)题使用如下三个数据库表

学生表:S(学号,姓名,性别,出生日期,院系)

课程表:C(课程号,课程名,学时)

选课成绩表:SC(学号,课程号,成绩)

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。

【10】0504 (34) 用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命

令是。

A)SELECT 学号,姓名 FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩<85)

B)SELECT 学号,姓名 FROM S WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.学号=S.学号 AND 成绩>=85)

C)SELECT 学号,姓名 FROM S,SC WHERE S.学号=SC.学号 AND 成绩>=85

D)SELECT 学号,姓名 FROM S,SC WHERE S.学号=SC.学号 AND ALL 成绩>=85 内外层互相关的嵌套【11】0504 (35) 用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是( )。

A)SELECT S.学号,姓名,平均成绩 FROM S,SC WHERE S.学号=SC.学号;

GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 平均成绩 DESC

B)SELECT 学号,姓名,AVG(成绩) FROM S,SC WHERE S.学号=SC.学号AND COUNT(*)>=5;

GROUP BY 学号 ORDER BY 3 DESC

C)SELECT S.学号,姓名,AVG(成绩) 平均成绩 FROM S,SC WHERE S.学号=SC.学号AND COUNT(*)>=5;

GROUP BY S.学号 ORDER BY 平均成绩 DESC

D)SELECT S.学号,姓名,AVG(成绩) 平均成绩 FROM S,SC WHERE S.学号=SC.学号;

GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 3 DESC

【12】0509(29)查询金额最大的那10%订单的信息。正确的SQL语句是( )。

A)SELECT * TOP 10 PERCENT FROM 订单

B)SELECT TOP 10% * FROM 订单 ORDER BY 金额

C)SELECT * TOP 10 PERCENT FROM 订单 ORDER BY 金额TOP 10 PERCENT与*无顺序要求D)SELECT TOP 10 PERCENT *FROM订单ORDER BY 金额 DESC 求最大要降序

【13】0509(30)查询订单数在3个以上、订单的平均金额在200元以上的职员号。正确的SQL语句是 ( )。A)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG_金额>200

B)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 AND AVG(金额)>200

统计函数可用在HAVING子句,不能用在WHERE子句

C)SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG(金额)>200

D)SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200

【14】0509 (31)显示2005年1月1日后签订的订单,显示订单的订单号、客户以及签定日期。正确的SQL语句是

A)SELECT 订单号,客户名,签订日期 FROM 订单JOIN 客户 ON 订单.客户号=客户.客户号;

WHERE 签订日期>{^2005-1-1}

B)SELECT 订单号,客户名,签订日期 FROM 订单JOIN 客户;

WHERE 订单.客户号=客户.客户号 AND 签订日期>{^2005-1-1}

C)SELECT 订单号,客户名,签订日期 FROM 订单,客户;

WHERE 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1}

D)SELECT 订单号,客户名,签订日期 FROM 订单,客户;

ON 订单.客户号=客户.客户号 AND 签订日期<{^2005-1-1}

【15】0509 (32)显示没有签订任何订单的职员信息(职员号和姓名),正确的SQL语句是( )。

A)SELECT 职员.职员号,姓名FROM 职员JOIN 订单ON 订单.职员号=职员.职员号;

GROUP BY 职员.职员号 HAVING COUNT(*)=0

B)SELECT 职员.职员号,姓名FROM 职员 LEFT JOIN 订单ON 订单.职员号=职员.职员号;

GROUP BY 职员.职员号 HAVING COUNT(*)=0

C)SELECT职员号,姓名FROM 职员WHERE 职员号 NOT IN (SELECT 职员号 FROM 订单)

D)SELECT 职员.职员号,姓名FROM 职员WHERE 职员.职员号<>(SELECT 订单.职员号 FROM 订单)

【16】0509(33)有以下SQL语句:

SELECT 订单号,签订日期,金额FROM 订单,职员 WHERE 订单.职员号=职员.职员号AND 姓名=“李二“

与如上语句功能相同的SQL语句是( )。由“职员”表和“订单”表查询“李二”所签订单信息

A)SELECT 订单号,签订日期,金额FROM 订单 WHERE EXISTS(SELECT * FROM 职员 WHERE 姓名=“李二“)B)SELECT 订单号,签订日期,金额FROM 订单WHERE EXISTS;

(SELECT * FROM 职员 WHERE 职员号=订单.职员号 AND 姓名=“李二“)

C)SELECT 订单号,签订日期,金额FROM 订单WHERE IN(SELECT 职员号 FROM 职员 WHERE 姓名=“李二“)D)SELECT 订单号,签订日期,金额FROM 订单WHERE IN;

(SELECT 职员号 FROM 职员 WHERE 职员号=订单.职员号 AND 姓名=“李二“)

【17】0704(30)设有学生表S(学号,姓名,性别,年龄),查询所有年龄小于等于18岁的女同学,并按年龄进行降序生成新的表WS,正确的SQL命令是

A)SELECT * FROM S WHERE 性别='女'AND 年龄<=18 ORDER BY 4 DESC INTO TABLE WS

B)SELECT * FROM S WHERE 性别='女'AND 年龄<=18 ORDER BY年龄 INTO TABLE WS

C)SELECT * FROM S WHERE 性别='女'AND 年龄<=18 ORDER BY‘年龄’DESC INTO TABLE WS

D)SELECT * FROM S WHERE 性别='女'OR 年龄<=18 ORDER BY‘年龄’ASC INTO TABLE WS

【18】0704 (32)设学生表S(学号,姓名,性别,年龄),课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号,姓名和学生所选课程名和成绩,正确的SQL命令是

A)SELECT 学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号 =SC.学号 AND SC.学号=C.学号

B)SELECT 学号,姓名,课程名,成绩 FROM(S JOIN SC ON S.学号=SC.学号)JOIN C ON SC.课程号=C.课程号

C)SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号 =C.课程号

D)SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号 =SC.学号

0709(30)~(35)题使用如下数据表:

学生.DBF:学号(C,8),姓名(C,6),性别(C,2),出生日期(D)

选课.DBF:学号(C,8),课程号(C,3),成绩(N,5,1)

【19】0709(30)查询所有1982年3月20日以后(含)出生、性别为男的学生,正确的SQL语句是

A) SELECT * FROM 学生WHERE 出生日期>={^1982-03-20} AND 性别=”男”

B) SELECT * FROM 学生WHERE 出生日期<={^1982-03-20} AND 性别=”男”

C) SELECT * FROM 学生WHERE 出生日期>={^1982-03-20} OR 性别=”男”

D) SELECT * FROM 学生WHERE 出生日期<={^1982-03-20} OR 性别=”男”

【20】0709(31)计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是

A) SELECT AVG(成绩) FROM 选课WHERE 姓名=”刘明”

B) SELECT AVG(成绩) FROM学生,选课WHERE 姓名=”刘明”

C) SELECT AVG(成绩) FROM学生,选课WHERE学生.姓名=”刘明”

D) SELECT AVG(成绩) FROM学生,选课WHERE学生.学号=选课.学号 AND姓名=”刘明”

【21】0709(32)假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为”101”课程的平均成绩,正确的SQL 语句是 GROUP BY专业ORDER BY专业都合法

A)SELECT 专业 AS SUBS(学号,3,2),平均分 AS AVG(成绩) FROM 选课WHERE 课程号=”101”GROUP BY 专业

B)SELECT SUBS(学号,3,2) AS专业, AVG(成绩) AS平均分 FROM 选课WHERE 课程号=”101” GROUP BY 1

C)SELECT SUBS(学号,3,2) AS专业, AVG(成绩) AS平均分 FROM 选课WHERE 课程号=”101” ORDER BY 专业

D)SELECT 专业 AS SUBS(学号,3,2),平均分 AS AVG(成绩) FROM 选课WHERE 课程号=”101” ORDER BY 1【22】0709(33)查询选修课程号为”101”课程得分最高的同学,正确的SQL语句是

A) SELECT 学生.学号,姓名 FROM学生,选课 WHERE 学生.学号=选课.学号 AND ;

课程号=”101” AND 成绩>=ALL(SELECT 成绩 FROM 选课)

B) SELECT 学生.学号,姓名 FROM学生,选课 WHERE 学生.学号=选课.学号AND ;

成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)

C) SELECT 学生.学号,姓名 FROM学生,选课WHERE 学生.学号=选课.学号AND ;

成绩>=ANY(SELECT 成绩 FROM 选课 WHERE 课程号=”101”)

D) SELECT 学生.学号,姓名 FROM学生,选课 WHERE 学生.学号=选课.学号 AND ;

课程号=”101” AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE课程号=”101”)

下表是用list命令显示的“运动员”表的内容和结构,(33)-(35)题使用该表:

记录号运动员号投中2分球投中3分球罚球

1 1 3 4 5

2 2 2 1 3

3 3 0 0 0

4 4

5

6 7

【23】0804(35)检索”投中3分球”小于等于5个的运动员中“得分”最高的运动员的”得分”,正确的SQL语句是:

A.SELECT MAX(得分) 得分 FROM 运动员 WHERE 投中3分球<=5

B.SELECT MAX(得分) 得分 FROM 运动员 WHEN 投中3分球<=5

C.SELECT 得分=MAX(得分) FROM 运动员 WHERE 投中3分球<=5

D.SELECT 得分=MAX(得分) FROM 运动员 WHEN 投中3分球<=5

【】0904 (31)~(35)题使用学生表S和学生选课表SC两个数据库表,它们的结构如下:S(学号,姓名,性别,年龄)其中学号、姓名和性别为C型字段,年龄为N型字段

SC(学号,课程号,成绩)其中学号和课程号为C型字段,成绩为N型字段(初始为空值)

【25】0904(31) 查询学生选修课程成绩小于60分的学号,正确的SQL语句是

A) SELECT DISTINCT 学号 FROM SC WHERE “成绩”<60

B) SELECT DISTINCT 学号 FROM SC WHERE 成绩<“60”

C) SELECT DISTINCT 学号 FROM SC WHERE 成绩<60

D) SELECT DISTINCT “学号” FROM SC WHERE “成绩”<60

【26】0904(35) 查询选修C2课程号的学生姓名,下列SQL语句中错误的是几种等价语句

A) SELECT 姓名 FROM S WHERE EXISTS(SELECT * FROM SC WHERE 学号=S.学号 AND 课程号=’C2’)

B) SELECT 姓名 FROM S WHERE 学号 IN(SELECT学号 FROM SC WHERE 课程号=’C2’)

C) SELECT 姓名 FROM S JOIN SC ON S.学号= SC.学号WHERE课程号=’C2’

D) SELECT 姓名 FROM S WHERE 学号=(SELECT学号 FROM SC WHERE 课程号=’C2’)可用=ANY

【27】0909(34)“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,计算“计算机”系教师总数的命令是

A) SELECT COUNT(*) FROM教师表INNER JOIN学院表 ON 教师表.系号=学院表.系号WHERE系名=”计算机”

B) SELECT COUNT(*) FROM教师表INNER JOIN 学院表 ON 教师表.系号=学院表.系号;

ORDER BY教师表.系号HAVING 学院表.系名=”计算机”

C) SELECT SUM(*) FROM教师表INNER JOIN学院表 ON 教师表.系号=学院表.系号;

GROUP BY教师表.系号 HAVING 学院表.系名=”计算机”

D) SELECT SUM(*) FROM教师表INNER JOIN学院表 ON 教师表.系号=学院表.系号;

ORDER BY教师表.系号 HAVING 学院表.系名=”计算机”

【28】0909(35)“教师表”中有“职工号”、“姓名”、“工龄”和“系号”等字段,“学院表”中有“系名”和“系号”等字段,求教师总数最多的系的教师人数,正确的命令序列是不需要“学院表”

A) SELECT教师表.系号,COUNT(*) AS人数 FROM 教师表,学院表 GROUP BY 教师表.系号 INTO DBF TEMP

SELECT MAX(人数) FROM TEMP

B) SELECT教师表.系号,COUNT(*) FROM 教师表,学院表;

WHERE 教师表.系号=学院表.系号 GROUP BY 教师表.系号 INTO DBF TEMP

SELECT MAX(人数) FROM TEMP

C) SELECT教师表.系号,COUNT(*) AS人数FROM教师表,学院表;

WHERE 教师表.系号=学院表.系号GROUP BY教师表.系号TO FILE TEMP

SELECT MAX(人数) FROM TEMP

D) SELECT教师表.系号,COUNT(*) AS人数FROM 教师表,学院表;

WHERE 教师表.系号=学院表.系号GROUP BY 教师表.系号INTO DBF TEMP

SELECT MAX(人数) FROM TEMP

1003第(30)到第(35)题基于图书表、读者表和借阅表三个数据库表,它们的结构如下:

图书(图书编号,书名,第一作者,出版社):图书编号,书名,第一作者和出版社为C型字段,图书编号为主关键字读者(借书证号,单位,姓名,职称):借书证号、单位、姓名、职称为C型字段,借书证号为主关键字;

借阅(借书证号,图书编号,借书日期.还书日期):借书证号和图书编号为C型字段,借书日期和还书日期为D型字段,还书日期默认值为NULL,借书证号和图书编号共同构成主关键字。

【29】1003 (30)查询第一作者为“张三”的所有书名及出版社,正确的SQL语句是

A)SELECT书名,出版社FROM图书WHERE第一作者=张三

B)SELECT书名,出版社FROM图书WHERE第一作者="张三"

C)SELECT书名,出版社FROM图书WHERE"第一作者"=张三

D)SELECT书名,出版社FROM图书WHERE"第一作者"="张三"

【30】1003 (31)查询尚未归还书的图书编号和借书日期,正确的SQL语句是

A)SELECT图书编号,借书日期FROM借阅WHERE还书日期=" "

B)SELECT图书编号,借书日期FROM借阅WHERE还书日期=NULL

C)SELECT图书编号,借书日期FROM借阅WHERE还书日期IS NULL

D)SELECT图书编号,借书日期FROM借阅WHERE还书日期

【31】1003 (34)查询2009年被借过书的图书编号和借书日期,正确的SQL语句是

A)SELECT图书编号, 借书日期FROM借阅WHERE借书日期=2009

B)SELECT图书编号, 借书日期FROM借阅WHERE year(借书日期)=2009

C)SELECT图书编号, 借书日期FROM借阅WIRE借书日期=year(2009)

D)SELECT图书编号, 借书日期FROM借阅WHERE year(借书日期)=year(2009)

【32】1003 (35)查询所有“工程师”读者借阅过的图书编号,正确的SQL语句是

A)SELECT图书编号FROM读者, 借阅WHERE职称="工程师"

B)SELECT图书编号FROM读者, 图书WHERE职称="工程师"

C)SELECT图书编号FROM借阅WHERE图书编号 = (SELECT图书编号FROM借阅WHERE职称="工程师")

D)SELECT图书编号FROM借阅WHERE借书证号IN (SELECT借书证号FROM读者WHERE职称="工程师")

0809 (31)~(35)题使用如下关系:

客户(客户号,名称,联系人,邮政编码,电话号码)

产品(产品号,名称,规格说明,单价)

订购单(订单号,客户号,订购日期)

订购单明细(订单号,序号,产品号,数量)

【33】0809 (31)查询单价在600元以上的主机板和硬盘的正确命令是

A) SELECT * FROM产品WHERE单价>600 AND(名称=”主机板” AND名称=”硬盘”)

B) SELECT * FROM产品WHERE单价>600 AND(名称=”主机板” OR名称=”硬盘”)

C) SELECT * FROM产品FOR单价>600 AND(名称=”主机板”AND名称=”硬盘”)

D) SELECT * FROM产品FOR单价>600 AND(名称=”主机板” OR名称=”硬盘”)

【34】0809 (34)查询订购单的数量和所有订购单平均金额的正确命令是

A) SELECT COUNT(DISTINCT 订单号),AVG(数量*单价)

FROM 产品JOIN订购单明细 ON 产品. 产品号=订购单明细. 产品号

B) SELECT COUNT(订单号),AVG(数量*单价)

FROM 产品JOIN订购单明细 ON 产品. 产品号=订购单明细. 产品号

C) SELECT COUNT(DISTINCT 订单号),AVG(数量*单价)

FROM 产品,订购单明细ON产品. 产品号=订购单明细. 产品号

D) SELECT COUNT(订单号),AVG(数量*单价)

FROM 产品,订购单明细ON产品. 产品号=订购单明细. 产品号

【35】0809 (35)假设客户表中有客户号(关键字)C1-C10共10条客户记录,订购单表有订单号(关键字)OR1-OR8共8条订购单记录,并且订购单表参照客户表。如下命令可以正确执行的是

A) INSERT INTO 订购单VALUES(’OR5’,’C5’,{^2008/10/10})

B) INSERT INTO 订购单VALUES(’OR5’,’C11’,{^2008/10/10})

C) INSERT INTO 订购单VALUES(’OR9’,’C11’,{^2008/10/10})

D) INSERT INTO 订购单VALUES(’OR9’,’C5’,{^2008/10/10})

Y2 (31)到(35)题中使用下列数据表。

“作者”表:作者编号姓名所在城市

1101 张晓云北京

1102 李丽北京

1103 袁熙林上海

1104 赵三立广州

1105 方德胜上海

1106 刘清北京

“图书”表:图书编号书名出版单位价格作者编号页数1101 计算机基础知识经济科学出版社32.80 1101 252

2202 会计基础知识经济科学出版社17.80 1105 215

1102 VB 9.0初级入门人民邮电出版社22.50 1102 264

1103 Word 2003基础知识大地出版社19.80 1101 298

1105 VFP 6.0程序设计基础大地出版社38.50 1103 310

2201 中级会计财务知识经济科学出版社28.80 1106 245

1110 计算机网络基础高等教育出版社26.50 1101 258

1111 计算机组成原理北京大学出版社31.20 1103 98

1112 数据库设计原理高等教育出版社35.50 1101 330

1113 C语言程序设计北京大学出版社32.00 1102 326

1114 软件设计分析高等教育出版社34.50 1102 330

2203 信息系统分析理论经济科学出版社24.50 1102 235 【36】Y2 (31)执行下列L语句:查询结果中,第一条记录的“出版单位”名称是( )。

SELECT 出版单位,COUNT(*) FROM 图书GROUP BY 出版单位 ORDER BY 2 DESC

A)高等教育出版杜B)北京大学出版杜 C)经济科学出版杜D)人民邮电出版社

【37】Y2 (32)查询“上海”作者出版的图书情况,要求包含作者姓名、书名和价格信息,并按图书“价格”降序排列,下列SQL语句正确的是( )。

A)SELECT姓名,书名,价格 FROM 图书,作者 JOIN 图书.作者编号=作者.作者编号;

WHERE所在城市=“上海” ORDER BY 价格 DESC

B)SELECT姓名,书名,价格 FROM 图书,作者 JOIN 图书.作者编号=作者.作者编号;

ON 所在城市=“上海” ORDER BY 价格

C)SELECT姓名,书名,价格 FROM 图书,作者 WHERE 图书.作者编号=作者.作者编号;

AND 所在城市=“上海” ORDER BY 价格 DESC

D)SELECT 姓名,书名,价格 FROM 图书,作者 WHERE 图书.作者编号=作者.作者编号;

AND所在城市=“上海” ORDER BY 价格

【38】Y2 (33)执行下列L语句:则?temp[2]的结果是( )。

SELECT MlN(价格) FROM 图书 INTO ARRAY temp

A)17.80 B)0 C).F.D)下标超界

【39】Y2 (34)有下列SQL语句:执行该语句后,查询结果中的字段值是( )。

SELECT 姓名 FROM 作者 WHERE NOT EXISTS (SELECT * FROM 图书 WHERE 作者编号=作者.作者编号) A)1 B)赵三立 C).T.D) .F.

【40】Y2 (35)求至少出版3本以上图书的作者姓名及数量,下列SQL语句正确的是( )。

A)SELECT 姓名,COUNT(*) AS 数量 FROM 图书,作者 HAVING COUNT(*)>=3 无GROUP BY

B)SELECT姓名,COUNT(*) AS 数量 FROM 图书,作者 WHERE 作者.作者编号=图书.作者编号;

GROUP BY 图书.作者编号 HAVING COUNT(*)>=3

C)SELECT 姓名,COUNT(*) AS 数量FROM 图书,作者FOR作者.作者编号=图书.作者编号;

WHERE 图书.作者编号 HAVING COUNT(*)>=3

D)SELECT 姓名,COUNT(*) AS 数量FROM 图书,作者 WHERE 作者.作者编号=图书.作者编号;

GROUP BY 图书.作者编号SET COUNT(*)>=3

Y3 (31)到(35)题中使用下列数据表。

“学生”表:学号C(8),姓名C(8),性别C(2),系名(6)

“课程”表:课程编号C(4),课程名称C(12),开课系名C(10)

“成绩”表:学号C(,8),课程编号C(4),成绩N(6,2)

【41】Y3 (31)检索每门课程的最高分,要求得到的信息包括课程名称、姓名和最高分,正确的命令是( )。A)SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分FROM 成绩,课程,学生;

WHERE 成绩.课程编号=课程.课程编号AND 成绩.学号=学生.学号 GROUP BY 课程编号

B)SELECT课程.课程名称,学生.姓名,MAX(成绩) AS 最高分 FROM 成绩,课程,学生;

WHERE 成绩.课程编号=课程.课程编号 AND 成绩.学号=学生.学号 GROUP BY 课程.课程编号

C)SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分 FROM 成绩,课程,学生;

WHERE 成绩.课程编号=课程.课程编号 AND 成绩.学号=学生.学号ORDER BY 课程.课程编号

D)SELECT 课程.课程名称,学生.姓名,MAX(成绩) AS 最高分 FROM 成绩,课程,学生;

WHERE成绩.课程编号=课程.课程编号 AND成绩.学号=学生.学号ORDER BY课程.课程编号【42】Y3 (33)查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“计算机网络”的“成绩”,并按成绩由高到低的顺序排列,下列语句正确的是( )

A)SELECT 学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩FOR学生.学号=成绩.学号 AND;

课程,课程编号=成绩.课程编号 AND 课程.课程名称=“计算机网络” ORDER BY 成绩.成绩 DESC B)SELECT 学生.姓名,学生.系名,成绩.成绩 JOIN 学生,课程,成绩 ON 学生.学号=成绩.学号 ON;

课程.课程编号=成绩.课程编号 AND 课程.课程名称=“计算机网络” ORDER BY 成绩.成绩 DESC C)SELECT 学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩 WHERE 学生.学号=成绩.学号OR;

课程.课程编号=成绩.课程编号OR课程.课程名称=“计算机网络” ORDER BY 成绩.成绩 DESC D)SELECT 学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩 WHERE 学生.学号=成绩.学号 AND;

课程.课程编号=成绩.课程编号 AND 课程.课程名称=“计算机网络” ORDER BY成绩.成绩 DESC

Y4 (31)到(35)题使用下列数据表。

“外汇名”表:外币代码外币名称现钞买入价现钞卖出价基准价

13 欧元958.6400 985.2300 996.5400

28 英镑1220.9700 1330.2200 1287.4565

37 法郎592.7650 618.1305 612.5910

26 加元516.4110 531.4280 519.8690

15 美元811.5410 817.8900 815.6650

“持有数”表:姓名外币代码持有数量

李巡芬37 30000.00

张武奇13 1000.00

陆凭凭15 3000.00

陆凭凭37 4000.00

张武奇15 2200.00

林诗诗26 2000.20

李巡芬26 30000.00

张武奇28 3000.00

陆凭凭26 3000.00

陆凭凭13 4000.00

张武奇26 18000.00

【43】Y4 (31)执行下列SQL语句后,第一条记录的内容是( )。

SELECT 姓名,外币名称,持有数量 FROM 外汇名,持有数 WHERE 外汇名.外币代码=持有数.外币代码;

AND 持有数量>=10000 ORDER BY 持有数量 DESC,姓名

A)张武奇加元 18000 B)张武奇法郎 18000 C)李巡芬加元 30000 D)李巡芬法郎 30000 【44】Y4 (32)查询持有外币种类在4种以上人员的姓名,及持有的种类数量,并按种类数量升序排列,数量相同时,则按姓名降序排列,下列语句正确的是( )。

A) SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数;

GROUP BY 姓名 HAVING COUNT(*)>=4 ORDER BY 外币种类,姓名 DESC

B)SELECT 姓名, COUNT(*) AS 外币种类 FROM 持有数;

GROUP BY 姓名 HAVING COUNT(*)>=4 ORDER BY COUNT(*),姓名 DESC

C)SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数;

GROUP BY 姓名 HAVING COUNT(*)>=4 ORDER BY 外币种类 AND 姓名 DESC

D)SELECT 姓名,COUNT(*) AS 外币种类 FROM 持有数;

GROUP BY 姓名 HAVING COUNT(*)>=4 ORDER BY 外币种类+姓名 DESC

【45】Y4 (33)计算出“陆凭凭”所持有的全部外币相当于人民币的价值数量,下列语句正确的是( )。

常用SQL语句大全

常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 DROP database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 DROP table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname DROP primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:DROP index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:DROP view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、说明:几个高级查询运算词

ORACLE常用SQL语句大全

ORACLE常用SQL语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:/mssql7backup/MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not nul l],..) 根据已有的表创建新表: A:select * into table_new from table_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only<仅适用于Oracle> 5、说明:删除表 drop table tablename

6、说明:增加一个列,删除一个列 A:alter table tabname add column col type B:alter table tabname drop column colname 注:DB2DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、添加主键: Alter table tabname add primary key(col) 删除主键: Alter table tabname drop primary key(col) 8、创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、创建视图:create view viewname as select statement 删除视图:drop view viewname 10、几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select * from table1 where field1 like ’%value1%’ ---like的语法很精妙,查资料! 排序:select * from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1 11、几个高级查询运算词 A:UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B:EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C:INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、使用外连接

SQL常用语句+举例

SQL 常用语句+举例 相关表: 1. distinct: 剔除重复记录 例:select distinct stroe_name from Store_information 结果: 2. And / or: 并且/或 例:在表中选出所有sales 高于$1000或是sales 在$275及$500之间的记录 Select store_name ,sales from Store_information Where sales>1000 Or (sales>275 and sales <500) 3. 例:在表中查找store_name 包含 Los Angeles 或San Diego 的记录 Select * from Store_information where store_name in (‘Los Angeles ’,’San Diego ’) 结果: 4. Between : 可以运用一个范围抓出表中的值

与in 的区别:in 依照一个或数个不连续的值的限制抓出表中的值 例:查找表中介于Jan-06-1999 及Jan-10-1999 中的记录 Select * from Store_information where date between ‘Jan-06-1999’ and ‘Jan-10-1999’ 结果: 5. Like : 让我们依据一个套式来找出我们要的记录 套式通常包含: ’A_Z ’: 所有以A 开头,中间包含一个字符,以Z 结尾的字串 ’ABC%’: 所有以ABC 起头的字串 ’%XYZ ’: 所有以XYZ 结尾的字串 ’%AN%’: 所有包含AN 的字串 例:Select * from Store_information where store_name like ‘%An%’ 结果: 6. Order by: 排序,通常与ASC (从小到大,升序)、DESC (从大到小,降序)结合使用 当排序字段不止一个时,先依据字段1排序,当字段1有几个值相同时,再依据字段2排序 例:表中sales 由大到小列出Store_information 的所有记录 Select Store_name, sales,date from Store_information order by sales desc 结果: 7. 函数:AVG (平均值)、COUNT (计数)、MAX (最大值)、MIN (最小值)、SUM(求和) 语句:select 函数名(字段名) from 表名 例:求出sales 的总和 Select sum(sales) from Store_information 结果 8. COUNT (计数) 例:找出Store_information 表中 有几个store_name 值不是空的记录

数据库基本SQL语句大全

数据库基本SQL语句大全 数据库基本----SQL语句大全 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col) 说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

50个常用sql语句实例(学生表 课程表 成绩表 教师表)

Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 create table Student(S# varchar(20),Sname varchar(10),Sage int,Ssex varchar(2)) 前面加一列序号: if exists(select table_name from information_schema.tables where table_name='Temp_Table') drop table Temp_Table go select 排名=identity(int,1,1),* INTO Temp_Table from Student go select * from Temp_Table go drop database [ ] --删除空的没有名字的数据库 问题: 1、查询“”课程比“”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student

大数据库基本SQL语句大全

数据库基本_SQL语句大全 学会数据库是很实用D~~记录一些常用的sql语句...有入门有提高有见都没见过的...好全...收藏下... 其实一般用的就是查询,插入,删除等语句而已....但学学存储过程是好事...以后数据方面的东西就不用在程序里搞喽..而且程序与数据库只要一个来回通讯就可以搞定所有数据的操作.... 一、基础 1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ‘disk‘, ‘testBack‘, ‘c:\mssql7backup\MyNwind_1.dat‘ --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)

根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2…from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键:Alter table tabname add primary key(col)说明:删除主键:Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围

50个常用的SQL语句练习

基本信息Student(`S#`,Sname,Sage,Ssex) 学生表 Course(`C#`,Cname,`T#`) 课程表 SC(`S#`,`C#`,score) 成绩表 Teacher(`T#`,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.`S#` from (select `S#`,score from SC where `C#`='001') a,(select `S#`,score from SC where `C#`='002') b where a.score>b.score and a.`S#`=b.`S#`; ↑一张表中存在多对多情况的 2、查询平均成绩大于60分的同学的学号和平均成绩; 答案一:select `S#`,avg(score) from sc group by `S#` having avg(score) >60; ↑一对多,对组进行筛选 答案二:SELECT s ,scr FROM (SELECT sc.`S#` s,AVG(sc.`score`) scr FROM sc GROUP BY sc.`S#`) rs WHERE rs.scr>60 ORDER BY rs.scr DESC ↑嵌套查询可能影响效率 3、查询所有同学的学号、姓名、选课数、总成绩; 答案一:select Student.`S#`,Student.Sname,count(`C#`),sum(score) from Student left Outer join SC on Student.`S#`=SC.`S#` group by Student.`S#`,Sname ↑如果学生没有选课,仍然能查出,显示总分null(边界情况) 答案二:SELECT student.`S#`,student.`Sname`,COUNT(sc.`score`) 选课数,SUM(sc.`score`) 总分FROM Student,sc WHERE student.`S#`=sc.`S#` GROUP BY sc.`S#` ↑如果学生没有选课,sc表中没有他的学号,就查不出该学生,有缺陷! 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.`S#`,Student.Sname from Student where `S#` not in (select distinct(SC.`S#`) from SC,Course,Teacher where SC.`C#`=Course.`C#` and Teacher.`T#`=Course.`T#` and Teacher.Tname='叶平'); ↑反面思考Step1:先找学过叶平老师课的学生学号,三表联合查询 Step2:在用not in 选出没学过的 Step3:distinct以防叶平老师教多节课;否则若某同学的几节课都由叶平教,学号就会出现重复 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.`S#`,Student.Sname from Student,SC where Student.`S#`=SC.`S#` and SC.`C#`='001'and exists( Select * from SC as SC_2 where SC_2.`S#`=SC.`S#` and SC_2.`C#`='002' ); ↑注意目标字段`S#`关联 exists subquery 可以用in subquery代替,如下 select Student.`S#`,Student.Sname from Student,Sc where Student.`S#`=SC.`S#` and SC.`C#`='001'and sc.`s#` in ( select sc_2.`s#` from sc as sc_2 where sc_2.`c#`='002' ); ↑不同之处,in subquery此处就不需要关联了

SQL基本语句诠释

SQL基本语句 来自:SQL编程技巧 掌握SQL四条最基本的数据操作语句:Insert,Select,Update和Delete。 练掌握SQL是数据库用户的宝贵财富。在本文中,我们将引导你掌握四条最基本的数据库操作语句—SQL的核心功能—来依次介绍比较操作符、选择谓项以及三值逻辑。当你完成这些学习后,显然你已经开始算是精通SQL了。 在我们开始之前,先使用CREATE TABLE语句来创建一个表(如图1所示)。DDL语句对数据库对象如表、列和视进行定义。它们并不对表中的行进行处理,这是因为DDL语句并不处理数据库中实际的数据。这些工作由另一类SQL语句—数据操作语言(DML)语句进行处理。 SQL中有四种基本的DML操作:INSERT,SELECT,UPDATE和DELETE。由于这是大多数SQL用户经常用到的,我们有必要在此对它们进行一一说明。在图1中我们给出了一个名为EMPLOYEES的表。其中的每一行对应一个特定的雇员记录。请熟悉这张表,我们在后面的例子中将要用到它。 INSERT语句 用户可以用INSERT语句将一行记录插入到指定的一个表中。例如,要将雇员John Smith的记录插入到本例的表中,可以使用如下语句:INSERT INTO EMPLOYEES VALUES ('Smith','John','1980-06-10', 'Los Angles',16,45000); 通过这样的INSERT语句,系统将试着将这些值填入到相应的列中。这些列按照我们创建表时定义的顺序排列。在本例中,第一个值“Smith”将填到第一个列LAST_NAME中;第二个值“John”将填到第二列FIRST_NAME中……以此类推。 我们说过系统会“试着”将值填入,除了执行规则之外它还要进行类型检查。如果类型不符(如将一个字符串填入到类型为数字的列中),系统将拒绝这一次操作并返回一个错误信息。 如果SQL拒绝了你所填入的一列值,语句中其他各列的值也不会填入。这是因为SQL提供对事务的支持。一次事务将数据库从一种一致性转移到另一种一致性。如果事务的某一部分失败,则整个事务都会失败,系统将会被恢复(或称之为回退)到此事务之前的状态。 回到原来的INSERT的例子,请注意所有的整形十进制数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别。为了增加可读性而在数字间插入逗号将会引起错误。记住,在SQL中逗号是元素的分隔符。 同样要注意输入文字值时要使用单引号。双引号用来封装限界标识符。 对于日期类型,我们必须使用SQL标准日期格式(yyyy-mm-dd),但是在系统中可以进行定义,以接受其他的格式。当然,2000年临近,请你最好还是使用四位来表示年份。 既然你已经理解了INSERT语句是怎样工作的了,让我们转到EMPLOYEES表中的其他部分: INSERT INTO EMPLOYEES VALUES ('Bunyan','Paul','1970-07-04', 'Boston',12,70000); INSERT INTO EMPLOYEES VALUES ('John','Adams','1992-01-21', 'Boston',20,100000); INSERT INTO EMPLOYEES VALUES ('Smith','Pocahontas','1976-04-06', 'Los Angles',12,100000); INSERT INTO EMPLOYEES VALUES ('Smith','Bessie','1940-05-02', 'Boston',5,200000); INSERT INTO EMPLOYEES VALUES ('Jones','Davy','1970-10-10', 'Boston',8,45000); INSERT INTO EMPLOYEES VALUES ('Jones','Indiana','1992-02-01', 'Chicago',NULL,NULL); 在最后一项中,我们不知道Jones先生的工薪级别和年薪,所以我们输入NULL(不要引号)。NULL是SQL中的一种特殊情况,我们以后将进行详细的讨论。现在我们只需认为NULL表示一种未知的值。 有时,像我们刚才所讨论的情况,我们可能希望对某一些而不是全部的列进行赋值。除了对要省略的列输入NULL外,还可以采用另外一种

经典sql基本语句大全

下列语句部分是Mssql语句,不可以在access中使用。 SQL分类: DDL DDL——数据定义语言(CREATE,ALTER,DROP,DECLARE) DML——数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DML DCL——数据控制语言(GRANT,REVOKE,COMMIT,DCL ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server ---创建备份数据的device USE master EXEC sp_addumpdevice'disk','testBack', 'c:\mssql7backup\MyNwind_1.dat' ---开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1type1[not null][primary key],col2type2 [not null],..) 根据已有的表创建新表:

A:create table tab_new like tab_old(使用旧表创建新表) col1,col2……from tab_old definition B:create table tab_new as select col1,col2 only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: tabname(col…….)创建索引:create[unique]index idxname on tabname(col 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明: 创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select*from table1where范围

以学生选课系统为例的50个常用sql语句

50个常用sql语句 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程表 SC(S#,C#,score) 成绩表 Teacher(T#,Tname) 教师表 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score from SC where C#='001') a,(select s#,score from SC where C#='002') b where a.score>b.score and a.s#=b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩; select S#,avg(score) from sc group by S# having avg(score) >60; 3、查询所有同学的学号、姓名、选课数、总成绩; select Student.S#,Student.Sname,count(SC.C#),sum(score) from Student left Outer join SC on Student.S#=SC.S# group by Student.S#,Sname 4、查询姓“李”的老师的个数; select count(distinct(Tname)) from Teacher

where Tname like '李%'; 5、查询没学过“叶平”老师课的同学的学号、姓名; select Student.S#,Student.Sname from Student where S# not in (select distinct( SC.S#) from SC,Course,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平'); 6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; select Student.S#,Student.Sname from Student,SC where Student.S#=SC.S# and SC.C#='001'and exists( Select * from SC as SC_2 where SC_2.S#=SC.S# and SC_2.C#='002'); 7、查询学过“叶平”老师所教的所有课的同学的学号、姓名; select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名; Select S#,Sname from (select Student.S#,Student.Sname,score ,(select score from SC SC_2 where SC_2.S#=Student.S# and SC_2.C#='002') score2

mysql数据库常用语句大全

mysql数据库常用语句 SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT) DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK) 首先,简要介绍基础语句: 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的device USE master EXEC sp_addumpdevice ?disk?, ?testBack?, ?c:mssql7backupMyNwind_1.dat? --- 开始备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明: 删除新表:drop table tabname 6、说明: 增加一个列:Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar 类型的长度。 7、说明: 添加主键:Alter table tabname add primary key(col) 说明: 删除主键:Alter table tabname drop primary key(col) 8、说明: 创建索引:create [unique] index idxname on tabname(col….) 删除索引:drop index idxname 注:索引是不可更改的,想更改必须删除重新建。 9、说明: 创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select * from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围

几个简单的基本的sql语句

几个简单的基本的sql语句 (1) 数据记录筛选: sql="select * from 数据表 where 字段名=字段值 order by 字段名[desc]" sql="select * from 数据表where 字段名like '%字段值%' order by 字段名[desc]" sql="select top 10 * from 数据表where 字段名order by 字段名[desc]" sql="select * from 数据表where 字段名in ('值1','值2','值 3')" sql="select * from 数据表where 字段名between 值1 and 值2" (2) 更新数据记录: sql="update 数据表set 字段名=字段值where 条件表达式" sql="update 数据表set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" (3) 删除数据记录: sql="delete from 数据表where 条件表达式" sql="delete from 数据表" (将数据表所有记录删除) (4) 添加数据记录: sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) (5) 数据记录统计函数: AVG(字段名) 得出一个表格栏平均值 COUNT(*¦字段名) 对数据行数的统计或对某一栏有值的数据 行数统计 MAX(字段名) 取得一个表格栏最大的值 MIN(字段名) 取得一个表格栏最小的值 SUM(字段名) 把数据栏的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据表where 条件表达式" set rs=conn.excute(sql) 用rs("别名") 获取统计的值,其它函数运用同上。 查询去除重复值:select distinct * from table1 (5) 数据表的建立和删除: CREATE TABLE 数据表名称(字段 1 类型1(长度),字段 2 类型2(长度) …… )

oracle常用SQL语句(汇总版)

Oracle数据库常用sql语句 ORACLE 常用的SQL语法和数据对象 一.数据控制语句(DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT (字段名1, 字段名2, ……) FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验. 日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒 或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’) TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC. 年-月-日小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS INSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型, 方法借用ORACLE里自带的DBMS_LOB程序包. INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号 CREATE SEQUENCE 序列号的名称(最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE;

其中最大的值按字段的长度来定, 如果定义的自动增长的序列号NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 2.DELETE (删除数据表里记录的语句) DELETE FROM表名WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用TRUNCATE 命令, 它可以释放占用的数据块表空间 TRUNCATE TABLE 表名; 此操作不可回退. 3.UPDATE (修改数据表里记录的语句) UPDATE表名SET 字段名1=值1, 字段名2=值2, …… WHERE 条件; 如果修改的值N没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验; 值N超过定义的长度会出错, 最好在插入前进行长度校验.. 注意事项: A. 以上SQL语句对表都加上了行级锁, 确认完成后, 必须加上事物处理结束的命令COMMIT 才能正式生效, 否则改变不一定写入数据库里. 如果想撤回这些操作, 可以用命令ROLLBACK 复原.

常用的SQL语句语法

常用的SQL语句语法(Oracle) 一.数据控制语句 (DML) 部分 1.INSERT (往数据表里插入记录的语句) INSERT INTO 表名(字段名1, 字段名2, ……) VALUES ( 值1, 值2, ……); INSERT INTO 表名(字段名1, 字段名2, ……) SELECT 字段名1, 字段名2, …… FROM 另外的表名; 字符串类型的字段值必须用单引号括起来, 例如: ’GOOD DAY’ 如果字段值里包含单引号’ 需要进行字符串转换, 我们把它替换成两个单引号''. 字符串类型的字段值超过定义的长度会出错, 最好在插入前进行长度校验. 日期字段的字段值可以用当前数据库的系统时间SYSDATE, 精确到秒 或者用字符串转换成日期型函数TO_DATE(‘2001-08-01’,’YYYY-MM-DD’) TO_DATE()还有很多种日期格式, 可以参看ORACLE DOC. 年-月-日小时:分钟:秒的格式YYYY-MM-DD HH24:MI:SS INSERT时最大可操作的字符串长度小于等于4000个单字节, 如果要插入更长的字符串, 请考虑字段用CLOB类型,方法借用ORACLE里自带的DBMS_LOB程序包. INSERT时如果要用到从1开始自动增长的序列号, 应该先建立一个序列号 CREATE SEQUENCE 序列号的名称 (最好是表名+序列号标记) INCREMENT BY 1 START WITH 1 MAXVALUE 99999 CYCLE NOCACHE; 其中最大的值按字段的长度来定, 如果定义的自动增长的序列号 NUMBER(6) , 最大值为999999 INSERT 语句插入这个字段值为: 序列号的名称.NEXTVAL 2.DELETE (删除数据表里记录的语句) DELETE FROM表名 WHERE 条件; 注意:删除记录并不能释放ORACLE里被占用的数据块表空间. 它只把那些被删除的数据块标成unused. 如果确实要删除一个大表里的全部记录, 可以用 TRUNCATE 命令, 它可以释放占用的数据块表空 间 TRUNCATE TABLE 表名; 此操作不可回退. 3.UPDATE (修改数据表里记录的语句) UPDATE表名 SET 字段名1=值1, 字段名2=值2, …… WHERE 条件; 如果修改的值N(右操作数)没有赋值或定义时, 将把原来的记录内容清为NULL, 最好在修改前进行非空校验; 值N(右操作数)超过定义的长度会出错, 最好在插入前进行长度校验.. 注意事项: A. 以上SQL语句对表都加上了行级锁, 确认完成后, 必须加上事物处理结束的命令 COMMIT 才能正式生效, 否则改变不一定写入数据库里. 如果想撤回这些操作, 可以用命令 ROLLBACK 复原.

相关文档
相关文档 最新文档