一份基本的SQL测试题

这是一份关于SQL的测试题目,涵盖了数据模型、关系数据模型、SQL操作、数据库管理系统、数据完整性、SQL Server触发器等内容,包括选择题、填空题和实际查询语句的应用,旨在考察对SQL基础知识的理解和应用能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

数据库基础测试题

 

姓名:          工号:   

 

一、单项选择题,把合适的选项编号填写在括号内。(每小题1,10)

 

1在数据库技术中,实体-联系模型是一种( A )

A.概念数据模型   B.结构数据模型  C.物理数据模型   D.逻辑数据模型

 

2关系数据模型通常由3部分组成,它们是( B )

A.数据结构,数据通信,关系操作

B.数据结构,数据操作,数据完整性约束

C.数据通信,数据操作,数据完整性约束

D.数据结构,数据通信,数据完整性约束

 

3SQL语言中,删除一个表的命令是( B )

A. DELETE     B. DROP    C. CLEAR    D. REMOVE

 

4.在SQL的查询语句中,order by选项实现对结果表的(D)功能

A. 分组统计        B. 求和        C. 查找        D. 排序

 

5. SQL Server触发器主要针对下列语句创建( B )

A. SELECTINSERTDELETE
B. INSERT
UPDATEDELETE
C. SELECT
UPDATEINSERT
D. INSERT
UPDATECREATE

 

6. 下列哪个不是sql 数据库文件的后缀。 C

A.mdf         B.ldf       C.tif     D.ndf

 

7. SQL中,建立表用的命令是 (  A    )

A.CREATE TABLE                B.CREATE RULE

C.CREATE VIEW                 D.CREATE INDEX

 

8. SQL语言中,条件“年龄BETWEEN 40 AND 50表示年龄在4050之间,且(    A  )

A.包括40岁和50             B.不包括40岁和50

C.包括40岁但不包括50       D.包括50岁但不包括40

 

9. 模式查找like '_a%',下面哪个结果是可能的B

A.aili                        B. bai

C.bba                         D.cca

 

10. 若某表满足1NF,且其所有属性合起来组成主健,则一定还满足范式 ( C )

A、只有2NF                     B、只有3NF

C2NF3NF                    D、没有

 

 

二、填空题,把合适内容填在横线上。(每空1,19)

 

1.DBMS是指_______数据库管理系统_________

 

2视图是由一个或多个______或视图导出的__虚表____或查询表

 

3触发器主要有2种类型,即_____DML_____DDL_______

 

4数据完整性的类型有____引用____完整性、____实体___完整性、__ _____完整性和用户自定义完整性。

 

5.要用SQL Server验证方式访问SQL Server数据库服务器,用户必须提供正确的_____用户名________密码______

 

6.在基本表的某个列上建立索引,可以使基本表中的所有记录按该列值的__升序__ _____降序_____排列。

 

7CHECK约束被称为___用户自定义_____约束,UNIQUE约束被称为__唯一________约束。

 

8______存储过程_是已经存储在SQL Server服务器中的一组预编译过的Transact-SQL语句。

 

9事务的ACID属性是指____原子性____性、__一致______性、_隔离______性和__持久_____性。

 

三、根据下面所给的商品库、教学库,写出下列每条SQL查询语句的执行结果,或者写出下列每条语句或程序段的功能。(每题3分,15分)

商品库的数据库两张表包括

商品表1(商品代号char(8),分类名char(8)单价float数量int)

商品表2(商品代号char(8),产地char(8)品牌char(8)

 

教学的数据库三张表,包括:

学生(学生号 char(7),姓名 char(6),性别 char(2),出生日期 datetime,专业 char(10),年级 int)

课程(课程号 char(4),课程名 char(10),课程学分 int)

选课(学生号 char(7),课程号 char(4),成绩 int)

 

1select x.商品代号,分类名,数量,品牌  

         from 商品表1 x,商品表2 y

      where x.商品代号=y.商品代号

 

2select count(distinct 产地) as 产地数

         from商品表2 

 

3select 课程.课程号,课程.课程名,count(*)as选课人数

      from 课程,选课

      where课程.课程号=选课.课程号

      group by 课程.课程号,课程.课程名

 

4 select x.学生号y.学生号y.课程号

      from 学生x,选课y

      where x.学号=@s1 and y.学号=@s2

          and x.课程号=y.课程号

 

5. select *

      from 课程

      where exists (select *

      from 选课,课程

where课程.课程号=选课.课程号

 

四、根据第三题所给的商品库和教学库,按照下列给的每种功能写出相应的查询语句。(每题4分,32分)

 

1.从商品库中查询出数量大于10的商品种数

select count(商品代号)

  from 商品表1

where 数量>10

 

 

2.从商品库中查询出每类(即分类名相同)商品的最高单价

select max(价格)

from 商品表1

group by 分类名

 

 

3.商品库中查询出比所有商品单价的平均值要高的全部商品。

select *

 from  商品表1

 where 单价>(select Avg(单价) from 商品表1 )

 

4.从商品库中查询出同一类商品多于一种的所有分类名。

Select 分类名

from (select 分类名, count(分类名) as 类型商品数

           from 商品表1

           group by 分类名

          )

where 类型商品数>1

 

 

5.从教学库中查询出被24名学生选修的所有课程

select a.课程号,b.课程名 ,count(学生号) as num from 课程 a,选课 b

where  a.课程号=b.课程号

group by a.课程号,b.课程名

having num between 2 and 4

 

 

 

6. 写一个课程表的触发器,当要删除的课程还没有学生选修,允许删除,否则不允许删除

Create trigger tri课程表

         On 课程

         For delete

         As

         If(exists(select * from 选课,deleted where 选课号 =deleted.选课号))

         Print ‘不允许删除’

         Else

         Print ‘允许删除’

Rollback  transaction

 

 

7. 查询选修课程超过5门的学生姓名和所选修课程的数目?

Select 姓名,num from 学生表 a,(

select 学生号,count(选课.学生号) num

From 选课

Group by 学生号

Having num>5) b where a.学生号 = b.学生号

 

8. 写一个存储过程,输入选修课程名,得到选修该课程的所有学生的学号和姓名

Create  procedure  mypro

@in char(10)

As  select  学生.学生号,学生.姓名 

from 课程 inner join选课 on课程. 课程号=选课. 课程号 inner join学生 on 学生. 学生号=选课. 学生号 where 课程. 课程名=@in

 

五、问答题。(10)

1.  使用保存点是否可以保存事务的一部分?为什么?

可以

 

 

 

 

2.  什么是存储过程?存储过程有哪些优点?用什么来调用?

   存储过程(Stored Procedure)是一组编译好存储在服务器上的完成特定功能T-SQL代码,是某数据库的对象。客户端应用程序可以通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。

 优点:

   (1)允许标准组件式编程,增强重用性和共享性,无须重写sql

   (2)能够实现较快的执行速度

   (3)能够减少网络流量

   (4)可被作为一种安全机制来充分利用

  exec 存储过程名 来调用

 

六、综合题。(14)

1. 查询A(ID,Name)表中第3140条记录,ID作为主键可能是不是连续增长的列

法一 Select top 10 * From A Where ID not in (select top 30 * from A)

法二 go

       Select IDENTITY(INT,1,1) AS ID,NAME

       Into B

       From A

       go

       Select * from B where ID between 31 and 40

       go

 

 

2.  查询表A中存在ID重复三次以上的记录

Select *

From A

Where id in(select ID from A group by id having count(id)>3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值