当前位置:文档之家› sql综合测试二

sql综合测试二

sql综合测试二
sql综合测试二

Sql综合测试一

1、在sqlserver 2005的中,给定创建视图的代码如下:

create view abcd___select*from sales where qty>90

则下划线处应填写的正确关键字为()。(选择一项)

A、on

B、as

C、alter

D、for

2、在sql server 2005中,执行以下的t-sql:

begin transaction

if exists(select title_id from titles where title_id='tc2')

begin

delete from titles where title_id='tc2'

rollback transaction

print'ok'

end

若能找到title_id的tc2的记录,将()。(选择一项)

A、删除该记录行,不打印任何信息

B、不删除该记录行,并且打印ok

C、删除该记录行,并且打印ok

D、不除该记录行,也不打印任何信息

3、在sql server2005数据库中,关于视图的说法错误的是()(选择一项)

A、视图是一个虚拟的表,在物理介质上并不存在

B、视图可以查看来自一个或多个表的内容

C、修改了视图的数据,原始数据并不会被修改

D、使用create view 来创建视图

4、数据库设计时,在做表规范化的时候一般规范到()就足够了。(选择一项)

A、第一范式

B、第三范式

C、第四范式

D、第五范式

5、在sql server2005中,为数据库表建立索引能够()。(选择一项)

A、防止非法的删除操作

B、防止非法的插入操作

C、提高查询性能

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

6、在sql server2005中,可以使用全局变量()来获得最后一次插入的标识值。(选择一项)

A、@@datefirst

B、@@identity

C、@@transcount

D、@@rowcount

7、在sql server2005中,以下是表autos的定义:

create table autos(make varchar(20)not null,model varchar(20)not null,

acquisition_cost money null,acquisition_date datetime null)

创建该表后再执行以下语句:

truncate table autos

begin tran

insert autos(make,model) values('tucker','torpedo')

if exists (select * from autos)

rollback tran

else

commit tran

执行结果是()。(选择一项)

A、该批处理将失败,因为begin tran…commit tran没有正确嵌套

B、该批处理结束后,表内没有数据行

C、该批处理结束后,表内有一行数据

D、插入数据行的语句将失败,并且提示错误信息

8、在sql server 2005中,创建视图view_b的代码为()。(选择一项)

A、create view view_b as select * from table_a

B、create view_b as select * from table_a

C、create view view_b for select * from table_a

D、create view_b for select * from table_a

9、在sql server的安全管理过程中,以下()的概念类似于windows中的用户。(选择一项)

A、权限

B、登录帐户

C、角色

D、存储过程

10、在sql server2005中,与以下t-sql等效的是()。(选择一项)

update titless set price=price*1.05 where pub_id in (select pub_id from publishers)

A、update titles set price=price*1.05 where exists(select pub_id from publishers)

B、update titles set price=price*1.05 from titles where pub_id in publishers.pub_id

C、update titles set price=price*1.05 where titles.pub_id=publishers.pub_id

D、update titles set price=price*1.05 form titles inner join publishers on titles.pub_id= publishers.pub_id

11、sql server数据库中,包含两个表:order订单表,item订单子项目表。

当一个新定单被加入时,数据要分别保存到order和item表中,要保证数据完整性,可以使用以下()语句。(选择一项)

A、begin transaction insert into order values (此处省略) insert into item values (此处省略) end ransaction

B、begin transaction insert into order values (此处省略) insert into item values (此处省略) if (@@error = 0) commit transaction else rollback transaction

C、begin transaction insert into order values (此处省略) if (@@error = 0) insert into item values (此处省略) if (@@error = 0) commit transaction else rollback transaction else rollback transaction

D、begin transaction insert into order values (此处省略) insert into item values (此处省略) if (@@error <> 0) rollback transaction

12、在SQL Server 2005 中,正确执行存储过程MY_PROC的语句为()(选择一项)

A、RUN MY_PROC

B、EXEC MY_PROC

C、START MY_PROC

D、SHELL MY_PROC

13、在SQL Server 2005 中,已知Student表有一个age列,数据类型是int,如果要限制该列的取值范围在15到30之间,可以使用以下SQL语句()(选择一项)

A、alter table Student add constraint ck check(age>=15 and age<=30)

B、alter table Student add constraint df default(age>=15 and age<=30)

C、alter table Student add constraint uq unique(age>=15 and age<=30)

D、alter table Student add set(age>=15 and age<=30)

14、在SQL Server 2005 的存储过程中,()语句用来向用户报告错误,并可指定严重级别(选择一项)

A、PRINT

B、ERROR

C、RAISERROR

D、TAISE

15、设计本地图书馆的一个图书借阅和跟踪系统,在SQL Server 2005数据库中包含三个表:Member(会员信息)、Borrow(借阅信息)和Book(图书信息),要求:

1、每人可以借阅一或多本书;

2、每本书一次只能被借给一个人;

3、图书馆没有的书籍不能被借阅;

要求Borrow和Book表中强制这种数据完整性,下列描述中正确的是()。(选择二项)A、Book表中定义Book_id为主键,Borrow表中建立外键并与Book表的Book_id建立引用关系

B、Borrow表中定义Borrow_id为主键,并对Borrow_id列建立检查约束

C、为Book表增加一列来记录书是否被借出

D、Borrow表中定义Book_id为主键,Book表中建立外键并与Borrow表的Book_id建立引用关系

16、在SQL Server 2005中,假设有表UserInfo(数据如下左图),UserScore(数据如下右

图),则执行以下查询语句得到的结果是( ) (选择一项)

select username from UserInfo where userid in

(select userid from UserScore where score>=60)

A、魏中国、张漫玉、刘勇

B、魏中国、张漫玉

C、张漫玉、刘勇

D、魏中国、刘勇

17、SQL Server2005数据库系统中的编程语言是T-SQL,在T-SQL中存储数据值的对象是变量,T-SQL语言中的局部变量名称必须以( )标记作为前缀。(选择一项)

A、@@

B、@

C、&

D、&&

18、SQL Server2005数据库中,存在表users(含name、salary字段),则下面语句实现的功能是( )。(选择一项)

If Exists(select * from users where salary<5000)

Begin

Update users set salary=5000

End

Go

A、若存在工资小于5000的用户,就把他们的工资加到5000

B、若存在工资小于5000的用户,就把所有人的工资设置为5000

C、若不存在工资小于5000的用户,就把他们的工资加到5000

D、若不存在工资小于5000的用户,就把所有人的工资设置为5000

19、在SQL Server2005数据库中,现有表student(数据如下左图),class(数据如下右图),现在针对“中文2”班的学生姓名和班级名建立视图如下所示,则下划线处应填写的内容为( )。(选择一项)

Create View ScanNameInfo As

SELECT a.studentname,b.classname FROM dbo.student aINNER JOIN dbo.class b_______

A、ON a.classID=b.classID WHERE(b.classID=2)

B、IN a.classID=b.classID WHERE(b.classID=2)

C、ON a.classID=b.classID=2

D、IN a.classID=b.classID and b.classID=2

20、在SQL Server 2005数据库系统中,以下扩展名的文件中不是SQL Server 2005数据库文件的是( )。(选择一项)

A、mdf (主数据文件)

B、ndf(辅助数据文件)

C、dbf

D、ldf(日志文件)

21、在SQL Server2005中,以下关于系统存储过程说法正确的是( )。(选择二项)

A、存储在Master数据库中

B、名称以“sp_”开头

C、名称以“sys_”开头

D、用来代替用户自定义的存储过程

22、在SQL Server2005数据库中,对存储过程的描述正确的是()(选择一项)

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

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

C、SQL语句的预编译集合

D、它根据一列或多列的值,提供对数据库表中行的快速访问

23、在SQL Server2005数据库中,假设表UserInfo 有age字段,现在要求该字段的值在20-~60

之间,可以通过添加约束来实现,横线处应该填写的是()。(选择一项)

Alter table UserInfo_____________________

A、Add constraint PK_age primary key(age)

B、Add constraint UQ_age unique(age)

C、Add constraint DF_age default(…20~60?)for age

D、Add constraint CK_age check(age between 20 and 60)

24、在SQL Server 2005数据库中,()可以被看成为虚拟的表(选择一项)

A、函数

B、视图

C、索引

D、存储过程

25、SQL server2005 数据库系统中的编程语言是T-SQL,在T-SQL 中存储数据值的对象是变量,T— SQL语言中的全局变量必须以()标记作为前缀(选择一项)

A、@@

B、@

C、&

D、&&

26、在SQL Sever2005数据库中,下面哪项可以提高查询的性能()(选择一项)

A、在查询相关的字段上建立约束,以进行数据的完整性检查

B、通过视图进行查询

C、如果字段经常出现查询输出中,考虑为其建立聚集索引或非聚集索引

D、应该为查询排序的字段创建存储过程

27、下面所示的T-SQL语句使用内连接实现多表查询,查询返回多行数据:

SELECT SName fFORM Students

INNER JOIN Score on Students.SCode = Score.StudentID WHERE Score >=60

选项中可以替换上述语句实现该查询的语句是()(选择二项)

A、SELECT SName from Students WHERE SCode =(SELECT STudentID from SCore WHERE Score >=60)

B、SELECT SName from Students WHERE SCode IN(SELECT STudentID from SCore WHERE Score >=60)

C、SELECT SName from Students WHERE SCode NOT IN(SELECT STudentID from SCore WHERE Score <60)

D、SELECT SName from Students WHERE SCode !=(SELECT STudentID from SCore WHERE Score <60)

28、关于三大范式说法错误的()(选择二项)

A、第一范式的目标是确保每列的原子性

