文档库 最新最全的文档下载
当前位置:文档库 › SQL高级复习题笔试

SQL高级复习题笔试

SQL高级复习题笔试
SQL高级复习题笔试

SQL高级复习题

理论部分

注意:考试结束试卷必须交回,答案填写在答题卡上

1.( )不属于任何文件组。(选一项)

A、次数据文件

B、主数据文件

C、日志文件

D、其他

2.E-R图中,关系集用下面( )来表示。(选一项)

A、矩形

B、椭圆形

C、菱形

D、圆形

3.SQL Server数据库有2种登录认证方式。其中在( )方式下,需要客户端应用程序连接时提

供登录时需要的用户标识和密码。(选一项)

A、Windows身份验证。

B、以超级用户身份登录时。

C、SQL Server 身份验证。

D、以系统身份登录时。

4.SQL Server数据库中,下列不属于T-SQL事务管理语句的是(选一项)

A、BEGIN TRANSACTION;

B、END TRANSA CTION;

C、COMMIT TRANSACTION;

D、ROLLBACK TRANSACTION;

5.Sql server中,( )命令用来删除表对象。(选一项)

A、Drop

B、Remove

C、Truncate

D、Delete

6.SQLServer2005中,已知执行语句:select count(score),sum(score)from score返回的结果是10

和750,那么执行语句:select avg(score) from score,返回的结果是(选一项)

A、10

B、75

C、750

D、7500

7.SQLSever 2005中数据库中,关键字()标志着批处理的结束。(选一项)

A、END

B、GO

C、FINISH

D、PRINT

8.UNIQUE约束和主键约束也是哪种完整性的体现(选一项)

A、域完整性

B、引用完整性

C、实体完整性

D、其他

9.对于下面的存储过程:

CREATE PROCEDURE Myp1 @p Int As

Select Studentname,Age from Students where Age=@p

假如你要在Students表中查找年龄是18岁的学生,()可以正确的调用这个存储过。

(选一项)

A、EXEC Myp1 @p = '18'

B、EXEC Myp1 @p = 18

C、EXEC Myp1 p = '18'

D、EXEC Myp1 p = 18

10.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,

从部门到职员的联系类型是(选一项)

A、多对多

B、一对一

C、多对一

D、一对多

11.关于存储过程,以下说法正确的是(选一项)

A、不能在存储过程中使用CREATE VIEW命令。

B、T-SQL批代码的执行速度要快于存储过程。

C、存储过程必须带有参数。

D、存储过程不能返回结果集。

12.关于视图,下列说法正确的是(选一项)

A、视图是用来简化复杂查询语句的良好手段,但不能嵌套

B、视图和索引都不是真实存在的数据,因为不是对象,所以关于他的定义不是保存在

sysobjects表,而是sysviews表

C、要想让别人不知道建立视图的命令,就在建立时添加with encryption

D、视图无法用drop命令删除,应使用delete命令

13.关于数据库三大范式,以下说法错误的是(选一项)

A、数据库设计满足的范式级别越高,数据库性能越好

B、数据库的设计范式有助于规范数据库的设计

C、数据库的设计范式有助于减少数据冗余

D、一个好的数据库设计可以不满足某条范式

14.关于子查询,以下说法正确的是(选两项)

A、一般来说,表连接都可以用子查询替换。

B、一般来说,子查询都可以用表连接替换。

C、相对于表连接,子查询适合于作为查询的筛选条件。

D、相对于表连接,子查询适合于查看多表的数据。

15.关于子查询下列说法中正确的是(选一项)

A、子查询中的条件可以有变量

B、子查询可以放在父查询的where后,但无法放在select和from中间

C、如果子查询放在父查询中对父查询的语法结构不产生影响,那么子查询可以省略外面的

小括号

D、子查询可以嵌套,但最多不能超过3层

16.假定一位教师可讲授多门课程,一门课程可由多位教师讲授,教师与课程之间是(选一项)

A、一对一的关系

B、一对多的关系

C、多对一的关系

D、多对多的关系

17.假设order表中存在orderid等于1的记录,执行下面T-SQL:

BEGIN TRANSACTION

Delete from Order where orderid=1

IF (@@Error <> 0)

ROLLBACK TRANSACTION

ROLLBACK TRANSACTION

以下说法正确的是(选一项)

A、执行成功,Orderid为1的记录被永久删除。

B、执行成功,Order表没有任何变化。

C、执行时出现错误。

D、执行成功,但事务处理并没有结束。

18.假设需要设计一个表,记录各个作者著作的所有图书信息,表结构设计如下:作者(作者名

称、图书1、版本1、书价1、图书2、版本2、书价2、……),该表最高符合第( )范式。

(选一项)

A、一

B、二

C、三

D、未规范化的

19.假设有表student的设计如下:ID(学号),Name(姓名),Address(家庭住址),Department(所在

系),DepartmentHead(系主任). 该表最高满足第( )范式。(选一项)

A、一

B、二

C、三

D、不满足任何范式;

20.建立一张员工表(employee),当向表中插入数据时,若不提供入职时间(beginTime),就把系

统当前时间自动作为员工入职时间插入数据库中,以下说法正确的是(选一项)

A、约束中不能使用各种函数,所以只能使用触发器来实现。

B、可以使用CHECK约束实现,默认值采用日期函数getDate()。

C、入职时间必须设为日期类型。

D、可以使用DEFAUL T 约束实现,默认值采用日期函数getDate()。

21.将E-R图转换为表的过程中,如果实体之间存在多对多的关系,通常的做法是(选一项)

A、在两个实体间建立主外键关系。

B、在两个实体间建立关联表,把一个多对多的关系分解成两个一对多的关系。

C、在两个实体间建立关联表,把一个多对多的关系分解成两个一对一的关系。

D、在两个实体间不建立任何关系。

22.命令SELECT 学号,AVG(成绩) AS '平均成绩' FROM XS_KC GROUP BY 学号HAVING

AVG(成绩)>=85,表示(选一项)

A、查找XS_KC表中平均成绩在85分以上的学生的学号和平均成绩

B、查找平均成绩在85分以上的学生

C、查找XS_KC表中各科成绩在85分以上的学生

D、查找XS_KC表中各科成绩在85分以上的学生的学号和平均成绩

23.模式查找like '_a%',下面哪个结果是可能的(选一项)

A、aili

B、bai

C、bba

D、cca

24.某表stuinfo只有2行记录,并且stuname是主键列,则下列语句Select @name = stuname from

stuinfo执行结果说法正确的是(选一项)

A、出现错误

