文档库 最新最全的文档下载
当前位置:文档库 › 2011-2012-1数据库应用技术A

2011-2012-1数据库应用技术A

命题教师 朱三元 院系负责人

孝 感 学 院 2011 — 2012学年度第 一 学期期末考核试卷 考核课程: 数据库应用技术 考核类型: 考查 考核形式: 开卷 学生所在院系: 计算机学院 年 级: 2009 试 卷:A

1. S ql Server 数据库文件的主文件的默认后缀名为( ) A ).ndf B ).mdf C ).ldf D ).idf

2. SQL SERVER 中下列说法错误的是( )。 A )每个数据文件中有且只有一个主数据文件 B )日志文件可以存在于任意文件组中 C )主数据文件默认为primary 文件组 D )文件组是为了更好地实现数据库文件组织

3. 在T-SQL 中,下列说法中正确的是( )。 A )局部变量可以不声明就使用 B )全部变量可以不声明就使用 C )所有变量都必须先声明后使用 D )局部变量先声明后使用,全局变量由系统提供,用户不能自己建立。

4. 针对由create table scores(sno varchar(10), cno varchar(10), score, primary key(sno,cno))所创建的表scores ,下列语句正确的是( )。 A )select sno, sum(score) from scores B )select *, sum(score) from scores C )select count(*), sum(score) from scores D )delete * from scores

5. 下列对索引的相关描述正确的是( ) A )经常被查询的列不适合建索引 B )列值唯一的列适合建索引 C )有很多重复值的列适合建索引 D )是主键或外键的列不适合建索引

6. Sql Server 采取的身份认证方式( ) A )仅有Windows 身份验证模式 B )仅有SQL Server 身份验证模式 C )设置一种后不能修改 D )有Windows 身份验证模式和SQL Server 身份验证模式

7. 在Sql Server 中,当数据库表数据被修改后,系统自动执行的数据库对象是( ) A )视图 B )函数 C )存储过程 D )触发器

8. 以下选项中不是访问数据库系统的接口的是( ) A )ODBC B )OLE DB C )API D )https://www.wendangku.net/doc/0a7164693.html,

9. 在SQL 语言中,如果要建立一个工资表包含职工号,姓名,职称。工资等字段。若要保证工资字段的取值不低于800元,最合适的实现方法是( ) A )在创建工资表时为“工资”字段建立缺省 B )在创建工资表时为“工资”字段建立检查约束 C )在工资表建立一个触发器

D )为工资表数据输入编写一个程序进行控制

10. 下列途径哪个不是实现值域完整性( )。

A ) rule

B ) primary key

C ) not null

D ) default

二、 问答题( 10分)

一、 选择题( 2*10=20分)

SQL Server中可更新视图的条件有哪些?

三、数据库应用题(36分)

1.(16分)写出创建产品销售数据库(数据库名为CPXS)和表的T-SQL语句:

数据库初始大小为10MB,最大大小为100MB, 数据库自动增长, 增长方式是按10%比例增长; 日志文件初始为2MB,最大可增长到10MB, 按1MB增长, 其余参数自定。数据库中包含的表如下:

产品表:产品编号,产品名称,价格,库存量;

销售商表:客户编号,客户名称,地区,负责人,电话

产品销售表:销售日期,产品编号,客户编号,数量,销售额

(注:要实现实体完整性和参照完整性)

2.(8分) 下面的程序段的功能是:在数据库中判断是否存在名为my_proc的存储过程,若存在,则删除之,然后创建同名的存储过程,该存储过程的功能是向book表的book_id, book_Name, price 和publisher字段插入数据,阅读并回答以下问题:

If _____________ (select name from sysobjects where name=’my_proc’ and xtype=’P’)

_________________

Go

Create procedure my_proc(

@book_ID int, @book_Name varchar(50), @price float @publisher varchar(50)

)

as

_______________________________________________________________________

问题:(1)在上述程序的空白处填写适当的内容。

(2)任写一条调用该存储过程的T-SQL语句:

_____________________________________________________________________

3.(6分)在一台计算机上创建的SQL Server数据库MyDB,现要将该数据库移到另外一台计算机上,请给出至少两种方法,并说明各种方法是操作步骤。

4. (6分)下面的代码是用游标实现统计某门课程中及格与不及格的学生人数,请在空格处填写适当的代码。

create procedure getCount(@kch varchar(10))

as begin

declare @cnt1 int ,@cnt2 int,@grade int

declare cur_count_stu cursor for select grade from cjb where kch=@kch set @cnt1=0

set @cnt2=0

fetch cur_count_stu into @grade

while

begin

if @grade>=60

set @cnt1=@cnt1 +1

else

set @cnt2=@cnt2 +1

end

close cur_count_stu

deallocate cur_count_stu

select @cnt1,@cnt2

end

1、(18分)设数据库表结构由下面语句创建:

create table post(

pid int identity(1,1) primary key, --帖子id

postTitle nvarchar(200), --帖子标题

postContent nvarchar(4000), --帖子内容

postTime datetime default getdate(),--帖子发布时间

authorID int, --帖子作者id

postTypeID int, --帖子栏目ID

count int --帖子点击数量)

(1)设计一个函数f_getReplyCnt计算某个主贴的回帖个数;

(2)设计一个存储过程,实现获取某一栏目帖子的分页数据,数据按发帖时间降序排列,输入参数:帖子栏目id、每页显示的记录数(默认为30)、要显示的页码;返回的内容包括:帖子id,帖子标题,发布时间,作者id,点击数, 回帖个数。

提示:使用函数row_Number() over(order by postTime desc),可以按发帖时间降序排列,并获得降序排列后的行号

2、(16分)设数据库中有一表“student”,(1)请设计一个以学号(字段名为sno,数据类型为varchar(6))为参数的存储过程deleteStudent,实现删除指定的学号的学生记录。

(2)用c#.net或VC++写出用上述存储过程执行删除学号为“001101”的学生的代码(主要代码)。

…//C#.Net中已知的代码如下SqlConnection conn=new SqlConnection(strCnn); conn.Open(); …// VC++中已知的代码如下

_variant_t vNULL;

vNULL.vt=VT_ERROR;

vNULL.scode=DISP_E_PARAMNOTFOUND; pConnection.CreateInstance(__uuidof(Connection)); pConnection.Open->(strCnn,””,””,NULL);

_CommandPtr pCmd=NULL;

四、程序设计题(34分)

create table reply(

rid int identity(1,1) primary key, --回帖id

content nvarchar(4000), --回帖内容

pID int references post(pid), --主贴id,

authorID int --回帖作者id

)

相关文档
相关文档 最新文档