B、第三范式在第二范式的基础上,确保每列都和主键相关

C、第三范式在第一范式的基础上,确保每列都和主键相关

D、第三范式在第二范式的基础上,确保每列都和主键直接相关

29、T-SQL 语言中用于显示处理数据结果的输出语句有两种,他们的语法分别是()(选择二项)

A、put 局部变量或字符串

B、print 局部变量或字符串

C、select 局部变量as 自定义列名

D、select 局部变量for 自定义列名

30、在SQL Server 2005中,现在向数据库表Holiday中插入1000条记录,但是只要有一条记录插入不成功,则已经插入Holiday表的数据就全部撤消插入,那么我们用来实现这一要求的处理是()(选择一项)

A、视图

B、索引

C、事务

D、删除

31、在SQLSeverver2005数据库中,如果强制要求grades表中的学员必须是Student表中存在的学员,以下描述正确的是()(选择一项)

A、在grades表中创建外键约束

B、在grades表中创建检查约束

C、在grades表中创建唯一约束

D、在grades表中创建默认约束

32、在SQL server 中,存储过程是预编译集合,以下()是查看表的约束(选择一项)

A、SP_helpconstraint

B、SP_helpindex

C、SP_stored_procedures

D、sp_columns

33、在SQL server 2005 中,分析下面的存储过程,执行以下语句,结果是( ) (选择一项) CREATE procedure lookup(@a int) As

If @a is null

begin

Print '缺少参数'

return

end

select * from sysobjects where id=@a

go

EXECUTE lookup

A、该存储过程会打印“缺少参数”

B、该存储过程会基于无参数情况做一个查找,返回表中的所有行

C、该存储过程有语法错误

D、数据库服务器会打印一条消息,提示该存储过程需要提供一个参数

34、在SQL Server 2005 数据库系统中,索引提供指针指向存储在表中的指定列的值。可以使用()创建索引(选择二项)

A、T-SQL语句

B、索引管理器

C、Microsolft Sql Server Management Studio

D、服务管理器

35、在SQl Sever2005中,对EXIST语句取反的方法是,在EXISTS前面添加( ) (选择一项)

A、NONE

B、NOT

C、!

D、NO

36、在SQL Sever2005的系统存储过程中,( )存储过程用于返回某个表的列信息. (选择一项)

A、sp_help

B、sp_columns

C、sp_helpdb

D、sp_table

37、在SQl Sever2005中,要使用Sql语句删除一个名称为abc的数据库,正确的是( )(选择一项)

A、DROP ABC

B、TRUNCATE ABC

C、DROP DATABASE ABC

D、DELETE DATABASE ABC

38、在SQL Sever2005数据库中,执行如下的sql语句,结果是( ). (选择一项)

print'服务器名称为:'+@@SERVICENAME

A、在网格窗口以网格的方式显示当前计算机上的SQL 服务名称

B、在消息窗口以文本的方式显示当前计算机上的SQL服务名称

C、在网格窗口以网格的方式显示本地服务器名称

D、在消息窗口以文本的方式显示本地服务器名称

39、在SQL Server 2005中创建如下存储过程,则对该存储过程的正确调用是()。

Create procedure proc_stu @passMark int=60,@notpassSum int output As select @notpassSum=count(stuNo) from stuMarks where writtenExam<@passMark Go (选择二项)

A、declare @sum int exec proc_stu @passMark=62,@notpassSum=@sum output

B、declare @sum int exec proc_stu @sum output,64

C、declare @sum int exec proc_stu @notpassSum=@sum output

D、declare @sum int exec proc_stu @sum output

40、在SQL Server2005中,以下对象中不可以通过Drop关键字进行删除的是()(选择一项)

A、数据表

B、数据库

C、视图

D、表中的纪录

41、在SQL Server2005中,对表student中的studentname字段建立如下索引,下面关于该索引的描述正确的是()。(选择一项)

Create nonclustered index ix_studentname on student(studentname)with

fillfactor=50

A、就studentname列创建一个聚集索引,填充因子为50

B、就studentname列创建一个非聚集索引,填充因子为50

C、就studentname列创建一个聚集索引,填充因子为50%

D、就studentname列创建一个非聚集索引,填充因子为50%

42、在SQL Server2005中,可以使用全局变量()来获得活动事务的个数(选择一项)

A、@@DATEFIRST

B、@@IDENTITY(得到最后一次增长列的值)

C、@@TRANSCOUNT(获得活动的事务个数)

D、@@ROWCOUNT(获得影响的行数)

43、在SQL Server2005数据库系统中,多用户同时操作数据库称为并发操作,那么在数据库系统上执行并发操作时最小的控制单元是()(选择一项)

A、记录

B、事务

C、视图

D、存储过程

44、在SQL Server2005中,执行以下的SQL语句,假设sid为表a中的主键,且为标识列,表a中至少包含10条数据,最终结果是()。(选择一项)

Select top 1*from a where sid not in (select top 1 sid from a)

A、查询得到一行数据

B、查询得到二行相同的数据

C、查询得到二行不同的数据

D、该语句在查询的时候将报告语法错误

45、在SQL Server 2005 中,以下关于视图数据的操作,正确的描述是()(选择一项)

A、视图数据只能用来查询,不能进行修改、插入和删除

B、可以修改和删除视图的数据,但是这些数据不更新到数据库表中

C、可以使用INSERT/UPDATE/DELETE等SQL语句对视图进行操作

D、由于视图是数据库基表数据的复制,因此删除视图中的数据行,不会影响到基表的数据

46、在数据库设计中,用E-R图来描述信息结构但不涉及信息在计算机中的表示,它是数据库设计的( )阶段(选择一项)

A、需求分析

B、概要设计

C、逻辑设计

D、物理设计

47、在SQL Server 2005数据库中,某公司用户表UserInfo中有userid(用户工号)和salary(薪水)字段。

那么执行以下语句后得到的结果是( ) (选择一项)

select top 3 * from UserInfo order by uid,salary desc.

A、该公司薪水按从高到低排列,前三名的用户信息

B、该公司薪水按从低到搞排列,前三名的用户信息

C、该公司工号按从大到小排列,前三名的用户信息

D、该公司工号按从小到大排列,前三名的用户信息

48、在SQLServer 2005数据库中,下面的T-SQL语句段执行第三句时出现错误,数据库中的内容修改情况是( )。(选择一项)

BEGIN TRANSACTION

update Accout set balance=7800 where id=1

update Accout set balance=9000 where id=1

IF @@error<>0

ROLLBACK TRANSACTION

ELSE

COMMIT TRANSACTION

A、Account表中id为1的记录中balance字段的值被修改为7800

B、Account表中id为1的记录中balance字段的值被修改为9000

C、Account表中id为1的记录中balance字段的值不变

D、不可能发生这种情况

49、在SQL Server 2005 中,以下SQL语句实现的功能是( )。

EXEC sp_addlogin 'zhangsan','sqlserver' (选择一项)

A、添加Windows登录帐户,Windows用户为zhangsan,域为sqlserver

B、添加数据库用户,登录帐户为zhangsan,数据库用户名为sqlserver

C、添加SQL登录帐户,帐户名为zhangsan,密码为sqlserver

D、添加数据库用户,登录帐户为sqlserver,数据库用户名为zhangsan

50、在sql server2005数据库中,表stuinfo的属性列stuaddress表示学生居住地址,对stuaddress 添加了如下的约束,其意义是()。(选择一项)

alter table stuinfo

add constraint df_sinaddress default(‘待定不详’) for stuaddress

A、stuaddress列不允许为空,已经存在的记录,如果该列为空,则自动填写“待定不详”

B、添加新记录时,如果stuaddress列不填,默认填写“待定不详”

C、stuaddress列全部修改填写为“待定不详”

D、将stuaddress列值为“待定不详”的记录全部划为非法,予以删除

Sql综合测试二

1、现有表名称为score,有一个名称为teacher的用户名。要求授予表的插入和修改的权限,正确的授权语句是()。(选择一项)

A、grant insert,update to table score on teacher

B、grant insert and update to table score on teacher

C、grant insert,update on score to teacher

D、grant insert and update on score to teacher

2、在sql server 2005中,对存储过程的描述中正确的是()。(选择一项)

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

B、它根据一列或多列的值,提供对数据库表的行的快速访问

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

D、sql语句的预编译集合

3、在sql server2005中,在products(产品)表,包含字段:pname(产品名称)、price(价格)。若要得到最贵产品的产品名称和产品价格,应该使用的查询语句是()。(选择一项)

A、select top 1 pname,price from products order by price

B、select pname,max(price) from products

C、select pname,max(price) from products group by pname

D、select pname,price from products where price = (select max(price) from product)

4、在sql server2005中给定如下的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_proc,所有参数都是输出参数

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

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

D、创建存储过程失败,因为select语句中使用了聚合函数,因此必须使用group by进行分组

5、SQL Server2005数据库中,存在表users(含name、salary字段),则下面语句实现的功能是( )。(选择一项)

If Exists(select * from users where salary<5000)

Begin

Update users set salary=5000

End

Go

A、若存在工资小于5000的用户,就把他们的工资加到5000

B、若存在工资小于5000的用户,就把所有人的工资设置为5000

C、若不存在工资小于5000的用户,就把他们的工资加到5000

D、若不存在工资小于5000的用户,就把所有人的工资设置为5000

6、3NF同时又是()(选择一项)

A、2NF

B、1NF

C、BCNF

D、1NF,2NF

7、下面所示的T-SQL语句使用内连接实现多表查询,查询返回多行数据:

SELECT SName fFORM Students

INNER JOIN Score on Students.SCode = Score.StudentID WHERE Score >=60

