数据库基础与应用(题与答案整理好)中南大学远程教育平台

3.可以使用系统存储过程__ SP_HELP _____或企业管理器来查看表的定义,后面加上要查看的__表名____作为参数。

二、操作题

1.创建教师数据库teacher。 2.在teacher内创建:

教师基本情况表(jbqk),包括教师编号(teacher_no)、教师姓名(teacher_name)、教师所在部门编号(department_no)、教师职称(teacher_grade)。 教师部门信息表(bmxx),包括部门编号(department_no)、部门名称(department_name)、部门描述(department_ms)。

教师上课情况表(skqk),包括教师编号(teacher_no)、所上课程(course_kc)、是否专业课(course_zy)、课时数(course_ks)、班数(classe_number)、总人数(total_number)。 设计要求:

(1)每个表至少输入10条记录。要求记录要符合现实意义。 (2)向各表中插入一条记录,再删除各表中的第5条记录。 1.创建教师数据库teacher。 2.在teacher内创建: 教师基本情况表(jbqk),包括教师编号(teacher_no)、教师姓名(teacher_name)、教师所在部门编号(department_no)、教师职称(teacher_grade)。 教师部门信息表(bmxx),包括部门编号(department_no)、部门名称(department_name)、部门描述(department_ms)。 教师上课情况表(skqk),包括教师编号(teacher_no)、所上课程(course_kc)、是否专业课(course_zy)、课时数(course_ks)、班数(classe_number)、总人数(total_number)。 设计要求:

(1)每个表至少输入10条记录。要求记录要符合现实意义。 (2)向各表中插入一条记录,再删除各表中的第5条记录。

答:创建教师数据库teacher可以通过SQL server 2000企业管理器创建,此处略 2 use teacher

CREATE TABLE jbqk (

teacher_no char (8) NOT NULL, teacher_name char (20) NOT NULL, department_no char (16) NOT NULL, teacher_grade char (16) NOT NULL ) GO

CREATE TABLE bmxx (

department_no char (16) NOT NULL, department_name char (20) NOT NULL, department_ms char (216) ) GO

CREATE TABLE skqk (

teacher_no char (8) NOT NULL, course_kc char (20) NOT NULL, course_zy char (2) , course_ks integer ,

classe_number integer , total_number integer ) GO

插入数据与删除数据简单(此处略)

第6章 数据查询

1.查询pubs数据库的authors表中的作者的姓(au_lname)、名(au_fname)和电话号码(phone)。

答:select au_lname,au_fname from authors;

2. 使用TOP关键字,从Northwind数据库的customers表中搜索返回前20%的数据。 use northwind go

select top 20 percent * from customers

3.查询Northwind数据库的Orders表中的数据,并将其中的货物重量feight增加50%。 use northwind go

select * from orders go

update orders set feight=feight+feight*0.50 go 4.使用WHERE 子句从Northwind 数据库的Products表中检索出所有单位价格(UnitPrice)超过50美元的货物名称(Product Name )、货物代号(ProductID)以及每单位重量(QuantityPerUnit)。 use northwind go

select Product_Name, ProductID, QuantityPerUnit from Products where UnitPrice>50 go

5.在Northwind 数据库的Employees表中搜索出职务(Title)为销售代表(Sales Representative),称呼(TitleOfCourtesy)为小姐(MS)的所有职员的名(FirstName)、姓(LastName)和生日(BirhthDate)。

use northwind go

select FirstName, LastName, BirhthDate from Employees where Title=? Sales Representative? and TitleOfCourtesy=?MS?; go

6.查询在Northwind数据库的Employees表中以字母A作Firstname第一个字母的雇员的Firstname和Lastname。

use northwind go

select FirstName, LastName from Employees where Firstname like ?A%?; go

7.查询Northwind数据库Employees表中所有雇员的Firstname和Lastname,并按生日BirthDate从小到大进行排列。 use northwind go

select FirstName, LastName from Employees order by birthday desc; go

8.在Northwind数据库的Products表中查询出每个供应商(Suppliers)所提供的每一种平均价格(Unitprice)超过15美元的产品,并按供应商的ID分类。

use northwind go

select ProductsID from Products group by ProductsID having avg(Unitprice)>15; go

第7章 存储过程和触发器

1.在pubs数据库中创建一个名为proc_test1的存储过程,执行的功能是从authors和titles表里查询出作者的信息以及该作者所写的所有书的信息。 答:

CREATE PROCEDURE proc_test1 @bjbh VARCHAR(8) AS

select* from titles where title_id=(selec title_id from titleauthor where au_id=(select au_id from authorswhere fname=@bjbh)) GO

