您好,欢迎来到欧得旅游网。
搜索
您的当前位置:首页SQL题库(有答案)

SQL题库(有答案)

来源:欧得旅游网


一、选择题:

1、根据关系数据基于的数据模型——关系模型的特征判断下列正确的一项:(_B__)

A、只存在一对多的实体关系,以图形方式来表示。

B、以二维表格结构来保存数据,在关系表中不允许有重复行存在。 C、能体现一对多、多对多的关系,但不能体现一对一的关系。 D、关系模型数据库是数据库发展的最初阶段。

2、在“连接”组中有两种连接认证方式,其中在(_B__)方式下,需要客户端应用程

序连接时提供登录时需要的用户标识和密码。

A、Windows身份验证 B、SQL Server 身份验证

C、以超级用户身份登录时 D、其他方式登录时

3、SQL Server 2000 在安装之前,应注意的事项:(_C__)

A、SQL Server 2000的任何版本在安装时都不用考虑操作系统的制约。

B、SQL Server 2000的安装对硬件的要求不作任何限制。

C、SQL Server 2000 在安装之前,必须在操作系统级启用TCP/IP。

D、在Windows NT Server 4.0上安装SQL Server 2000时,最低的要求是必须安装

Service Pack 4(SP4)以上。 4、关系数据库中,主键是(1_A__),主键的建立有(2_C__)种方法,当运用Transact-SQL语句创建主键时,可以是(3_B__)。 ⑴ A、为标识表中唯一的实体 B、创建唯一的索引,允许空值 C、只允许以表中第一字段建立 D、允许有多个主键的

⑵ A、一 B、二 C、三 D、四 ⑶ A、create table table1 (column1 char(13) not null primary, column2 int not) on primary;

B、alter table table1 with notcheck add constraint [PK_table1] primary key nonclustered ( column1) on primary;

C、alter table table1 column1 primary key ;

5、表在数据库中是一个非常重要的数据对象,它是用来(1_C__)各种数据内容的,

数据库创建后就可以创建表了,创建表可以用(2_D__)等方法来创建。 ⑴ A、显示 B、查询 C、存放 D、检索 ⑵ A、企业管理器 B、查询分析器 C、OSQL D、企业管理器和CREATE TABLE语句

6、为数据表创建索引的目的是(1_A__),可以在创建表时用(2_C__)来创建唯一

索引,也可以用(2___)来创建唯一索引。 ⑴ A、提高查询的检索性能 B、创建唯一索引 C、创建主键 D、归类 ⑵ A、设置主键约束,设置唯一约束

B、Create table,Create index C、设置主键约束,Create index D、以上都可以

7、 在Transact-SQL语法中,用来插入数据的命令是(_A__),用于更新的命令是(___)。 A、INSERT,UPDATE B、UPDATE,INSERT C、DELETE,UPDATE D、CREATE,INSERT INTO

8、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(1_B__),使用关键字(2__A_)可以把重复行屏蔽,将多个查询结果返回一个结果集合的运算符是(3_B__),如果在SELECT语句中使用集合函数时,一定在后面使用(4_A__)。

⑴ A、SELECT,INTO B、SELECT,FROM C、SELECT,GROUP D、仅SELECT ⑵ A、DISTINCT B、UNION C、ALL C、TOP ⑶ A、JOIN B、UNION C、INTO C、LIKE ⑷ A、GROUP BY B、COMPUTE BY C、HAVING D、COMPUTE

9、视图是一种常用的数据对象,它是提供(1_A__)和(1___)数据的另一种途径,可以简化数据库操作,当使用多个数据表来建立视图时,表的连接不能使用(2_A__)方式,并且不允许在该语句中包括(3_B__)等关键字。 ⑴ A、查看,存放 B、查看,检索 C、插入,更新 D、检索,插入 ⑵ A、外连接 B、内连接 C、左连接 D、右连接 ⑶ A、ORDER BY,COMPUTE

B、ORDER BY,COMPUTE,COMPUTR BY C、ORDER BY,COMPUTE BY,GROUP BY D、GROUP BY,COMPUTE BY 10、在SQL SERVER服务器上,存储过程是一组预先定义并(1_B__)的Transact-SQL语句。可以用(2_D__)来声明游标。 ⑴ A、保存 B、编译 C、解释 D、编写 ⑵ A、CREATE CURSOR B、ALTER CURSOR C、SET CURSOR D、DECLARE CURSOR

二、 填空题:

1、 更改 Microsoft SQL Server 登录的密码的命令是_______________,举例说明

其语法格式:_____________________________________。

2、 Windows NT 授权认证模式只适用于________________________平台,对于

Windows95/98操作系统下的SQL Server系统将不适用。

3、 SQL Server中索引类型包括的三种类型分别是

_________________,_________________和____________________。

4、 在SELECT语句的FROM子句中最多可以指定_______个表或视图,相互之