选项中可以替换上述语句实现该查询的语句是()(选择二项)

A、SELECT SName from Students WHERE SCode =(SELECT STudentID from SCore WHERE Score >=60)

B、SELECT SName from Students WHERE SCode IN(SELECT STudentID from SCore WHERE Score >=60)

C、SELECT SName from Students WHERE SCode NOT IN(SELECT STudentID from SCore WHERE Score <60)

D、SELECT SName from Students WHERE SCode !=(SELECT STudentID from SCore WHERE Score <60)

8、在sql server 2005中,创建存储过程如下,要在students表中查找age(年龄)是18岁的学生,()可以正确的调用这个存储过程。(选择二项)

create procedure myp1 @p int as

select studentname,age from students where age = @p

A、exec myp1 18

B、exec myp1 @p=18

C、exec myp1 p='18'

D、exec myp1 p=18

9、已知有如下功能:

create proc proc_test

@table_name varchar(20)

as

declare @sql varchar(100)

select @sql = …select * from ?+@table_name

exec (@sql)

go

请问以上语句的运行结果是()(选择二项)

A、此存储过程有错,不能执行

B、此存储过程会打印输出一条sql语句

C、这是属于exec的另一种用法,用于执行一条sql语句

D、它执行的结果是查询到用户输入表中的所有信息

10、事务的特性有( )(选择四项)

A、原子性

B、一致性

C、隔离性

D、持久性

E、不变性

11、合并多个表中的数据的方法有()三种(选择三项)

A、联合

B、子查询

C、联接

D、角色

12、事务的分类分为()(选择三项)

A、显式事务

B、隐式事务

C、自动提交事务

D、隐式提交事务

13、在SQL Server2005的查询分析器中运行以下T-SQL,将打印输出()。(选择一项)CREATE TABLE My_Table(a int NULL,b int NULL)

GO

CREATE TRIGGER my_trig ON My_Table FOR INSERT

AS

IF UPDATE(b)

PRINT'更新'

GO

INSERT My_TableV ALUES(3,4)

GO

UPDATE My_Table SET a = 5 WHERE b = 4

GO

A、更新

B、更新

更新

C、不打印任何信息

D、以上代码将出现运行错误而中断

14、假设orders表中存在oid等于1的记录,执行下面T-SQL:

BEGIN TRANSACTION

Delete from Orders where oid=1

IF (@@Error<>0)

ROLLBACK TRANSACTION

Else

COMMIT TRANSACTION

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

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

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

C、执行时出现错误

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

15、Sql server2005中,创建触发器的语句如下:

create trigger trig_score on score for insert

declare @sid int , @score float

select @sid = sid,@score =score from inserted

update student set score = score+@score where sid =@ sid

Go

其中score表通过sid列与student 表建立了外键约束,假定数据库中的数据具备完整性,创建触发器成功后,执行语句:insert into scroe (sid ,scroe)values(2,20),执行后的结果是( )(选择一项)

A、Score表中插入一条数据,student表中更新一条数据

B、Score表中插入一条数据,student表中插入一条数据

C、Score表中插入一条数据,student表中没有变化

D、提示错误:没有inserted这张表

16、在SQL Server 2005中,触发器包含许多功能,除了()。(选择一项)

A、强化约束

B、可级联运行

C、跟踪变化

D、查询优化

17、在SQL Server中,()返回受上一语句影响的行数。(选择一项)

A、@@count

B、@@rowcount

C、@@row

D、@@identity

18、下列不属于触发器动作的是()。(选择一项)

A、select

B、insert

C、update

D、delete

19、在SQL Server中,存储过程分为()类(选择一项)

A、系统存储过程

B、扩展存储过程

C、用户自定义存储过程

D、以上都是

20、在SQL Server 2005中,以下SQL语句能正确创建主键的有( )。(选择二项)

A、create table mytable(id int primary key,name varchar(20))

B、create table mytable(primary key id int,name varchar(20))

C、create table mytable(id int null,name varchar(20),primary key(id))

D、create table mytable(id int not null,name varchar(20),constraint PK_mytable primary key(id))

21、下列四项中说法不正确的是()(选择一项)

A、数据库减少了数据冗余

B、数据库中的数据可以共享

C、数据库避免了一切数据的重复

D、数据库具有较高的数据独立性

22、公司有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,从职员到部门的联系类型是()(选择一项)

A、多对多

B、一对一

C、多对一

D、一对多

23、现有关系:学生(学号、姓名、系号、系名),为消除数据冗余,至少要分解为()(选择一项)

A、1个表

B、2个表

C、3个表

D、4个表

24、如果要修改表的结构,应该使用SQL语句的命令()(选择一项)

A、update table

B、modify table

C、alter table

D、change table

25、SQL语言中,删除一个表的命令是()(选择一项)

A、delete

B、drop

C、clear

D、remove

26、在SQL语言中,“授权”命令是()(选择一项)

A、grant

B、revoke

C、option

D、public

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

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

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

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

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

28、哪个关键字用于测试跟随的子查询中的行是否存在()(选择一项)

A、mov

B、exists

C、union

D、having

29、事务的持久性是由数据库管理系统中的哪个部件负责()(选择一项)

A、恢复管理

B、锁定管理(并发管理)

C、完整性约束

D、记录设备(存储管理)

30、主键索引可确保字段中输入值的()性(选择一项)

A、多样

B、重复

C、唯一

D、若干

31、为数据表创建索引的目的是()(选择一项)

A、提高查询的检索能力

B、创建唯一索引

C、创建主键

D、归类

32、如果要从数据库中删除触发器,应该使用SQL语言的命令()(选择一项)

A、delete trigger

B、drop trigger

C、remove trigger

D、disable trigger

33、在SQL中,下面用于声明局部变量的关键字是()(选择一项)

A、set

B、declare

C、print

D、exec

34、在SQL中,关于exists子查询说法错误的是()(选择一项)

A、使用exists关键字引入一个子查询时,就相当于进行一次存在测试

B、exists子查询实际上不产生任何数据,它只返回true或false

C、exists子查询可以出现在where语句后

D、exists关键字前面可以有列名、常量或其他表达式

35、在SQL中,下面对索引理解错误的是()(选择一项)

A、索引是一个单独的、物理的数据库结构

B、索引是依赖于表建立的,提供了编排表中数据的方法

C、索引是数据库的一张表中所包含的值的列表,没有注明表的各个值所在的存储位置

D、索引存放在索引页面上

36、在SQL中,当执行update语句时,系统将自动创建下面哪些逻辑表()(选择二项)

A、temp

B、inserted

C、table

D、deleted

37、在SQL中,不同实体间可以有()(选择一项)

A、只有一种联系

B、可以有多种联系

C、数据结构

D、数据文件

38、在SQL中,()是位于用户和操作系统之间的一层数据管理软件,数据库在建立、使用和维护时由其统一管理,统一控制(选择一项)

A、DBMS(数据库管理系统)

B、DB(数据库)

C、DBS(数据库系统)

D、DBA(数据库管理员)

39、在下面的选项中,以下不属于数据库的系统模型的是()(选择一项)

A、层次型数据库

B、分布型数据库

C、关系型数据库

D、面向对象型数据库

40、下面不属于关系型数据库基本原则的是()(选择一项)

A、行和列都有顺序

B、每行数据是唯一的

C、列有一个唯一性的名称

D、贮存在列下的数据必须具有相同的数据类型

41、实体间的关系是非常复杂的,但对于两个实体而言,以下不属于其中的关系的是()(选择一项)

A、一对一的关系

B、一对多的关系

C、关联关系

D、多对多的关系

42、下面对实体关系(E-R)模型理解不正确的是()(选择一项)

A、E-R模型是一个面向问题的概念模型

B、E-R概念模型中,信息是由实体、实体属性、实体之间的关系3中概念单元来表示

C、E-R图是用来描述现实世界的模型

D、E-R图与具体的数据库有关,最终要用一个具体的数据库来实现E-R图所描述的数据需求

43、关于数据表范式的理解不正确的是()(选择一项)

A、数据表规范化的程度越高,数据冗余就越少

B、数据表规范化的程度越高,数据库在访问数据表以及表之间的关联也就越少

C、数据表规范化的程度越高,在查询检索时需要做出的关联等工作就越多

D、数据表规范化的程度越高,造成人为可能性错误就越少

44、在SQL中,为表添加一列的语法正确的是()(选择一项)

A、alter table … drop …

B、alter table … alter …

C、alter table … insert …

D、alter table … add …

45、在录入用户数据时,年龄要求不能小于18岁,应采用()(选择一项)

A、默认约束

B、主键约束

C、检查约束

D、外键约束

46、在SQL中,用来存储大量的文本数据的数据类型是()(选择一项)

A、char

B、varchar

C、int

D、text

47、在SQL中,数据库用户的权限不包括()(选择一项)

A、数据对象权限

B、操作权限

C、语句权限

D、隐含权限

48、在SQL中,下面关于if…else语句描述错误的是()(选择一项)

A、if…else可以嵌套使用,但是嵌套层数有限制

B、if…else语句是条件判断语句

C、if…else语句里,else子句是可选的

D、其中,定义语句块使用控制流程关键字begin和end

49、在SQL中,如果要将一组语句执行n次,则可以使用的语句结构是()(选择一项)

A、case

B、while

C、if…else

D、for

50、在SQL中,如果想要查看上网记录所对应的会员信息,应在横线处填写()(选择一项)

select * from cardInfo where CardID _________ (select CardID from recordInfo)A、= B、like C、in D、>=

答案:

1、C

2、D

3、D

4、B

5、B

6、D

7、BC

8、AB

9、CD 10、ABCD

