当前位置:文档之家› 第五章结构化查询语言SQL习题

第五章结构化查询语言SQL习题

第五章结构化查询语言SQL习题
第五章结构化查询语言SQL习题

第五章结构化查询语言SQL

一.选择题(每小题只有一个正确答案)

1.不属于数据定义功能的SQL语句是()。

A.CREAT TABLE

B.CREAT CURSOR

C.UPDATE

D.ALTER TABLE

2.从数据库中删除表的命令是( )。

A.DROP TABLE

B.ALTER TABLE

C.DELETE TABLE

https://www.doczj.com/doc/ee15851170.html,E

3.建立表结构的SQL命令是( )。

A.CREAT CURSOR

B.CREAT TABLE

C.CREAT INDEX

D.CREAT VIEW

4.DELETE FROM S WHERE 年龄>60语句的功能是( )。

A.从S表中彻底删除年龄大于60岁的记录

B.S表中年龄大于60岁的记录被加上删除标记

C.删除S表

D.删除S表的年龄列

5.UPDATE-SQL语句的功能是( )。

A.属于数据定义功能

B.属于数据查询功能

C.可以修改表中某些列的属性

D.可以修改表中某些列的内容

6.SELECT-SQL语句是( )。

A.选择工作区语句

B.数据查询语句

C.选择标准语句

D.数据修改语句

7.关于INSERT-SQL语句描述正确的是( )。

A.可以向表中插入若干条记录

B.在表中任何位置插入一条记录

C.在表尾插入一条记录

D.在表头插入一条记录

8.使用SQL语句进行分组检索时,为了去掉不满足条件的分组,应当( )。

A.使用WHERE子句

B.在GROUP BY后面使用HAVING子句

C.先使用WHERE子句,再使用HAVING子句

D.先使用HAVING子句,再使用WHERE子句

9.在Visual FoxPro中,使用SQL命令将学生表STUDENT中的学生年龄AGE字段的值增加1

岁,应该使用的命令是( )。

A.REPLACE AGE WITH AGE+1

B.UPDATE STUDENT AGE WITH AGE+1

C.UPDATE SET AGE WITH AGE+1

D.UPDATE STUDENT SET AGE = AGE+1

10.在Visual FoxPro中,以下关于删除记录的描述中,正确的是( )。

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

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

C.SQL的DELETE命令可以物理的删除数据库表中的记录,而传统Visual FoxPro的DELETE

命令只能逻辑删除数据库表中的记录

D.传统Visual FoxPro的DELETE命令在删除数据库表中的记录之前不需要用USE命令打开表

11.求每个学生的平均成绩的SQL语句是()。

A.SELECT 学生姓名,avg(成绩) FROM student GROUP BY 成绩

B.SELECT 学生姓名,avg(成绩) FROM student ORDER BY 成绩

C.SELECT 学生姓名,avg(成绩) FROM student ORDER BY 学生姓名

D.SELECT 学生姓名,avg(成绩) FROM student GROUP BY 学生姓名

12.若要在“学生”和“课程”表中查找学号为123号学生的成绩,下列语句正确的是()。

A.SELECT 学号,姓名,成绩 FROM 学生 JOIN 课程;

WHERE 学号=123

B. SELECT 学号,姓名,成绩 FROM 学生 JOIN 课程;

WHERE 学号=123;

ON 学生.学号=课程.学号

C. SELECT 学号,姓名,成绩 FROM 学生 JOIN 课程;

ON 学生.学号=课程.学号;

WHERE 学号=123

D. SELECT 学号,姓名,成绩 FROM 学生 JOIN 课程;

WHERE 学生.学号=课程.学号

13.执行如下SQL语句

SELECT DISTINCT 成绩 FROM 学生;

WHERE 成绩=(SELECT min(成绩) FROM 学生) INTO DBF student后,表student中的记录个数是()。

A. 1

B.2

C.3

D.4

14.若需统计“选课”表中已经选修了课程的学生人数,下面语句正确的是()。

A.SELECT COUNT(DISTINCT 学生号) FROM 选课

B.SELECT COUNT(学生号) FROM 选课

C.SELECT COUNT(*) FROM 选课

D.SELECT COUNT(DISTINCT *) FROM 选课

15.“学生”表结构为(学号 N(3),姓名 C(5),性别 C(1),年龄 N(3)),学号为主索引,若用

SQL命令INSERT插入一个记录,下面语句正确的是()。

A.INSERT INTO 学生(”123”,”步青云”,”女”,”20”)

B.INSERT INTO 学生(NULL,”步青云”,”女”,”20”)

C.INSERT INTO 学生(123,”步青云”,NULL,20)

D.INSERT INTO 学生(123,步青云,女,20)

16.查询订购单号(字符型,长度为4)尾字符是"1"的错误命令是()。

A.SELECT * FROM 订单 WHERE SUBSTR(订购单号,4)="1"

B.SELECT * FROM 订单 WHERE SUBSTR(订购单号,4,1)="1"

C.SELECT * FROM 订单 WHERE "1"$订购单号

D.SELECT * FROM 订单 WHERE RIGHT(订购单号,1)="1"

17.在SQL语句中,与表达式"工资 BETWEEN 1210 AND 1240"功能相同的表达式是( )。

A.工资>=1210 AND 工资<=1240

B.工资>1210 AND 工资<1240

C.工资<=1210 AND 工资>1240

D.工资>=1210 OR 工资<=1240

18.在SQL语句中,与表达式"仓库号 NOT IN("wh1","wh2")"功能相同的表达式是()。

A.仓库号="wh1" AND 仓库号="wh2"

B.仓库号!="wh1" OR 仓库号# "wh2"

C.仓库号< >"wh1" OR 仓库号!="wh2"

D.仓库号!="wh1" AND 仓库号!="wh2"

19.查询设计器中"联接"选项卡对应的SQL短语是( )。

A.WHERE

B.JOIN

C.SET

D.ORDER BY

20.在SQL SELECT语句中用于实现关系的选择运算的短语是( )。

A.FOR

B.WHILE

C.WHERE

D.CONDITION

21.使用SQL语句将学生表S中年龄(AGE)大于30岁的记录删除,正确的命令是()。

A. DELETE FOR AGE > 30 B. DELETE FROM S WHERE AGE > 30

C. DELETE S FOR AGE > 30 D. DELETE S WHERE AGE > 30

22.使用SQL语句向学生表S(SNO,SN,AGE,SEX)中添加一条新记录,字段学号(SNO)、姓名(SN)、

性别(SEX)、年龄(AGE)的值分别为0401、王芳、女、18,正确命令是()。

A.APPEND INTO S(SNO,SN,SEX,AGE) VALUES(‘0401’,‘王芳’,‘女’,18)

B.APPEND S VALUES(‘0401’,‘王芳’,18,‘女’)

C.INSERT INTO S(SNO,SN,SEX,AGE)VALUES(‘0401’,‘王芳’,‘女’,18)

D.INSERT S VALUES(‘0401’,‘王芳’,18,‘女’)

23.在Visual FoxPro中,以下有关SQL的SELECT语句的叙述中,错误的是()。

A.SELECT子句中可以包含表中的列和表达式

B.SELECT子句中可以使用别名