B、没有错误,但@name中没有存储任何值

C、@name存储的是第一行的stuname

D、@name存储的是第二行的stuname

25.某数据库表里的studentID列被定义为studentID int identity(50,2),首先你添加了3条记录,然

后你把第二条记录删除掉,此时,若增加另外一条记录,studentID的值将是(选一项)

A、8

B、54

C、56

D、58

26.如果要确保一个表中的非主键列不输入重复值,应在该列上定义(选一项)

A、PRIMARY KEY

B、UNIQUE KEY

C、CHECK

D、FOREIGN KEY

27.设计用户表时,身份证号为固定18位长,对该字段最好采用( )数据类型。(选一项)

A、int

B、char

C、varchar

D、text

28.使用T-SQL定义两个局部变量AA和BB,正确语句是(选一项)

A、DECLARE @AA,@BB

B、PRIV ATE @AA,@BB

C、PUBLIC @AA,BB

D、DECLARE @AA,BB

29.为表userinfo添加约束,语法如下:alter table userinfo add constraint uq_userid unique ( userid )

执行成功后,为userinfo表的( )字段添加了( )约束。(选一项)

A、Userid ;主键

B、Userid ;唯一

C、Uq_userid ;外键

D、Uq_userid ;检查

30.为了加快对某表的访问速度,应对此表建立(选一项)

A、约束

B、存储过程

C、规则

D、索引

31.为数据库中一个或多个表中的数据提供另一种查看方式的逻辑表被称为(选一项)

A、存储过程

B、触发器

C、视图

D、表

32.下列包含group by的语句正确的是(选一项)

A、Select stuid , stuname from stuinfo group by stuid

B、Select stuid from stuinfo where stuid<1000 group by stuid

C、Select count(stuid) , stuname from stuinfo group by stuid

D、Select stuid , count(stuname) from stuinfo group by stuname

33.下列标识符可以作为局部变量使用(选一项)

A、yvar

B、My var

C、@Myvar

D、@My var

34.下列哪种操作能够得到学生表的最详细信息(选一项)

A、exec sp_help student

B、exec sp_helptext student

C、exec sp_helptable student

D、exec sp_tables student

35.下列行为中,()定义了一个存储过程。(选一项)

A、如果没有提供其他值,则使用此列中定义的值

B、定义了一个有相关列的行的集合

C、当用户修改数据时,一种特殊形式的存储过程被自动执行

D、SQL语句的预编译集合

36.下面()不是数据库规范化要达到的效果。(选一项)

A、改善数据库的设计

B、实现最小的数据冗余

C、可以用一个表来存储所有数据,使设计及存贮更加简化

D、防止更新、插入及删除的时候,产生数据丢失

37.下面T-SQL代码运行完的结果是(选一项)

declare @counter int

set @counter=1

while @counter<3

begin

set @counter=@counter+1

print @counter

break

print 'loop'

end

A、2loop

B、2

C、2loop3loop

D、23

38.下面关于引用完整性约束的说法正确的是(选二项)

A、违反引用完整性约束时,不能对引用表进行插入操作

B、当建立引用表时被引用的表必须已经存在

C、当建立引用表时被引用的列不用已经存在

D、被引用的列不必是主键或者唯一约束

39.项目开发需要经过几个阶段,绘制数据库的E-R图应该在( )阶段进行(选一项)

A、需求分析

B、概要设计

C、详细设计

D、代码编写

40.要查询XSH数据库CP表中产品名含有“冰箱”的产品情况,可用(选一项)

A、SELECT * FROM CP WHERE 产品名称LIKE ‘冰箱’

B、SELECT * FROM XSH WHERE 产品名称LIKE ‘冰箱’

C、SELECT * FROM CP W HERE 产品名称LIKE ‘%冰箱%’

D、SELECT * FROM CP WHERE 产品名称=‘%冰箱%’

41.要建立一个教师表,包含姓名、职称、级别等字段。若插入数据时,级别字段如果不输入,

缺省值为‘讲师’,最合适的实现方法是(选一项)

A、为“级别”字段建立default约束。

B、为“级别”字段建立check 约束。

C、在教师表上建立一个触发器(trigger)。

D、为教师表数据输入编写一个存储过程进行控制。

42.要建立一个约束,保证用户表(user)中年龄(age)必须在16岁以上,下面语句正确的是(选一

项)

A、Alter table user add constraint ck_age CHECK(age>16)

B、A lter table user add constraint df_age DEFAULT(16) for age。

C、A lter table user add constraint uq_age UNIQUE(age>16)。

D、Alter table user add constraint df_age DEFAUL T(age>16)。

43.一般情况下,关系数据模型与对象模型之间有哪些匹配关系(选三项)

A、表对应类

B、记录对应对象

C、表的字段对应类的属性

D、表之间的参考关系对应类之间的依赖关系

44.一个学生只能就读于一个班级,而一个班级可以同时容纳多个学生,学生与班级之间是( )

关系。(选一项)

A、一对一

B、一对多

C、多对一

D、多对多

45.已知employee表中具有默认约束df_email, 删除该约束的语句为(选一项)

A、Alter table employee drop constraint df_email

B、A lter table employee remove constraint df_email

C、A lter table employee delete constraint df_email

D、Remove constraint df_email from table employee

46.已知表A的列amount是int类型,表A的数据如下:

Amount

1

2

3

现有如下语句,

Declare @one int

Select @one = amount from A

则变量@one的结果是(选一项)

A、1

B、2

C、3

D、错误

47.已知有student表,studentid为主键,现在表中共有10行记录,studentid列值从1

到10。

创建试图:

CREATE VIEW dbo.VIEW_student

AS

SELECT * FROM dbo.student

GO

接着执行如下命令:

DELETE FROM VIEW_student WHERE (studentid = 8);

然后执行查询命令:

SELECT * FROM student;

SELECT * FROM VIEW_student;

假定上述命令全部执行成功,将各自返回( )( )行记录。(选一项)

A、10,10

B、10,9

C、9,10

D、9,9

48.以下代码能输出"OK"的代码是(选一项)

A、declare @num nvarchar(10)@num = ‘OK’Print @num

B、declare @num nvarchar(10)@num = ‘OK’Select @num

C、If( true )Print ‘OK’

D、If( 1=1 )Select ‘OK’

49.以下关于规范设计的描述正确的是(选两项)

A、规范设计的主要目的是消除数据冗余。

B、规范设计往往会增加数据库的性能。

C、设计数据库时,规范化程度越高越好。

D、在规范化数据库中,易于维护数据完整性。