11、ABC 12、ABC 13、A 14、A 15、A 16、D 17、B 18、A 19、D

20、AD 21、C 22、C 23、C 24、C 25、B 26、A 27、A 28、B 29、A 30、C 31、A 32、B 33、B 34、D 35、C 36、BD 37、B 38、A 39、B 40、A 41、C 42、D 43、B 44、D 45、C 46、D 47、B 48、A 49、B 50、C

sql综合测试三

1、在SQL中,下面不包括事务分类的是()(选择一项)

A、显示事务

B、回滚事务

C、隐式事务

D、自动提交事务

2、在SQL中,以下关于存储过程的说法错误的是()(选择一项)(是预编译集合)

A、存储过程就是一系列SQL语句的组合

B、存储过程是SQL查询语句与控制流语句的预编译集合

C、存储过程以特定的名称保存在数据库中

D、存储过程也是数据库对象

3、在SQL中,要指定存储过程的参数为输出参数正确的是()(选择二项)

A、output

B、in

C、on

D、out

4、在SQL中,关于存储过程的输入参数默认值的说法错误的是()(选择一项)

A、给参数指定默认值后,调用存储过程时,可以不提供参数

B、输入参数必须有默认值

C、在调用存储过程时,可以使用default代替参数

D、带默认值的输入参数,可以方便用户使用

5、在SQL中,关于存储过程中使用return关键字的作用有()(选择二项)

A、可以使用return关键字阻止存储过程的执行

B、可以使用return查询出数据

C、return可以返回数据

D、return语句只能在存储过程中使用

6、在SQL中,下面不属于创建事务的原则的是(C )(选择一项)

A、事务要尽可能简短

B、在事务中访问的数据要尽量减少

C、浏览数据时要尽量打开事务

D、在事务处理期间尽量不要请求用户输入

7、在SQL中,下面的语句不能在事务中使用的有()(选择二项)

A、insert

B、create database

C、drop database

D、delete

8、在SQL中,下面不属于事务的隔离级别的是()(选择一项)

A、read uncommitted

B、read committed

C、repeatable read

D、unqinue read

9、在SQL中,创建视图的命令正确的是()(选择一项)

A、create procedure

B、create trigger

C、create view

D、create database

10、在SQL中,下面不属于索引的类型的是()(选择一项)

A、主键索引

B、唯一索引

C、聚集索引

D、组合索引

11、在SQL中,下面创建索引不正确的是()(选择一项)

A、create fillfactor

B、create unique

C、create clustered

D、create nonclustered

12、在SQL中,下面关于触发器的说法不正确的是()(选择一项)

A、触发器是一种实施复杂的、完整性约束的特殊存储过程

B、触发器不像一般的存储过程,可以使用存储过程的名字来调用或执行

C、触发器一般用于加强数据库的某些使用规则

D、触发器有inserted和deleted表

13、在SQL中,下面关于inserted和deleted表的说法不正确的是()(选择一项)

A、inserted表用于存放insert或update语句执行所影响行的副本

B、deleted表存放delete或update语句执行所影响行的副本

C、当执行一条delete语句时,deleted表和触发器表会有相同的行

D、inserted和deleted表只能由创建它们的触发器引用

14、在SQL中,创建触发器的类型不包括()(选择一项)

A、insert触发器

B、update触发器

C、delete触发器

D、select触发器

15、在SQL中,触发器的优点不包括()(选择一项)

A、触发器不可以通过数据库中的相关表实现级联更改

B、触发器可以强制比用check约束定义的约束更为复杂的约束

C、与check约束不同,触发器可以引用其他表中的列

D、触发器可以评估数据修改前后的表状态,并根据其差异采取对策

16、在SQL中,下面对视图的说法不正确的是()(选择一项)

A、视图由字段和记录组成,是真实存在的

B、视图是包含一张表或多张表的列组成的数据集

C、视图是一张虚拟表

D、对表能进行的操作都可以用于视图

17、安装MS SQL Server时,系统自动建立几个数据库,其中有一个数据库被删除后,不影响系统的正常运行,这个数据库是()(选择一项)

A、master数据库

B、model数据库

C、tempdb数据库

D、pubs数据库

18、E-R模型用于数据库设计的哪一个阶段()(选择一项)

A、需求分析

B、概念结构设计

C、逻辑结构设计

D、物理结构设计

19、关于关系图下列哪一个是正确的()(选择一项)

A、关系图是在同一个表中不同字段之间建立关联

B、关系图是表与表之间建立关联,与字段无关

C、关系图是在不同表中的字段之间建立关联

D、关系图是在不同数据库之间建立关联

20、在SQL中,select distinct表示查询结果中()(选择一项)

A、属性名都不相同

B、去掉了重复的列

C、行都不相同

D、属性值都不相同

21、在T-SQL语言中,修改表结构时,应使用的命令是()(选择一项)

A、update

B、insert

C、alter

D、modify

22、在SQL数据库中,如果强制要求[grades]表中的学员必须是[Students]表中存在的学员,以下描述正确的是()(选择一项)

A、在[grades]表中创建外键约束

B、在[grades]表中创建检查约束

C、在[grades]表中创建唯一约束

D、在[grades]表中创建默认约束

23、下面哪项是一元运算符()(选择一项)

A、/

B、%

C、>

D、-

24、查询语句select stuff(‘he rld‘,3,1,’llo wo‘)结果为()(选择一项)

A、hello

B、world hello

C、hello world

D、world

25、select 职工号from 职工where 工资>1250 命令的功能是()(选择一项)

A、查询工资大于1250的记录

B、查询1250号记录后的记录

C、检索所有的职工号

D、从[职工]表中检索工资大于1250的职工号

26、在SQL中,关于以下程序段,正确的说法是()(选择一项)

create proc proc_test

@age int as

declare @error int set @error=0

begin tran update student set age=@age

@error=@error++@@errorS

if(@error<>0)rollback tran else commit tran go

A、创建了一个带事务处理的存储过程

B、此存储过程无法修改student表中的age

C、此存储过程无法创建

D、定义@error时出错

27、在SQL的系统存储过程中,()存储过程用于返回某个表列的信息(选择一项)

A、sp_help

B、sp_columns

C、sp_helpdb

D、sp_tables

28、在SQL中,对数据完整性描述正确的是()(选择二项)

A、数据的正确性和数据的相容性,它们共同保证数据在语义上的合理性和有效性

B、数据库中每一字段都必须要有数据

C、数据的类型限制,例如年龄字段是int,不能向数据表添加如20.02这样的数据

D、数据完整性的保证一般是由DBMS提供的机制来实现

29、在sql server2005中,为数据库表建立索引能够()(选择一项)

A、防止非法的删除操作

B、防止非法的插入操作

C、提高查询性能

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

30、数据库中存放三个关系:学生(学号,姓名)和课程(课程号,课程名)和成绩(学号、课程号、成绩),为快速查出某位学生所学的课程名,应该()(选择一项)

A、在学生表上按学号建索引

B、在成绩表上按课程号建索引

C、在课程表上岸课程号建索引

D、在学生表上按姓名建索引

31、在[Student]表中基于StuName字段建立的索引属于()(选择一项)

A、唯一索引非聚集索引

B、非唯一索引非聚集索引

C、聚集索引非唯一索引

D、唯一索引聚集索引

32、sql server 2005中,使用t-sql编程时,下列()语句可以从while语句块中退出(选择一项)

A、continue

B、exit

C、break

D、close

33、在SQL中,下列涉及通配符的操作,范围最大的是()(选择一项)

A、name like ‘hgf#‘

B、name like ’hgf_%‘

C、name like ‘hgf%‘

D、name like ’h#%‘escape ’#‘

34、下面哪个是SQL列名的合法标识符()(选择一项)

A、a12

B、12a

C、@a12

D、#qq

35、查询毕业学校名称与“清华”有关的记录应该用()(选择一项)

A、select * from 学习经历where 毕业学校like ‘*清华*‘

B、select * from 学习经历where 毕业学校= ‘%清华%‘

C、select * from 学习经历where 毕业学校like ‘?清华?‘

D、select * from 学习经历where 毕业学校like ‘%清华%‘

36、已知员工和员工亲属两个关系,当员工调出时,应该从员工关系中删除该员工的元组,同时在员工亲属关系中删除对应的亲属元组,在SQL语言中利用触发器定义这个完整性约束的短语是()(选择一项)

A、instead of delete

B、instead of drop

C、after delete

D、after update

37、在SQL数据库中,以下对变量的定义错误的是()(选择一项)

A、declare @name varchar(8)

B、declare @error varchar(50)

C、declare @@name varchar(8)

D、declare @@error varchar(50)

38、SQL Server支持在线备份,但在备份过程中,不允许执行的操作是()(选择一项)(1)创建或删除数据库文件(2)创建索引(3)执行非日志操作

(4)自动或手动缩小数据库或数据库文件大小

A、(1)

B、(1)(2)

C、(1)(2)(3)

D、(1)(2)(3)(4)

39、在sql server2005中,根据以下表设计的代码,判断其设计方面的问题是()(选择一项)

create table member(

last_name char(20)null,

first_name varchar(30)not null,

address_line1 varchar(30)null,

address_line2 varchar(30)null,

address2_line1 varchar(30)not null,

address2_line2 char(30)null,

book_id int null)

A、应该把所有的null修改为not null,而且把not null修改为null

B、该表有进一步规范化的必要

C、把book_id设为主键

D、所有字段都应允许为空

40、数据库设计时,在做表规范化的时候一般规范到()就足够了(选择一项)

A、第一范式

B、第三范式

C、第四范式

D、第五范式

