SQL语句上机题

SQL语句上机题
SQL语句上机题

习题6.1.3:使用习题5.2.1中提供的数据库模式用SQL语句写出后面的查询,并使用习题5.2.1提供的资料写出查询结果。

Product(marker, model, type)

PC(model, speed, ram, hd, rd, price)

Laptop(model, speed, ram ,hd, screen, price)

Printer(model, color, type, price)

* a) 找出所有价格在$1200以下的PC机的型号、速度和硬盘大小。

Select model,speed,hd

From pc

Where piece<1200

* b) 要求同(a),但是重命名列speed为megahertz以及列hd为gigabytes。

select model,speed as megahertz,hd as gigabytes

from pc

where price<1200

c) 找出所有打印机制造厂商。

select distinct maker

from product

where type=’printer’

d) 找出价格在$2000以上的手提电脑的型号、内存大小和屏幕尺寸。

select model,ram,screen

from laptop

where price>2000

* e) 找出关系Printer中所有彩色打印机元组,注意属性color是一个布尔类型。

select model,type,price

from printer

where color=’true’

f) 找出价格少于$2000并拥有12X或16X DVD的PC机的型号、速度和硬盘尺寸。把rd属性看作一个字符串属性。

select model,speed,hd

from pc

where price<2000 and rd=’12xDVD’ or rd=’16xDVD’

习题6.1.4:基于习题5.2.4给出的数据库模式和资料写出后面的查询语句以及查询结果。

Classes(class, type, country, numGuns, bore, displacement)

Ships(name, class, launched)

Battles(name, date)

Outcomes(ship, battle, result)

a)找出至少装备10门火炮的船只所属类别名和制造国家

select country,type

from classes

where numGuns>=10

b) 找出在1918年以前下水的舰船的名字,并且把结果列名改为ShipName。

select name as shipname

from ships

where launched<1918

c) 找出所有在战役中被击沉的船只和那次战役的名字

select ship,battle

from outcomes

where result=’sunk’

d) 找出具有相同类别名的所有船只。

select distinct ship1.class, ship1.type

from classes as ship1,classes as ship2

where ship1.type=ship2.type and ship1.class!=ship2.class

order by type

e) 找出所有以”R.”字符开头的船只的名字。

select name

from ships

where name like’R%’

! f) 找出所有包括三个或三个以上单词的船只名字(例如King George V)。

select ship

from outcomes

where ship like ‘% % %‘or ship like ‘% % % %’;

习题6.2.2:根据习题5.2.1的数据库模式写出下列查询,并用那个习题给出的数据算出查询结果。

Product(marker, model, type)

PC(model, speed, ram, hd, rd, price)

Laptop(model, speed, ram ,hd, screen, price)

Printer(model, color, type, price)

* a) 查询硬盘容量至少在30G的手提电脑制造商及电脑的速度。

select maker,speed

from product,laptop

where laptop.model=product.model and laptop.hd>30

* b) 查询制造商B制造的任意类型的所有产品的型号和价格。

select model,price

from pc

where model in (select model from product where maker=’B’)

select model,price

from printer

where model in (select model from product where maker=’B’)

select model,price

from laptop

where model in (select model from product where maker=’B’)

b)查询只卖手提电脑不卖PC的厂商。

select distinct maker

from product

where maker not in(select maker from product where type='pc')and type=’laptop’

c)

! d) 查询出现在两种或两种以上PC中的硬盘的尺寸。

! e) 查询每对具有相同速度和RAM的PC机,每一对只出现一次。例如,如果(i,j)符合,则(j,i)就不能出现在结果中出现。

!!f) 查询生产至少两种速度大于等于1000的计算机(PC或手提)的厂商。

习题 6.2.3根据习题5.2.4的数据库模式写出下面的查询,并用那个习题给出的数据算出查询结果。

Clasaes( class , type , country , numGuns , bore , displacement )

Ships( name , class , launched )

Battles( name , date )

Outcomes( ship , battle , result )

a)找出重量超过35000吨的船只。

select name

from ships,classes

where ships.class=classes.class and displacement>35000

b)找出参加过Guadalcanal战役的船只的名字、排水量和火炮数量。

select name,displacement,numGuns

from classes,ships,outcomes

where ships.class=classes.class and https://www.360docs.net/doc/c61661986.html,=outcomes.ship and battle=’Guadalcanal’

c)列出所有数据库中提到的船只(注意,并非所有的船只都出现在ships关系中)。

select distinct https://www.360docs.net/doc/c61661986.html,

from ships;

select distinct ship

from outcomes

where ship not in(

select distinct https://www.360docs.net/doc/c61661986.html,

from ships)

!d)找出同时具有战列舰和巡洋舰的国家。

!e)找出曾在某次战役中受创但后来又在其他战役中出现的船只。

!f) 找出参战船只至少有三艘来自同一个国家的战役。

习题6.3.1:基于习题5.2.1的数据库模式写出后面的查询

Product(marker, model, type)

PC(model, speed, ram, hd, rd, price)

Laptop(model, speed, ram ,hd, screen, price)

Printer(model, color, type, price)

每题的答案中,你应当至少使用一个子查询,并且用两种不同的方法写出每个查询(例如,使用各种不同的操作符EXISTS、IN、ALL和ANY)

* a) 找出速度在1200以上的PC的制造商。

b) 找出价格最高的打印机。