C. SELECT子句规定了结果集中的列顺序

D.SELECT子句中列的顺序应该与表中列的顺序一致

24.下列关于SQL中HAVING子句的描述,错误的是()。

A.HAVING子句必须与GROUP BY子句同时使用

B.HAVING子句与GROUP BY子句无关

C.使用WHERE子句的同时可以使用HAVING子句

D.使用HAVING子句的作用是限定分组的条件

25.对于视图的使用,下列说法错误的是()。

A.利用视图可以更新数据表记录

B.利用视图可以实现多表查询

C.视图可以产生磁盘文件

D.视图可以作为查询数据源

26.下面关于查询的描述正确的是( )。

A.可以使用CREATE VIEW 打开查询设计器

B.使用查询设计器可以生成所有的SQL查询语句

C.使用查询设计器生成的SQL语句存盘后将存放在名为.QPR的文件中

D.使用DO语句执行查询时,可以不带扩展名

27.以下关于查询的描述正确的是( )。

A.不能根据自由表建立查询

B.只能根据自由表建立查询

C.只能根据数据库表建立查询

D.可以根据数据库表和自由表建立查询

28.在当前盘当前目录下删除表student的命令是()。

A.DROP student

B.DELETE TABLE student

C.DROP TABLE student

D.DELETE student

29.有如下SQL语句:

SELECT max(成绩) INTO ARRAY a FROM student

执行该语句后()。

A. a[1]的内容为max(成绩)

B. a[n]的内容为max(成绩)

C. a[0]的内容为max(成绩)

D. a的所有内容为max(成绩)

30.在SQL的CREATE TABLE 命令中用于定义满足实体完整性的主索引的短语是()。

A.DEFAULT B.UNIQUE

C.CHECK D.PRIMARY KEY

31.SQL的DELETE命令是指()。

A.从表中删除行

B.从表中删除列

C.从基本表中删除行

D.从基本表中删除列

32.对下列命令理解正确的是()。

UPDATE 选课 SET 成绩=成绩+10

A.只对当前记录更新

B.对表中的记录的成绩全部更新

C.删除当前记录

D.删除全部表中的成绩值

33.“学生”表结构为(学号 N(3),姓名 C(3),性别 C(1),年龄 N(2)),学号为主索引,若用SQL

命令检索所有比“张洋”年龄大的同学,下列语句正确的是( )。

A.SELECT * FROM 学生;

WHERE 年龄>(SELECT 年龄 FROM 学生;

WHERE 姓名=”张洋”)

B. SELECT * FROM 学生;

WHERE 姓名=”张洋”

C. SELECT * FROM 学生;

WHERE 年龄>(SELECT 年龄;

WHERE 姓名=”张洋”)

D. SELECT * FROM 学生;

WHERE 年龄>”张洋”

34.查询选修“K1”的学生中成绩最高的学生的学号,下列语句正确的是( )。

A.SELECT 学号 FROM 选课;

WHERE 课程号=”K1” AND 成绩>=;

(SELECT 成绩 FROM 选课;

WHERE 课程号=”K1”)

B. SELECT 学号 FROM 选课;

WHERE 课程号=”K1” AND 成绩 IN;

(SELECT 成绩 FROM 选课;

WHERE 课程号=”K1”)

C. SELECT 学号 FROM 选课;

WHERE 课程号=”K1” AND 成绩>=ALL;

(SELECT 成绩 FROM 选课;

WHERE 课程号=”K1”)

D. SELECT 学号 FROM 选课;

WHERE 课程号=”K1” AND 成绩 IN;

(SELECT 成绩 FROM 选课)

第35-36题使用如下三个数据库表:

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

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

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

在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。35. 用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

36.用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

37.如果学生表student是使用下面的SQL语句创建的()。

CREATE TABLE student (SNO C(4) PRIMARY KEY NOT NULL,;

SN C(8),;

SEX C(2),;

AGE N(2) CHECK(AGE>15 AND AGE<30) )

下面的SQL语句中可以正确执行的是

A.INSERT INTO student(SNO, SEX, AGE) VALUES ("S9", "男",17)

B.INSERT INTO student (SN, SEX, AGE) VALUES ("李安琦", "男" , 20)

C.INSERT INTO student (SEX, AGE) VALUES ("男", 20)

D.INSERT INTO student (SNO, SN) VALUES ("S9", "安琦",16)

38.使用SQL语句从表STUDENT中查询所有姓王的同学的信息,正确的命令是:()。

A.SELECT * FROM student WHERE LEFT(姓名,2)= "王"

B.SELECT * FROM student WHERE RIGHT(姓名,2)= "王"

C.SELECT * FROM student WHERE TRIM(姓名,2)= "王"

D.SELECT * FROM student WHERE STR(姓名,2)= "王"

第39.-43.题使用如下表的数据:

部门表

商品表

39.SQL语句

SELECT 部门号,MAX(单价*数量) FROM 商品表 GROUP BY 部门号

查询结果有几条记录?()。

A.1

B.4

C.3

D.10

40.SQL语句

SELECT 产地, COUNT(*) 提供的商品种类数 ;

FROM 商品表 ;

WHERE 单价 > 200 ;

GROUP BY 产地 HAVING COUNT(*) >= 2 ;

ORDER BY 2 DESC

查询结果的第一条记录的产地和提供的商品种类数是()。

A.北京,1

B.上海,2

C.广东,5

D.广东, 7

41.SQL语句

SELECT 部门表.部门号,部门名称,SUM(单价*数量) ;

FROM 部门表,商品表 ;

WHERE部门表.部门号 = 商品表.部门号 ;

GROUP BY 部门表.部门号

查询结果是()。

A.各部门商品数量合计

B.各部门商品金额合计

C.所有商品金额合计

D.各部门商品金额平均值

42.SQL语句

SELECT 部门表.部门号,部门名称,商品号,商品名称,单价;

FROM 部门表,商品表;

WHERE部门表.部门号 = 商品表.部门号;

ORDER BY 部门表.部门号 DESC,单价

查询结果的第一条记录的商品号是()。

A.0101

B.0202

C.0110

D.0112

43.SQL语句

SELECT 部门名称 FROM 部门表 WHERE 部门号 IN ;

(SELECT 部门号 FROM 商品表 WHERE 单价 BETWEEN 420 AND 1000)

查询结果是()。

A.家用电器部、电话手机部

B.家用电器部、计算机部

C.电话手机部、电视录摄像机部

D.家用电器部、电视录摄像机部

第44.-47.题使用如下三个表:

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

课程.DBF:课程编号 C(4) ,课程名称 C(10) ,开课院系C(8)

学生成绩.DBF:学号 C(8) ,课程编号 C(4) ,成绩 I

44.查询每门课程的最高分,要求得到的信息包括课程名称和分数。正确的命令是()。

A.SELECT 课程名称, SUM(成绩) AS 分数 FROM 课程,学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程名称

B.SELECT 课程名称, MAX(成绩) 分数 FROM 课程, 学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程名称

C.SELECT 课程名称, SUM(成绩) 分数 FROM 课程, 学生成绩 ;

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程.课程编号

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

WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程编号

45.统计只有2名以下(含2名)学生选修的课程情况,统计结果中的信息包括课程名称、开