41、在sql server 2005中,给定如下的t-sql:

declare @abc int

declare @xyz int

set @abc=10

while @abc<=100

begin

set @xyz=

case floor(@abc/30)

when 0 then @abc*5

when 1 then @abc*10

else @abc*20

end

set @abc=@xyz

end

print @xyz

程序最后输出的结果是()(选择一项)

A、50

B、500

C、100

D、以上都不对

42、sql server数据库中,包含两个表:order订单表,item订单子项目表。

当一个新定单被加入时,数据要分别保存到order和item表中,要保证数据完整性,可以使用以下()语句(选择一项)

A、begin transaction

insert into order values (此处省略)

insert into item values (此处省略)

end transaction

B、begin transaction

insert into order values (此处省略)

insert into item values (此处省略)

if (@@error = 0)

commit transaction

else

rollback transaction

C、begin transaction

insert into order values (此处省略)

if (@@error = 0)

insert into item values (此处省略)

if (@@error = 0)

commit transaction

else

rollback transaction

else

rollback transaction

D、begin transaction

insert into order values (此处省略)

insert into item values (此处省略)

if (@@error <> 0)

rollback transaction

数据库实验3答案

实验三:交互式SQL语句的使用 1、实验目的 (1)掌握数据库对象的操作过程,包括创建、修改、删除 (2)熟悉表的各种操作,包括插入、修改、删除、查询 (3)熟练掌握常用SQL语句的基本语法 2、实验平台 使用SQL Server提供的Microsoft SQL Server Management Studio工具,交互式使用SQL语句。 3 实验容及要求 选择如下一个应用背景之一: ●学生选课系统 ●习题3、4、和5中使用的数据库 ●其它你熟悉的应用 (1)建立一个数据库和相关的表、索引、视图等数据库对象,练习对表、索引和视图的各种操作。 (2)要求认真进行实验,记录各实验用例及执行结果。 (3)深入了解各个操作的功能。 实验要求包括如下方面的容: 3.1 数据定义 1.基本表的创建、修改及删除 2.索引的创建 3.视图的创建 3.2 数据操作 完成各类更新操作包括: 1.插入数据

2.修改数据 3. 删除数据 3.3 数据查询操作 完成各类查询操作 1.单表查询 2.分组统计 3. 连接查询 4. 嵌套查询 5. 集合查询 3.4 数据操作 1.创建视图 2.视图查询 参考示例: 建立一个学生选课数据库,练习对表、视图和索引等数据库对象的各种操作。 一、数据定义 创建学生选课数据库ST,包括三个基本表,其中Student表保存学生基本信息,Course表保存课程信息,SC表保存学生选课信息,其结构如下表: 表1. Student表结构 表2. Course表结构

表3. SC表结构 1.创建、修改及删除基本表 (1)创建Student表 CREATE TABLE Student (Sno CHAR(8)PRIMARY KEY, Sname CHAR(8), Ssex CHAR(2)NOT NULL, Sage INT, Sdept CHAR(20) ); (2)创建Course表 CREATE TABLE Course (Cno CHAR(4)PRIMARY KEY, Cname CHAR(40)NOT NULL, Cpno CHAR(4), Ccredit SMALLINT, ); (3)创建SC表 CREATE TABLE SC (Sno CHAR(8)FOREIGN KEY (Sno)REFERENCES Student(Sno), Cno CHAR(4), Grade SMALLINT, ); (4)创建员工表Employee

数据库SQL实验题目

实验一数据定义操作 实验目的 1.掌握数据库和表的基础知识 2.掌握使用创建数据库和表的方法 3.掌握数据库和表的修改、查看、删除等基本操作方法 实验内容和要求 一、数据库的创建 在开始菜单中,启动SQl Server 程序中的“SQL Server Management Studio”,在对象资源管理器窗口中,右键单击“数据库”,选择“新建数据库”,创建成绩管理数据库Grademanager,要求如下表所示: Grademanager数据库参数表 参数参数值参数参数值 存储的数据文件路 径 D:\db\ 存储的日志文件路径D:\db\ 数据文件初始大小5MB 日志文件初始大小2MB 数据文件最大值20MB 日志文件最大值15MB 数据文件增长量原来10% 日志文件增长量2MB 二、表的创建、查看、修改和删除 1.表的创建 在Grademanager数据库中,右键单击“表”,选择“新建表”命令,创建如下表所示的表:(1)Student表的表结构 字段名称数据类型长度精度小数位数是否允许 Null值 说明 Sno Char 10 0 0 否学号,主码 Sname Varchar 8 0 0 是姓名 Ssex Char 2 0 0 是性别,取值:男或女 Sbirthday Date 8 0 0 是出生日期 Sdept Char 16 0 0 是系名 Speciality Varchar 20 0 0 是专业名 特别注意: 为属性Ssex设置约束,需选中属性Ssex行,然后单击菜单中的“表设计器”,选择“CHECK 约束”命令,然后按照图1进行设置。

图1 设置性别的约束 (2)Course表(课程名称表)的表结构 字段名称数据类型长度精度小数位数是否允许Null值说明 Cno Char 5 0 0 否课程号,主码Cname Varchar 20 0 0 否课程名 (3)SC表(成绩表)的表结构 字段名称数据类 型 长 度 精 度 小数位 数 是否允许Null值说明 Sno Char 10 0 0 否学号,外码 Cno Char 5 0 0 否课程号,外码 Degree Decimal 5 5 1 是成绩,0~100之间 特别注意: ①为属性Degree 约束,可参照属性Ssex进行设置,“CHECK约束对话框”中的表达式为Degree>=1 And Degree<=100 ②为SC表设置外键Sno和Cno的方法: 右键单击表SC,选择“设计”命令,然后选择菜单“表设计器”中的“关系”命令,打开“外键关系”窗口,选择“添加”按钮,然后单击“表和列规范”后的按钮,按照图2进行设置,即可将SC表中的Cno属性设置为外键。按照相同的方法,将属性Sno也设置为外键。

SQL数据库实验报告 (1)

资源与环境科学学院实验报告 一、上机实习名称:SQL Server的安装及数据库的建立 二、实验目的: 1、通过对某个商用数据库管理系统的使用,了解DBMS的工作原理和系统构架。 2、熟悉对DBMS的操作 3、熟悉如何使用SSMS和SQL建立数据库和表,并加深对于完整性的理解。 三、实验内容: 1、根据安装文件的说明安装数据库管理系统。 2、学会启动和停止数据库服务,思考可以用哪些方式来完成启动和停止。 3、掌握管理工具的使用 (1)SQL Server Management Studio的使用 ?连接服务器的方法 ?查询分析器的使用 (2)配置管理器的使用 4、了解数据库系统的逻辑组件: 它们主要是数据库对象,包括基本表、视图、触发器、存储过程、约束等。今后将学习如何操作这些数据库对象。 5.在SSMS中创建数据库和表 四、实验步骤 1. SQL Server 2008的体系结构和特点介绍 SQL Server 是一个关系数据库管理系统。由微软公司2008年第三季度正式发布, SQL Server 2008是一个重大的产品版本,在安全性、可用性、易管理性、可扩展性、商业智能等方面有了更多的改进和提高,对企业的数据存储和应用需求提供了更强大的支持和便利,使得它成为迄今为止最强大和最全面的SQL Server版本。 SQL Server 2008 版本体系:根据不同的用户类型和使用需求,微软公司推出了5种不同的SQL Server版本,包括企业版(Enterprise)、标准版(Standard)、工作组版(Workgroup)、学习版(Express)和移动版(Compact)

数据库实验四:SQL数据查询

数据库实验四:SQL数据查询 一、实验目的与要求: 1.实验目的 熟练掌握SQL SELECT语句,能运用查询语句完成各种查询。 实验内容: 在实验三和实验四的基础上完成查询操作,将题目中的x, y等具体化: 1、一般简单查询 (1)不带条件的查询指定字段(考虑去掉和不去掉重复值两种情况)。 (2)查询某个表中的所有记录。 (3)使用单个条件的简单查询。 (4)使用多个条件(AND关系)的查询。 (5)使用多个条件(OR关系)的查询。 (6)使用多个条件(混合AND和OR关系)的查询。 (7)使用带NOT运算的查询。 (8)使用BETWEEN···AND···的查询。 (9)使用NOT···BETWEEN···AND···的查询。 (10)使用LIKE运算符的字符串匹配查询。 (11)使用LIKE运算符的模板匹配查询。 (12)查询空值和非空值的查询 (13)结果要求排序的查询 (14)查询结果按多列排序,并分别要求升序和降序的查询。 (15)使用TOP显示前若干记录的查询。 (16)使用TOP显示前若干记录的查询,如果有满足条件的并列记录一并显示。 2、连接查询 (17)两个关系的连接查询。

(18)带其他查询条件的两个关系的连接查询。 (19)多个关系(三个以上)的连接查询。 (20)两个关系的广义笛卡尔积运算结果。 (21)根据两个关系的广义笛卡尔积运算结果得到两个关系进行自然连接的结果。 (22)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段。 (23)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中列出所有教师信息(即包括不是任 何课程责任教师的教师信息)。 (24)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中能够反映目前没有确定责任教师的 课程信息。 (25)查询教师-课程信息,查询结果中包括教师姓名、职称、课程名称和课程性质等4个字段,要求结果中既能够反映目前不是责任教师的教 师信息,又能反映目前没有确定责任教师的课程信息。 提示:(22)~(25)分别用内连接、左连接、右连接完成,分析它们的效果。 3、嵌套查询(注意使用ANY、ALL和EXISTS) (26)使用IN运算的简单嵌套查询。 (27)使用NOT IN运算的简单嵌套查询。 (28)使用关系运算(如等于)的简单嵌套查询。 (29)使用ANY或SOME的简单嵌套查询。 (30)使用ALL的简单嵌套查询。 (31)查询院系名称含“计算机”、职称为教授、所负责教程为必修课的教师姓名、职称、课程名称和课程学时等信息(分别用嵌套查询和连接 查询完成,分析各自的效率)。 (32)设计两个内外层互相关的嵌套查询。