! c) 找出速度比任何一台PC都慢的手提电脑。

! d) 找出具有最高价格的产品(PC、手提电脑或打印机)的型号。

! e) 找出最低价格的彩色打印机的制造商。

!! f) 在所有的PC中,找出具有最快速度并具有最少RAM的PC制造商。

习题6.3.2基于习题5.2.4的数据库模式写出后面的查询

Classes( class , type , country , numGuns , bore , displacement )

Ships ( name , class , launched )

Battles ( name , date )

Outcomes ( ship , battle , result )

每题的答案中,你应当至少使用一个子查询,并且使用两种不同的方法写出每个查询(例如,使用各种不同的操作符EXISTS、IN、ALL和ANY)。

a)找出拥有火炮数量最多的船只所属的国家。

*!b)找出至少有一艘船在战役中被击沉的船只种类。

c)找出具有16英寸口径火炮的船只的名字。

d)找出Kongo类型船只参加的战役。

!!e)找出具有相同口径火炮的船只中火炮数量最多的船只名字。

习题6.4.6:根据习题5.2.1的数据库模式写出后面的查询,再用该习题给出的数据算出该查询结果。

Product(marker, model, type)

PC(model, speed, ram, hd, rd, price)

Laptop(model, speed, ram ,hd, screen, price)

Printer(model, color, type, price)

*(a) 查询PC速度的平均值。

(b) 查询价格在$2000以上的手提电脑的平均值。

(c) 查询制造商A生产的PC的平均价格。

!(d) 查询制造商D生产的PC和手提电脑的平均价格。

(e) 求不同速度的PC平均价格。

*!(f) 找出各个制造商生产的手提电脑的平均价格。

!(g) 找出至少生产三种不同型号PC机的制造商。

!(h) 找出各个制造商制造的PC的最高价格。

*!(i) 找出速度在800以上的PC的平均价格。

!!(j) 对于所有生产打印机的制造商,查询其生产的PC机的硬盘平均大小。

习题 6.4.7基于习题5.2.4给出的数据库模式和数据写出后面的查询语句以及查询结果。

Classes ( class , type , country , numCuns , bore , displacement )

Ships( name , class , launched )

Battles( name , date )

Outcomes ( ship , battle , result )

a)找出战舰类型的数量。

b)找出不同类型战舰拥有的平均火炮数量。

!c)找出战舰的平均火炮数量。注意c)和b)的不同在于:在计算均值的时候,是使用战舰的数目还是战舰的类型数目。

!d)找出每一类型( class )的第一艘船下水的年份。

!e)找出每一类型中被击沉船的数目。

!!f) 找出至少有3艘船的类型中被击沉的船的数目。

!!g)军舰火炮使用的炮弹的重量(以磅为单位)大约是火炮的口径(以英寸为单位)的一半。找出各个国家的军舰炮弹重量的平均值。

习题6.5.1:根据习题5.2.1给出的数据库模式,写出下面的数据库修改。描述对该习题数据库修改够的结果。

Product(marker, model, type)

PC(model, speed, ram, hd, rd, price)

Laptop(model, speed, ram ,hd, screen, price)

Printer(model, color, type, price)

a) 通过两条INSERT语句在数据库中添加如下信息:制造商C生产的型号为1100的PC,速度为1800,RAM为256,硬盘大小80,具有一个20x的DVD,售价为$2499。

!b) 加入如下信息:对于数据库中每台PC,都对应一台与其速度、RAM、硬盘相同,具有15英寸的屏幕,型号大于1100、价格高于$500的相同厂商制造的手提电脑。

c) 删除所有硬盘不超过20G的PC。

d) 删除所有不制造打印机的厂商生产的手提电脑。

e) 厂商A收购了厂商B,将所有B生产的产品改为由A生产。

f) 对于每台PC,把它的内存加倍并且增加20G的硬盘容量。(记住UPDATE语句中可以同时更改多个属性的值)

!g) 把厂商B生产的手提电脑的屏幕尺寸增加一英寸并且价格下调$100。

习题 6.5.2基于习题5.2.4给出的数据库模式,写出下面的数据库修改。描述对该习题

数据库修改够的结果。

Classes ( class , type , country , numCuns , bore , displacement )

Ships( name , class , launched )

Battles( name , date )

Outcomes ( ship , battle , result )

* a)两艘Nelson类型的英国战舰-Nelson和Rodney-在1927年下水。两者都具有16英寸口径的火炮、排水量为34000吨。把这条信息加入到数据库中。

b)两艘Vittorio Veneto类型的意大利战舰-Vittorio Veneto和Italia-在1940年下水;第三艘同样类型的船-Roma在1942年下水。每艘船都有15英寸口径火炮和41000吨的排水量。把这些信息加入到数据库中。

* c)删除所有在战役中沉没的船只。

* d)更新Classes关系使得火炮口径使用厘米作为单位(1英寸=2.5厘米),排水量使用公制吨。(1公制吨=1.1吨)。

e)删除所有少于3艘船的类型。

数据库练习题答案