50.以下关于外键和相应的主键之间的关系,正确的是(选一项)

A、外键并不一定要与相应的主键同名

B、外键一定要与相应的主键同名

C、外键一定要与相应的主键同名而且唯一

D、外键一定要与相应的主键同名,但并不一定唯一

51.银行系统中有帐户表和交易表,帐户表中存储了各存款人的帐户余额,交易表中存储了各

存款人每次的存取款金额。为保证存款人每进行一次存、取款交易,都正确的更新了该存款人的帐户余额,以下选项中正确的做法是(选一项)

A、在帐户表上创建insert触发器。

B、在交易表上创建insert触发器。

C、在帐户表上创建检查约束。

D、在交易表上创建检查约束。

52.有关T-SQL中变量的使用,以下说法错误的是(选一项)

A、变量的使用必须先声明,后使用。

B、变量的赋值只能使用set语句。

C、可以使用print语句和select语句输出结果。

D、局部变量的命名必须以@打头。

53.有一张销售表(orders),包含销售员编号(salepersonID)、地区编号(regionID)、销售额

(orderamount)三列,其中销售员编号为主键,现希望统计各地区销售总额以及所有销售之和,下面()语句可以实现这一愿望。(选一项)

A、SELECT regionID,SUM(orderamount) From orders

B、SELECT regionID,SUM(orderamount) From orders GROUP BY regionID

C、SELECT regionID,orderamount From orders

D、SELECT * FROM orders

54.阅读下面T-SQL代码:

USE master

GO

CREATE DATEBASE MyDB2

ON

(

……;

SIZE=2.

MAXSIZE=5.

FILEGROWTH=1

)

GO

以下说法正确的是(选一项)

A、创建成功,数据文件的初始大小为50KB,最大允许增加到1000KB

B、创建成功,数据文件每次增长以1M作为单位

C、创建失败,因为必须至少要指定数据文件所在的物理文件的位置

D、创建失败,因为必须要指定数据库的日志文件名称

55.阅读下面T-SQL语句,对变量赋值时存在错误的是(选一项)

A、DECLARE @id INT,@price MONEY set @id=100 set @price=$2.21

B、DECLA RE @id INT,@price MONEY select @id=100,@price=2.21

C、DECLA RE @id INT,@price MONEY set @id=100, @price=2.21

D、DECLARE @id INT,@price MONEY select @id=100 select @price=$2.21

56.运行如下T-SQL,结果返回包含( )的记录集。(选一项)

create table scores

(

scoreid int identity(1,2),

score numeric(4,2) not null,

courseid int

)

insert into scores values(90.5, null);

insert into scores values(100, 2);

select * from scores;

A、1、90.5、null3、100、2

B、1、100、2l

C、1、90.50、null

D、1、90.5、null3、100.0、2

57.运行以下语句,输出结果是(选一项)

CREATE PROC proc_lookup

@mystuNo varchar(8)=NULL

AS

IF @mystuNo IS NULL

BEGIN

Print '您忘记了传递学号参数'

RETURN

END

SELECT * FROM stuInfo WHERE stuNO = @mystuNo

GO

Exec Proc_lookup

A、编译错误

B、调用存储过程Proc_lookup出错

C、显示:您忘记了传递学号参数

D、显示空的学员信息记录集

58.在( )子查询中,内层查询要处理多次,内层查询的条件依赖于外层查询中的某些值(选一

项)

A、IN子查询

B、EXIST子查询

C、JOIN子查询

D、NOT IN子查询

59.在MS SQL Server中,用来显示数据库信息的系统存储过程是(选一项)

A、sp_dbhelp

B、sp_db

C、sp_help

D、sp_helpdb

60.在score表上创建一个触发器:

create trigger tri_score

on score for update,delete

as

if (select count(*) from inserted)>0

print('success')

go

在查询分析器上执行以下( )语句,可能会输出“success”。(选一项)

A、Update score set score=20

B、Delete from score where score<60

C、Insert into score values ( 此处省略)

D、Select * from score

61.在SQL Server 2005 的查询分析器中运行以下的T-SQL:

USE PUBS

GO

SELECT DISTNCT QTY FROM SALES

WHERE QTY>=A LL(SELECT MAX(QTY) FROM SA LES),结果(选一项)

A、正确查询,并返回Sales表中的所有的数据行

B、正确查询,并返回一行数据

C、提示子查询中因缺少GROUP或者GROUP BY子句而产生语法错误

D、提示错误,因为在子查询中使用父查询中的同一张数据库表时,要求使用

62.在SQL Server 2005中,给定如下的T-SQL代码,以下说法正确的是(选一项)

Create procedure price_proc(@count int output, @avg_price money output,@type

Char(12)=’business’)as

Select @Count=count(*),@avg_price=Avg(price) from titles where type=@type

A、建立了存储过程price_price,所有参数都是输出参数

B、建立了存储过程price_price,返回的是用户指定图书种类的数量及平均价格

C、@Count=count(*)也可以使用@Count=count()代替

D、创建存储过程失败,因为Select语句中使用了聚合函数,因此必须使用Group By进行

分组

63.在SQL Server2005的安全类模型中,提供了“服务器”和()两种类型的角色。(选一项)

A、客户端

B、数据库

C、操作系统

D、数据对象

64.在SQL Server2005的查询分析器中运行以下T-SQL:

USE PUBS

GO

CREATE TABLE My_Table

(a int NULL, b int NULL)

GO

CREATE TRIGGER my_trig ON My_Table FOR INSER T

AS

IF UPDATE(b)

BEGIN

CREATE DATABASE AAA

PRINT 'OK…'

END

GO

INSERT My_Table V A LUES(3,4)

GO

UPDATE My_Table SET a=5 W HERE b=4

GO(选一项)

A、正确创建数据库AAA,并且打印OK…

B、第一次正确创建数据库AAA,打印OK…,在第二次触发的时候报告错误信息

C、报告错误信息,提示不能在触发器中使用CREATE DATABASE语句

D、该触发器不会被触发。代码运行完毕后,不创建数据库,也不会得到任何输出信息

65.在SQL Server2005中,创建存储过程如下,要在Students表中查找Age(年龄)是18岁的

学生,()可以正确的调用这个存储过程。(选两项)

A、EXEC Mypl 18

B、EXEC Mypl @p = 18

C、EXEC Mypl p = ‘18’

D、EXEC Mypl P = 18

66.在SQLServer2005中,为数据库表建立索引能够(选一项)

A、防止非法的删除操作

B、防止非法的插入操作

C、提高查询性能

D、节约数据库的磁盘空间