数据库SQLServer实验3答案教辅教材

实验3 SQL Server数据表管理 一、实验目的 1.学会使用SQL Server管理平台和Transact-SQL语句CREATE TABLE 和ALTER TABLE创建和修改表。 2.学会在SQL Server管理平台中对表进行插入、修改和删除数据操作。 3.学会使用Transact-SQL语句对表进行插入、修改和删除数据操作。 4.了解SQL Server的常用数据类型。 二、实验内容 1.启动SQL Server管理平台,在对象资源管理器中展开“studentsdb数据库文件夹。 2.在studentsdb数据库中创建数据表《学生表》、《课程表》、《成绩表》,数据结 构如图3-1、图3-2和图3-3所示。 图3-1 学生表 图3-2 课程表

图3-3 成绩表3.在SQL Server管理平台中创建《学生表》、《课程表》。 4.在SQL Server管理平台中,将《学生表》的学号列设置为主键,非空。 5.使用Transact-SQ语句CREATE TABLE在studentsdb数据库中创建《成绩表》。 6.《学生表》、《课程表》、《成绩表》中的数据如图3-4、图3-5和图3-6所示。 7.在SQL Server管理平台中为《学生表》、《课程表》、《成绩表》添加数据。

(注意:在添加数据是必须逐行输入,否则系统将会报错,显示“出错信息为:键列信息不足或不正确。更新影响到多行”,产生原因是由于相同记录所造成)。 8.使用Transact-SQL语句INSERT NTTO …VALUES向studentsdb数据库的《成绩表》插入以下数据: 学号课程编号成绩 0004 0001 80

sql实验5(一)

实验报告专用纸 实验5 索引和视图 三、实验内容 1.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的student_info和curriculum创建主键索引。 ①、使用企业管理器为studentsdb数据库的student_info创建主键索引。 ②使用企业管理器为studentsdb数据库的curriculum创建主键索引。(将课程表的课程编号属性设为主键,系统将自动创建主键索引) ③使用Transact-SQL语句为studentsdb数据库的student_info创建主键索引。(将先前创建好的主键移除) create clustered index student_info_idx on student_info(学号)

④使用Transact-SQL语句为studentsdb数据库的curriculum创建主键索引。(将先前创建好的主键移除) create clustered index curriculum_idx on curriculum(课程编号) 2.使用企业管理器按curriculum的课程编号列创建唯一性索引。

3.分别使用企业管理器和Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index

①使用企业管理器为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。 ②使用Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引。(删除之前所创建的索引)

数据库-SQL语言的实验

北华航天工业学院《数据库原理与应用》 实验报告 报告题目:SQL语言 作者所在系部:计算机系 作者所在专业:网络工程 作者学号:20114052233 作者姓名: 张旭刚 指导教师姓名:李建义 完成时间:20134.24 北华航天工业学院教务处制

SQL语言 一、实验目的 1、理解数据库以及数据表的设计; 2、熟悉SQLServer2005中的数据类型; 3、熟悉使用SQL语句创建和删除模式和索引; 4、掌握使用SQL语句创建、修改和删除数据表; 5、掌握使用SQL语句查询表中的数据; 6、掌握使用SQL语句插入、修改和删除数据表中的数据; 7、掌握使用SQL语句创建、删除、查询和更新视图。 二、实验内容 (一)创建数据库和模式 1、通过SQL语句创建图书信息管理数据库,命名为“db_Library”,数据文件和日志文件放在D盘下以自己学号和姓名命名的文件夹中,数据文件的逻辑名为db_Library_data,数据文件的操作系统名为db_Library_data.mdf,文件初始大小为10MB,最大可增加至300MB,增幅为10%;日志文件的逻辑名为db_Library_log,日志文件的操作系统名为db_Library_data.ldf,文件初始大小为5MB,最大可增加至200MB,增幅为2MB。 2、通过SQL语句在该数据库中创建模式L-C。 (二)创建和管理数据表 要求为各数据表的字段选择合适的数据类型及名称;为各数据表设置相应的完整性约束条件。 1、通过SQL语句将以下数据表创建在L-C模式下: 课程信息表(tb_course)——课程编号、课程名、先修课、学分 2、通过SQL语句将以下数据表创建在该数据库的默认模式dbo下: 图书类别信息表(tb_booktype)——类别编号、类别名称 图书信息表(tb_book)——图书编号、类别编号、书名、作者、出版社、定价、库存数 读者信息表(tb_reader)——读者编号、姓名、性别、学号、班级、系部 借阅信息表(tb_borrow)——图书编号、读者编号、借阅日期、归还日期 3、通过SQL语句对读者信息表进行修改:删除系部字段、添加所在系字段。 4、通过SQL语句对图书信息表进行修改:将定价的数据类型改为REAL。 5、通过SQL语句删除课程信息表。 (三)创建和删除索引 1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。 2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的姓名字段的升序创建。 3、使用SQL语句删除之前创建的两个索引。 (四)数据库及数据表设计 根据周围的实际应用情况,自选一个小型的数据库应用项目进行研究,完成该系统的设计。要求2人一组,通过需求分析,列出系统的主要功能,并完成该系统数据库的逻辑结构设计。例如可选择学籍管理系统、企业进销存管理系统、人事管理系统或在线考试系统等。

SQL数据库实验报告 实验二

实验2 SQL Server数据库的管理 1.实验目的 (1)了解SQL Server 数据库的逻辑结构和物理结构的特点。 (2)掌握使用SQL Server管理平台对数据库进行管理的方法。 (3)掌握使用Transact-SQL语句对数据库进行管理的方法。 2.实验内容及步骤 (1)在SQL Server管理平台中创建数据库。 ①运行SQL Server管理平台,在管理平台的对象资源管理器中展开服务器。 ②右击“数据库”项,在快捷菜单中选择“新建数据库”菜单项。在新建数据库对话框的数据库名称文本框中输入学生管理数据库名studentsdb,单击“确定”按钮。 (2)选择studentsdb数据库,在其快捷菜单中选择“属性”菜单项,查看“常规”、“文件”、“文件组”、“选项”、“权限”和“扩展属性”等页面。 (3)打开studentsdb数据库的“属性”对话框,在“文件”选项卡中的数据库文件列表中修改studentsdb数据文件的“分配的空间”大小为2MB。指定“最大文件大小”为5MB。修改studentsdb数据库的日志文件的大小在每次填满时自动递增5%。 (4)单击“新建查询”打开查询设计器窗口,在查询设计器窗口中使用Transact-SQL 语句CREATE DA TABASE创建studb数据库。然后通过系统存储过程sp_helpdb查看系统中的数据库信息。 (5)在查询设计器中使用Transact-SQL语句ALTER DATABASE修改studb数据库的设置,指定数据文件大小为5MB,最大文件大小为20MB,自动递增大小为1MB。 (6)在查询设计器中为studb数据库增加一个日志文件,命名为studb_Log2,大小为5MB,最大文件大小为10MB。 (7)使用SQL Server管理平台将studb数据库的名称更改为student_db。 (8)使用Transact-SQL语句DROP DATABASE删除student_db数据库。 3.实验思考 (1)数据库中的日志文件是否属于某个文件组? (2)数据库中的主数据文件一定属于主文件组吗? (3)数据文件和日志文件可以在同一个文件组吗?为什么? (4)删除了数据库,其数据文件和日志文件是否已经删除?是否任何人都可以删除数据库? (5)能够删除系统数据库吗?

数据库实验四(含答案)

实验四使用SQL语句创建和删除数据库、表 一. 实验目的: 1、了解SQL Server 2005数据库的逻辑结构和物理结构。 2、掌握使用SQL 语句创建和删除数据库。 3、学会使用T-SQL语句创建表。 二. 实验准备 1.明确能够创建数据库的用户必须是系统管理员,或是被授权使用CREATE DATABASE语句的用户。 2.了解用SQL语句创建和删除数据库的基本语法。 3.是用查询分析器,完成用SQL语句创建和删除基本表。 三. 实验要求 1、熟练使用查询分析器进行数据库的创建和删除操作。 2、用查询分析器,完成用SQL语句创建和删除基本表。 3、完成实验报告。 四. 实验内容 一、数据库 1.以下是创建数据库userdb1的SQL语句, create database userdb1 on (name=userdb4_data,--数据文件的逻辑名称,注意不能与日志逻辑同名 filename='g:\xygl\userdb4.mdf' ,--物理名称,注意路径必须存在 size=5,--数据初始长度为5M maxsize=10,--最大长度为10M filegrowth=1)--数据文件每次增长1M log on ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 , filegrowth=1) 运行上诉语句建立数据库userdb1