第四章练习题 一、选择题 1、设有两个关系R(A,B)和S(B,C),与下列SELECT语句 SELECT A,B FROM R WHERE B NOT IN(SELECT B FROM S WHERE C='C56'); 等价的关系代数表达式是 [ C] A.πA,B(σC≠'C56'(R?S))B.πA,B(R ? S) C≠'C56' C.R-πA,B(σC= 'C56'(R?S))D.R-πA,B(σC≠'C56'(R?S)) 2、嵌入式SQL的预处理方式,是指[ B] A.识别出SQL语句,加上前缀标识和结束标志 B.把嵌入的SQL语句处理成函数调用形式 C.对源程序进行格式化处理 D.把嵌入的SQL语句编译成目标程序 3、SQL中,“DELETE FROM 表名”表示 [ A] A.从基本表中删除所有元组B.从基本表中删除所有属性 C.从数据库中撤消这个基本表D.从基本表中删除重复元组 4、SQL中,聚合函数COUNT(列名)用于[ C] A.计算元组个数B.计算属性的个数 C.对一列中的非空值计算个数D.对一列中的非空值和空值计算个数 5、在传统SQL技术中,使用“ORDER BY”子句的SELECT语句查询的结果,实际上为 [ B] A.数组 B.列表 C.包 D.集合 6、在数据库中,能提高查询速度的是(C ) A. 数据依赖 B. 视图 C. 索引 D. 数据压缩 7、语句 delete from sc 表明( A ) A. 删除sc中的全部记录 B. 删除基本表sc C. 删除基本表sc中的列数据 D. 删除基本表sc中的部分行 8、在DB应用中,一般一条SQL 语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过( B )实现。 A. 指针 B. 游标 C. 数组 D. 栈 9、在下列基本表的定义中,数值5表示( C ) CREATE TABLE student (Sno char(5) not null unique,Sname char(2)); A. 表中有5条记录 B. 表中有5列 C. 表中字符串Sno 的长度 D. 表格的大小 10、在视图上不能完成的操作是( C )

sql语句练习题及答案

一在数据库 school 中建立student , sc, course 表。 学生表、课程表、选课表属于数据库School ,其各自的数据结构如下:学生Student (Sno,Sname,Ssex,Sage,Sdept) 课程表course(Cno,Cname,Cpno,Ccredit) 学生选课SC(Sno,Cno,Grade) 二设定主码 1 Student表的主码:sno 2 Course表的主码:cno 3 Sc表的主码:sno,cno 1写出使用 Create Table 语句创建表 student , sc, course 的SQL语句2 3 删除student表中的元组 4在数据库school中删除关系student 5在student表添加属性sbirthdate 类型datetime