间要用________分隔,当所查询的表不在当前数据库时,可用___________________________格式来指出表或视图对象。

5、 服务器网络实用工具的目的_________________________________。

6、 在当SQL SERVER实例中有DBOA数据库,要将它设置成为单用户状态,

请写出设置命令:___________________________________________。 7、 删除表命令是:___________________________________________。 8、 用SELECT进行模糊查询时,可以使用_________或________匹配符,但要在

条件值中使用____或____等通配符来配合查询。并且,模糊查询只能针对字段类型是_________的查询。

9、 计算字段的累加和的函数是:_______,统计项目数的函数是:________。 10、 SQL SERVER 中的编程语言就是_____________________________语

言。

1、 Sp_password,sp_password “12345”,”54321”,”abc” 2、 Windows NT

3、 唯一索引,簇索引,非簇索引 4、 256,逗号,”数据库.所有者名称.对象名称” 5、 为客户端网络实用工具提供参数。

6、 sp_dboption ‘DBOA’,’single use’,’true’ 7、 drop table

8、 like,not like,”%”,”_”,字符 9、 Sum(),Count() 10、TranSact_SQL

三、 判断题

1、在CREATE INDEX语句中,使用CLUSTERED来建立簇索引。( ) 2、可以在企业管理器中修改数据库的名称。( ) 3、恢复数据,可以在查询分析器中使用这样的命令: BACKUP DATABASE database_name FROM backup ( ) 4、在查询分析器中修改帐户时可以用系统存储过程Sp_modibaccess。( )

5、每个存储过程向调用方返回一个整数返回代码。如果存储过程没有显式设置返回

代码的值,则返回代码为 0,表示成功。

6、在 Transact-SQL 语句中,对不符合所有标识符规则的标识符必须进行分隔。 7、在SQL SERVER中,触发器的执行是在数据的插入、更新或删除之前执行的。 8、在 Transact-SQL 语句的WHERE子句中,完全可以用IN子查询来代替OR逻辑

表达式。

9、通配符“_”表示某单个字符。

10、因为通过视图可以插入、修改或删除数据,因此视图也是一个实在表,SQL

SERVER将它保存在syscommens系统表中。

1、√ 2、× 3、× 4、× 5、√ 6、√ 7、× 8、× 9、√ 10、×

四、 简答题:

1、 写出关系型数据库的第一、第二、第三标准形式的各自要求。

①第一标准形式:由原子值和主键值组成,数据表中的每一个字段都不可以再分。(同一数据表中同类字段不允许重复出现,在一个字段内也不允许放置多个数据项) ②第二标准形式:要求所有的非关键字段完全依赖于主键。(或类似的解释)

③第三标准形式:每一个非主键字段列中没有可传递的的依赖性。(一个非主键列不能依赖于另一个非主键列)

2、 触发器的类型以及相对的语句命令?

类型:①INSERT触发器、②UPDATE触发器、③DELETE触发器 相对应的语句:①INSERT语句、②UPDATE语句、③DELETE语句

3、 自定义函数的类型?各自原返回值。

自定义函数类型:

①标量函数 返回值:单个数据值 ②内嵌表值函数 返回值:table, ③多语句表值函数 返回值:table

4、 用户权限的种类有哪些?各自的作用?

①对象权限 作用:决定用户对数据库对象所执行的操作,包括用户对数据库中的表、视图、列或存储过程等对象的操作权限

②语句权限 作用:决定用户能否操作数据库和创建数据库对象

③隐含权限 作用:控制那些只能由预定义系统角色的成员或数据库对象所有者执行的活动。

5、写出一条Sql语句: 取出表A中第31到第40记录(SQLServer, 以自动增长的ID作为主键, 注意:ID可能不是连续的。)

select * from A where id between 31 and 40

五、 编程填空题:

1、填写出下列触发器中缺少的关键字,使下面语句完整: if update([lcostprice])

update [b_drug_data] set [scostprice] = ((select [lcostprice] from inserted ___ GROUP BY _________ [codno],[lcostprice],[scostprice] ___ HAVING _____ {b_drug_data.codno} = [inserted.codno])/ (select [fsco] from [b_drug_data] ___ GROUP BY _______ [codno],[fsco] ___ HAVING ______ [b_drug_data.codno] = (select [codno] from inserted group by [codno]))) where [b_drug_data.codno] _IN__ (select [codno] from inserted)

2、设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句应该是: SELECT 学号,姓名,AVG(成绩) AS 平均成绩 FROM Student

GROUP BY__(1)A__ HAVING__(2)B__

(1)A.学号 B.姓名 C.系名 D.课程号 (2)A.COUNT(DISTINCT 学号)>3 B.COUNT(课程号)>3 C.COUNT(DISTINCT 学号)>=3 D.COUNT(课程号)>=3

六、 分析编码题

1、 请使用Transact-SQL 建立如下表:

