当前位置:文档之家› SQL查询习题及答案

SQL查询习题及答案

SQL查询习题及答案
SQL查询习题及答案

36.设教学用的四个基本表(S,C,T,SC)

(2)查询年龄大于23岁的女同学的学号和姓名

select 姓名,学号

from s

where 性别='女' and 年龄>23

(3)查询至少选修了刘老师所讲授课程中的一门课程的女同学姓名select s.姓名

from s,sc

where s.性别='女'and s.学号=sc.学号and sc.课程编号in

(select c.课程编号

from c,t

where c.教师编号=t.教师编号and t.姓名='刘%'

)

(4)查询至少选修了2门课程的学生学号

select sc.学号

from sc

group by 学号

having count(课程编号)>2

(5)查询全部学生都选修的课程号与课程名

select c.课程编号,c.课程名称

from c,sc

where sc.课程编号=c.课程编号and sc.学号=

(select distinct s.学号

from s

)

(6)计算机系每个教师讲授的课程号

select t.教师编号,课程编号

from c,t

where t.所在系='计算机系

(7)查询没有选修过任何一门课程的学生的学号

select s.学号

from s

where s.学号not in

(select distinct sc.学号

from sc

)

(10)统计个系教师的人数

select count (教师编号)

from t

group by 所在系

(11)统计出教师人数超过10人的系的名称

select t.所在系

from t

group by 所在系

having count(教师编号)>10

(12)在选课表SC中查询成绩为NULL的学生的学号和课程号

select 学号课程编号

from sc

where 成绩='NULL'

(13)姓王的同学的年龄、姓名、选课名称、成绩

select 年龄,姓名,课程名称,成绩

from s,c,sc

where s.学号=sc.学号and c.课程编号=sc.课程编号and s.姓名='王%'

(14)查询年龄大于女同学平均年龄的男同学姓名和年龄

select 姓名,年龄

from s

where 性别='男' and 年龄>

(select avg(年龄)

from s

where 性别='女'

)

37.在数据库{USER、ORDER}中,用户需要查询“所有于2009年5月25日下订单的女顾客姓名”。

(1)试写出该查询的关系代数表达式。