67.在SQL Server2005中,与下列T –SQL语句等效的语句为(选一项)

UPDATE A SET A1 = A1 * 2 WHERE A2 IN (SELECT A2 FROM B WHERE B1 = 2)

A、UPDATE A SET A1 = A1 * 2 INNER JOIN B ON B . B1 = 2

B、UPDATE A SET A1 = A1 * 2 FROM A INNER JOIN B ON B . B1 = 2

C、UPDATE A SET A1 = A1 * 2 W HERE A INNER JOIN B ON A . A2 = B . A2 AND B . B1 = 2

D、UPDATE A SET A1 = A1 * 2 FROM A INNER JOIN B ON A . A2 = B . A2 AND B . B1 = 2

68.在SQL Server查询分析器中,下面语句是用ROUND函数对数据四舍五入和截短处理:

SELECT round(918.2736,3),round(918.2736,-2)运行之后得到的结果是(选一项)

A、918.2730 和900.0000

B、918.2740 和900.0000

C、918.2734 和900

D、918.2736 和918.2700

69.在SQL SERVER服务器上,存储过程是一组预先定义并( )的Transact-SQL语句。(选一项)

A、保存

B、编译

C、解释

D、编写

70.在SQL Server数据库中,()可以看成为虚拟的表。(选一项)

A、游标

B、视图

C、全文索引

D、存储过程

71.在SQL Server数据库中,你想得到在products表中最贵的产品名称和价格应该使用的正确

查询是(选一项)

A、SELECT TOP 1 Productname, Price FROM Products ORDER BY Price

B、SELECT Productname, MAX(Price)FROM Products

C、SELECT TOP 1 Productname, Price FROM Products ORDER BY Price DESC

D、SELECT Productname, MAX(Price)FROM Products GROUP BY Productname

72.在SQL Sever中,执行存储过程MY_PROC的正确的T_SQL为(选一项)

A、RUN MY_PROC

B、EXECUTE MY_PROC

C、STAR T MY_PROC

D、SHELL MY_PROC

73.在SQLServer 20050 中,声明一个最多可以存储5个字符的变量A,正确的代码为

(选一项)

A、DECLARE A V A RCHA R(5)

B、DECLA RE @A V A RCHA R(5)

C、Private A V A RCHAR(5)

D、Private @A V A RCHAR(5)

74.在SQLServer2005中,假设orders表中存在自动编号字段oid等于1的记录,执行下面T-SQL,

以下说法正确的是(选一项)

BEGIN TRANSA CTION

Delete from Orders where oid =1

IF(@@Error<>0)

ROLLBA CK TRA NSA CTION

Else

COMMIT TRA NSA CTION

A、执行成功,oid 为1的记录被永久删除

B、执行成功,order表没有任何变化

C、执行时出现错误

D、执行成功,但事务处理并没有结束

75.在SqlServier2005中,如果a>any(5,2,3),则表示(选一项)

A、a>5

B、a>2

C、a>3

D、2>a>5

76.在SQL视图里有:SELECT DISTINCT 产品.产品名称,产品.单价FROM 产品

WHERE(((产品.单价)>(SELECT AVG([单价]) FROM 产品)))ORDER BY 产品.单价DESC;

下面说法错误的是(选一项)

A、“SELECT AVG([单价])FROM产品”是子查询

B、“ORDER BY产品.单价DESC”是指按单价从低到高顺序排列

C、查询结果显示的是单价大于平均价格的记录

D、此查询显示的字段只有“产品名称”和“单价”

77.在SQL语言中,建立存储过程的命令是。(选一项)

A、CREATE PROCEDURE

B、CREATE RULE

C、CREATE DURE

D、CREATE FILE

78.在某个触发器中,存在如下代码片断:

Declare @p1 int, @p2 int

Select @p1=price from deleted

Select @p2=price from inserted

print convert(varchar, @p2-@p1)

该触发器是( )触发器。(选一项)

A、select

B、update

C、insert

D、delete

79.在应用开发工具和操作系统、数据库之间一般用()来进行交互,以完成数据交流。(选一

项)

A、数据库系统

B、数据库管理系统

C、应用系统

D、自动化控制系统

80.执行SELECT COL_LENGTH('AA','BB')的结果是(选一项)

A、返回AA数据库BB表的列的个数

B、返回AA表BB列的非空行的数量

C、返回AA表BB列的长度

D、返回AA列的BB属性值

81.主键可以由表中的()个字段组成(选一项)

A、一

B、二

C、三

D、任意多个

82.在E-R图中,实体、属性和关系分别用()来表示(选一项)

A、矩形、菱形、椭圆

B、矩形、椭圆、菱形

C、椭圆、菱形、矩形

D、椭圆、矩形、菱形

sql数据库基础面试题复习试题考试题_全

不定项选择题(针对以下题目,请选择最符合题目要求的答案,每道题有一项或二项正确答案。针对每一道题目,所有答案都选对,则该题得分,所选答案错误或不能选出所有答案,则该题不得分。题量为50道,每题2分,总分为100分。) 第一章 1、是SQLServer数据库的主数据文件的扩展名。(选择一项) A、.sql B、.mdb C、.ldf D、.mdf 2、在SQL Server 2005中,有系统数据库和用户数据库,下列不属于系统数据库的是()。 (选择一项) A、master B、pubs C、model D、msdb 3、当安装完SQL Server2005数据库时,系统默认当前的超级管理员是( ) (选择一项) A、sa B、master C、administrator D、super 4、在使用SQL Server2005数据库时,有时需要将本机的数据库移动到其他机器上,恢复成对应的数据库使用。移动数据库分两步进行,应包括()和附加数据库(选择一项)A、分离数据库 B、删除数据库 C、新建数据库 D、合并数据库 5、在SQL Server2005中,附加数据库操作是指()(选择一项) A、把SQL Server 数据库文件保存为其他数据文件 B、根据数据库物理文件中的信息,把数据库在SQL Server 2005中恢复 C、把所有该数据库表的数据清空 D、把数据库删除掉 6、某单位由不同的部门组成,不同的部门每天都会生产一些报告、报表等数据,以为都采用纸张的形式来进行数据的保存和分类,随着业务的发展,这些数据越来越多,管理这些报告越来越费力,此时应考虑()(选择一项) A、由多个人来完成这些工作 B、在不同的部门中,由专门的人员去管理这些数据 C、采用数据库系统来管理这些数据 D、把这些数据统一成一样的格式 7、在SQL Server 2005中,对于数据库的定义正确的是()(选择一项) A、数据库是用来描述事物的符号记录 B、数据库是位于用户与操作系统之间的一层数据管理软件