表名:雇员基本信息表; 字段名 数据类型 宽度 精度 可空性 要求 NO_ID CHAR 7 NOT NULL 设为主键 NAME CHAR 10 NOT NULL SEX CHAR 2 NOT NULL 默认值为”男” AGE INT NOT NULL DEPT VARCHAR 50 NULL PHONE VARCHAR 20 NULL NOTES VARCHAR 50 NULL

CREATE TABLE 雇员基本信息表

(NO_ID char(7) not null primary key, NAME char(10) not null,

SEX char( 2) not null default ‘男’,

AGE int not null,

DEPT varchar(50) null, PHONE varchar(20) null, NOTES varchar(50) null

)

2、 现有1销售表,它们结构如下:

id int (标识号) codno char(7) (商品编码) codname varchar(30) (商品名称) spec varchar(20) (商品规格) price numeric(10,2) (价格) sellnum int (销售数量) deptno char(3) (售出分店编码) selldate datetime (销售时间)

要求:写出查询销售时间段在2002-2-15日到2002-4-29之间,分店编码是

01的所有记录。

SELECT * FROM 销售表

WHERE (selldate >= '2002-2-15' AND selldate <='2002-4-29')

AND deptno = '01'

3、 在table1数据表中增加“No_id”字段,数据类型char(12),不可空,并将其设定为

UNIQUE约束,写出其命令语句。

ALTER TABLE table1 ADD No_id CHAR(12) NOT NULL CONSTRAINT table1_unique UNIQUE 4、现在有个表(class_room)是主表,另外一个表(students)是子表左图所示,若用关联查询得到右边的查询结果,该怎么做?参看下面的图,请写出Sql语句。

select c.classroom_name,s.student_name,s.score from class_room c left join students s on c.classroom_id=s.class_id

5、用SQL写语句:在下列三张表中选出ID 为“1”的人的NAME和AGE。

表1 表2 表3 No Name Age No ID No 102 Ja 23 102 1 102 103 Ba 23 104 1 103 104 Na 24 103 2 104

注意:表3里面的No是对应表1和表2的

也就是说要输出ID=1 的No对应表1,表2的No都相同的数据 Select 表1.name,表2.age from 表1,表2,表3

where 表1.no=表2.no and 表1.no=表3.no and 表3.id=1

6、有一个表StudentAchievement(学生成绩),它有三个字段:StudentID(varchar(8),学生编号),CourseID(varchar(10),课程编号),Achievement(int ,成绩),写一条SQL语句,筛选出每门课程的前两名的学生编号,课程编号,成绩并排序。

SELECT *

FROM STUDENTACHIEVEMENT A WHERE (SELECT COUNT(*)

FROM STUDENTACHIEVEMENT B WHERE B.COURSEID = A.COURSEID

AND B.ACHIEVEMENT >= A.ACHIEVEMENT) <= 2 ORDER BY A.COURSEID, A.ACHIEVEMENT DESC 7、表结构如下:

item(itemno(varchar(20)),in_price(float),out_price(float))----itemno:产品编号,in_price:采购

价,out_price:销售价.

INOut_list(itemno (varchar(20)),flag(char(1),qty(int))---itemno:产品编号,flag:标志,其中flag=1表示入仓,flag=2表示出仓.qty:入仓或出仓数量.

(1) 用一条SQL列出 仓存;

Select itemno,sum(qty)-(select sum(qty) from inout_list a where a.itemno=b.itemno and flag=0 group by itemno)

from inout_list b where flag=1 group by itemno

(2) 用一条SQL列出 每个产品的库存金额;

select itemno,sum(qty)*(select in_price from item where itemno=b.itemno)

-(select sum(qty) from inout_list a where a.itemno=b.itemno and flag=0 group by itemno)*

(select out_price from item where itemno=b.itemno) ) from inout_list b where flag=1 group by itemno

(3)用一条SQL列出 所有产品的库存金额.

select itemno,sum(库存) as 总库存 from (

select =itemno,库存

=sum(qty)*(select in_price from item where itemno=b.itemno)

-(select sum(qty) from inout_list a where a.itemno=b.itemno and flag=0 group by itemno)*

(select out_price from item where itemno=b.itemno) ) from inout_list b where flag=1 group by itemno ) a

group by itemno

8、按照id顺序,给每个人发放奖金,求奖金数累加小于1000时的id号 如下表数据 id bonus 1 89 2 97 3 83 4 94 5 83 6 97 7 99 8 81 9 84 10 92

11 98 12 91 13 82 14 83 15 95 16 98 17 81

到id=11的时候,奖金累计是997,而到id=12的时候奖金累计就是1088 所以id=11就是答案

求用一条sql语句得出这个答案。

Select Top 1 A.id from Where (Select SUM(bonus) Order By id Desc

TEST A

from TEST Where id <=A.id) <1000

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- ovod.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务