2.建立一个存储过程级联来修改pubs数据库的authors、titleauthor两张表,当用户修改authors表中的au_id后,修改titleauthors表中对应的数据。 drop trigger updtaeauthors go

create trigger updtaeauthors on authors for update as

declare @id1 char(20) declare @id2 char(20) begin

select @id1=au_id from deleted select @id2=au_id from inserted

update titleauthor set au_id=@id2 where au_id=@id1 end go

第8章 管理SQL Server的安全性

1.安全是指保护数据库不被破坏、偷窃和__非法使用_____。

2.SQL Server 2000的安全性分为两类:__数据库_____安全性和__应用程序_____安全性。 3.SQL Server 2000中权限的管理划分为两个级别上实现,一个是服务级的__连接权_____,另一个是数据库级的___访问权____。

4.简述SQL Server 2000的登录验证模式。 答:Windows身份验证模式和混合身份验证模式(windows身份验证和SQL Server身份验证)。 5.登录SQL Server 2000可以使用哪两类登录账号?

答:一类是登录服务器的登录帐号(Login Name),另外一类是使用数据库的用户帐号(User Name).登录。

6.假设在Windows NT 或dbdomain中存在SqlUser用户组,使用T-SQL语句将其添加为SQL Server 2000的账号dbdomain\\SqlUser。

答:exec sp_grantdbaccess 'dbdomain\\SqlUser'

7.用T-SQL添加、删除登录账号分别使用什么语句?

答:例如:在当前数据库中为 Windows NT'账户 Corporate\\GeorgeW 添加用户,并取名为Georgie。

exec sp_grantdbaccess 'Corporate\\GeorgeW', 'Georgie'

T-SQL语句删除数据库用户需要使用存储过程sp_revokedbaccess。 语法格式为:sp_revokedbaccess [ @name_in_db = ] '数据库用户名' 例:从当前数据库中删除账户 Corporate\\GeorgeW。 exec sp_revokedbaccess 'Corporate\\GeorgeW'

8.什么是服务器角色,数据管理员能否创建和删除服务器角色?

答:SQL SERVER中的角色是指在数据库或服务器中具有相同权限的一组用户。Public角色是一个特殊的数据库角色,又称为公共的数据库角色,每个数据库都有Public角色,数

据库的所有用户都自动成为Public角色的成员。Public角色的作用主要是可以简化向所有用户授权的操作,如果需要向所有用户授予某种权限,则可向Public角色授权即可。 SQL SERVER 2000有固定服务器角色、固定的数据库角色和自定义的数据库角色三类。 SA是SQL SERVER 管理员的管理账户,这两个账户都是固定服务器角色Sysadmin(系统管理员)的成员,拥有最高的管理权限,可以执行整个服务器范围内的所有操作。

dbo 是每个数据库的默认用户,它是固定的数据库角色Db_ower的成员,具有在数据库范围内执行一切操作的权限,且不能被删除。

9.简述数据库用户的作用及其与服务器登录账号的关系。

10.写出T-SQL语句,将服务器登录账号dbdomain\\SqlUser添加为Market数据库的用户SqlUser。

11.写出T-SQL语句,在Market数据库中创建角色SqlRole,并将SqlUser添加为其成员。 答:use Market

exec sp_addrole 'SqlRole'

exec sp_addrolemember 'SqlRole', 'SqlUse' 12.简述SQL Server 2000中的三种权限。 答:(1)处理数据和执行过程(称为对象权限)。 (2)创建数据库或数据库中的项目(称为语句权限)。 (3)利用授予预定义角色的权限(称为暗示性权限)。 13.一个用户或角色的权限有哪些存在形式? 答:授权;拒绝;剥夺

14.授予、拒绝和剥夺权限分别使用什么T-SQL语句? 答:GRANT;DENY;REVOKE

15.写出T-SQL语句,将SqlUser用户授予在Market数据库中创建视图的权限,并拒绝其修改、删除、插入Orders表的权限。 答:User market

Grant create view to sqluser Goo

Deny insert,delete,update on orders to sqluser Go

16.简述应用程序角色的作用。 答:设计了这种安全机制可以指定一个数据库或者其中某些对象只能用某些特别的应用程序来访问,而不能允许用户用任何工具来进行操作,更有利于保证数据完整性和一致性。

第9章 设计数据的完整性

1.什么是规则?它与CHECK约束的区别在哪里?

答:规则是保证域完整性的主要手段。是对输入到列中的数据所实施的完整性约束条件,它指定可以插入一个列的可接受值,保证数据要么在指定的范围内,要么符合特定的模式,要么是指定的列表中的项。功能和CHECK约束一样。

但规则是作为独立的对象定义一次,可在多个对象上使用,而CHECK不是独立的对象,它

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4