Delete 1 删除所有JSJ 系的男生delete from Student where Sdept=’JSJ’ and Ssex=’男’; 2 删除“数据库原理”的课的选课纪录 delete from SC where Cno in (select Cno fromCourse where Cname=’数据库原理’); Update 1 修改0001 学生的系科为: JSJ 2 把陈小明的年龄加1岁,性别改为女。 2 修改李文庆的1001课程的成绩为9 3 分 3 把“数据库原理”课的成绩减去1分 Select 查询语句 一单表 1查询年龄在19至21岁之间的女生的学号,姓名,年龄,按年龄从大到小排列。 2查询姓名中第2个字为“明”字的学生学号、性别。 3查询 1001课程没有成绩的学生学号、课程号 4查询JSJ 、SX、WL 系的年龄大于25岁的学生学号,姓名,结果按系排列 5按10分制查询学生的sno,cno,10分制成绩 (1-10分为1 ,11-20分为2 ,30-39分为3,。。。90-100为10) 6查询 student 表中的学生共分布在那几个系中。(distinct) 7查询0001号学生1001,1002课程的成绩。 二统计 1查询姓名中有“明”字的学生人数。 2计算‘JSJ’系的平均年龄及最大年龄。 3查询学生中姓名为张明、赵英的人数 4计算每一门课的总分、平均分,最高分、最低分,按平均分由高到低排列 5 计算 1001,1002 课程的平均分。 6 查询平均分大于80分的学生学号及平均分 7 统计选修课程超过 2 门的学生学号 8 统计有10位成绩大于85分以上的课程号。 9 统计平均分不及格的学生学号 10 统计有大于两门课不及格的学生学号 三连接 1查询 JSJ 系的学生选修的课程号 2查询选修1002 课程的学生的学生姓名 (不用嵌套及嵌套2种方法) 3查询数据库原理不及格的学生学号及成绩 4查询选修“数据库原理”课且成绩 80 以上的学生姓名(不用嵌套及嵌套2种方法) 5查询平均分不及格的学生的学号,姓名,平均分。 6查询女学生平均分高于75分的学生姓名。 7查询男学生学号、姓名、课程号、成绩。(一门课程也没有选修的男学生也要列出,不能

第三章 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语句练习题(精品文档)

S Q L语言 一、选择题 1.S Q L语言是()的语言,容易学习。 A.过程化 B.非过程化 C.格式化 D.导航式 2. S Q L语言的数据操纵语句包括S E L E C T、I N S E R T、U P D A T E、 D E L E T E等。其中最重要的,也是使用最频繁的语句是()。 A.S E L E C T B.I N S E R T C.U P D A T E D.D E L E T E 3.在视图上不能完成的操作是()。 A.更新视图 B.查询 C.在视图上定义新的表 D.在视图上定义新的视图 4.S Q L语言集数据查询、数据操纵、数据定义和数据控制功能于一体,其中,C R E A T E、D R O P、A L T E R语句是实现哪种功能()。 A.数据查询 B.数据操纵 C.数据定义 D.数据控制 5.S Q L语言中,删除一个视图的命令是()。 A.D E L E T E B.D R O P C.C L E A R D.R E M O V E 6.在S Q L语言中的视图V I E W是数据库的()。 A.外模式 B.模式 C.内模式 D.存储模式 7.下列的S Q L语句中,()不是数据定义语句。 A.C R E A T E T A B L E B.D R O P V I E W C.C R E A T E V I E W D.G R A N T 8.若要撤销数据库中已经存在的表S,可用()。 A.D E L E T E T A B L E S B.D E L E T E S C.D R O P T A B L E S D.D R O P S

学生选课数据库SQL语句练习题(详细分解答案)

学生选课数据库SQL语句练习题(详细分解答案)

一、设有一数据库,包括四个表:学生表(Student)、课程表 (Course)、成绩表(Score)以及教师信息表(Teacher)。 四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构 表(一)Student 含义 属性名数据类型可否为 空 Sno Char(3) 否学号(主键) Sname Char(8) 否学生姓名 Ssex Char(2) 否学生性别 Sbirthday datetime 可学生出生年 月 Class Char(5) 可学生所在班 级 表(二)Course 含义 属性名数据类型可否为 空 Cno Char(5) 否课程号(主 键) Cname Varchar(10) 否课程名称 Tno Char(3) 否教师编号(外 键) 表(三)Score 含义 属性名数据类型可否为 空 Sno Char(3) 否学号(外键) Cno Char(5) 否课程号(外 键) Degree Decimal(4,1) 可成绩

主码:Sno+ Cno 表(四)Teacher 含义 属性名数据类型可否为 空 Tno Char(3) 否教师编号(主 键)Tname Char(4) 否教师姓名Tsex Char(2) 否教师性别Tbirthday datetime 可教师出生年 月 Prof Char(6) 可职称Depart Varchar(10) 否教师所在部 门 表1-2数据库中的数据 表(一)Student Sno Sname Ssex Sbirthday class 108 曾华男1977-09-01 95033 105 匡明男1975-10-02 95031 107 王丽女1976-01-23 95033 101 李军男1976-02-20 95033 109 王芳女1975-02-10 95031 103 陆君男1974-06-03 95031 表(二)Course Cno Cname Tno 3-105 计算机导论825 3-245 操作系统804 6-166 数字电路856

sql语句模拟测试题

SQL语句真题模拟测试 姓名__________分数___________ 有如下四个表: 查询测试: 1、查询出在2号仓库工作的所有员工的工资,并且去掉重复值 2、查询出工资在1230到1250之间的所有员工信息 3、查询出供应商名中所有包含“子”字的供应商信息 4、找出工资为1250元的职工号和城市

5、查询出wh1仓库中共有多有个员工 6、计算出每个仓库的人数,总工资和最高工资,字段分别显示为仓库号,人数,总工资和最高工资 7、在订购单表中查询出还没有完成订单的订单信息 8、找出和职工E4挣同样工资的职工号和工资 9、找出还没有员工的仓库信息 10、查询出工资大于或等于2号仓库中其中一名职工工资的的员工信息 11、显示工资最高的30% 的员工信息 操作测试: 1、用SQL语句在职工表中插入记录(“WH4”,”E8”,1111) 2、把所有面积小于500的仓库,面积在原来的基础之上扩大20% 3、删除所有还没有完成订单的记录 定义功能: 1、在数据库中创建表的CREATE TABLE命令中定义主索引、实现实体完整性规则的短语是( )。

A) FOREIGN KEY B) DEFAULT C) PRIMARY KEY D) CHECK 2、在Visual FoxPro中,下列关于SQL表定义语句(CREATE TABLE)的说法中错误的是( )。 A) 可以定义一个新的基本表结构 B) 可以定义表中的主关键字 C) 可以定义表的域完整性、字段有效性规则等 D) 对自由表,同样可以实现其完整性、有效性规则等信息的设置 3、"教师表"中有"职工号"、"姓名"和"工龄"等字段,其中"职工号"为主关键字,建立"教师表"的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) 4、表名为Employee的表结构是(职工号,姓名,工资),建立表Employee的SQL命令是 A) CREATE TABLE Employee(职工号 C(10),姓名 C(20), 工资 Y) B) CREATE Employee TABLE(职工号 C(10),姓名 C(20), 工资 Y) C) CREATE DATABASE Employee(职工号 C(10),姓名 C(20), 工资 Y) D) CREATE Employee DATABASE(职工号 C(10),姓名 C(20), 工资 Y 5、从产品表中删除生产日期为2013年1月1日之前(含)的记录,正确的SQL语句是 A) DROP FROM 产品 WHERE 生产日期<={^2013-1-1} B) DROP FROM 产品 FOR 生产日期<={^2013-1-1} C) DELETE FROM 产品 WHERE 生产日期<={^2013-1-1} D) DELETE FROM 产品 FOR 生产日期<={^2013-1-1} 6、为"评分"表的"分数"字段添加有效性规则:"分数必须大于等于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 7、有表名为Employee的表结构(职工号,姓名,工资),为表Employee增加字段"住址"的SQL命令是 A) ALTER DBF Employee ADD 住址 C(30) B) CHANGE DBF Employee ADD 住址 C(30) C) CHANGE TABLE Employee ADD 住址 C(30) D) ALTER TABLE Employee ADD 住址 C(30) 8、在Visual FoxPro中,如果要将学生表S(学号,姓名,性别,年龄)中"年龄"属性删除,正确的SQL命令是( )。 A) ALTER TABLE S DROP COLUMN 年龄 B) DELETE 年龄 FROM S C) ALTER TABLE S DELETE COLUMN 年龄 D) ALTER TABLE S DELETE 年龄