SQL经典面试50题

1.一般面试时考SQL,主要就是考你“统计分析”这一块,下面我们来看面试官经常采用的手段。 2. 3. 4.由4张简单的不能再简单的表,演变出50道SQL 5. 6. 7.哈哈哈哈,够这个面试官面个15,20个人,不带重复的了,而且每个SQL你真的不动动脑子还 写不出呢,你别不服气,下面开始。 8. 9.表结构: 10. 11. 12. 13.表Student 14. 15.(S#,Sname,Sage,Ssex) 学生表 16. 17. 18.S# student_no 19. 20.Sage student_age 21. 22.Ssex student_sex 23. 24. 25. 26.表Course 27. 28.(C#,Cname,T#) 课程表 29. 30. 31.C# course_no 32. https://www.wendangku.net/doc/d66112030.html,ame course_name 34. 35.T# teacher_no 36. 37. 38. 39. 40. 41. 42.表SC(学生与课程的分数mapping 表) 43.

44.(S#,C#,score) 成绩表 45. 46. 47.S# student_no 48.C# course_no 49.score 分数啦 50. 51. 52. 53. 54. 55. 56.表Teacher 57. 58.(T#,Tname) 教师表 59. 60. 61.T# teacher_no 62.Tname teacher_name 63. 64. 65. 66. 67. 68. 69.50道问题开始 70. 71. 72. 73. 74. 75. 76.1、查询“001”课程比“002”课程成绩高的所有学生的学号; 77. 78. 79. select a.S# from (select s#,score from SC where C#='001') a,(select s#,sco re 80. 81. from SC where C#='002') 82. 83. 84. 85. 86. where a.score>b.score and a.s#=b.s#;

it运维面试题及答案.doc

it 运维面试题及答案 【篇一:运维中心笔试题答案】 xt> 一、单项选择 1、t-sql 语句是由哪一家公司设计出的:(a)a microsoftb ibmc sun 2、sql-server 的数据库类型属于哪一类型:(a) a 关系型数据库 b 网络型数据库 c 层次型数据库 3、要启动sql -server 的服务器,在命令提示符下键入以下什么 命令可以启动sql -server 服务器:(b) a net send b net start mssqlerver c net help 4、输入和调试t-sql 语句的工具是:(b) a 企业管理器 b 查询分析器 c 服务器网络使用工具 d 联机丛书 5、创建数据库的关键字是: (b) a delete b create c from d talbe 6、数据库的日志文件的扩展名是:(b) a mdf b ldf c ndf d log 7、创建表的主约束使用哪个关键字:(b) a check b primary c foreign d rull 8、datetime 属于什么数据类型:(a) a 日期型 b 时间型 c 字符串型 d 整数型 9、下列数据类型中不能属于sql_variant 型的是:(c) a varchar b int c image d datetime 10、存储过程sp_bindrule 的作用是什么:(a) a 绑定规则 b 查看表结构 c 绑定默认值 d 查看过程 11、insert 表示的含义:(a) a 添加 b 删除 c 查询 d 更改 12、sql-server 中外键约束关键字为:(c) a primary key b unique c foreign key d check 13、alter view 表示:(b) a 创建视图 b 更改视图 c 检索视图 d 删除视图 14、去掉结果集中的重复值用关键字: (b ) a top b distinct c in d null 15、语句“delete from 员工表where 工资2000”表示含义:(a) a 删除工资大于2000 的员工资料 b 添加工资>2000 的员工姓名 c 检索工资>2000 的员工姓名 d 更改工资>2000 的员工姓名

Sql常见面试题 受用了

Sql常见面试题受用了 1. 用一条SQL 语句查询出每门课都大于80 分的学生姓名 name kecheng fenshu 张三语文81 张三数学75 李四语文76 李四数学90 王五语文81 王五数学100 王五英语90 A: select distinct name from table where name not in (select distinct name from table where fenshu<=80) select name from table group by name having min(fenshu)>80 2. 学生表如下: 自动编号学号姓名课程编号课程名称分数 1 2005001 张三0001 数学69 2 2005002 李四0001 数学89 3 2005001 张三0001 数学69 删除除了自动编号不同, 其他都相同的学生冗余信息 A: delete tablename where 自动编号not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编号, 课程名称, 分数) 3. 一个叫team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合. 你先按你自己的想法做一下,看结果有我的这个简单吗? 答:select https://www.wendangku.net/doc/d66112030.html,, https://www.wendangku.net/doc/d66112030.html, from team a, team b where https://www.wendangku.net/doc/d66112030.html, < https://www.wendangku.net/doc/d66112030.html, 4. 请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1 -12 月份的发生额。AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。 数据库名:JcyAudit ,数据集:Select * from TestDB 答:select a.* from TestDB a ,(select Occmonth,max(DebitOccur) Debit101ccur from TestDB where AccID='101' group by Occmonth) b where a.Occmonth=b.Occmonth and a.DebitOccur>b.Debit101ccur ******************************************************************************* ***** 5. 面试题:怎么把这样一个表儿 year month amount 1991 1 1.1

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

一、单选题(共 10 道试题,共 50 分。)V 1. SQL Server中,保存着每个数据库对象的信息的系统表是( C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D )。 A. Update B. Delete C. Insert D. Alter 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 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D )约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 5. 记录数据库事务操作信息的文件是(D )。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 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 产品名称=‘冰箱’ 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D )。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的( D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 9. 列值为空值(NULL),则说明这一列( C)。 A. 数值为0

SQL经典面试题及答案

SQL经典面试题及答案 1.一道SQL语句面试题,关于group by 表内容: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果, 该如何写sql语句? 胜负 2005-05-09 2 2 2005-05-10 1 2 ------------------------------------------ create table #tmp(rq varchar(10),shengfu nchar(1)) insert into #tmp values('2005-05-09','胜') insert into #tmp values('2005-05-09','胜') insert into #tmp values('2005-05-09','负')

insert into #tmp values('2005-05-09','负') insert into #tmp values('2005-05-10','胜') insert into #tmp values('2005-05-10','负') insert into #tmp values('2005-05-10','负') 1)select rq, sum(case when shengfu='胜' then 1 else 0 end)'胜',sum (case when shengfu='负' then 1 else 0 end)'负' from #tmp group by rq 2) select N.rq,N.勝,M.負 from ( select rq,勝=count(*) from #tmp where shengfu='胜'group by rq)N inner join (select rq,負=count(*) from #tmp where shengfu='负'group by rq)M on N.rq=M.rq 3)select a.col001,a.a1 胜,b.b1 负 from (select col001,count(col001) a1 from temp1 where col002='胜'

SQL SERVER 面试题与答案

SqlServer面试题及答案 1.磁盘柜上有14块73G的磁盘,数据库为200G 大小包括日志文件,如何设 置磁盘(要说明这14磁盘是怎么用的)? 2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打 完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。 3.有一个A 数据库,分别复制到B和C B 要求每次数据更新也同时更新, C 每天更新一次就行,如何制定复制策略! 4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个 索引字段超过10个,如何进行优化 5.有一个数据库200G大小,每天增加50M 允许用户随时访问,制定备份策 略(详细说明)。 参考答案: 1.磁盘柜上有14块73G的磁盘,数据库为200G 大小包括日志文件,如何 设置磁盘(要说明这14磁盘是怎么用的)? 这个问题应该是考察硬件知识和数据库物理部署。 首先需要知道这些磁盘是否要用于存放数据库备份文件和数据库性能(读/写)要求。来决定raid的级别。 1)、如果偏重于性能考虑,而且不用存放数据库备份文件的话,考虑使用raid0 1,这样可使用的磁盘容量为:14*73*50%=511G。 2)、如果读/写性能要求不高,而且还比较抠门的话,可以考虑raid5,这样可使用的磁盘容量为:13*73=949G。 至于如何使用应该是说数据库物理文件的部署。注意说出将tempdb,data file,log file分开存放以减少I/O竞争即可。其实现在的条带化磁盘一般都会自动将文件分存,人为的分布已经越来越不重要了。 2.有两服务器群集,分别为node1和node2 现在要打win200系统补丁,打 完后,要重新启动,如何打补丁,不能影响用户使用(要用群集的术语详细说明)。 这个具体操作有点忘了。大致是:首先看哪个节点正在使用,通过节点IP(私有)访问另一个空闲节点,为其打上补丁,然后在群集管理器中停止该节点(也可以用命令行方式),重新启动。等到启动完毕,将切换使用节点,为另一个节点打补丁。然后重新启动。 3.有一个A 数据库,分别复制到B和C B 要求每次数据更新也同时更新, C 每天更新一次就行,如何制定复制策略! 这个应该考察的是复制知识。 a->B1)、如果使用SQL Server复制功能,那么让a->b使用事务性复制方式(同步复制)。 2)、如果表不多,也可以自己写触发器,利用linkserver distribute transaction。 a->C1)、如果使用SQL Server复制功能,那么让a->b使用快照复制方式,在某一时间点进行一次性复制。 2)、也可以自己写bat,将a备份后,通过ftp传输备份介质,恢复c。(比较麻烦,不推荐) 4.有一个order 表,有90个字段,20个索引,15个复合索引,其中有3个 索引字段超过10个,如何进行优化 这个问题问的比较没水平。你不详细说明这个表的使用方式(读写类的,还是几乎是静态表),就问人家怎么优化?!!还不如问问索引的分布访问原