句,并建立“学生信息”数据库.(.mdf的名字可以修改) 3.数据库的修改(alter database 数据库名add file),将一个大小为10MB 的数据文件mrkj添加到userdb1的数据库中,该数据文件的大小为10MB,最大的文件大小为100MB,增长速度为2MB,物理地址与原有的mdf,ldf文件放在一起。 alter database 数据库名 add file() 注括号内格式同下: ( name=userdb4_log, filename='g:\xygl\userdb4.ldf ' , size=2 , maxsize=5 ,

实验3 SQL基本操作

实验3 SQL概述 一、实验目的 1.掌握使用企业管理器创建数据库、定义表结构、修改表、删除表的操作 2.创建视图,修改、删除视图。 二、实验内容 1.使用企业管理器创建数据库CPXS; 2.修改数据库、删除数据库; 3.在数据库CPXS中创建表; 4.创建查询产品库存量和销售时间的视图; 5.删除视图,修改视图。 三、实验步骤 1.使用企业管理器创建数据库 (1)进入企业管理器主界面,右击“数据库”文件夹,在弹出的快捷菜单中选择“新建数据库”命令。 (2)弹出“数据库属性”对话框,其中有“常规”、“数据文件”、“事务日志”3个选项卡。 (3)在“常规”选项卡中的“名称”对话框中输入要建立的数据库名称,这里只能输入字母不能输入汉字,如要建立产品销售数据库,可以输入“CPXS”。如图1所示。

图1 输入数据库名称cpxs (4)选择“数据文件”选项卡,对数据文件的逻辑名称、存储位置、容量大小、所属文件组名称和文件属性进行设置。例如,设置数据库的数据文件的逻辑名为cpxs_data,开始大小为1MB,所属文件组为Primary,文件按15%的比例自动增长,文件最大增长到15MB。

图2 设置cpxs属性 (5)选择“事务日志”选项卡,对事务日志文件的物理存储进行设置,可以输入事务日志文件的名称、存储位置、初始大小和文件属性等信息。如设置cpxs数据库的事务日志文件名是cpxs_Log,初始大小为 1MB,文件按5%的比例自动增长,文件最大增长到5MB。 (6)单击“确定”按钮,完成数据库的创建后,会在“数据库”文件夹内出现新建的cpxs的数据库。 2.修改数据库 (1)在企业管理器中右击cpxs,从弹出的快捷菜单中选择“属性”命令。 (2)弹出该数据库的属性对话框,在其中可以对常规、数据文件、事务日志、文件组、选项和权限6个选项进行设置,单击“确定”按钮,即可完成对选定数据库的修改。 3.删除数据库

数据库SQL语句实验报告

《数据库原理及应用》实验报告 SQL语句部分 总成绩:

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 3.创建课程关系表C : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 create database Studend; create table S ( Sno CHAR(9)PRIMARY KEY, Sname CHAR(20)UNIQUE, Ssex CHAR(2), Sage smallint, Sdept char(20), );

3.创建课程关系表C : 课程号课程名先行课学分 Cno Cname Cpno ccredit create table C ( Cno char(4)primary key, Cname CHAR(40), Cpno char(4), Ccredit SMALLINT, ); 4.创建课程关系表SC : 学号课程号成绩 Sno Cno grade create table SC ( Sno char(9), Cno char(4), Grade smallint, ); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 alter table S add Sbirthday datetime; 7、删除表S的“年龄”属性列。 alter table S drop column Sage;

SQL Server数据库及表的建立 实验要求和截图记录

实验一 SQL Server数据库及表的建立 1. 按下面要求创建一个名为companyinfo的数据库: 主要数据文件:逻辑文件名为companyinfo_data1,实际文件名为companyinfo_data1.mdf;初始容量为1MB,最大容量为10MB,递增量为1MB。 次要数据文件:逻辑文件名为companyinfo_data2,实际文件名为companyinfo_data2.mdf;初始容量为1MB,最大容量为10MB,递增量为1MB。 事务日志文件:逻辑文件名为companyinfo_log,实际文件名为companyinfo_log.ldf;初始容量为1MB,最大容量为10MB,递增量为1MB。 2. 在companyinfo数据库中创建名为“category”的类别表,名为“product”的产品信息表,名为“employee”的雇员表,名为“customer”的客户表和名为“p_order”的订单表。 类别表(以类别ID为主键) 产品信息表(以产品ID为主键,类别ID是与类别表的类别ID相联系的外键) 雇员表(以雇员ID为主键,且薪水不得低于1000元) 客户表(以客户ID为主键)

订单表(以订单ID为主键,产品ID,雇员ID,客户ID均为外键,分别与产品信息表、雇员表和客户表的主键相联系) 3.利用企业管理器和T-SQL语句分别实现上面的操作。 实验操作过程截图记录如下: 实验一 SQL Server数据库及表的建立 1,按要求创建一个名为companyinfo的数据库: 利用企业管理器创建:

2,在companyinfo数据库中创建名为“category”的类别表,名为“product”的产品信息表,名为“employee”的雇员表,名为“customer”的客户表和名为“p_order”的订单表。 类别表 产品信息表

数据库sqlserver实验报告

实验一熟悉常用的 DBMS:SQL SERVER2008、Oracle 试验内容及要求: (1)了解不同数据库管理系统及不同版本的相应功能特点 目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比较成熟。面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX和INGRES。这些产品都支持多平台,如UNIX、VMS、Windows,但支持的程度不一样。IBM的DB2也是成熟的关系型数据库。但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。 1.MySQL MySQL是最受欢迎的开源SQL数据库管理系统,它由MySQL AB开发、发布和支持。MySQL AB是一家基于MySQL开发人员的商业公司,它是一家使用了一种成功的商业模式来结合开源价值和方法论的第二代开源公司。MySQL是MySQL AB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass- deployed)的软件中去。与其他数据库管理系统相比,MySQL具有以下优势: (1)MySQL是一个关系数据库管理系统。 (2)MySQL是开源的。 (3)MySQL服务器是一个快速的、可靠的和易于使用的数据库服务器。 (4)MySQL服务器工作在客户/服务器或嵌入系统中。 (5)有大量的MySQL软件可以使用。 2.SQL Server SQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。 目前最新版本是SQL Server2005,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。并行实施和共存模型并不成熟,很难处理日益增多的用户数和数据卷,伸缩性有限。 SQL Server 提供了众多的Web和电子商务功能,如对XML和Internet标准的丰富支持,

实验3PLSQL编程

实验三PL/SQL编程 1.PL/SQL块处理 定义一个包含声明、执行和异常处理的块 查询EMP表中职工号7788的工资,输出工资的值并且如果工资小于3000那么把工资更改为3000,异常部分对NO_DATA_FOUND异常进行处理,输出没有该员工。 如果想运行缓冲区的内容,那么可以用RUN命令或者/命令;serveroutput需要设置为on 2.记录类型的使用 创建一个记录类型v_record,类型包含name,salary,job,deptno等分量,要求记录类型的分量的数据类型和emp表中列的数据类型一致(%type实现)。创建一个变量,变量类型为v_ record,读取EMP表中职工号为7788的ename,sal,job,deptno为该变量赋值,输出变量的分量。 3.条件语句的使用 分别用IF语句和CASE语句实现以下要求:输入一个员工号,修改该员工的工资,如果该员工职位是CLERK,工资增加100;若为SALESMAN,工资增加160;若为ANALYST,工资增加200;否则增加300。 4. 循环和显示游标的使用 分别用简单循环、WHILE循环、FOR循环以及显示游标统计并输出各个部门的人数以及平均工资 5.用隐式游标实现以下要求:修改部门号为50的部门地址为‘BEIJING’。如果该部门不存在,则向dept表中插入一个部门号为50,地址为‘BEIJING’的记录。 6.创建一个显示雇员总人数的存储过程emp_count,并执行该存储过程 7. 编写显示雇员信息的存储过程EMP_LIST,并引用EMP_COUNT存储过程 8. 创建函数,实现功能为:在scott.emp表和scott.dept表中查询出任意给定职工号的职工姓名及职工所在部门的名称。 9. 创建触发器,实现更新dept表中的deptno值,级联更新emp表中相应值。 10. 对存储过程、函数及触发器实现查看、修改、删除等基本操作。 主要算法和程序清单: 1. DECLARE v_empno emp.empno%TYPE:=7788; v_sal emp.sal%TYPE; v_add emp.sal%TYPE; BEGIN SELECT sal INTO v_sal FROM emp WHERE empno=v_empno; IF v_sal<3000 THEN v_add:=3000;

北邮数据库实验二用SQL Server实现数据库设计

实验二用SQL Server实现数据库设计 实验目的: 1.掌握使用企业管理器创建和管理SQL Server数据库及相关数据库对象。 2.掌握使用SQL语言中的SELECT命令实现查询功能。 上机准备: 1.复习有关关系数据库的基本知识和概念; 2.复习有关SQL语言中SELECT命令的使用; 3.了解有关SQL Server系统的组成; 4.复习有关SQL Server服务器的使用和管理; 5.复习有关企业管理器的基本操作; 6.复习有关查询分析器的基本操作; 7.了解有关SQL Server服务器的登陆账号,密码; 实验内容: 本实验将建立一个学校教学管理数据库,在这个数据库中,存储以下信息: 1.有关学生的信息,包括学生的学号,姓名,班级,性别,出生时间,政治面貌,籍贯,入学时间,联系电话,简历; Student(Sno,Sname, Ssex,Classno,Sbirth,Status,Hometown,Enrollment,Telephone,Resume) 2.有关班级的信息,包括班级的班名,专业,年级,人数,班主任; SClass(ClassNo,ClassName,Major,Grade,Number,Advisor)

3.有关课程的信息,包括课程编号,课程名称,课程类别(是指该课程为必修,指选还是任选),适用专业,适用年级,开课时间(是指在每个学年的第一学期,还是第二学期),学分,周学时; Course(CourseNo,CourseName,Category,Major,Grade,StartTM,Credits, WeekHours) 4.有关学年课程安排的信息,包括课程编号,开设课程的学年(例如:2002学年),开设课程的班级,任课教师; Schedule(CourseNo,StartYear,ClassNo,Teacher)

(完整word版)SQL创建数据库实验