课院系和选修人数,并按选课人数排序。正确的命令是()。

A.SELECT 课程名称,开课院系,COUNT(课程编号) AS 选修人数;

FROM 学生成绩,课程 WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 学生成绩.课程编号 HAVING COUNT(*)<=2;

ORDER BY COUNT(课程编号)

B. B.SELECT 课程名称,开课院系,COUNT(学号) 选修人数;

FROM 学生成绩,课程 WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 学生成绩.学号 HAVING COUNT(*)<=2;

ORDER BY COUNT(学号)

C. C.SELECT 课程名称,开课院系,COUNT(学号) AS 选修人数;

FROM 学生成绩,课程 WHERE 课程.课程编号=学生成绩.课程编号 ;

GROUP BY 课程名称 HAVING COUNT(学号)<=2;

ORDER BY 选修人数

D. D.SELECT 课程名称,开课院系,COUNT(学号) AS 选修人数;

FROM 学生成绩,课程 HAVING COUNT(课程编号)<=2;

GROUP BY 课程名称 ORDER BY 选修人数

46.查询所有目前年龄是22岁的学生信息:学号,姓名和年龄,正确的命令组是()。

A.CREATE VIEW AGE_LIST AS ;

SELECT 学号,姓名,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 学生

SELECT 学号,姓名,年龄 FROM AGE_LIST WHERE 年龄=22

B.CREATE VIEW AGE_LIST AS;

SELECT 学号,姓名,YEAR(出生日期) FROM 学生

SELECT 学号,姓名,年龄 FROM AGE_LIST WHERE YEAR(出生日期)=22

C.CREATE VIEW AGE_LIST AS ;

SELECT 学号,姓名,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 学生

SELECT 学号,姓名,年龄 FROM 学生 WHERE YEAR(出生日期)=22

D.CREATE VIEW AGE_LIST AS STUDENT;

ELECT 学号,姓名,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 学生

SELECT 学号,姓名,年龄 FROM STUDENT WHERE 年龄=22

47.向学生表插入一条记录的正确命令是()。

A.APPEND INTO 学生 VALUES("10359999",'张三','男','会计',{^1983-10-28})

B.INSERT INTO 学生 VALUES("10359999",'张三','男',{^1983-10-28},'会计')

C.APPEND INTO 学生 VALUES("10359999",'张三','男',{^1983-10-28},'会计')

D.INSERT INTO 学生 VALUES("10359999",'张三','男',{^1983-10-28})

第48.—54.题使用如下三个表:

职员.DBF:职员号 C(3),姓名 C(6),性别 C(2),组号 N(1),职务 C(10)

客户.DBF:客户号 C(4),客户名 C(36),地址 C(36),所在城市 C(36)

订单.DBF:订单号 C(4),客户号 C(4),职员号 C(3),签订日期 D,金额 N(6.2)48.查询金额最大的那10%订单的信息。正确的SQL语句是()。

A.SELECT * TOP 10 PERCENT FROM 订单

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

C.SELECT * TOP 10 PERCENT FROM 订单 ORDER BY 金额

D.SELECT TOP 10 PERCENT * FROM 订单 ORDER BY 金额 DESC

49.查询订单数在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 C.SELECT 职员号 FROM 订单 GROUP BY 职员号 HAVING COUNT(*)>3 WHERE AVG(金额)>200

D.SELECT 职员号 FROM 订单 GROUP BY 职员号 WHERE COUNT(*)>3 AND AVG_金额>200 50.显示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}

51.显示没有签订任何订单的职员信息(职员号和姓名),正确的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 订单)

52.有以下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 姓名="李二") 53.从订单表中删除客户号为“1001”的订单记录,正确的SQL语句是()。

A.DROP FROM 订单 WHERE 客户号="1001"

B.DROP FROM 订单 FOR 客户号="1001"

C.DELETE FROM 订单 WHERE 客户号="1001"

D.DELETE FROM 订单 FOR 客户号="1001"

54.将订单号为“0060”的订单金额改为169元,正确的SQL语句是( )。

A.UPDATE 订单 SET 金额=169 WHERE 订单号="0060"

B.UPDATE 订单 SET 金额 WITH 169 WHERE 订单号="0060"

C.UPDATE FROM 订单 SET 金额=169 WHERE 订单号="0060"

D.UPDATE FROM 订单 SET 金额 WITH 169 WHERE 订单号="0060"

第55-60题使用如下三个表:

部门.DBF:部门号C(8),部门名C(12),负责人C(6),电话C(16)

职工.DBF:部门号C(8),职工号C(10),姓名C(8),性别C(2),出生日期D

工资.DBF:职工号C(10),基本工资N(8.2),津贴N(8.2),奖金N(8.2),扣除N(8.2) 55.查询职工实发工资的正确命令是( )。

A.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资 FROM 工资

B.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资 FROM 工资;

WHERE 职工.职工号=工资.职工号

C.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资;

FROM 工资,职工 WHERE 职工.职工号=工资.职工号

D.SELECT 姓名,(基本工资+津贴+奖金-扣除)AS 实发工资;

FROM 工资 JOIN 职工 WHERE 职工.职工号=工资. 职工号

56. 查询1962年10月27日出生的职工信息的正确命令是()。

A.SELECT * FROM 职工 WHERE 出生日期={^1962-10-27}

B.SELECT * FROM 职工 WHERE 出生日期=1962-10-27

C.SELECT * FROM 职工 WHERE 出生日期=“1962-10-27”

D.SELECT * FROM 职工 WHERE 出生日期=(“1962-10-27”)

57.查询每个部门年龄最长者的信息,要求得到的信息包括部门名和最长者的出生日期。

正确的命令是( )

A.SELECT 部门名,MIN(出生日期)FROM 部门 JOIN 职工;

ON 部门.部门号=职工.部门号 GROUP BY 部门名

B.SELECT 部门名,MAX(出生日期)FROM 部门 JOIN 职工;

ON 部门.部门号=职工.部门号 GROUP BY 部门名

C.SELECT 部门名,MIN(出生日期)FROM 部门 JOIN 职工;

WHERE 部门.部门号=职工.部门号 GROUP BY 部门名

D.SELECT 部门名,MAX(出生日期)FROM 部门 JOIN 职工;

WHERE 部门.部门号=职工.部门号 GROUP BY 部门名

58.查询有10名以上(含10名)职工的部门信息(部门名和职工人数),并按职工人数降序排列。

正确的命令是( )。

A.SELECT 部门名,COUNT(职工号)AS 职工人数;

FROM 部门,职工 WHERE 部门.部门号=职工.部门号;

GROUP BY 部门名 HAVING COUNT(*)>=10;

ORDER BY COUNT(职工号)ASC

B.SELECT 部门名,COUNT(职工号)AS 职工人数;

FROM 部门,职工 WHERE 部门.部门号=职工.部门号;

GROUP BY 部门名 HAVING COUNT(*)>=10;

ORDER BY COUNT(职工号)DESC

C.SELECT 部门名,COUNT(职工号)AS 职工人数;

FROM 部门,职工WHERE 部门.部门号=职工.部门号;

GROUP BY 部门名 HAVING COUNT(*)>=10;

ORDER BY 职工人数 ASC