常见SQL笔试题

精心整理 SQL笔试题 1.统计查询SQL练习 数据库中表结构如下,字段分别任rg(日期),shengfu(胜负),考察groupby语句的使用:2005-05-09胜 2005-05-09胜 2005-05-09负 2005-05-09负 2005-05-10胜 2005-05-10负 2005-05-10负 如果要生成下列结果,该如何写sql语句? 胜负 2005-05-0922 2005-05-1012 答案: 1)selectrq,sum(casewhenshengfu='胜'then1else0end)'胜',sum(casewhenshengfu='负' then1else0end)'负'from#tmpgroupbyrq 2)selectN.rq,N.胜,M.负from( selectrq,胜=count(*)from#tmpwhereshengfu='胜'groupbyrq)Ninnerjoin (selectrq,负=count(*)from#tmpwhereshengfu='负'groupbyrq)MonN.rq=M.rq 3)selecta.col001,a.a1胜,b.b1负from (selectcol001,count(col001)a1fromtemp1wherecol002='胜'groupbycol001)a,

(selectcol001,count(col001)b1fromtemp1wherecol002='负'groupbycol001)b wherea.col001=b.col001 2.条件判断SQL练习 表中有ABC三列,用SQL语句实现:当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列 答案: select(casewhena>bthenaelsebend), (casewhenb>cthenbeslecend) fromtable_name 3.日期统计SQL练习 请取出tb_send表中日期(SendTime字段)为当天的所有记录?(SendTime字段为datetime型,包含日期与时间) 答案: select*fromtbwheredatediff(dd,SendTime,getdate())=0 4.统计查询SQL练习 有一张表,里面有3个字段:语文,数学,英语。其中有3条记录分别表示语文70 分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来(并写出您的思路): 大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。 显示格式: 语文数学英语

SQL Server考试试题及答案