(1)创建一个jwglxt数据库,主数据文件逻辑名为jwglxt_data,物理文件名为 jwglxt_data.mdf,初始大小为10M,最大尺寸为无限大,增长速度为1M,日志文件得逻辑名为jwglxt_log,物理文件名为jwglxt_log.ldf,初始大小为1M,最大尺寸为5M,增长速度为1M. (1.1)图形化方法创建数据库

T-SQL语句和结果截图 (2)创建一个有三个文件组primary,my_dbfg1,my_dbfg2,一个事务日志文件mylog的数据库,数据库名为hfy。 Primary文件组包含数据文件my1,初始大小为10M,最大尺寸为50M,增长速度为15%, my_dbfg1文件组包含数据文件my2,初始大小为10M,最大尺寸为50M,增长速度为5M, my_dbfg2文件组包含数据文件my3,初始大小为10M,最大尺寸为50M,增长速度为5M, 日志文件得逻辑名 为mylog,初始大小为1M,最大尺寸为5M,增长速度为1M. CREATE DATABASE hfy

ON PRIMARY(NAME='my1', FILENAME='d:\my1.mdf', SIZE=10MB, MAXSIZE=50MB,FILEGROWTH=15% ), FILEGROUP my_dbfg1(NAME='my2', FILENAME='d:\my2.ndf', SIZE=10MB, FILEGROWTH=5MB, MAXSIZE=50MB), FILEGROUP my_dbfg2(NAME='my3', FILENAME='d:\my3.ndf', SIZE=10MB, FILEGROWTH=5MB, MAXSIZE=50MB) LOG ON (NAME='mylog', FILENAME='d:\mylog.ldf', SIZE=10MB, FILEGROWTH=5MB, MAXSIZE=50MB) GO

数据库SQL语句实验报告

《数据库原理及应用》实验报告SQL语句部分 :绩成总

实验一熟悉SQL SERVER,数据定义实验 实验一成绩: 一、实验目的 1、利用查询分析器创建数据库 2、利用查询分析器用SQL语言定义基本表、索引并进行相关操作 二、实验步骤及内容 在以下实验中,使用学生-课程数据库,它描述了学生的基本信息、课程的基本信息及学生选修课程的信息。 1.创建学生课程数据库 2.创建学生关系表S : 3.创建课程关系表C : 课程名学分先行课课程号Cno ccreditCname Cpno 4.创建课程关系表SC : 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 7、删除表S的“年龄”属性列。 8、删除S姓名列的唯一值约束。 9、修改SC表成绩属性列为精确数字型。 10、在表S上,按“Sno”属性列的唯一值方式建立索引。 11、删除表SC,利用磁盘上保存的.SQL文件重新创建表SC。 12、创建教材P74页习题5中SPJ数据库中的四个关系:S、P、J、SPJ。 三、实验结果: 1.创建学生课程数据库 ; Studend create database2.创建学生关系表S : S create table(, 9Sno CHAR()PRIMARYKEY UNIQUE,)(Sname CHAR20CHAR Ssex (2), smallint Sage ,

char Sdept 20(), ); .创建课程关系表C 3: 课程号课程名先行课学分 ccredit Cpno CnoCname table C create (primary key,) Cno char(4Cname CHAR(40 ),char(), 4Cpno ,Ccredit SMALLINT); 4.创建课程关系表SC : 学号课程号成绩 grade Sno Cno createtable SC(9),Sno char(),char Cno (4, Grade smallint); 5.将以上创建表S、C、SC的SQL命令以 .SQL文件的形式保存在磁盘上。 6、在表S上增加“出生日期”属性列。 ;datetimeadd Sbirthday alter table S 7、删除表S的“年龄”属性列。

SQL实验三数据的更新操作和视图实验报告

实验三数据的更新操作和视图 本实验需要2学时。 一、实验目的 1、掌握视图的创建、修改和删除操作。 2、掌握数据库数据更新(增加、修改、删除)操作。 二、实验内容和步骤 1、视图 (1)建立名为UV_SC的视图。该视图可以让我们看到每个学生的姓名、选修课程名和成绩。(2)利用UV_SC视图,查看平均成绩在80分以上的学生姓名。 (3)建立名为UV_Course的视图,该视图显示每门课的课程名和选修该课程的学生人数。(4)修改视图UV_Course,在视图中增加一列,显示选修该课程所有学生的平均成绩。 (5)建立名为UV_IS_Depart的视图。该视图可以用来查看“信息系”的学生的学号、姓名、年龄和系名。并保证对该视图的修改满足系名为信息系的条件。 (6)建立名为UV_Student的加密视图。该视图可以用来查看每个学生选修的课程门数和平均成绩。 (7)利用UV_Student视图,查询平均成绩在80分以上的学生学号。 (8)能否利用视图UV_Student,修改某个学生的平均成绩? (9)删除视图UV_Student。 2、数据更新 (1)向STUDENT表增加如下记录: (2)将学号'95011',成绩80,以及课程表中的所有课程号插入到SC表中。 (3)建立与表STUDENT同结构的空表STUD。然后利用INSERT命令把表STUDENT中年龄大于19的学生记录添加到表STUD。(注意:可以使用select into语句实现同结构空表的创建,再使用insert命令插入记录;或者使用单条select into语句实现等同的功能) (4)为“95002”的学生增加选修“操作系统”和“数据结构”这两门课的选课记录。 (5)把课程名为“操作系统”的成绩从成绩表SC中删除。(试用三种方式完成)(6)将女生的成绩提高10%。(试用三种方式完成) (7)如果学生“张三”的数据结构的成绩低于65,则加上10分。 (8)将成绩最低的学生的成绩加上10分。 (9)将前3名成绩最高的学生的成绩减去10分。 (10)为没有选课的学生自动增加选修“01”课程的选课记录。 (11)把选修“数学”不及格的成绩全部改成空值。 (12)删除成绩低于总平均成绩的女生的选课记录。 三、实验环境 四、调试过程

数据库实验六 Transact-SQL程序设计

南昌大学实验报告 ---实验六Transact-SQL程序设计学生姓名:丁金芝学号:6100511080 专业班级:管理科学与工程类112班实验类型:■验证□综合□设计□创新实验日期:实验成绩:_____ 一、实验目的 (1)掌握Transact-SQL的数据类型、常量变量、表达式等的概念和使用方法。 (2)掌握程序中注释的基本概念和使用方法。 (3)掌握程序中的流程控制语句的使用方法。 (4)掌握SQL Server 2005中常用函数的用法。 (5)掌握游标的概念和声明方法,以及使用游标进行数据的查询、修改、删除操作等。 二、实验内容与结果 (1)选择学生情况数据库,输入以下T-SQL代码。 DECLARE @stu_name varchar(10) SELECT @stu_name=姓名 FROM 学生 WHERE 姓名LIKE '张%' SELECT @stu_name 观察显示的结果,与学生表中数据进行比较,@stu_name赋值的是SELECT 结果集中的哪个数据?

(2)定义int型局部变量@grademax、@grademin、@gradesum,在学期成绩中查找最高分、最低分和总分,分别赋给@grademax、@grademin和@gradesum,并显示。 (3)使用SET命令将某个查询结果集记录数目赋值给int型局部变量@row。

(4)以下代码在课程注册表中插入新记录: DECLARE @intCId int,@intErrorCode int INSERT INTO 课程注册(课程编号,课程名称,学分) V ALUES('0006','VB程序设计',2) SELECT @intCId=@@identity,@intErrorCode=@@error SELECT @intCId,@intErrorCode 将该代码段连续执行两次,观察两次显示的信息及课程注册表中数据的变化,为什么前后两次执行时显示的信息会不同? (5)在学生情况数据库的学生表中,以“性别”为分组条件,分别统计 男生和女生人数。 (6)在学期成绩中,使用适当函数找出“高等数学”课程的最高分、最 低分和平均分。 (7)定义一个datetime型局部变量@studate,以存储当前日期。计算学生 表中的学生的年龄,并显示学生的姓名、年龄。 (8)运行以下代码,写出运行结果。 DECLARE @a int,@b int SET @a=168 SET @b=73 SELECT@a&@b,@a|@b,@a^@b

sql 数据库 实验3答案

实验三:创建及管理数据表 1、创建表 依据数据表的结构创建相对应的数据表,表结构如下所示; 学生信息表(student ) CREATE (sno char (9) PRIMARY KEY , sname char (8) NOT NULL, ssex char (2), sage int , sdept varchar (20) ) 课程信息表(course ) CREATE (cno char (4) PRIMARY KEY , cname varchar (20) NOT NULL, cpno char (4), ccredit int ) 选课信息表(sc )

CREATE TABLE sc (sno char(9), cno char(4), grade int, Constraint PK_sno PRIMARY KEY(sno,cno)) 2.修改表结构 1)在表student中增加新字段“班级名称(sclass)”字符类型为varchar(10); use student ALTER TABLE student Add sclass nvarchar(10) 2)在表student中删除字段“班级名称(sclass)”; use student ALTER TABLE student Drop column sclass 3)修改表student中字段名为“sname”的字段长度由原来的6改为8; use student ALTER TABLE student ALTER COLUMN sname char(8) 4)修改表student中ssex字段默认值为‘男’; use student ALTER TABLE student add default'男'for ssex 5)修改表course中cname字段为强制唯一性字段; use student ALTER TABLE course Add constraint ix_course unique (cname) 6)修改表sc中grade字段的值域为0-100; use student ALTER TABLE sc Add constraint CK_grade CHECK(grade between 0 and 100) 7)删除数据表course的唯一性约束; use student ALTER TABLE course drop ix_course

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