Q1=ΠUserName(σ <’2009-5-25’ AND

单表查询

输出图书表的所有内容

Select *

Form 书籍表

输出图书表中的ISBN、书名、作者等信息

select 书号,书名,作者

from 书籍表

输出用户表中用户的真实姓名、性别、出生年月

select 性别,真实姓名,出生年月

from 用户表

查询得到每本书的ISBN、书名、折扣价格及折扣数

select 书号,书名,价格,折扣价格,(价格-折扣价格)/价格

from 书籍表

选择用户表的女性用户

select *

from 用户表

where 性别='女'

选择用户表中1970-1979年的男性用户的信息

select *

from 用户表

where 性别='男' and 出生年月between '1970-1-1' and '1979-12-31' 在订单表中查找出“待支付”,“已支付”的订单

select *

from 订单表

where 支付方式='待支付' or 订单状态='已支付'

查找所有西安的用户

select 用户编码

from 用户表

where 地址like '%西安%'

查找用户表中邮编不为空的用户信息

select *

from 用户表

where 邮编is not null

找出施伯乐编写有关数据库的书

elect *

from 书籍表

where 作者='施伯乐' and 书名like'%数据库%'

连接查询

查询图书的书名、ISBN号及出版社信息

select b.书名,b.书号,p.*

from 书籍表b,出版社信息表p

where b.出版社编号=p.出版社编号

查询“数据库系统基础教程”书的ISBN号和订单号及订购量select b.书号,od.订单编号,od.数量

from 书籍表b,订单细节表od

where b.书籍编码=od.书籍编码and 书名= '数据库系统基础教程' 查询至少有2个订单订购的图书的书号

方法一:

select b.书号

where 书籍编码in

(

select od.书籍编码

from 订单细节表od

group by od.书籍编码

having count(订单编号)>=2)

查询至少有2个订单订的书的基本信息

select *

from 书籍表b

where 书籍编码in

(

select distinct a.书籍编码

from 订单细节表a,订单细节表b

where a.书籍编码=b.书籍编码and a.订单编号!=b.订单编号)

查询出清华大学出版社所出版的图书的订单号

select distinct od.订单编号

from 书籍表b,订单细节表od,出版社信息表p

where b.书籍编码=od.书籍编码and b.出版社编号=p.出版社编号and 出版社名称like '%清华大学%'

嵌套查询

选择由中国铁道出版社所出版图书的名称

select 书名

from 书籍表

where 出版社编号in

(

select 出版社编号

from 出版社信息表

where 出版社名称like '%中国铁道%')

查找出比计算机类的书库存量都大的图书的详细信息

方法一:

select *

from 书籍表b

where b.数量>ALL

(

select b.数量

from 书籍表b

where b.类别编号='TP')

方法二:

select *

from 书籍表b

where b.数量>

(

select max(b.数量)

where b.类别编号='TP')

查找出其他类的图书至少比计算机类的某一本书价钱高的图书的详细信息方法一:

select *

from 书籍表b

where b.类别编号!='TP 'and b.价格>any

(

select b.价格

from 书籍表b

where b.类别编号='TP')

方法二:

select *

from 书籍表b

where b.类别编号!='TP' and b.价格>

(

select min(b.价格)

from 书籍表b

where b.类别编号='TP')

查找出没有销售记录的书

select b.书籍编码,b.书名

from 书籍表b

where b.书籍编码not in

(

select od.书籍编码

from 订单细节表od)

查询清华大学出版社所出版的图书的订单号

select distinct od.订单编号

from 订单细节表od

where od.书籍编码in

(

select b.书籍编码

from 出版社信息表p,书籍表b

where b.出版社编号=p.出版社编号and 出版社名称like '%清华大学%') 查询出收货人李华所收到的图书号及订货人姓名

select od.书籍编码,u.真实姓名

from 订单细节表od,用户表u

where od.订单编号in

(

select o.订单编号

from 订单表o

where u.用户编码=o.用户编号and 收货人姓名='李华')

查找出没有销售记录的书

select *

where not exists

(select *

from 订单细节表o

where b.书籍编码=o.书籍编码)

查询出计算机类或电子类的图书

select 书名,书籍编码

from 书籍表

where 类别编号='TP'

union

select 书名,书籍编码

from 书籍表

where 类别编号='TN'

查找出购买了书籍编号为7-302-02829-X和7-81082-740-5的顾客的姓名和地址、电话select 收货人姓名,收货人地址,收货人电话

from 订单表,订单细节表

where 书籍编码='7-320-02829-X' and 书籍编码='7-81082-740-5'

2.设有教学用的4个基本表:

Student(SNO,SNAME,SEX,AGE,DEPT),表示学生基本信息表,依次描述了学生的学号、姓名、性别、年龄、所在系等属性。

Course(CNO,CNAME,TNO),表示课程基本信息表,依次描述了课程的课程编号、课程名称、教师编号等属性。

Teacher(TNO,TNAME,SEX,AGE,PROF,DEPT),表示教师信息表,依次描述了教师编号、教师姓名、性别、年龄、职称、所属系等属性。

SC(SNO,CNO,GRADE),表示学生选课及成绩信息表,依次描述了学号、课程号、成绩等属性。

(1)用CREATE TABLE 语句创建上述的4张表,请分别用子句指出主键和外键。

CREATE TABLE Student(SNO CHAR(6) Primary key ,SNAME CHAR(20), SEX CHAR(2), AGE INTEGER, DEPT V ARCHAR(50))

其他的表的设计略。

(2)查询年龄大于23岁的女同学的学号和姓名。

Select sno,sname

From student

Where age>23

(3)在选课表SC中查询成绩为null的学生的学号和课程号。

Select sno,cno

From sc

Where grade is null

(4)查询至少选修了2门课程的学生的学号。

Select sno

From sc a, sc b

Where = and <>

(5)查询姓王的同学的年龄、姓名、课称号、成绩

Select sname,cnme,cno,grade

From student s, sc

Where like’王%’and =

(6)查询计算机系每个教师讲授的课程号。

Select cno

From course c ,teacher t

Where = and =’计算机’

(7)查询没有选修过任何一门课程的学生的学号。

Select sno

From student s

Where not exists (Select *

From sc

Where =

(8)统计女同学的平均年龄。

Select avg(age)

From student

Where sex=’女’

(9)查询出管理系中最年轻的教师的基本信息。

Select *

From teacher t

Where dep=’管理系’and

=(select min(age)

From teacher t1

Where =’管理系’)

(10)统计各系教师的人数。

Select dept,count(*)

From teacher

Group by dept

(11)统计出教师人数超过10人的系的名称。

Select dept

From teacher

Group by dept

Having count(*)>10

(12)查询至少选修了刘老师所讲授课程中的一门课程的女同学姓名。

Select sname

From student

Where sno in (Select sno

From sc

Where cno in ( Select cno

From Teacher

Where TNAME like ‘刘%')) (13)查询全部学生都选修的课程号。

Select cno,cnme

From course c

Where not exists(Select *

From student a

Where not exists (Select *

From sc

Where = and =)

(14)查询年龄大于女同学平均年龄的男同学姓名和年龄。

Select sanme,age

From stident

Where sex=’男’ and age>(

Select avg(age)

From student

Where sex=’女’)

数据依赖是一个关系内部属性与属性之间的一种约束关系。

例:对仓库关系

仓库(仓库号,城市,面积)

有函数依赖:

仓库号→城市(城市函数依赖于仓库号)

仓库号→面积(面积函数依赖于仓库号)

如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖。

例、(学号,课程号)→成绩非平凡依赖

如果X→Y,但Y包含于X,则称X→Y是平凡的函数依赖。

例、(学号,所在系)→所在系平凡依赖

如果X→Y,并且对于X的一个任意真子集X1, 都有Y不函数依赖于X1,则称Y完全函数依赖于X

例如:( 订单编号,ISBN)→数量是完全函数依赖,

原因:订单编号/→数量(数量不函数依赖于订单编号)

ISBN /→数量(数量不函数依赖于ISBN)

但( 订单编号,ISBN)→Quantity。

如果X→Y(但Y不包含于X、Y不函数依赖于X)Y→Z,则称Z传递函数依赖于X。例:学号→专业,专业→所在系,则所在系传递函数依赖于学号

如果X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖。

例:(学号、课程号)→所在系是部分函数依赖

原因:学号→所在系成立,而学号是(学号、课程号)的真子集

Amstrong公理:

设有关系模式R(U,F),X、Y、Z均为U的子集,推理规则如下:

①自反律:如果YíX,则X→Y;

②增广律:如果X→Y,则XZ→YZ;

③传递律:如果X→Y、Y→Z,则X→Z

Amstrong公理的推论:

推论①-合并规则:如果X→Y、X→Z,则X→YZ;

推论②-分解规则:如果X→YZ,则X→Y、X→Z;

推论③-伪传递规则:如果X→Y、YW→Z,则XW→Z。

数据库SQL查询例题及解答

1 实验目的 1.熟悉数据库的交互式SQL工具。 2.熟悉通过SQL对数据库进行操作。 3.完成作业的上机练习。 2 实验工具sql server 利用Sql server及其交互式查询工具-查询分析器来熟悉SQL。 3 实验内容和要求 1)实验内容: 创建数据库boat,包括Sailors,Boats,Reserves三个表,表结构如下: Sailors(sid: integer, sname: string, rating: integer, age: real) 船员(船员编号,姓名,级别,年龄) Boats(bid: integer, bname: string, color: string) 船(船编号,名称,颜色) Reserves(sid: integer, bid: integer, day: date) 租赁(船员编号,船编号,日期) (注:下划线表示主键),并插入一定数据。 2)完成下列要求:

(1)查询所有船员的信息 (2)查询所有姓王的船员的信息 (3)查询租用过103号船的船员姓名 (4)查找租用过船只的船员编号 (5)查找rating>7且年龄>25的水手编号 (6)查找租用过红船和绿船的水手名字 (7)查找租用过红船或绿船的水手编号 (8)查找最年长的水手的年龄和名字 (9)在18岁以上水手中,对于每个rating级别中最少有两个水手以上的组中最年轻水手的年龄 (10)查找每条红色船只被租用的次数 (11)把30岁以上船员的级别调高一级 (12)删除所有年龄超过40岁的船员信息 (13)建立年龄超过25岁的船员的视图 (14)对(13)建立的视图,举一操作的例子(查询、删除、修改均可) 2)要求: a.建立boat数据库的SQL脚本,插入所有数据项的SQL脚本(包括所有的测试数据)。 b.记录完成查询要求的SQL语句脚本。 c.记录完成查询的查询结果。

SQLServer数据库试题九及答案

SQL Server数据库试题九及答案 一、选择题(每题2分,共30分) 1、下面不属于数据定义功能的SQL语句是:() A.CREAT TABLE B.CREAT CURSOR C.UPDA TE D.ALTER TABLE 2、SQL数据库中的视图与下列哪项是对应的()。 A.关系模式 B.存储模式 C.子模式 D.以上都不是 3、下列选项中不是数据库复制类型的是()。 A.快照复制 B.差异复制 C.事务复制 D.合并复制 4、下列说法错误的是: ()。 A.一个基本表可以跨一个或多个存储文件 B. 一个存储文件可以跨一个或多个基本表 C.每个存储文件与外部存储器上一个物理文件对应 D.每个基本表与外部存储器上一个物理文件对应 5.显示包含警告信息或其他信息的消息框,应该使用的操作是()。 A.Echo B.Message C.Warn D.MsgBox 6、在SQL Server 2000中,索引的顺序和数据表的物理顺序相同的索引是()。 A.聚集索引 B.非聚集索引 C.主键索引 D.唯一索引 7. SQL Server的字符型系统数据类型主要包括()。 A. Int、money、char B. char、varchar、text C. datetime、binary、int D. char、varchar、int 8、以下选项中哪一项不是访问数据库系统的接口()。 A.ODBC B.OLE DB C.API D.ADO 9、在SELECT语句的WHERE子句的条件表达式中,可以匹配0个到多个字符的通配符是() A.* B.% C.- D.? 10、SELECT语句中与HA VING子句同时使用的是()子句。 A.ORDER BY B.WHERE C.GROUP BY D.无需配合 11~15题使用如下数据: 当前盘当前目录下有数据库db_stock,其中有表stock的内容是: 股票代码股票名称单价交易所 600600 青岛啤酒7.48 上海 600601 方正科技15.20 上海 600602 广电电子10.40 上海 600603 兴业房产12.76 上海 600604 二纺机9.96 上海 600605 轻工机械14.59 上海 000001 深发展7.48 深圳 000002 深万科12.50 深圳 11、有如下SQL语句 create view stock_view as select * from stock where 交易所=”深圳” 执行该语句后产生的视图包含的记录个数是() A.1 B.2 C.3 D.4 12、有如下SQL语句

SQL Server习题及答案

1. 有个用户的计算机不能连接到中心机房的SQL Server 2000上。你在调试过程中发现这个用户的计算机的网络功能是正常的,而且其他用户都能正常地连接到SQL Server 2000。下面的哪些工具有助于你诊断和解决该问题?(多选) A.Enterprise Manager B.Server Network Utility C.Profiler D.Query Analyzer E.Client Network Utility 答:B和E 2. 你在SQL Server 2000创建了酒店管理系统的数据库HotelDB,并创建了表CustInfo。当下面的哪些数据库被删除的情况下,仍能正确地执行“SELECT * FROM CustInfo?A.Model B.Tempdb C.Msdb D.Master E.Pubs 答:A、C、E 3. 你正在使用SQL Server 2000开发银行交易系统,为了保证商业数据在网络传输(用TCP/IP协议)时不会被窃取,你在SQL Server 2000中启用了网络加密功能。请问该功能在哪一层被实现? A.TCP/IP协议软件 B.超级套接字层 C.开放式数据服务 D.关系引擎 E.存储引擎 答:B 4. 你正在使用SQL Server 2000开发超市收银系统。在客户端编写软件时使用SQL语句“SELECT * FROM Products”来查询商品的信息,但是不小心把Products输入成Product。请问该错误在哪一层被发现? A.客户端的数据库API B.客户端的NET-LIBRARY C.服务器端的开放式数据服务 D.服务器端的关系引擎 E.服务器端的存储引擎 答:D

SQLServer选择题含答案去原题

第一套选择题 1.下列说法错误的是()。 A.内嵌表值函数没有函数主体,返回的表是单个SELECT语句的结果集B.多语句表值函数的调用与内嵌表值函数的调用方法相同 C.多语句表值函数的功能可以用标量函数来实现 D.在内嵌表值函数的定义中,不使用BEGIN…END块定义函数主体2.以下哪个事件不能激活DML触发器的执行()。 A.SELECT B. UPDATE C. INSERT D. DELETE 3.以下哪个数据库实例不属于系统数据库()。 A.master B.model C.msdb D.temp 4.执行以下语句: DECLARE @n int Set @n=3 WHILE @n<5 Begin IF @n=4 Print ltrim(@n)+‘的平方数为’+ltrim(@n*@n) Set @n=@n+1 End 执行完成后循环次数为()。

A.0次B.1次 C.2次D.死循环 5.利用游标来操纵数据时,所用的FOR UPDATE子句充分利用了事务的哪个特性()。 A.原子性B.一致性 C.永久性D.隔离性 6.关于触发器的描述,下列说法正确的是()。 A.触发器是在数据修改前被触发,约束是在数据修改后被触发 B.触发器是一个能自动执行的特殊的存储过程 C.触发器作为一个独立的对象存在,与数据库中其他对象无关D.inserted表和deleted表是数据库中的物理表 7.关于服务器角色与数据库角色,说法正确的是()。 A.只能将一个登录名添加为某个固定服务器角色的成员 B.只能将一个登录名添加为某个固定数据库角色的成员 C.sysadmin是固定数据库角色 D.db_owner是固定服务器角色 8.关于创建永久备份设备,下列说法错误的是()。 A.执行系统存储过程sp_addumpdevice创建永久备份设备 B.执行系统存储过程sp_dropdevice删除永久备份设备 C.若被删除的“命名备份设备”的类型为磁盘,那么必须指定DELFILE选项D.只须指定该命名备份设备的物理名,无须指定该命名备份设备的逻辑名9.能够将‘java’课的学分赋值给变量的语句是哪一个()。

sql查询题目及答案

数据库中有如下三个表: 学生表(学号id,姓名name,性别sex,系部depart,年龄age)8个学生记录 选课表(学号id,课程号cid,成绩grade) 12门课程 课程表(课程号cid,课程名cname,学分Ccredit) 6门课程 学生-课程模式 S-T : 学生表:Student(Sno,Sname,Ssex,Sage,Sdept) 课程表:Course(Cno,Cname,Cpno,Ccredit) 学生选课表:SC(Sno,Cno,Grade) 1.从学生表中查询所有同学的所有信息 select*from学生表 2.从学生表中查询所有学生的信息,并分别赋予一个别名 select学号as xuehao,姓名as xingming,性别as xingbie,系部as xibu,年龄as nianling from学生表 3.从学生表中查询姓名是Allen的学生的信息 select*from学生表 where姓名='Allen' 4.从学生表中查询 学号在1101到1199之间的所有学生的信息 select*from学生表 where学号between 1101 and 1199 5.从学生表中查询年龄小于18和大于20的所有学生的学号和姓名 select学号,姓名from学生表 where年龄<18 or年龄>20 6.从学生表中查询计算机系年龄小于20的所有学生的信息 select*from学生表 where系部='computer'and年龄<20 7.从学生表中查询姓名以A开头的学生的信息 select*from学生表 where姓名LIKE'A%'

2016sql数据库期末考试题及答案

一、单选题(共10 道试题,共50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是(C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 满分:5 分 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D )。 A. Update B. Delete C. Insert D. Alter 满分:5 分 3. 在查询语句的Where子句中,如果出现了“age Between 30 and 40”,这个表达式等同于(A )。 A. age>=30 and age<=40 B. age>=30 or age<=40 C. age>30 and age<40 D. age>30 or age<40

满分:5 分 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 满分:5 分 5. 记录数据库事务操作信息的文件是(D )。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 满分:5 分 6. 要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用(C)命令。 A. SELECT * FROM CP WHERE 产品名称LIKE ‘冰箱’ B. SELECT * FROM XSH WHERE 产

品名称LIKE ‘冰箱’ C. SELECT * FROM CP WHERE 产品名称LIKE ‘%冰箱%’ D. SELECT * FROM CP WHERE 产品名称=‘冰箱’ 满分:5 分 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D )。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 满分:5 分 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的(D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 满分:5 分

sql查询练习题含答案

--(1)查询20号部门的所有员工信息。 select * from emp e where e.deptno=20; --(2)查询奖金(COMM)高于工资(SAL)的员工信息。 select * from emp where comm>sal; --(3)查询奖金高于工资的20%的员工信息。 select * from emp where comm>sal*0.2; --(4)查询10号部门中工种为MANAGER和20号部门中工种为CLERK的员工的信息。select * from emp e where (e.deptno=10 and e.job='MANAGER') or (e.deptno=20 and e.job='CLERK') --(5)查询所有工种不是MANAGER和CLERK, --且工资大于或等于2000的员工的详细信息。 select * from emp where job not in('MANAGER','CLERK') and sal>=2000; --(6)查询有奖金的员工的不同工种。 select * from emp where comm is not null; --(7)查询所有员工工资和奖金的和。 select (e.sal+nvl(https://www.doczj.com/doc/ce7173169.html,m,0)) from emp e; --(8)查询没有奖金或奖金低于100的员工信息。 select * from emp where comm is null or comm<100; --(9)查询员工工龄大于或等于10年的员工信息。 select * from emp where (sysdate-hiredate)/365>=10; --(10)查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select initcap(ename) from emp; select upper(substr(ename,1,1))||lower(substr(ename,2)) from emp; --(11)显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序, --若月份相同则按入职的年份排序。 select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'MM') month from emp order by month,year; --(12)查询在2月份入职的所有员工信息。 select * from emp where to_char(hiredate,'MM')='02' --(13)查询所有员工入职以来的工作期限,用“**年**月**日”的形式表示。 select e.ename,floor((sysdate-e.hiredate)/365)||'年' ||floor(mod((sysdate-e.hiredate),365)/30)||'月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||'日' from emp e; --(14)查询从事同一种工作但不属于同一部门的员工信息。

数据库中SQL查询语句习题含的答案

.word 版本可编辑. 查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.doczj.com/doc/ce7173169.html,o=‘C2’ AND https://www.doczj.com/doc/ce7173169.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.doczj.com/doc/ce7173169.html,o=https://www.doczj.com/doc/ce7173169.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.doczj.com/doc/ce7173169.html,o=https://www.doczj.com/doc/ce7173169.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。 17:查询选修了课程的学生人数。 18:计算选修了C1课程的学生平均成绩。

sql考试题及答案

sql考试题及答案 【篇一:sql试题及答案】 题(在每个小题四个备选答案中选出一个正确答案,填在题末的括号中)(本大题共10小题,每小题2分,总计20分) 1. ()是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。 a.dbms b.db c.dbs d.dba 2. 下列四项中,不属于sql2005实用程序的是()。 a.对象资源管理器 b.查询分析器 c.服务管理器 d.媒体播放器 3. sql server安装程序创建4个系统数据库,下列哪个不是()系统数据库。 a. master b. model c. pub d. msdb 4. 下列哪个不是sql 数据库文件的后缀。 a..mdf b..ldf c..tif d..ndf 5. sql语言允许使用通配符进行字符串匹配的*作,其中?%?可以表示() a.零个字符 b.1个字符串 c. 多个字符串 d. 以上都是 6. sql语言中,条件年龄 between 15 and 35表示年龄在15至35之间,且( )。 a.包括15岁和35岁 b.不包括15岁和35岁 c.包括15岁但不包括35岁 d.包括35岁但不包括15岁 7. sql的视图是从()中导出的。 a. 基本表 b. 视图 c. 基本表或视图 d. 数据库 8. 在sql语言中,建立存储过程的命令是() a、create procedure b、create rule c、create dure d、create file 9. sql语言中,删除表中数据的命令是( )。 a. delete b. drop

SQL练习题

测试表格 --1.学生表 Student(S#,Sname,Sage,Ssex) --S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --2.课程表 Course(C#,Cname,T#) --C# --课程编号,Cname 课程名称,T# 教师编号 --3.教师表 Teacher(T#,Tname) --T# 教师编号,Tname 教师姓名 --4.成绩表 SC(S#,C#,score) --S# 学生编号,C# 课程编号,score 分数 创建测试数据

学生表 Student create table Student(S# varchar(10),Sname nvarchar(10),Sage datetime,Ssex nvarchar(10)) insert into Student values('01' , N'赵雷' , '1990-01-01' , N'男') insert into Student values('02' , N'钱电' , '1990-12-21' , N'男') insert into Student values('03' , N'孙风' , '1990-05-20' , N'男') insert into Student values('04' , N'李云' , '1990-08-06' , N'男') insert into Student values('05' , N'周梅' , '1991-12-01' , N'女') insert into Student values('06' , N'吴兰' , '1992-03-01' , N'女') insert into Student values('07' , N'郑竹' , '1989-07-01' , N'女') insert into Student values('08' , N'王菊' , '1990-01-20' , N'女') 科目表Course create table Course(C# varchar(10),Cname nvarchar(10),T# varchar(10)) insert into Course values('01' , N'语文' , '02') insert into Course values('02' , N'数学' , '01') insert into Course values('03' , N'英语' , '03')

sql查询练习题2013

单表查询: 1、查询<学生信息表>,查询学生"张三"的全部基本信息 2、查询<学生信息表>,查询学生"张三"和”李四”的基本信息 3、查询<学生信息表>,查询姓"张"学生的基本信息 4、查询<学生信息表>,查询姓名中含有"四"字的学生的基本信息 5、查询<学生信息表>,查询姓名长度为三个字,姓“李”,且最后一个字是“强”的全部学生信息。 6、查询<学生信息表>,查询姓"张"或者姓”李”的学生的基本信息。 7、查询<学生信息表>,查询姓"张"并且"所属省份"是"北京"的学生信息 8、查询<学生信息表>,查询"所属省份"是"北京"、”新疆”、”山东”或者"上海"的学生的信息 9、查询<学生信息表>,查询姓"张",但是"所属省份"不是"北京"的学生信息Select * 10、查询<学生信息表>,查询全部学生信息,并按照“性别”排序,性别相同的情况下按照“所属省份”排序,所属省份相同的情况下再按照“班级”排序 11、查询<学生信息表>,查询现有学生都来自于哪些不同的省份 12、查询<学生选修信息表>,查询没有填写成绩的学生的学号、课程号和成绩 13、查询<学生选修信息表>,查询全部填写了成绩的学生的选修信息,并按照“成绩”从高到低进行排序 聚合查询 1、统计<学生信息表>,统计共有多少个学生 2、统计<学生信息表>,统计年龄大于20岁的学生有多少个 3、统计<学生信息表>,统计入学时间在1980年至1982年的学生人数 4、统计<学生选修信息表>,统计学号为"S001"的学生的平均成绩 5、统计<学生选修信息表>,统计学号为"S001"的学生的总成绩 6、统计<学生选修信息表>,查询课程号为”C001”的课程的最高成绩 7、统计<学生信息表>,查询所有学生中的最大年龄是多少 分组查询练习 1、统计<学生选修信息表>,统计每个课程的选修人数 2、统计<学生选修信息表>,统计每个同学的总成绩 3、统计<学生信息表>,统计每个班级中每种性别的学生人数,并按照班级排序 4、统计<学生选修信息表>,统计每门课程的平均成绩,并按照成绩降序排序 5、统计<学生选修信息表>,显示有两门以上课程不及格的学生的学号

面试真题及答案SQL面试题目汇总

面试真题 面试范本SQL面试题目汇总 1.触发器的作用? 答:触发器是一中特殊的存储过程,主要是通过事件来触发而被执行的。它可以强化约束,来维护数据的完整性和一致性,可以跟踪数据库内的操作从而不允许未经许可的更新和变化。可以联级运算。如,某表上的触发器上包含对另一个表的数据操作,而该操作又会导致该表触发器被触发。 2.什么是存储过程?用什么来调用? 答:存储过程是一个预编译的SQL语句,优点是允许模块化的设计,就是说只需创建一次,以后在该程序中就可以调用多次。如果某次操作需要执行多次SQL,使用存储过程比单纯SQL语句执行要快。可以用一个命令对象来调用存储过程。 3.索引的作用?和它的优点缺点是什么? 答:索引就一种特殊的查询表,数据库的搜索引擎可以利用它加速对数据的检索。它很类似与现实生活中书的目录,不需要查询整本书内容就可以找到想要的数据。索引可以是唯一的,创建索引允许指定单个列或者是多个列。缺点是它减慢了数据录入的速度,同时也增加了数据库的尺寸大小。 4.什么是内存泄漏? 答:一般我们所说的内存泄漏指的是堆内存的泄漏。堆内存是程序从堆中为其分配的,大小任意的,使用完后要显示释放内存。当应用程序用关键字new等创建对象时,就从堆中为它分配一块内存,使用完后程序调用free或者delete释放该内存,否则就说该内存就不能被使用,我们就说该内存被泄漏了。 5.维护数据库的完整性和一致性,你喜欢用触发器还是自写业务逻辑?为什么? 答:我是这样做的,尽可能使用约束,如check,主键,外键,非空字段等来约束,这样做效率最高,也最方便。其次是使用触发器,这种方法可以保证,无论什么业务系统访问数据库都可以保证数据的完整新和一致性。最后考虑的是自写业务逻辑,但这样做麻烦,编程复杂,效率低下。

数据库中SQL查询语句习题含的答案

查询问题:设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT );学习关系SC (SNO ,CNO ,GRADE );课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS ”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno ,Sname ,Sex FROM S WHERE Sdept =’CS ’; (2)检索学习课程号为C2的学生学号与姓名; (1)首先在C 表中找出“DS ”课程的课程号Cno ; (2)然后在SC 表中找出Cno 等于第一步给出的Cno 集合中的某个元素Cno ; (3)最后在S 关系中选出Sno 等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname 送入结果表列。 SELECT Sno ,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS ’)); (4)检索选修课程号为C2或C4的学生学号; SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’; (5)检索至少选修课程号为C2和C4的学生学号; SELECT Sno FROM SC X ,SC Y WHERE X.Sno=Y.Sno AND https://www.doczj.com/doc/ce7173169.html,o=‘C2’ AND https://www.doczj.com/doc/ce7173169.html,o=‘C4’ ; (6)检索不学C2课的学生姓名和年龄; 在表S 中找学生,要求这个学生学了全部课程。换言之,在S 表中找学生,在C 中不存在一门课程,这个学生没有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE SC.Sno=S.Sno AND https://www.doczj.com/doc/ce7173169.html,o=https://www.doczj.com/doc/ce7173169.html,o )); (8)查询所学课程包含学生S3所学课程的学生学号。 分析:不存在这样的课程Y ,学生S3选了Y ,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE Y.Sno=‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE Z.Sno=X.Sno AND https://www.doczj.com/doc/ce7173169.html,o=https://www.doczj.com/doc/ce7173169.html,o )); 设教学数据库Education 有三个关系: 学生关系S (SNO ,SNAME ,AGE ,SEX ,SDEPT ); 学习关系SC (SNO ,CNO ,GRADE ); 课程关系C (CNO ,CNAME ,CDEPT ,TNAME ) 查询问题: 1:查所有年龄在20岁以下的学生姓名及年龄。 2:查考试成绩有不及格的学生的学号 3:查所年龄在20至23岁之间的学生姓名、系别及年龄。 4:查计算机系、数学系、信息系的学生姓名、性别。 5:查既不是计算机系、数学系、又不是信息系的学生姓名、性别 6:查所有姓“刘”的学生的姓名、学号和性别。 7:查姓“上官”且全名为3个汉字的学生姓名。 8:查所有不姓“张”的学生的姓名。 9:查DB_Design 课程的课程号。 10:查缺考的学生的学号和课程号。 11:查年龄为空值的学生的学号和姓名。 12:查计算机系20岁以下的学生的学号和姓名。 13:查计算机系、数学系、信息系的学生姓名、性别。 14:查询选修了C3课程的学生的学号和成绩,其结果按分数的降序排列。 15:查询全体学生的情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。 16:查询学生总人数。

sql查询练习题含答案

--( 1) 查询20 号部门的所有员工信息。select * from emp e where e.deptno=20; --(2)查询奖金(COMM )高于工资(SAL )的员工信息。 select * from emp where comm>sal; --(3)查询奖金高于工资的20% 的员工信息。 select * from emp where comm>sal*0.2; --(4)查询10号部门中工种为MANAGER 和20 号部门中工种为CLERK 的员工的信息。select * from emp e where (e.deptno=10 and e.job='MANAGER') or (e.deptno=20 and e.job='CLERK') --(5)查询所有工种不是MANAGER 和CLERK , --且工资大于或等于2000 的员工的详细信息。 select * from emp where job not in('MANAGER','CLERK') and sal>=2000; --(6)查询有奖金的员工的不同工种。 select * from emp where comm is not null; --(7)查询所有员工工资和奖金的和。 select (e.sal+nvl(https://www.doczj.com/doc/ce7173169.html,m,0)) from emp e; --(8)查询没有奖金或奖金低于100 的员工信息。 select * from emp where comm is null or comm<100; --(9)查询员工工龄大于或等于10 年的员工信息。 select * from emp where (sysdate-hiredate)/365>=10; --( 10) 查询员工信息,要求以首字母大写的方式显示所有员工的姓名。 select initcap(ename) from emp; select upper(substr(ename,1,1))||lower(substr(ename,2)) from emp; --( 11) 显示所有员工的姓名、入职的年份和月份,按入职日期所在的月份排序,--若月份相同则按入职的年份排序。 select ename,to_char(hiredate,'yyyy') year,to_char(hiredate,'MM') month from emp order by month,year; --(12) 查询在 2 月份入职的所有员工信息。 select * from emp where to_char(hiredate,'MM')='02' --(13) 查询所有员工入职以来的工作期限,用“** 年**月** 日”的形式表示。 select e.e name,floor((sysdate-e.hiredate)/365)『年' ||floor(mod((sysdate-e.hiredate),365)/30)||' 月' ||floor(mod(mod((sysdate-e.hiredate),365),30))||' 日' from emp e; --( 14) 查询从事同一种工作但不属于同一部门的员工信息。

数据库SQL查询语句练习题

设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME)查询问题: (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名; (4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。 (1)检索计算机系的全体学生的学号,姓名和性别; SELECT Sno,Sname,Sex FROM S WHERE Sdept ='CS'; (2)检索学习课程号为C2的学生学号与姓名; Sname ,1.SELECT SnoSname ,2.SELECT S.SnoFROM S SC , FROM SWHERE Sno IN WHERE S.Sno=SC.Sno SELECT Sno (;C2'AND https://www.doczj.com/doc/ce7173169.html,o=‘ FROM SC )‘C2' WHERE Cno= DS)检索选修课程名为“”的学生学号与姓名(3表建立它们二者的表没有直接联系,必须通过SC表中,但S和C 本查询涉及到学号、姓名和课程名三个属性,分别存放在S和C S SC →联系。 C →基本思路: Cno;表中找出“DS”课程的课程号(1)首先在C ;Cno 集合中的某个元素Cno2)然后在SC表中找出Cno等于第一步给出的(送入结果表列。和SnameSno等于第二步中Sno 集合中某个元素的元组,取出Sno S(3)最后在关系中选出Sname ,SELECT SnoFROM S WHERE Sno IN SELECT Sno ( FROM SC WHERE Cno IN SELECT Cno ( FROM C );DS') WHERE Cname=‘ 的学生学号;C2或C4(4)检索选修课程号为SELECT Sno FROM SC ';'C2 OR Cno=‘C4WHERE Cno=‘

数据库中SQL查询语句习题含答案

查询问题:设教学数据库Education有三个关系: 学生关系S(SNO,SNAME,AGE,SEX,SDEPT);学习关系SC(SNO,CNO,GRADE);课程关系C(CNO,CNAME,CDEPT,TNAME) (1)检索计算机系的全体学生的学号,姓名和性别; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名;(4)检索选修课程号为C2或C4的学生学号; (5)检索至少选修课程号为C2和C4的学生学号;(6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; (8)查询所学课程包含学生S3所学课程的学生学号。(1)检索计算机系的全体学生的学号,姓名和性别;SELECT Sno,Sname,Sex FROM S WHERE Sdept =’CS’; (2)检索学习课程号为C2的学生学号与姓名; (3)检索选修课程名为“DS”的学生学号与姓名本查询涉及到学号、姓名和课程名三个属性,分别 存放在S和C表中,但S和C表没有直接联系,必须通过SC表建立它们二者的联系。 C → SC → S 基本思路: (1 )首先在C表中找出“DS”课程的课程号Cno;(2)然后在SC表中找出Cno等于第一步给出的Cno 集合中的某个元素Cno; (3)最后在S关系中选出Sno等于第二步中Sno 集合中某个元素的元组,取出Sno 和Sname送入结果表列。SELECT Sno,Sname FROM S WHERE Sno IN (SELECT Sno FROM SC WHERE Cno IN (SELECT Cno FROM C WHERE Cname=‘DS’)); (4)检索选修课程号为C2或C4的学生学号;SELECT Sno FROM SC WHERE Cno=‘C2’ OR Cno=‘C4’;(5)检索至少选修课程号为C2和C4的学生学号;SELECT Sno FROM SC X,SC Y WHERE = AND =‘C2’ AND =‘C4’; (6)检索不学C2课的学生姓名和年龄; (7)检索学习全部课程的学生姓名; 在表S中找学生,要求这个学生学了全部课程。换言之,在S表中找学生,在C中不存在一门课程,这个学生没有学。 SELECT Sname FROM S WHERE NOT EXISTS (SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM SC WHERE = AND =)); (8)查询所学课程包含学生S3所学课程的学生学号。分析:不存在这样的课程Y,学生S3选了Y,而其他学生没有选。 SELECT DISTINCT Sno FROM SC AS X WHERE NOT EXISTS (SELECT * FROM SC AS Y WHERE =‘S3’ AND NOT EXISTS (SELECT * FROM SC AS Z WHERE = AND =));

(SQL-Server)考试试题及答案

2013年(下)全国信息技术水平考试数据库应用系统设计技术水平证书 (SQL Server)考试试卷 第一大题:单选题(30 分) 1. (1分) 数据模型的三要素不包括()。 (A) 数据结构(B) 数据操作(C) 数据完整性约 束(D) 数据恢复 2. (1分) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 ()。 (A) 结构独立性(B) 物理独立性(C) 逻辑独立 性(D) 分布独立性 3. (1分) 如果对于实体集A中的每一个实体,实体集B中可有多个实体与之联 系;反之,对于实体集B中的每一个实体,实体集A中也可有多个实体与之联系。则称实体集A与B具有()。 (A) 1:1联系(B) 1:n联系(C) n:m联 系(D) 多种联系 4. (1分) 当对关系R和S使用自然联接时,一般要求R和S至少含有一个共同的()。 (A) 元组(B) 关键字(C) 记 录(D) 属性 5. (1分) 若关系模式R(A,B,C,D,E)上的函数依赖集F={AB->C,A->D,A->E},为了满足BCNF,可以将R分解为()。 (A) R1(A,B,C,D) R2(A,E) (B) R1(A,B,C) R2(A,D,E) (C) R1(A,B,C) R2(D,E) (D) R1(A,B) R2(A,C,D,E) 6. (1分) SQL语言查询一次的结果是一个()。 (A) 元组(B) 表(C) 属性(D) 数据

库 7. (1分) 在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,则称函数依赖X→Y为()。 (A) 平凡函数依赖 (B) 部分函数依赖 (C) 完全 函数依赖 (D) 传递函数依赖 8 . (1分) 在Transact-SQL中,下列命令能让程序完全跳出循环的是( )。 (A) CASE (B) WAIT (C) BREAK (D) CONTINU E 9 . (1 分) 在Transact-SQL中,下列选项不属于数值型数据类型的是( )。 (A) NUMERIC (B) DECIMAL (C) INTEGER (D) DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是( )。 (A) 张 _ (B) 张 % (C) 张 ^ (D) 张& 1 1. (1 分) 下列聚合函数中正确的是( )。 (A) SUM (*) (B) MAX (*) (C) COUNT (*) (D) AVG (*) 12. (1 分) 如果某一列的数据类型是FLOAT,则不允许对该列使用的函数是( )。 (A) SUM (B) ABS (C) LEFT (D) ROUND 13 . (1 分 ) 在SQL的SELECT语句中,与投影运算对应的子句是( )。 (A) SELECT (B) FROM (C) WHERE (D) GROU P BY 14. (1 分) 在SQL语言中,给表起别名应使用( )。 (A) AS (B) RENAME (C) SET (D) FOR 15. (1分) 在SELECT语句中使用GROUP BY SNO时,SNO必须() 。 (A) 在WHERE中出现 (B) 在FROM中出现

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