sql语句练习50题

sql语句练习50题 Student(Sid,Sname,Sage,Ssex) 学生表 Course(Cid,Cname,Tid) 课程表 SC(Sid,Cid,score) 成绩表 Teacher(Tid,Tname) 教师表 练习内容: 1.查询“某1”课程比“某2”课程成绩高的所有学生的学号; SELECT a.sid FROM (SELECT sid,score FROM SC WHERE cid=1) a,(SELECT sid,score FROM SC WHERE cid=3) b WHERE a.score>b.score AND a.sid=b.sid; 此题知识点,嵌套查询和给查出来的表起别名 2.查询平均成绩大于60分的同学的学号和平均成绩; SELECT sid,avg(score) FROM sc GROUP BY sid having avg(score) >60; 此题知识点,GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。group by后面不能接where,having代替了where 3.查询所有同学的学号、姓名、选课数、总成绩 SELECT Student.sid,Student.Sname,count(SC.cid),sum(score)FROM Student left Outer JOIN SC on Student.sid=SC.cid GROUP BY Student.sid,Sname 4.查询姓“李”的老师的个数; select count(teacher.tid)from teacher where teacher.tname like'李%' 5.查询没学过“叶平”老师课的同学的学号、姓名; SELECT Student.sid,Student.Sname FROM Student WHERE sid not in (SELECT distinct( SC.sid) FROM SC,Course,Teacher WHERE SC.cid=Course.cid AND Teacher.id=Course.tid AND Teacher.Tname='叶平'); 此题知识点,distinct是去重的作用 6.查询学过“```”并且也学过编号“```”课程的同学的学号、姓名; select a.SID,a.SNAME from (select student.SNAME,student.SID from student,course,sc where cname='c++'and sc.sid=student.sid and sc.cid=course.cid) a, (select student.SNAME,student.SID from student,course,sc where cname='english'and sc.sid=student.sid and sc.cid=course.cid) b where a.sid=b.sid; 标准答案(但是好像不好使)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'); 此题知识点,exists是在集合里找数据,as就是起别名 7.查询学过“叶平”老师所教的所有课的同学的学号、姓名; select a.sid,a.sname from (select student.sid,student.sname from student,teacher,course,sc where teacher.TNAME='杨巍巍' and teacher.tid=course.tid and course.cid=sc.cid and student.sid=sc.sid) a 标准答案:SELECT sid,Sname FROM Student WHERE sid in (SELECT sid FROM SC ,Course ,Teacher WHERE SC.cid=Course.cid AND Teacher.tid=Course.tid AND Teacher.Tname='杨巍巍' GROUP BY sid having count(SC.cid)=(SELECT count(cid) FROM Course,Teacher WHERE Teacher.tid=Course.tid AND Tname='杨巍巍')) 8.查询课程编号“”的成绩比课程编号“”课程低的所有同学的学号、姓名;

vfp6SQL练习题

SQL综合练习题一 一、单项选择题 1.下列说法正确的是()。 A)SQL 语言不能直接以命令方式交互使用,而只能嵌入到程序设计语言中以程序方式使用 B)SQL 语言只能直接以命令方式交互使用,而不能嵌入到程序设计语言中以程序方式使用 C)SQL 语言不可以直接以命令方式交互使用,也不可以嵌入到程序设计语言中以程序方式使用,是在一种特殊的环境下使用的语言D)SQL 语言既可以直接以命令方式交互使用,也可以嵌入到程序设计语言中以程序方式使用 2.SQL 语言具有()的功能。 A)关系规范化,数据操纵,数据控制 B)数据定义,数据操纵,数据控制 C)数据定义,关系规范化,数据控制 D)关系规范化,数据操纵,数据查询 3.SQL 语言中使用最多的功能是()。 A)数据查询 B)数据修改 C)数据定义 D)数据控制 4.SQL 语句中,Select 命令的分组操作配套使用的条件短语应使用()引导。 A)Where B)like C)Having D)In 5.Sql 语句中删除表中记录的语句是()。 A)Drop B)Erase C)Cancle D)Delete 6.用SQL 语句建立表时为属性定义主索引,应在SQL 语句中使用短语()。 A)Default B)Primary Key C)Check D)Unique 7.SQL 语句的where短语中可以使用通配符是()。 A)* B)? C)% D)— 8.SQL 语句中条件短语的关键字是()。 A)Where B)For C)While D)as 9.SQL 中可以使用的通配符有()。 A)* B)% C)_ D)B 项和c 项 10.SQL 的数据操纵语句不包括()。 A)Insert B)Delete C)Update D)Change 11.字符串匹配运算符是()。 A)Like B)And C)In D)= 12.将查询结果放在数组中应使用()短语。 A)Into Cursor B)To Array C)Into Table D)Into Array 13.SQL 实现分组查询的短语是()。 A)Order By B)Group By C)Having D)Asc 14.用Sql 语句建立表时为属性定义有效性规则,应使用短语是()。 A)Default B)Primary Key C)Check D)Unique 15.书写SQL 语句,若语句要占用多行,在行的末尾要加续行符()。 A): B); C), D)” 16.用于更新表中数据的SQL 语句是()。