全国信息技术水平考试数据库应用系统设计技术水平证书)下2013年( )考试试卷(SQL Server) 第一大题:单选题 (30 分)。 1. (1数据模型的三要素不包括( ) 分数据完整性约(C) (A) 数据结构 (B) 数据操作数据恢复束 (D) 数据的存储结构与数据逻辑结构之间的独立性称为数据的 2. (1 )。分) (逻辑独立物理独立性 (A) 结构独立性 (C) (B) (D) 分布独立性性中可有多个实体与之联B如果对于实体集 A中的每一个实体,实体集 3. 中也可有多个实体B中的每一个实体,实体集A系;反之,对于实体集(1分) )。B与之联系。则称实体集A与具有( 联: (B) 1n联系:m(C) :(A) 11联系 n 多种联系(D) 系 至少含有一个共当对关系R和S使用自然联接时,一般要求 4. (1R和S )。同的(分) 记 (C) (B) 元组(A) 关键字 属性录 (D) ,为5. 若关系模式上的函数依赖集F={AB->C,A->D,A->E}R(A,B,C,D,E) )。 BCNF(1分) 了满足,可以将R分解为( R2(A,E) R1(A,B,C,D) (A) R2(A,D,E) R1(A,B,C) (B) R1(A,B,C) R2(D,E) (C) (D) R1(A,B) R2(A,C,D,E) 分) )。 SQL语言查询一次的结果是一个( (1 6. 数据(D) 属性(C) 表(B) 元组(A) 库X1→Y, 7. (1 X1,使中,F)如果X→Y,且存在X的真子集在关系模式R(U,则称函数依赖) X→Y为()。分完全(C) (B) 平凡函数依赖(A) 部分函数依赖 (D) 传递函数依赖函数依赖)。在Transact-SQL中,下列命令能让程序完全跳出循环的是( 8 . (1CONTINU WAIT (B) (C) BREAK (D) (A) CASE ) 分E )。中,下列选项不属于数值型数据类型的是(在Transact-SQL 9 (1. (D) (B) DECIMAL (C) INTEGER (A) NUMERIC ) 分DATE 10. (1分) 下列选项中,可以正确表达姓“张”的通配符是()。 张_ (C) (B) 张(A) 张% & ^ (D) 张 1 下列聚合函数中正确的是()。 1. (*)

SQL数据库面试题以和答案

Student(S#,Sname,Sage,Ssex)学生表 S#:学号 Sname:学生姓名 Sage:学生年龄 Ssex:学生性别 Course(C#,Cname,T#)课程表 C#:课程编号 Cname:课程名称 T#:教师编号 SC(S#,C#,score)成绩表 S#:学号 C#:课程编号 score:成绩 Teacher(T#,Tname)教师表 T#:教师编号: Tname:教师名字 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号 select a.S# from (select S#,score from SC where C#='001')a, (select s#,score from SC wh ere c#='002')b Where a.score>b.score and a.s# = b.s#; 2、查询平均成绩大于60分的同学的学号和平均成绩 select S#, avg(score) from sc group by S# having avg(score)>60 3、查询所有同学的学号、姓名、选课数、总成绩 select student.S#, student.Sname, count(sc.C#), sum(score) from student left outer join SC on student.S# = SC.S# group by Student.S#, Sname

4、查询姓‘李’的老师的个数: select count(distinct(Tname)) from teacher where tname like '李%'; 5、查询没有学过“叶平”老师可的同学的学号、姓名: select student.S#, student.Sname from Student where S# not in (select distinct(SC.S#) from SC,Course,Teacher where sc.c#=course.c# AND teacher.T#=course.T# AND Teahcer.Tname ='叶平'); 6、查询学过“叶平”老师所教的所有课的同学的学号、姓名:select S#,Sname from Student where S# in (select S# from SC ,Course ,Teacher where SC.C#=Course.C# and Teacher.T#=Course.T# and Teacher.Tname='叶平' group by S# having count(SC.C#)=(select count(C#) from Course,Teacher where Teacher.T#=Course.T# and Tname='叶平')); 7、查询学过“011”并且也学过编号“002”课程的同学的学号、姓名: 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'); 8、查询课程编号“002”的成绩比课程编号“001”课程低的所有同学的学号、姓名: Select S#,Sname

(完整版)常见SQL笔试题

SQL笔试题 1.统计查询SQL练习 数据库中表结构如下,字段分别任rg(日期),shengfu(胜负),考察group by 语句的使用: 2005-05-09 胜 2005-05-09 胜 2005-05-09 负 2005-05-09 负 2005-05-10 胜 2005-05-10 负 2005-05-10 负 如果要生成下列结果, 该如何写sql 语句? 胜负 2005-05-09 2 2 2005-05-10 1 2 答案: 1)select rq, sum(case when shengfu='胜' then 1 else 0 end)'胜',sum(case when shengfu='负' then 1 else 0 end)'负' from #tmp group by rq 2) select N.rq,N.胜,M.负from ( select rq,胜=count(*) from #tmp where shengfu='胜'group by rq)N inner join

(select rq,负=count(*) from #tmp where shengfu='负'group by rq)M on N.rq=M.rq 3)select a.col001,a.a1 胜,b.b1 负from (select col001,count(col001) a1 from temp1 where col002='胜' group by col001) a, (select col001,count(col001) b1 from temp1 where col002='负' group by col001) b where a.col001=b.col001 2.条件判断SQL练习 表中有A B C 三列,用SQL 语句实现:当A 列大于B 列时选择A 列否则选择B 列, 当B 列大于C 列时选择B 列否则选择C 列 答案: select (case when a>b then a else b end ), (case when b>c then b esle c end) from table_name 3.日期统计SQL练习 请取出tb_send 表中日期(SendTime 字段) 为当天的所有记录?(SendTime 字段为 datetime 型,包含日期与时间)

sql面试题

2.存储过程的优缺点是什么? 优点: 1.由于应用程序随着时间推移会不断更改,增删功能,T-SQL过程代码会变得更复杂,StoredProcedure为封装此代码提供了一个替换位置。 2.执行计划(存储过程在首次运行时将被编译,这将产生一个执行计划--实际上是Microsoft SQL Server为在存储过程中获取由T-SQL 指定的结果而必须采取的步骤的记录。)缓存改善性能。 ……..但sql server新版本,执行计划已针对所有T-SQL 批处理进行了缓存,而不管它们是否在存储过程中,所以没比较优势了。 3.存储过程可以用于降低网络流量,存储过程代码直接存储于数据库中,所以不会产生大量T-sql语句的代码流量。 4.使用存储过程使您能够增强对执行计划的重复使用,由此可以通过使用远程过程调用(RPC) 处理服务器上的存储过程而提高性能。RPC 封装参数和调用服务器端过程的方式使引擎能够轻松地找到匹配的执行计划,并只需插入更新的参数值。 5.可维护性高,更新存储过程通常比更改、测试以及重新部署程序集需要较少的时间和精力。 6.代码精简一致,一个存储过程可以用于应用程序代码的不同位置。 7.更好的版本控制,通过使用Microsoft Visual SourceSafe 或某个其他源代码控制工具,您可以轻松地恢复到或引用旧版本的存储过程。 8.增强安全性: a、通过向用户授予对存储过程(而不是基于表)的访问权限,它们可以提供对特定数据的访问; b、提高代码安全,防止SQL注入(但未彻底解决,例如,将数据操作语言--DML,附加到输入参数); c、SqlParameter 类指定存储过程参数的数据类型,作为深层次防御性策略的一部分,可以验证用户提供的值类型(但也不是万无一失,还是应该传递至数据库前得到附加验证)。 缺点: 1.如果更改范围大到需要对输入存储过程的参数进行更改,或者要更改由其返回的数据,则您仍需要更新程序集中的代码以添加参数、更新GetValue() 调用,等等,这时候估计比较繁琐了。 2.可移植性差 由于存储过程将应用程序绑定到SQL Server,因此使用存储过程封装业务逻辑将限制应用程序的可移植性。如果应用程序的可移植性在您的环境中非常重要,则将业务逻辑封装在不

SQL考试试题及答案1

1 、SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示()D A. 零个字符 B. 1个字符 C. 多个字符 D. 以上都可以 2 、关系数据库中空值(NULL)相当于( ) D A. 零(0) B. 空白 C. 零长度的字符串 D. 没有输入 3 、一个电视经销商在表Tvtype 中维护库存的Tvs信息,下述哪条语句能显示价格最昂贵的三种电视机的信息?( ) C A. select top3 cDiscription from Tvtype order by iprice asc B. select cDiscription from Tvtype where max(iprice)>3 C. select top3 cDiscription from Tvtype order by iprice desc D. select cDiscription max(iprice) from Tvtype order by iprice 1、销售数据库Sales中存在这样的三张表,按要求完成下列题目: 1.客户表Cus(CusNo, CusName, Address,Tel) 2.产品表Pro(ProNo,ProName,price,Stocks) 3.销售表ProOut(CusNo,ProNo,Quantity,SaleDate) 备注:客户编号(CusNo),姓名(CusName),地址(Address),电话(Tel),产品编号(ProNo)品名(ProName),单价(price),库存数量(Stocks), 销售日期(SaleDate),客户编号(CusNo),产品编号(ProNo),销售数量(Quantity) (1)查询销售总数量超过100的产品号。(5分) (2)查询购买了产品号“P0002”的客户编号、客户名和电话,查询结果按客户名降序排列。(6分) (3)查询客户“C004”在2015年购买的产品号、数量。(7分) (4)创建视图viewPro,要求显示每种产品的销售量和销售金额(7分) 用户答案: (1) select ProNo as 产品号 from ProOut where quantity>100

SQL经典面试题及答案

1. 用一条SQL 语句查询出每门课都大于80 分的学生姓名 name kechengfenshu 张三语文81 张三数学75 李四语文76 李四数学90 王五语文81 王五数学100 王五英语90 A: select distinct name from table where name not in (select distinct name from table where fenshu<=80) select name from table group by name having min(fenshu)>80 select name from table group by name having count(kecheng)>=3 and min(fenshu)>=80 2. 学生表如下: 自动编号学号姓名课程编号课程名称分数 1 2005001 张三0001 数学69 2 2005002 李四0001 数学89 3 2005001 张三0001 数学69 删除除了自动编号不同, 其他都相同的学生冗余信息 A: delete tablename where 自动编号not in(select min( 自动编号) from tablename group by 学号, 姓名, 课程编号, 课程名称, 分数) 3. 面试题:怎么把这样一个表儿 year month amount 1991 1 1.1 1991 2 1.2 1991 3 1.3 1991 4 1.4 1992 1 2.1 1992 2 2.2 1992 3 2.3 1992 4 2.4 查成这样一个结果 year m1 m2 m3 m4 1991 1.1 1.2 1.3 1.4 1992 2.1 2.2 2.3 2.4

sql面试题

1.用一条SQL 语句查询出每门课都大于80 分的学生姓名(表名:tablename) name kecheng fenshu 张三语文81 张三数学75 李四语文76 李四数学90 王五语文81 王五数学100 王五英语90 答: (1)select distinct name from table where name not in (select distinct name from table where fenshu<=80) (2)select name from table group by name having min(fenshu)>80

2.学生表(表名:tablename)如下: 自动编号学号姓名课程编号课程名称分数 1 2005001 张三0001 数学69 2 2005002 李四0001 数学89 3 2005001 张三0001 数学69 删除除了自动编号不同, 其他都相同的学生冗余信息 答: delete tablename where 自动编号not in(select min( 自动编号) from tablename group by学号, 姓名, 课程编号, 课程名称, 分数)

3.一个叫team 的表,里面只有一个字段name, 一共有4 条纪录,分别是a,b,c,d, 对应四个球对,现在四个球对进行比赛,用一条sql 语句显示所有可能的比赛组合. 答: select https://www.wendangku.net/doc/d66112030.html,, https://www.wendangku.net/doc/d66112030.html, from team a, team b where https://www.wendangku.net/doc/d66112030.html, < https://www.wendangku.net/doc/d66112030.html, 4.请用SQL 语句实现:从TestDB 数据表中查询出所有月份的发生额都比101 科目相应月份的发生额高的科目。请注意:TestDB 中有很多科目,都有1 -12 月份的发生额。 AccID :科目代码,Occmonth :发生额月份,DebitOccur :发生额。 数据库名:JcyAudit ,数据集:Select * from TestDB 答:select a.* from TestDB a

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

一、单选题(共10 道试题,共50 分。) 1. SQL Server中,保存着每个数据库对象的信息的系统表是(C)。 A. sysdatabases B. Syscolumns C. Sysobjects D. Syslogs 2. 在存在下列关键字的SQL语句中,不可能出现Where子句的是(D)。 A. Update B. Delete C. Insert D. Alter 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 4. 如果要在一张管理职工工资的表中限制工资的输入范围,应使用(D)约束。 A. PDRIMARY KEY B. FOREIGN KEY C. unique D. check 5. 记录数据库事务操作信息的文件是(D)。 A. 数据文件 B. 索引文件 C. 辅助数据文件 D. 日志文件 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 产品名称=…冰箱? 7. 储蓄所有多个储户,储户能够在多个储蓄所存取款,储蓄所与储户之间是(D)。 A. 一对一的联系 B. 一对多的联系 C. 多对一的联系 D. 多对多的联系 8. SQL的聚集函数COUNT、SUM、AVG、MAX、MIN不允许出现在查询语句的(D)子句之中。 A. SELECT B. HAVING C. GROUP BY… HAVING D. WHERE 9. 列值为空值(NULL),则说明这一列(C)。 A. 数值为0 B. 数值为空格 C. 数值是未知的 D. 不存在 10. 数据库的数据一般存放在(D)中。 A. 内存 B. CPU C. 寄存器 D. 磁盘 二、判断题(共10 道试题,共50 分。)V 1. 如果定义视图的FROM子句包括多张表,并且视图中列来自多张表,则不能用DML语句通过视图操纵数据。 A. 错误 B. 正确 2. 在sysdatabases中,还记录着存储过程中每个参数的信息。A A. 错误 B. 正确 3. 在SELECT语句中,当使用ORDER BY子句时,一定要使用GROUP BY 子句。A A. 错误 B. 正确 4. 由于索引是独立的,删除表时,与该表相关的索引并不被删除。A A. 错误 B. 正确 5. 日志文件用于存放恢复数据库用的所有日志信息,每个数据库至少拥有一个日志文件,也可以拥有多个日志文件,扩展名ldf B A. 错误 B. 正确 6. 使用INSERT命令一次只能插入一行数据。A A. 错误 B. 正确

SQL数据库面试题目及其答案

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

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

相关文档