D.SELECT 部门名,COUNT(职工号)AS 职工人数;

FROM 部门,职工WHERE 部门.部门号=职工.部门号;

GROUP BY 部门名 HAVING COUNT(*)>=10;

ORDER BY 职工人数 DESC

59.查询所有目前年龄在35岁以上(不含35岁)的职工信息(姓名、性别和年龄),正确的命令是()。

A.SELECT 姓名,性别,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 职工;

WHERE 年龄>35

B.SELECT 姓名,性别,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 职工;

WHERE YEAR(出生日期)>35

C.SELECT 姓名,性别,YEAR(DATE())-YEAR(出生日期) 年龄 FROM 职工;

WHERE YEAR(DATE())-YEAR(出生日期)>35

D.SELECT 姓名,性别,年龄=YEAR(DATE())-YEAR(出生日期)FROM 职工;

WHERE YEAR(DATE())-YEAR(出生日期)>35

60.为“工资”表增加一个“实发工资”字段的正确命令是()。

A.MODIFY TABLE 工资 ADD COLUMN 实发工资 N(9,2)

B.MODIFY TABLE 工资 ADD FIELD 实发工资 N(9,2)

C.ALTER TABLE 工资 ADD COLUMN 实发工资 N(9,2)

D.ALTER TABLE 工资 ADD FIELD 实发工资 N(9,2)

二.填空题

1.用SQL语句建立表结构时,可以定义完整性规则。用________子句定义表的主索引和索引

标识,用________句定义表的外码和参照表。

2.在VFP支持的SQL语句中,________子句可以向表中输入记录,________命令可以检查和

查询表中的内容。

3.在VFP支持的SQL语句中,________命令可以修改表中数据,________命令可以修改表的

结构。

4.在ALTER-SQL语句中,________子句用于修改列的性质,________子句用于增加列。

5.在VFP支持的SQL语句中,________命令可以从表中删除行,________命令可以从数据库

中删除表。

6.在SELECT-SQL语句中,用________子句消除重复出现的记录行。

7.在SELECT-SQL语句中,表示条件表达式用WHJERE子句,分组用________子句,排序用

________子句。

8.在ORDER BY 子句的选择项中,DESC代表________输出;省略DESC时,代表________输

出。

9.在SELECT-SQL语句中,定义一个区间范围的特殊运算符是________,检查一个属性值是否

属于一组值中的特殊运算符是________。

10.在SELECT-SQL语句中,字符串匹配运算符用________,匹配符________表示零个或多个

字符,________表示任何一个字符。

11.在SQL的CREATE TABLE语句中,为属性说明取值范围(约束)的是________短语。

12.SQL插入记录的命令是INSERT,删除记录的命令是________ ,修改记录的命令是_

______ 。

13.在SQL的嵌套查询中,量词ANY和________ 是同义词。在SQL查询时,使用 _________

子句指出的是查询条件。

14.从职工数据库表中计算工资合计的SQL语句是SELECT________ FROM 职工

15.SQL SELECT语句中将查询结果存放在一个表中应该使用________子句(关键字必须拼写

完整)。

16.在Visual FoxPro中,参照完整性规则包括更新规则、删除规则和 ________ 规则。

17.在Visual FoxPro中,使用SQL的SELECT语句将查询结果存储在一个临时表中,应该使用 ________ 子句。

18.在Visual FoxPro中,使用SQL的ALTER TABLE语句修改数据库表时,使用________ 子句说明主索引。

19.在Visual FoxPro中,使用SQL的ALTER TABLE语句修改数据库表时,使用________子句说明有效性规则(域完整性规则或字段取值范围)。

20.在SQL的SELECT语句进行分组计算查询时,可以使用________子句来去掉不满足条件的分组。