数据库SQL语句练习题含答案

SQL语句练习 练习5. 1. 2: 基于不断滚动的电影数据库的实例: Movie( 电影名title,拍摄年代year ,长度length, inColor ,制片厂名studioName, 制片人证书号producerC# ) StarsIn(电影名movieTitle,拍摄年份movieYear ,影星名starName) MovieStar (姓名name,地址address,性别gender ,生日birthdate) MovieExec( 姓名name,地址address ,证书号cert # ,净资产netWorth ) Studio(姓名name, 地址address,总裁证书号presC# ) 请写出下列SQL 查询语句: * ( a) 找出米高梅制片公司(MGM studios)的地址。 SELECT address AS Studio_Address FROM Studio WHERE name = 'MGM'; ( b) 找出桑德拉·布洛克( Sandra Bullock ) 的出生日期( birthdate) 。SELECT birthdate AS Star_Birthdate FROM MovieStar WHERE name = 'Sandra Bullock'; * ( c) 找出在1980 年拍摄过电影的所有影星, 或者拍摄过电影名中含有“Love”的电影的所有影星。 SELECT starName FROM StarsIn WHERE movieYear = 1980 OR movieTitle LIKE '%Love%'; ( d) 找出净资产至少1 000 万美元的所有行政长官。

数据库sql查询语句练习2_习题_结果(单世民)

现在有一教学管理系统,具体的关系模式如下:Student (no, name, sex, birthday, class) Teacher (no, name, sex, birthday, prof, depart) Course (cno, cname, tno) Score (no, cno, degree) 其中表中包含如下数据: Course表: Score表: Student表:

Teacher表: 根据上面描述完成下面问题: (注意:注意保存脚本,尤其是DDL和DML,以便进行数据还原)DDL 1.写出上述表的建表语句。 2.给出相应的INSERT语句来完成题中给出数据的插入。 单表查询 3.以class降序输出student的所有记录(student表全部属性) 命令:select*from Student order by class desc;

4.列出教师所在的单位depart(不重复)。 命令:select distinct depart from Teacher; 5.列出student表中所有记录的name、sex和class列 命令:select name,sex,class from Student; 6.输出student中不姓王的同学的姓名。 命令:select name from Student except select name from Student where name like'王%';或

select name from Student where name not like'王%'; 7.输出成绩为85或86或88或在60-80之间的记录(no,cno,degree) 命令:select no,cno,DEGREE from Score where degree=85 or degree=86 or degree=88 or degree between 60 and 80; 8.输出班级为95001或性别为‘女’的同学(student表全部属性) 命令:select*from Student where class=95001 or sex='女';

数据库期末考试复习题(附答案)

数据库期末考试复习题(附答案) 数据库系统概论 2011年期末考试复习题 一、选择题 ? 第(1)至(3)题基于以下的叙述:有关系模式A(C,T,H,R,S),基中各属性的含义是: ? C:课程T:教员H:上课时间R:教室S:学生 ? 根据语义有如下函数依赖集:? F={C→T,(H,R)→C,(H,T)→R,(H,S)→R} ? 1、关系模式A的码是(D) ? A. C B. (H,R)C.(H,T)D.H,S) ? 2、关系模式A的规范化程度最高达到(B) ? A. 1NF B. 2NF C. 3NFD. BCNF ? 3、现将关系模式A分解为两个关系模式A1(C,T),A2(H,R,S),则其中A1的规范化程度达到(D) ? A. 1NF B. 2NF C. 3NF D. BCNF ? 4.设有关系R(A,B,C)和S(C,D)。与SQL语句? select A,B,D from R,S where R.C=S.C ? 等价的关系代数表达式是(B) ? A. σR.C=S.C(πA,B,D(R×S)) ? B. πA,B,D(σR,C= S.C (R×S)) ? C. σR.C=S.C((πA,B R)×(πDS)) ? D. σR,C=S.C(πD((πA,BR)×S) ? 5、设关系R和关系S的元数分别是3和4,关系T是R与S的广义笛卡尔积,即:T=R×S,则关系T的元数是(C) ? A. 7 B. 9 C. 12 D. 16 ? 6、数据库设计阶段分为(B) ? A. 物理设计阶段、逻辑设计阶段、编程和调试阶段 ? B. 概念设计阶段、逻辑设计阶段、物理设计阶段、实施和调试阶段 ? C. 方案设计阶段、总体设计阶段、个别设计和编程阶段 ? D. 模型设计阶段、程序设计阶段和运行阶段 ? 7、设U是所有属性的集合,X、Y、Z都是U的子集,且Z=U-X-Y。下面关于多值依赖的叙述中,不正确的是(C) ? A. 若X→→Y,则X→→Z B. 若X→Y,则X→→Y ? C. 若X→→Y,且Y′?Y,则X→→Y′ D. 若Z=Φ,则X→→Y ? 8、查询优化策略中,正确的策略是(D) A.尽可能早地执行笛卡尔积操作B.尽可能早地执行并操作 C.尽可能早地执行差操作D.尽可能早地执行选择操作 ? 9、语句delete from sc 表明(A) A. 删除sc中的全部记录 B. 删除基本表sc? C. 删除基本表sc中的列数据 D. 删除基本表sc中的部分行 ? 10、在DB应用中,一般一条SQL 语句可产生或处理一组记录,而DB主语言语句一般一次只能处理一条记录,其协调可通过哪种技术实现(B) ? A. 指针 B. 游标 C. 数组 D. 栈 11、五种基本关系代数运算是( A ) ? A. ∪,-,×,π和σ B. ∪,-,?,π和σ

SQL语句练习及答案

sql语句练习题1 数据库有如下四个表格: student(sno,sname,sage,ssex,sdpt) 学生表 系表(dptno,dname) course(cno,cname, gradet, tno) 课程表 sc(sno,cno,score) 成绩表 teacher(tno,tname) 教师表 要求:完成以下操作 1.查询姓"欧阳"且全名为三个汉字的学生的姓名。 select sname from student where sname like “欧阳__?; 2.查询名字中第2个字为"阳"字的学生的姓名和学号。 select sname,sno from student where sname like '_阳%';3.查询所有不姓刘的学生姓名。 select sname,sno,ssex from student where sname not like “刘%”; 4.查询db_design课程的课程号和学分。 select cno,ccredit from course where cname like 'db_design' 5.查询以"db_"开头,且倒数第3个字符为i的课程的详细情况。 select * from course where cname like 'db%i_ _'; 6.某些学生选修课程后没有参加考试,所以有选课记录,但没有考试成绩。查 询缺少成绩的学生的学号和相应的课程号。

select sno,cno from sc where grade is null; 7.查所有有成绩的学生学号和课程号。 select sno,cno from sc where grade is not null; 8.查询计算机系年龄在20岁以下的学生姓名。 select sname from student where sdept= 'cs' and sage<20; 9.查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。 select sno, grade from sc where cno= ' 3 ' order by grade desc;10.查询学生总人数。 select count(*) from student; 11.查询选修了课程的学生人数。 select count(distinct sno) from sc; 12.计算1号课程的学生平均成绩。 select avg(grade) from sc where cno= ' 1 '; 13.查询选修1号课程的学生最高分数。 select max(grade) from sc where cno= ' 1 '; 14.查询学生200215012选修课程的总学分数。 select sum(grade) from sc,course where sno= ' 200215012 ' and https://www.360docs.net/doc/c61661986.html,o=https://www.360docs.net/doc/c61661986.html,o;

Oracle的sql语句练习题含复习资料

Oracle的sql语句练习题含答案(二)Oracle_SQL练习题1 1.选择部门30中的所有员工. 2.列出所有办事员(CLERK)的姓名,编号和部门编号. 3.找出佣金高于薪金的员工. 4.找出佣金高于薪金的60%的员工. 5.找出部门10中所有经理(MANAGER)和部门20中所有办事员(CLERK)的详细资料. 6.找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料. 7.找出收取佣金的员工的不同工作. 8.找出不收取佣金或收取的佣金低于100的员工. 9.找出各月倒数第3天受雇的所有员工. 10.找出早于12年前受雇的员工. 11.以首字母大写的方式显示所有员工的姓名. 12.显示正好为5个字符的员工的姓名. 13.显示不带有"R"的员工的姓名. 14.显示所有员工姓名的前三个字符. 15.显示所有员工的姓名,用a替换所有"A" 16.显示满10年服务年限的员工的姓名和受雇日期. 17.显示员工的详细资料,按姓名排序. 18.显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面. 19.显示所有员工的姓名、工作和薪金,按工作的降序排序,若工作相同则按薪金排序. 20.显示所有员工的姓名、加入公司的年份和月份,按受雇日期所在月排序,若月份相同则将最早年份的员工排在最前面. 21.显示在一个月为30天的情况所有员工的日薪金,忽略余数. 22.找出在(任何年份的)2月受聘的所有员工。 23.对于每个员工,显示其加入公司的天数. 24.显示姓名字段的任何位置包含"A"的所有员工的姓名. 25.以年月日的方式显示所有员工的服务年限. 答案: 1.select ename,job,mgr,hiredate,sal,comm ,deptno from emp where deptno=30; 2.select ename,empno,deptno from emp where job='CLERK'; 3.select * from emp where comm>sal; 4.select * from emp where comm>sal*0.6; 5.select empno ,ename, job,hiredate,sal,comm,deptno from emp where( job='MANAGER' and deptno=10) or( job='CLERK' and deptno=20); 6.select empno,ename,job, hiredate,sal, deptno from emp where ( job='MANAGER' and deptno=10) or( job='CLERK' and deptno=20) or((job <>'MANAGER' and job<>'CLERK') and sal>=2000);

SQL 测试题

SQL考试题 一、选择题 1.SELECT语句中与HAVING子句通常同时使用的是(C)子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 2.以下聚合函数求数据总和的是(B) A.MAX B.SUM C.COUNT D.AVG 3.SELECT语句的完整语法较复杂,但至少包括的部分是( B ) A.仅SELECT B.SELECT,FROM C.SELECT,GROUP D.SELECT,INTO 4.SQL语句中的条件用以下哪一项来表达( C ) A.THEN B.WHILE C.WHERE D.IF 5.查找表结构用以下哪一项( B ) A.FIND B.SELETE C.ALTER D.DESC 6.向数据表中插入一条记录用以下哪一项( B ) A.CREATE B.INSERT C.SAVE D.UPDATE 7.SQL语言中,删除一个表的命令是( D ) A.REMOVE B.CLEAR C.DELETE D.DROP 8.修改数据库表结构用以下哪一项( D ) A.UPDATE B.CREATE C.UPDATED D.ALTER 9.下列( D )不属于连接种类 A.左外连接B.内连接C.中间连接D.交叉连接10.SQL是一种( C )语言。 A.函数型B.高级算法C.关系数据库D.人工智能11.下列的SQL语句中,( B )不是数据定义语句。

A.CREATE TABLE B.GRANT C.CREATE VIEW D.DROP VIEW 12.以下聚合函数求平均数的是( C ) A.COUNT B.MAX C.AVG D.SUM 13.用来插入数据的命令是( A ),用于更新的命令是( ) A.INSERT,UPDATE B.CREATE,INSERT INTO C.DELETE,UPDATE D.UPDATE,INSERT 14.以下哪项用于左连接( C ) A.JOIN B.RIGHT JOIN C.LEFT JOIN D.INNER JOIN 15.一张表的主键个数为( C ) A.至多3个B.没有限制C.至多1个D.至多2个 二、填空题 1.select 9/3;的结果为___true_。 2.补全语句:select vend_id,count(*) as num_prods from products group by __vend__; 3.用SELECT进行模糊查询时,可以使用匹配符,但要在条件值中使用__下划线__或%等通配符来配合查询。 4.如果MySQL服务名为MySQL5,则在Windows的命令窗口中,启动MySQL 服务的指令是__net start MYSQL5__。 5.MySQL是一种___多用户___(多用户、单用户)的数据库管理系统。 6.创建数据表的命令语句是____create table 表名();_____。 7._order by___语句可以修改表中各列的先后顺序。 8.当某字段要使用AUTO_INCREMENT的属性时,该字段必须是_整数___类型的数据。 三、解答题 1.表名:购物信息 购物人商品名称数量 A 甲 2 B 乙 4 C 丙 1 A 丁 2 B 丙 5 …… (其他用户实验的记录大家可自行插入)

学生选课数据库SQL语句练习题(详细分解答案)

一、设有一数据库,包括四个表:学生表(Student)、课程表 (Course)、成绩表(Score)以及教师信息表(Teacher)。 四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。 表1-1数据库的表结构 表(一)Student 属性名数据类 型可否为 空 含义 Sno Char(3) 否学号(主 键)Sname Char(8) 否学生姓名Ssex Char(2) 否学生性别Sbirthday datetime 可学生出生年 月 Class Char(5) 可学生所在班 级 表(二)Course 属性名数据类型可否为 空 含义Cno Char(5) 否课程号(主 键)Cname Varchar(10) 否课程名称Tno Char(3) 否教师编号 (外键) 表(三)Score 属性名数据类型可否为 空 含义Sno Char(3) 否学号(外 键) Cno Char(5) 否课程号(外

键)Degree Decimal(4,1) 可成绩 主码:Sno+ Cno 表(四)Teacher 属性名数据类型可否为 含义 空 Tno Char(3) 否教师编号 (主键)Tname Char(4) 否教师姓名Tsex Char(2) 否教师性别Tbirthday datetime 可教师出生年 月 Prof Char(6) 可职称Depart Varchar(10) 否教师所在部 门 表1-2数据库中的数据 表(一)Student Sno Sname Ssex Sbirthday class 108 曾华男1977-09- 95033 01 105 匡明男1975-10- 95031 02 107 王丽女1976-01- 95033 23 95033 101 李军男1976-02- 20 95031 109 王芳女1975-02- 10 95031 103 陆君男1974-06- 03 表(二)Course

Sql语句习题

+ 写了完成下列操作的关系代数式: 1.查看各教研室的教师数。 2.查看每位教师的职称情况。 3.查看每个班级的人数及班长姓名。 4.查看每位学生的生日及籍贯。 5.查看每门课程的学分数。 6.查看每门课程的上课地点。 7.查看每门课程的学时数。 8.查看讲授“软件工程”课程的教师。 9.查看在10101教室上课的课程名。 10.查看5学分的课程名。 11.查看籍贯为“上海”的学生情况。 12.查看88年5月前出生的女同学。 13.查看信息安全专业的班级情况。 14.查看0601班学生数据库原理课程的成绩。 15.查看10101教研室的男教师情况。 16.查看A101系教师的职称情况。 17.查看060101同学的每门课程的分数,按成绩多少排序。 18.查看男同学的生日及籍贯。 19.按学分多少查看课程名。 20.查看10101教研室教师所开的课程。 21.查看课程名为软件工程的成绩。 22.查看软件工程课程的最高分数。 23.查看软件工程课程的平均成绩。 24.统计软件工程系的女教师人数。 25.统计软件学院的教师人数。 25.查看选修数据库原理的学生。 26.查看选修01-01、01-03的学生。

27.查看A101系同学的生日及籍贯。 28.查看A101系职称是教授的教师的情况。 29.查看学生选修课程的情况。 30.查看各系每个教研室教师人数。 31.查看A101系每个教研室教师人数。 32.查看A101系以外其他各系的教研室情况。 33.查询每个学生所学课程的名称、学分、成绩。 34.查询每个学生所在的班级和系。 35.查看应用数学系课程设置情况。 36.查看软件工程系教师情况。 37.查看数据库原理、软件工程课程的成绩。 38.查看哪位学生是班长。 39.查看与班级编号A1010601班级人数相等的班级编号、班长姓名。 40.查询考试成绩超过90分的学生的学号。

相关文档
最新文档