SELECT * FROM T_Teacher
6.创建触发器tri_book2,当修改T_Teacher表中的TeacherCode字段值时,该字段在T_BookOrder表中的对应值也作修改。
CREATE TRIGGER tri_book2 ON T_BookOrder FOR UPDATE AS
UPDATE T_BookOrder
SET TeacherCode=(SELECT Inserted.TeacherCode FROM Inserted) WHERE TeacherCode=(SELECT TeacherCode FROM Deleted)
7.创建触发器tri_book3,检查插入在T_BookInfo表中的教材库存(StockNum)是否大于等于0。
CREATE TRIGGER tri_book3 ON T_BookInfo FOR INSERT,UPDATE AS
DECLARE @stocknum smallint
SELECT @stocknum=StockNum FROM inserted IF @stocknum<0 BEGIN ROLLBACK
RAISERROR('库存量必须大于等于0!',16,1) END
8.创建触发器tri_book4,当删除教师信息时同步删除T_BookOrder表中对应教师所预订的教材记录。
CREATE TRIGGER tri_book4 ON T_Teacher FOR DELETE AS
DELETE FROM T_BookOrder WHERE T_BookOrder.TeacherCode= (SELECT TeacherCode FROM deleted)
9.创建视图view_book1,使其包含预订数量最高的20%的教材信息。要求显示教材代号(BookCode)、教材名称(BookName)、ISBN号(ISBNCode)和出版社名称(Publisher)。
CREATE VIEW view_book1 AS
SELECT TOP 20 PERCENT T_BookOrder.BookCode, BookName, ISBNCode,StuBookNum+TeaBookNum AS 数量, Publisher FROM T_BookOrder INNER JOIN
(T_Publisher INNER JOIN T_BookInfo
ON T_Publisher.PublisherCode=T_BookInfo.PublisherCode) ON T_BookOrder.BookCode=T_BookInfo.BookCode ORDER BY StuBookNum+TeaBookNum DESC
10.创建视图view_book2,查询预订了教材名中含有“程序”一词的教师姓名(TeacherName)和所在学院名称(AcadName)。
CREATE VIEW view_book2 AS
SELECT TeacherName,AcadName
FROM T_Teacher,T_Academy,T_BookOrder,T_Bookinfo WHERE T_Bookinfo.BookCode=T_BookOrder.BookCode AND T_BookOrder.TeacherCode=T_Teacher.TeacherCode AND T_Teacher.AcadCode=T_Academy.AcadCode AND BookName LIKE '%程序%' 或
CREATE VIEW view_book2 AS
SELECT TeacherName,AcadName FROM T_Academy INNER JOIN (T_Teacher INNER JOIN
(T_BookOrder INNER JOIN T_Bookinfo
ON T_BookOrder.BookCode=T_Bookinfo.BookCode) ON T_Teacher.TeacherCode=T_BookOrder.TeacherCode) ON T_Academy.AcadCode=T_Teacher.AcadCode WHERE BookName LIKE '%程序%' 或
11.创建视图view_book3,使其包含“学院名称(AcadName)”、“教师姓名(TeacherName)”、“预订书名(BookName)”、“是否领走(TakeAway)”。
CREATE VIEW view_book3 AS
SELECT AcadName, TeacherName, BookName, TakeAway FROM T_BookInfo INNER JOIN T_BookOrder ON T_BookInfo.BookCode=T_BookOrder.BookCode INNER JOIN T_Teacher
ON T_BookOrder.TeacherCode = T_Teacher.TeacherCode INNER JOIN T_Academy
ON T_Teacher.AcadCode = T_Academy.AcadCode
10.4 实验四 SQL Server数据库管理
一.实验目的
本实验主要了解SQL Server数据库的安全机制和备份策略。通过本实验,读者将学会
在企业管理器中进行用户的创建和权限的管理以及数据库的备份和恢复。
二.实验环境
? Microsoft SQL Server 2000 企业管理器和Microsoft SQL Server 2000 查询分析器 ? Book数据库
三.实验内容
1.利用企业管理器将Book数据库完全备份到磁盘文件D:\\BookBackup中,然后使用备份文件D:\\BookBackup进行完全恢复操作。
备份操作参考步骤:
(1)选中数据库并执行备份菜单。在控制台根目录窗格选中要备份的数据库Book,单击右键找到“所有任务/备份数据库”菜单,如图6-1a;或选中数据库Book后使用菜单栏中“工具/备份数据库”菜单,如图6-1b。
.
图6-1a
图6-1b
(2) 在SQL Server备份窗口中选择备份策略为完全备份,点击添加按钮设置备份的目的设备,如图6-1c所示。
(3) 在选择备份目的窗口添加备份目的设备或文件,选择或设置目的文件为:D:\\BookBackup,如图6-1d所示。
(4) 在SQL Server备份窗口中选择重写方式为重写现有媒体,然后单击“确定”按钮执行备份,如图6-1e所示。
图6-1d
图6-1e
图6-1 c
恢复操作参考步骤:
(1) 在控制台根目录窗格选中数据库,点右键找到“所有任务/还原数据库”菜单;或选中数据库后使用菜单栏中“工具/还原数据库”菜单。
(2) 在“还原数据库窗口”中,设置“还原为数据库”的数据库名,可以使用原数据库名,也可重新命名。选择“还原”的备份源,如果选择“数据库”,在显示数据库备份中选择备份的数据,则系统在“要还原
1c
的的第一个备份”列表框中自动列出所有已生成在指定备份目录下的备份文件和时间,只要将备份文件的复选框选中,按确定按钮就开始数据库恢复。
2.利用企业管理器建立一个名称为“Book维护计划”的数据库维护计划,将Book数据库每天0:00备份到磁盘目录D:\\下,事务日志每隔6小时备份一次到磁盘目录D:\\下。
操作参考步骤:
选中要备份的数据库Book,单击右键找到“所有任务/维护计划”菜单;或选中数据库Book后使用菜单栏中“工具/数据库维护计划器”菜单。
3.将Book数据库中的教师信息表数据(T_Teacher)导出到Excel文件D:\\Teacher.xls。
操作参考步骤:
选中数据库Book,单击右键找到“所有任务/导出数据”菜单,进入DTS导入/导出/向导首页。
4.将Book数据库进行分离,然后再练习附加数据库Book_Data.MDF的操作。
操作参考步骤:
(1) 分离数据库:在“数据库”文件夹找到Book右击Book数据库选择“所有任务/分离数据库”菜单。 (2) 附加数据库:右击“数据库”,选择“所有任务/附加数据库”菜单。
5.利用企业管理器创建一个用户名为“MyMary”的用户,密码为“secret1234”,该用户对“Book”数据库中的T_Teacher表只有查询的权限,没有删除、插入和修改权限。以该用户名和密码通过查询分析器登录到SQL Server服务器,对T_Teacher表进行查询、插入、删除和修改操作来验证用户权限。
操作参考步骤:
(1) 在控制台根目录窗格,找到“安全性/登录/新建登录”菜单,创建一个名称为“MyMary”,密码为“secret1234”的SQL Server认证帐号。
(2) 展开Book数据库树形结构,在“用户”项上单击右键,选择“新建数据库用户”,创建一个名称为“MyMary”,密码为“secret1234”的用户。如果步骤(1)中已设好可访问数据库“Book”,则与该SQL Server认证帐号同名的用户帐户就自动加入该数据库的用户中,步骤(2)省略。 (3) 选中”MyMary”,右单击找到“属性”,对“MyMary”用户授规定的权限。 (4) 修改SQL Server登录帐号为”MyMary”
验证:(1)以”MyMary”登录查询分析器
(2) 删除验证: DELETE FROM T_Teacher WHERE TeacherCode='01010101' (3)插入验证: INSERT T_Teacher(TeacherCode,TeacherName,AcadCode,Sex,Title) VALUES('11111111','张三','11','女','讲师')
(4)修改验证: UPDATE T_Teacher SET TeacherCode='12345678' WHERE TeacherCode='11111111'
6.利用企业管理器修改上题中“MyMary”用户的权限,授予其对T_Teacher表的查询、插入和修改权限,重新再对该用户权限进行验证。
操作参考步骤:
选中“MyMary”用户,右单击找到“属性”,对“MyMary”的权限进行修改。 验证:如第5题
7.为Book数据库创建一个名称为“BookRole”的数据库角色,设置其对所有表具有Select
图1
权限,此外,对T_BookOrder表和T_BookInfo还具有修改、插入或删除权限,禁止在T_Teacher执行Delete操作。
操作参考步骤:
(1) 打开Book数据库文件夹,右击“角色”文件夹,并在弹出的菜单中选择“新建数据库角色”命令, 创建“BookRole”数据库角色。
(2)右击“BookRole” 角色,并在弹出的菜单中选择“属性”命令, 在属性对话框中单击“权限”按钮,对“BookRole” 角色的权限进行设置。
8.为Book数据库创建一个名称为“zhujiu”的用户,该用户对应SQL Server登录帐户“zhujiu”,将该用户添加为数据库角色BookRole的成员。
操作参考步骤:
(1) 创建名称为“zhujiu”的SQL Server认证帐号。
(2) 创建名称为“zhujiu”的用户,并将其添加为数据库角色BookRole的成员。
验证:如第5题设计相应的SQL命令进行用户权限的验证。
10.5 实验五 VB.NET程序设计基础和常用控件
一.实验目的
本实验主要了解面向对象程序设计语言VB.NET基本语言元素包括集成开发环境、语言基础、基本控制结构、过程、常用控件和界面设计。通过本实验,读者将学会一些主要的面向对象的设计方法并可以利用VB.NET完成简单的应用程序开发。
二.实验环境
? Microsofe Visual Studio .NET 2003和Book数据库
三.实验内容
1.设计一个Visual Basic.Net的应用程序,窗体上有一个多行文本框和3个命令按钮,程序界面如图1所示。要求应用程序运行时,当单击窗体上【显示文本信息】按钮,文本框中显示红色文字“我喜欢VB.NET,因为它简单易学,使用方便。”当单击窗体上【改变背景色】按钮,文本框的背景色变为黄色。当单击窗体上【结束】按钮,程序结束。保存该应用程序。
图1
图2
窗体对象属性 对象 属性 设置值