21.设有s(学号, 姓名, 性别)和sc(学号, 课程号, 成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。

SELECT 学号, 姓名, 性别 FROM s

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

22.将学生表STUDENT中的学生年龄(字段名是AGE)增加1岁,应该使用的SQL命令是

UPDATE STUDENT________。

23.在Visual FoxPro中,使用SQL语言的ALTER TABLE命令给学生表STUDENT增加一个Email 字段,长度为30,命令是(关键字必须拼写完整)

ALTER TABLE STUDENT________ Email C(30)

24.设有学生选课表SC(学号,课程号,成绩),用SQL语言检索每门课程的课程号及平均分

的语句是(关键字必须拼写完整)

SELECT 课程号,AVG(成绩) FROM SC ________。

25.-27.题使用如下三个数据库表:

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

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

“金牌榜”表中一个国家一条记录:“获奖牌情况”表中每个项目中的各个名次都有一条记录,名次只取前3名,例如:

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

ALTER TABLE金牌榜________奖牌总数 I ________ 奖牌总数>=0

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

SELECT COUNT(*) FROM 国家 INNER JOIN 获奖牌情况;

________ 国家.国家代码 = 获奖牌情况.国家代码;

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

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

________金牌榜 ________ 奖牌总数 = 金牌总数+银牌数+铜牌数

第28.~31.题使用如下三个表

零件.DBF:零件号C(2),零件名称C(10),单价N(10),规格C(8)

使用零件.DBF:项目号C(2),零件号C(2),数量I

项目.DBF:项目号C(2),项目名称C(20),项目负责人C(10),电话C(20)

28.为“数量”字段增加有效性规则:数量>0,应该使用的SQL语句是

________TABLE使用零件________数量SET________数量>0

29.查询与项目“s1”(项目号)所使用的任意一个零件相同的项目号、项目名称、零件号和零件名称,使用的SQL语句是

SELECT 项目.项目号,项目名称,使用零件.零件号,零件名称;

FROM 项目,使用零件,零件WHERE 项目.项目号=使用零件.项目号________;

使用零件.零件号=零件.零件号 AND 使用零件.零件号________;

(SELECT 零件号 FROM 使用零件 WHERE 使用零件.项目号=‘s1’)

30.建立一个由零件名称、数量、项目号、项目名称字段构成的视图,视图中只包含项目号为“s2”的数据,应该使用的SQL语句是

CREATE VIEW item_view ________;

SELECT 零件.零件名称,使用零件.数量,使用零件.项目号,项目.项目名称;

FROM 零件 INNER JOIN 使用零件;

INNER JOIN ________;

ON 使用零件.项目号=项目.项目号;

ON 零件.零件号=使用零件.零件号;

WHERE 项目.项目号=‘s2’

31.从上一题建立的视图中查询使用数量最多的2个零件的信息,应该使用的SQL语句是SELECT * ________ 2 FROM item_view ________ 数量DESC.

32.设有如下表:

学生(学号 N(3),姓名 C(3),性别 C(1),年龄 N(2))

课程(课程号 C(3),课程名称 C(3),教师 C(6))

选课(学号 N(3),课程号 C(3),成绩 N(3))

请对下面的SQL语句填空:

对于“选课”表,若要将“成绩”属性改名为“选课成绩”,可用语句:________

33.提干同上,查询所有同学所选课的教师的情况,其语句为:

SELECT 教师 FROM 课程;

WHERE 课程号 IN ________

34.查找既选修了课程号为“K1”有选修了课程号为“K2”的学生的学号,其语句为:

SELECT A.学号FROM 选课 A,选课 B;

WHERE A.学号=B.学号 AND;

________;

________

35.若需统计“选课”表中已经选修了课程的学生人数,其语句为:

SELECT ________FROM 选课

查询每门课程的学生人数,其语句为:

SELECT ________FROM 选课;

GROUP BY ________

36.对于“学生”表,若要将“姓名”的长度改为4,则语句:

ALTER TABLE 学生________

将选修课程号为“K1”的同学均加上10分,则语法:

UPDATE 选课________WHERE 课程号=”K1”

若要定义“年龄”有效性规则(大于或等于19岁)和出错信息(年龄应满19岁),

则有语句:

ALTER TABLE 学生 ALLTE 年龄;

________;

________

37.假设图书管理数据库中有3个表:结构如下:

图书(总编号C(6),分类号C(8),书名C(16),作者C(6),出版单位C(20),单价N(6,2))

读者(借书证号 C(4),单位 C(8),姓名 C(6),性别 C(2),职称 C(6),地址 C(20))

借阅(借书证号 C(4),总编号 C(6),借书日期 D(8))

在上述图书管理数据库中,图书的主索引是总编号,读者的主索引是借书证号,借阅的主索引应该是________。

有如下SQL语句:

SELECT 读者.姓名,读者.职称,图书.书名,借阅.借阅日期;

FROM 图书管理!读者,图书管理!借阅,图书管理!图书;

WHERE 借阅.借书证号=读者.借书证号;

AND 图书.总编号=借阅.总编号

其中WHERE子句中的”借阅.借书证号=读者.借书证号”对应的关系操作是________。38.题干同上,如果要在藏书中查询“高等教育出版社”和“机械工业出版社”的图书,请对下面的SQL语句填空。

SELECT 书名,作者,出版单位;

FROM 图书管理!图书;

WHERE 出版单位 IN ________

39.如果要查询所藏图书中,各个出版社的图书最高单价、平均单价和册数,请对下面的SQL

语句填空。

SELECT 出版单位,MAX(单价),________,________;

FROM 图书管理!图书;

________出版单位

40.如果要查询借阅了两本和两本以上图书的读者姓名和单位,请对下面的SQL语句填空。

SELECT 姓名,单位;

FROM 图书管理!读者;

WHERE 借书证号IN(SELECT ________;

FROM 图书管理!借阅;

GROUP BY 借书证号;

________ COUNT(*)>=2)

三.上机操作题

(一)用SQL语句在学生数据库中建立学生表、课程表、选课表。实现下列要求:

1.学生表中的学号字段为主码;课程表中的课号字段为主码;

选课表中(学号、课号)为主码,学号参照学生表为外码,课号参照课程表为外码,成绩字段允许为空值。

2.在学生表中插入一个学生记录:(”990829”,”程丽”,”女”,18,”软件”)。3.使选修4号课的同学的成绩为空值。

4.为课程表加一”教师”列。

5.修改课程表,使刘老师教一号课。

6.列出刘老师所授课程的课号和课名。

7.列出年龄不小于20的男生的学号和姓名。

8.统计学生所选课程的门数。

9.列出选修1号课的学生的平均年龄。

10.列出选修“程序设计”课的学生的平均成绩、最高分和最低分。

11.列出所有姓“李”同学的姓名、年龄和性别。

12.列出选课表中成绩为空值的学生的姓名、课号。

13.列出年龄大于女生平均年龄的男生的姓名和年龄。

14.删除选课表中无成绩的记录。

15.把低于1号课平均成绩的所有同学的所有课程的成绩提高5分。

16.按学号升序,成绩降序列出每个同学的选课情况(包括姓名、课名、成绩)。

17.按课号和成绩降序列出每门课的选课情况包括课名、姓名、成绩。

18.按成绩降序列出每个同学的姓名、总成绩。

19.求出学习全部课程的所有同学的名单。

20.列出平均成绩大于80分同学的学号和平均成绩,按平均成绩降序排列。

(二)用查询设计器实现第(一)题16.-20.的操作,生成查询文件Q16.QPR—Q20.QPR,并将查询结果保存到相应的表中B16.DBF-B20.DBF,注意观察生成的SQL语句。

(三)在学生数据库中,对第(一)题的9.-11.建立相应的视图,视图名为V9-V11。

SQL查询语句大全集锦(超经典)

SQL查询语句大全集锦 MYSQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的 表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 复制内容到剪贴板 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 复制内容到剪贴板 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 复制内容到剪贴板 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题:

复制内容到剪贴板 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认 为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 复制内容到剪贴板 代码:SELECT TOP 2 * FROM `testtable` 复制内容到剪贴板 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图, 它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: 复制内容到剪贴板 代码:SELECT `username`,citytable.cityid FROM `usertable`,`citytable` WHERE usertable.cityid=citytable.cityid在FROM子句中可用以下两种格式为表或视图指定别名: 复制内容到剪贴板 代码:表名 as 别名 表名别名例如上面语句可用表的别名格式表示为: 复制内容到剪贴板

第三章 SQL语言练习题和答案

第三章SQL语言 一、选择题 1. SQL语言是(B )的语言,容易学习。 A.过程化 B. 非过程化 C.格式化 D. 导航式 2. SQL语言的数据操纵语句包括SELECT、INSERT、UPDATE、DELETE等。其中最重要的,也是使用最频繁的语句是(A)。 A. SELECT B. INSERT C. UPDATE D. DELETE 3. 在视图上不能完成的操作是()。 A. 更新视图 B. 查询 C. 在视图上定义新的表 D. 在视图上定义新的视图 4. SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,CREATE、DROP、ALTER语句是实现哪种功能()。 A. 数据查询 B. 数据操纵 C. 数据定义 D. 数据控制 5. SQL语言中,删除一个视图的命令是()。 A.DELETE B.DROP C.CLEAR D.REMOVE 6. 在SQL语言中的视图VIEW是数据库的()。 A. 外模式 B. 模式 C. 内模式 D. 存储模式 7. 下列的SQL语句中,()不是数据定义语句。 A. CREATE TABLE B. DROP VIEW C. CREATE VIEW D. GRANT 8. 若要撤销数据库中已经存在的表S,可用()。 A. DELETE TABLE S B. DELETE S C. DROP TABLE S D. DROP S 9. 若要在基本表S中增加一列CN(课程名),可用()。 A.ADD TABLE S(CN CHAR(8)) B.ADD TABLE S ALTER(CN CHAR(8)) C.ALTER TABLE S ADD(CN CHAR(8)) D.ALTER TABLE S (ADD CN CHAR(8)) 10. 学生关系模式S(S#,Sname,Sex,Age),S的属性分别表示学生的学号、姓名、性别、年龄。要在表S中删除一个属性“年龄”,可选用的SQL语句是()。 A. DELETE Age from S B. ALTER TABLE S DROP Age C. UPDATE S Age D. ALTER TABLE S ‘Age’ 11. 有关系S(S#,SNAME,SAGE),C(C#,CNAME),SC(S#,C#,GRADE)。其中S#是学生号,SNAME是学生姓名,SAGE是学生年龄,C#是课程号,CNAME是课程名称。要查询选修“ACCESS”课的年龄不小于20的全体学生姓名的SQL语句是SELECT SNAME FROM S,C,SC WHERE子句。这里的WHERE子句的内容是()。

数据库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 tab name(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的语法很精妙,查资料!

数据库原理第三章练习

第三章SQL语言 一、选择题: 1、SQL语言是的语言,易学习。 A.过程化B.非过程化 C.格式化D.导航式 2、SQL语言是语言。 A.层次数据库B.网络数据库 C.关系数据库D.非数据库 3、SQL语言具有的功能。 2、关系规范化,数据操纵,数据控制 B.数据定义,数据操纵,数据控制 C.数据定义,关系规范化,数据控制 D.数据定义,关系规范化,数据操纵 4、SQL语言具有两种使用方式,分别称为交互式SQL和。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 5、SQL语言中,实现数据检索的语句是。 A.SELECT B.INSERT C.UPDATE D.DELETE 6、下列SQL语句中,修改表结构的是。 A.ALTER B.CREATE C.UPDATE D.DELETE 7、SQL中,与“NOT IN”等价的操作符是。 A.=SOME B.<>SOME C.=ALL D.<>ALL 8、假设有三个基本表:学生表S、课程表C、学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SQL语句是。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=”王华”) B.SELECT SN,AGE,SEX FROM S WHERE SN=”王华” C.SELECT SN,AGE,SEX

FROM S WHERE AGE>(SELECT AGE WHERE SN=”王华”) D.SELECT SN,AGE,SEX FROM S WHERE AGE>王华.AGE 9、检索选修课程”C2”的学生中成绩最高的学生的学号。正确的SELECT语句是。 A.SELECT S# FROM SC WHERE C#=”C2” AND GRADE>= (SELECT GRADE FROM SC WHERE C#= “C2”) B.SELECT S# FROM SC WHERE C#=”C2” AND GRADE IN (SELECT GRADE FROM SC WHERE C#= “C2”) C.SELECT S# FROM SC WHERE C#=”C2” AND GRADE NOT IN (SELECT GRADE FROM SC WHERE C#= “C2”) D.SELECT S# FROM SC WHERE C#=”C2” AND GRADE>=ALL (SELECT GRADE FROM SC WHERE C#= “C2”) 10、检索学生姓名及其所选修课程的课程号和成绩。正确的SELECT语句是:。 A.SELECT S.SN,SC.C#,SC.GRADE FROM S WHERE S.S#=SC.S# B.SELECT S.SN,SC.C#,SC.GRADE FROM SC WHERE S.S#=SC.S# C.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC WHERE S.S#=SC.S# D.SELECT S.SN,SC.C#,SC.GRADE FROM S,SC 11、要查找选修“COMPUTER“课程的女学生姓名,将涉及到关系。A.S B.SC,C C.S,SC D.S,C,SC

SQL搜索语句

SQL查询语句大全集锦 一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和WHERE子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。 例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。 代码:SELECT `nickname`,`email`FROM `testtable`WHERE `name`='张三' (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列 例如,下面语句显示testtable表中所有列的数据: 代码:SELECT * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如: 代码:SELECT nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名 列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列 标题: 代码:SELECT 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 SELECT语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINCT选项时,对于所有重复的数据行在SELECT返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n 是 表示一百分数,指定返回的行数等于总行数的百分之几。 例如: 代码:SELECT TOP 2 * FROM `testtable` 代码:SELECT TOP 20 PERCENT * FROM `testtable` (二) FROM子句 FROM子句指定SELECT语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列 所属的表或视图。例如在usertable和citytable表中同时存在cityid列,在查询两个表中的cityid时应

数据库SQL查询语句大全修订稿

数据库S Q L查询语句 大全 公司标准化编码 [QQX96QT-XQQB89Q8-NQQJ6Q8-MQM9N]

经典SQL查询语句大全 一、基础 1、说明:创建数据库 CREATE DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\' --- 开始备份 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 definitio n 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、说明:几个高级查询运算词 A:UNION 运算符

SQL数据库查询语句范例

推荐一、简单查询 简单的Transact-SQL查询只包括选择列表、FROM子句和Where子句。它们分别说明所查询列、查询的表或视图、以及搜索条件等。例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。Select nickname,email FROM testtable Where n ame=’张三’ (一) 选择列表 选择列表(select_list)指出所查询列,它可以是一组列名列表、星号、表达式、变量(包括局部变量和全局变量)等构成。 1、选择所有列例如,下面语句显示testtable表中所有列的数据:Select * FROM testtable 2、选择部分列并指定它们的显示次序 查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同。 例如:Select nickname,email FROM testtable 3、更改列标题 在选择列表中,可重新指定列标题。定义格式为: 列标题=列名列名列标题 如果指定的列标题不是标准的标识符格式时,应使用引号定界符,例如,下列语句使用汉字显示列标题: Select 昵称=nickname,电子邮件=email FROM testtable 4、删除重复行 Select语句中使用ALL或DISTINCT选项来显示表中符合条件的所有行或删除其中重复的数据行,默认为ALL。使用DISTINC T选项时,对于所有重复的数据行在Select返回的结果集合中只保留一行。 5、限制返回的行数 使用TOP n [PERCENT]选项限制返回的数据行数,TOP n说明返回n行,而TOP n PERCENT时,说明n是表示一百分数,指定返回的行数等于总行数的百分之几。例如: Select TOP 2 *FROM testtable Select TOP 20 PERCENT * FROM testtable (二) FROM子句 FROM子句指定Select语句查询及与查询相关的表或视图。在FROM子句中最多可指定256个表或视图,它们之间用逗号分隔。 在FROM子句同时指定多个表或视图时,如果选择列表中存在同名列,这时应使用对象名限定这些列所属的表或视图。例如在usertable和cityta ble表中同时存在cityid列,在查询两个表中的cityid时应使用下面语句格式加以限定: Select username,citytable.cityid FROM usertable,citytable Where usertable.cityid=citytable.cityid 在FROM子句中可用以下两种格式为表或视图指定别名: 表名 as 别名表名别名

第3章SQL语言习题参考-答案~(新~)

第3章 SQL语言习题参考答案 1.试述SQL语言的特点。(85页) 答:综合统一、高度非过程化、面向集合的操作方式、以同一种语法结构提供两种使用方式、语言简捷,易学易用。 2.试述SQL的定义功能。(87页) 答:SQL的数据定义功能包括定义表、定义视图和定义索引 3.用SQL语句建立第二章习题5中的四个表。 S(SNO,SNAME,STATUS,CITY); P(PNO,PNAME,COLOR,WEIGHT); J(JNO,JNAME,CITY); SPJ(SNO,PNO,JNO,QTY); 供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所在城市(CITY)组成: CREATE TABLE S(Sno C(2) UNIQUE,Sname C(6) ,Status N(2),City C(4)) 零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成: CREATE TABLE P(Pno C(2) UNIQUE,Pname C(6),COLOR C(2),WEIGHT I(2)) 工程项目表J由工程项目代码(JNO)、工程项目名(JNAME)、所在城市(CITY)组成: CREATE TABLE J(Jno C(2) UNlQUE,JNAME C(8), CITY C(4))

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成: CREATE TABLE SPJ(Sno C(2),Pno C(2),JNO C(2), QTY N(2)) 4.针对上题中建立的四个表试用SQL语言完成第二章习题5中的查询: (1)求供应工程J1零件的供应商号码SNO: SELECT DIST SNO FROM SPJ WHERE JNO=’J1’ (2)求供应工程J1零件P1的供应商号码SNO: SELECT DIST SNO FROM SPJ WHERE JNO='J1' AND PNO='P1' (3)求供应工程J1零件为红色的供应商号码SNO: SELECT SNO FROM SPJ,P WHERE JNO='J1' AND SPJ.PNO=P.PNO AND COLOR='红' (4)求没有使用天津供应商生产的红色零件的工程号JNO: SELECT DIST JNO FROM SPJ WHERE JNO NOT IN (SELE JNO FROM SPJ,P,S WHERE S.CITY='天津' AND COLOR='红' AND S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO)。 (5)求至少用了供应商S1所供应的全部零件的工程号JNO。 由于VFP不允许子查询嵌套太深,将查询分为两步 A、查询S1供应商供应的零件号 SELECT DIST PNO FROM SPJ WHERE SNO='S1'结果是(P1,P2)

sql查询语句大全

SQL查询语句大全 《SQL语句的基本语法》 一.Select语句的完整语法为: Select[ALL|DISTINCT|DISTINCTROW|TOP] {*|talbe.*|[table.]field1[AS alias1][,[table.]field2[AS alias2][,…]]} FROM tableexpression[,…][IN externaldatabase] [Where…] [GROUP BY…] [HAVING…] [ORDER BY…] [WITH OWNERACCESS OPTION] 说明: 用中括号([])括起来的部分表示是可选的,用大括号({})括起来的部分是表示必须从中选择其中的一个。 1 FROM子句 FROM子句指定了Select语句中字段的来源。FROM子句后面是包含一个或多个的表达式(由逗号分开),其中的表达式可为单一表名称、已保存的查询或 由 INNER JOIN、LEFT JOIN 或 RIGHT JOIN 得到的复合结果。如果表或查询存储在外部数据库,在IN 子句之后指明其完整路径。 例:下列SQL语句返回所有有定单的客户: Select orderID,Customer.customerID FROM orders Customers Where orders.CustomerID=Customers.CustomeersID 2 ALL、DISTINCT、DISTINCTROW、TOP谓词 (1) ALL 返回满足SQL语句条件的所有记录。如果没有指明这个谓词,默认为ALL。 例:Select ALL FirstName,LastName FROM Employees (2) DISTINCT 如果有多个记录的选择字段的数据相同,只返回一个。 (3) DISTINCTROW 如果有重复的记录,只返回一个 (4) TOP显示查询头尾若干记录。也可返回记录的百分比,这是要用 TOP N PERCENT子句(其中N 表示百分比) 例:返回5%定货额最大的定单 Select TOP 5 PERCENT* FROM [ order Details] orDER BY UnitPrice*Quantity*(1-Discount) DESC 3 用 AS 子句为字段取别名 如果想为返回的列取一个新的标题,或者,经过对字段的计算或总结之后,产生了一个新的值,希望把它放到一个新的列里显示,则用AS保留。 例:返回FirstName字段取别名为NickName Select FirstName AS NickName ,LastName ,City

第三章 SQL语言习题

第3章 SQL语言习题 一、单项选择题 1.SQL语言是()的语言,易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 2.SQL语言是()语言。 A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 3.SQL语言具有()的功能。 A.关系规范化、数据操纵、数据控制B数据定义、数据操纵、数据控制 C.数据定义、关系规范化、数据控制 D.数据定义、关系规范化、数据操 4.SQL语言的数据操纵语句包括SELECT,INSERT,UPDATE和DELETE等。其中最重要的,也是使用最频繁的语句是()。 A.SELECT B.INSERT C.UPDATE D.DELETE 5.SQL语言具有两种使用方式,分别称为交互式SQL和()。 A.提示式SQL B.用户式SQL C.嵌入式SQL D.解释式SQL 6.SQL语言中,实现数据检索的语句是()。 A.SELECT B.INSERT C.UPDATE D.DELETE 7.下列SQL语句中,修改表结构的是()。 A.ALTER B.CREAT C.UPDATE D .DELETE 8.在SQL中,用户可以直接操作的是()。 A 基本表 B 视图 C 存储文件 D 基本表和视图 9.在SQL的查询语句中,对应关系代数中“投影”运算的语句是()。 A WHERE B FROM C SELECT D HAVING 10.在SELECT语句中,需对分组情况满足的条件进行判断时,应使用()。 A WHERE B GROUP BY C ORDER BY D HAVING 11.SQL中,与“NOT IN”等价的操作符是()。 A =ANY B <>ANY C =ALL D <>ALL 12.视图建立后,在数据字典中存放的是()。 A 查询语句 B 组成视图的表的内容 C 视图的定义 D 产生视图的表的定义 第13到第16题基于这样的三个表即学生表S、课程表C和学生选课表SC,它们的结构如下:S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 其中:S#为学号,SN为姓名,SEX性别,AGE为年龄,DETP为系别,C#为课程号,CN为课程名,GRADE为成绩。 13.检索所有比“王华”年龄大的学生姓名、年龄和性别。正确的SELECT语句是()。 A.SELECT SN, AGE, SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=’王华’) B.SELECT SN, AGE, SEX FROM S WHERE SN=’王华’ C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=’王华’) D.SELECT SN, AGE, SEX FROM S WHERE AGE>王华.AGE 14.检索选修课程“C2”的学生中成绩最高的学生的学号。正确的SELECT语句是()。 A.SELECT S# FROM SC WHEREC#=’C2’ AND GRADE>= (SELECT GRADE FROM SC WHERE C#=’ C2’) B.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE IN(SELECT GRADE FROM SC WHEREC#=’ C2’) C.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE NOT IN(SELECT GRADE FROM SC WHERE C#=’C2’) D.SELECT S# FROM SC WHERE C#=’C2’ AND GRADE>=ALL (SELECT GRADE FROM SC WHERE

50个经典SQL查询语句

--一个题目涉及到的50个Sql语句 --(下面表的结构以给出,自己在数据库中建立表.并且添加相应的数据,数据要全面些. 其中Student表中,SId为学生的ID) ------------------------------------表结构-------------------------------------- --学生表tblStudent(编号StuId、姓名StuName、年龄StuAge、性别StuSex) --课程表tblCourse(课程编号CourseId、课程名称CourseName、教师编号TeaId) --成绩表tblScore(学生编号StuId、课程编号CourseId、成绩Score) --教师表tblTeacher(教师编号TeaId、姓名TeaName) --------------------------------------------------------------------------------- --1、查询“001”课程比“002”课程成绩高的所有学生的学号; Select StuId From tblStudent s1 Where (Select Score From tblScore t1 Where t1.StuId=s1.stuId And t1.CourseId='001')> (Select Score From tblScore t2 Where t2.StuId=s1.stuId And t2.CourseId='002') --2、查询平均成绩大于60分的同学的学号和平均成绩; Select StuId,Avg(Score) as AvgScore From tblScore Group By StuId Having Avg(Score)>60 --3、查询所有同学的学号、姓名、选课数、总成绩; Select StuId,StuName, SelCourses=(Select Count(CourseId) From tblScore t1 Where t1.StuId=s1.StuId), SumScore=(Select Sum(Score) From tblScore t2 Where t2.StuId=s1.StuId) From tblStudent s1 --4、查询姓“李”的老师的个数; Select Count(*) From tblTeacher Where TeaName like '李%' --5、查询没学过“叶平”老师课的同学的学号、姓名; Select StuId,StuName From tblStudent Where StuId Not In ( Select StuID From tblScore sc Inner Join tblCourse cu ON sc.CourseId=cu.CourseId Inner Join tblTeacher tc ON cu.TeaId=tc.TeaId Where tc.TeaName='叶平' ) --6、查询学过“001”并且也学过编号“002”课程的同学的学号、姓名; Select StuId,StuName From tblStudent st Where (Select Count(*) From tblScore s1 Where s1.StuId=st.StuId And

数据库原理第三章练习

第三章SQL语言 一、选择题: 1、SQL语言就是的语言,易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 2、SQL语言就是语言。 A.层次数据库 B.网络数据库 C.关系数据库 D.非数据库 3、SQL语言具有的功能。 2、关系规范化,数据操纵,数据控制 B.数据定义,数据操纵,数据控制 C.数据定义,关系规范化,数据控制 D.数据定义,关系规范化,数据操纵 4、SQL语言具有两种使用方式,分别称为交互式SQL与。 A.提示式SQL B.多用户SQL C.嵌入式SQL D.解释式SQL 5、SQL语言中,实现数据检索的语句就是。 A.SELECT B.INSERT C.UPDATE D.DELETE 6、下列SQL语句中,修改表结构的就是。 A.ALTER B.CREATE C.UPDATE D.DELETE 7、SQL中,与“NOT IN”等价的操作符就是。 A.=SOME B.<>SOME C.=ALL D.<>ALL 8、假设有三个基本表:学生表S、课程表C、学生选课表SC,它们的结构如下: S(S#,SN,SEX,AGE,DEPT) C(C#,CN) SC(S#,C#,GRADE) 检索所有比“王华”年龄大的学生姓名、年龄与性别。正确的SQL语句就是。 A.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE FROM S WHERE SN=”王华”) B.SELECT SN,AGE,SEX FROM S WHERE SN=”王华” C.SELECT SN,AGE,SEX FROM S WHERE AGE>(SELECT AGE WHERE SN=”王华”)

SQL查询语句例子

数据表的查询(select) select 字段列表[as 别名], * from 数据表名 [where 条件语句] [group by 分组字段] [order by 排序字段列表desc] [LIMIT startrow,rownumber] 1、Select 字段列表From 数据表 例:①、select id,gsmc,add,tel from haf (* 表示数据表中所有字段) ②、select 单价,数量,单价*数量as 合计金额from haf (As 设置字段的别名) 2、Select …from …Where 筛选条件式 筛选条件式:①、字符串数据:select * from 成绩单Where 姓名='李明' ②、万用字符:select * from 成绩单Where 姓名like '李%' select * from 成绩单Where 姓名like '%李%' select * from 成绩单Where 姓名like '%李_' ③、特殊的条件式: ⑴= / > / < / <> / >= / <= ⑵AND(逻辑与) OR(逻辑或) NOT(逻辑非) ⑶Where 字段名称in(值一,值二) ⑷Where 字段名称Is Null / Where 字段名称Is Not Null 3、Select …from …group by 字段 SQL函数: SELECT sex,count(id) as women from `user` group by 'sex'; 函数名描述函数名描述 AVG平均值Count计数 MAX最大值MIN最小值 Sum求和

常用经典SQL语句大全完整版-权威人士总结出的-详解+实例

下列语句部分是Mssql语句,不可以在access中使用。 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:\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]

第三章关系数据库标准语言SQL习题

第三章关系数据库标准语言SQL 一、单项选择题 1.SQL语言是。 A.过程化语言B.宿主语言C.汇编语言D.非过程化语言 2.在视图上不能完成的操作是。 A.更新视图B.查询C.在视图上定义基本表D.在视图上定义新的视图 3.SQL语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中CREATE、DROP、ALTER语句实现功能。 A.数据查询B.数据操纵C.数据定义D.数据控制 4.在SQL语言中,删除一个视图的命令是。 A.DELETE B.DROP C.CLEAR D.REMOVE 5.在SQL语言中,视图对应于数据库的______。 A.外模式B.模式C.内模式D.存储模式 6.在下列SQL语句中,______不是数据定义语句。 A.CREATE TABLE B.DROP VIEW C.CREATE VIEW D.GRANT 7.若要除去数据库中已经存在的表S,可用。 A.DELETE TABLE S B.DELETE S C.DROP TABLE S D.DROP S 8.若要在基本表S中增加一列CN,可用。 A.ADD TABLE S(CN CHAR(8)) B.ADD TABLE S ALTER(CN CHAR(8)) C.ALTER TABLE S ADD (CN CHAR(8)) D.ALTER TABLE S (ADD CN CHAR(8)) 9.若要删除关系模式S(Sno, Sname, Ssex, Sage)的Sage属性,可用。 A.DELETE Sage FROM S B.ALTER TABLE S DROP Sage C.UPDATE S Sage D.ALTER TABLE S ‘Sage’ 10.设有学生关系S(Sno, Sname, Sage),课程关系C(Cno, Cname),选修关系SC(Sno, Cno, Grade),其中Sno是学号,Sname是学生姓名,Sage是学生年龄,Cno是课程号,Cname是课程名,Grade是成绩。要查询选修了“ACCESS”课程的年龄不小于20的全体学生姓名,可用SELECT SNAME FROM S, C, SC WHERE 语句实现。 A.S.Sno=SC.Sno and https://www.doczj.com/doc/ee15851170.html,o=https://www.doczj.com/doc/ee15851170.html,o and Sage >=20 and Cname = ‘ACCESS‘ B.S.Sno=SC.Sno and https://www.doczj.com/doc/ee15851170.html,o=https://www.doczj.com/doc/ee15851170.html,o and Sage in >=20 and Cname in ‘ACCESS‘ C.Sage in >=20 and Cname in ‘ACCESS‘ D.Sage in >=20 and Cname = ‘ACCESS‘ 11.设关系数据库中表S的结构是S(SN, CN, GRADE),其中SN为学生姓名,CN为课程名,二者均为字符型;GRADE为成绩,数值型,取值范围0~100。若要把“张二的化学成绩为80分”插入S中,则可用。 A.ADD INTO S VALUES( ‘张二‘, ‘化学‘, ‘80‘) B.INSERT INTO S VALUES( ‘张二‘, ‘化学‘, ‘80‘) C.ADD INTO S VALUES( ‘张二‘, ‘化学‘, 80) D.INSERT INTO S VALUES( ‘张二‘, ‘化学‘, 80) 12.设关系数据库中表S的结构是S(SN, CN, GRADE),其中SN为学生姓名,CN为课程名,二者均为字符型;GRADE为成绩,数值型,取值范围0~100。若要将张二的化学成绩改为

相关主题
文本预览
相关文档 最新文档