数据库实现技术实验报告3Word文档格式.docx
《数据库实现技术实验报告3Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据库实现技术实验报告3Word文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
数据库---右键---附加---添加---D盘中的2个文件
再查看数据库,运行应该正常
反操作,将数据库文件移动回C盘原来的目录,如下图
(2)所示:
图
(2)
4)参考教材36页打开数据库关系图节点中的eb_dg_MemberOrder关系图,将原来的关系连线删除,再重新建立关系。
如下图(3)所示:
图(3)
5)参考教材37页打开视图节点中的eb_vw_ProductSupplierName视图,自由选择表中的字段组合,注意查看输出结果;
6)实验用管理平台及SQL语句创建一个测试数据库,取名mytest;
在ebook数据库中创建一张新表,取名table_1;
字段如下:
学号----char(6);
姓名----char(8);
性别----char
(2);
年龄----int;
奖学金---real;
7)刷新表节点,查看表是否建成,如果存在,将其删除,然后用以下SQL语句重建如图(4)所示:
:
图(4)
给建成的表输入一定数据,然后用以下SQL语句进行查看。
如图(5)所示:
Select*fromtable_1
图(5)
8)删除表中的所有数据,开始加入约束。
在表节点选中Table_1点击右键,进入修改选项,然后进入check约束选项,加入2个约束;
([年龄]>
=(14)AND[年龄]<
(60))
([奖学金]<
(1000))
保存表结构;
给表添加数据,测试不同数据时的反应情况。
如图(6)所示:
图(6)
9)用以下SQL语句添加约束。
如图(7)所示:
图(7)
10)用以下SQL语句添加规则XB;
如图(8)所示:
图(8)
添加用户自定义数据类型xb;
展开类型----用户自定义类型,点击右键---新建用户自定义类型;
如图(9)所示:
图(9)
注意该数据类型绑定了前面定义的规则,即性别只能为“男”或者“女”。
打开表Table_1,添加数据,输入不同性别,看系统反应。
11)用以下SQL语句增加一个默认值defaultaaa,如图(10)所示:
图(10)
实验总结:
通过本次我理解查询分析器的作用,掌握查询分析器的常用用法,
了解关系图操作,掌握表的基本操作、用户定义数据类型、默认值操作。
实验二存储过程
一、实验目的:
1.理解存储过程的概念,掌握各种存储过程的创建方法,参数的使用。
2.掌握查看、修改和删除存储过程的方法。
3.掌握执行存储过程的方法(查询窗口和Delphi环境下)。
三、实验内容:
1、创建一个名为“eb_sp_average”的存储过程,用于查看产品表(products)。
中的符合条件的记录。
条件是a<
memberprice<
=b如图(11)所示:
图(11)
2、在查询中运行上面建立的存储过程,a=100,b=200,查看结果。
如图(12)所示:
图(12)
3、进入Delphi环境,新建工程“存储过程”,在Form1中加入数据库连接控件、存储过程控件、数据源控件、DBgrid控件、edit控件等。
设置好各控件参数,特别是存储过程的parameter属性。
4、并加入命令按钮“查询”,针对该按钮编程,实现查询操作,代码如下:
procedureTForm1.Button1Click(Sender:
TObject);
begin
withadoStoredproc1do
Parameters.ParamByName('
@memberprice1'
).Value:
=strtofloat(edit1.text);
parameters.ParamByName('
@memberprice2'
=strtofloat(edit2.text);
adoStoredproc1.Active:
=false;
=true;
edit3.text:
=floattostr(parameters.ParamByName('
@average'
).Value);
end;
end.
5、修改上边所建的存储过程及“查询”按钮的程序,加入同时显示最小价格和最大价格功能,如下图:
6、给定价格区间,如200---400,运行程序,查看结果如图(13)、图(14)和图(15)所示:
图(13)
图(14)
图(15)
通过本次实验我理解存储过程的概念,掌握各种存储过程的创建方法,参数的使用,掌握查看、修改和删除存储过程的方法,掌握执行存储过程的方法。
实验三T-SQL语言
理解T-SQL的基本编程方法,包括变量、流程控制、参数的使用等。
1)9-2-6IF.SQL
useeBook
Declare@aint,@bint
Select@a=Sum(Totals)fromOrders
whereTotalsisnotnull
Select@b=Sum(Totals)fromOrders
whereTotalsisnotnullandPayOK=1
if@a>
0
BEGIN
print@a-@b--打印相减结果
END
ELSE
print'
无数据可计算'
结果如图(16)所示:
图(16)
2)9-2-6while.SQL
DECLARE@Startsmallint,@Endsmallint
SET@End=round(RAND()*10,0)
SET@Start=1
WHILE@Start<
@End
SELECT@StartNumber
SET@Start=@Start+1
GO
结果如图(17)所示:
图(17)
3)9-2-7error.SQL
Declare@InputIDint
SET@InputID=1
INSERTINTOProducttype(id,ProductCategoryname,LevelID)
Values(@InputID,'
散文'
1)
IF@@ERROR<
>
BEGIN
print'
发生错误'
END
结果如图(18)所示:
图(18)
4)9-2-7try.SQL
BEGINTRY
错误'
ENDTRY
BEGINCATCH
print'
error'
ENDCATCH
结果如图(19)所示:
图(19)
5)9-3-1datelast.SQL
DECLARE@LastDateThisMonthDateTime
DECLARE@NextMonthDayOneDateTime
SET@LastDateThisMonth=DateAdd("
m"
1,getdate())-Day(getDate())
SET@NextMonthDayOne=@LastDateThisMonth+1
Print@LastDateThisMonth
Print@NextMonthDayOne
结果如图(20)所示:
图(20)
通过本次实验我理解T-SQL的基本编程方法,包括变量、流程控制、参数的使用等。
实验四触发器
1、理解触发器的概念,掌握各种触发器的创建方法,参数的使用。
2、掌握查看、修改和删除触发器的方法。
3、掌握触发器的触发时机和触发事件。
1、首先建立学生表S和选课表SC,输入适当记录。
如图(21)所示:
图(21)
2、在s表上创建一个插入、更新类型的触发器tr_s;
如图(22)所示:
图(22)
用程序方式在查询窗口中插入新记录,观察结果如图(23)所示:
insertintoSvalues('
000004'
'
王五'
女'
18,80)
图(23)
3.建立一个触发器,当向sc表中添加数据时,如果添加的数据与s表中的数据不匹配(没有对应的学号),则将此数据删除。
如图(24)所示:
图(24)
分别在查询窗口中运行下面的查询,对比结果
insertintoScvalues('
000001'
01'
88)
如图(25)所示:
图(25)
000009'
99)
图(26)
上边第二个查询影响行数为1出现2次,为什么?
原因:
因为表中没有条记录,先插入,然后再删除,所以影响的行数为1,出现2次。
4、创建一个修改触发器,该触发器防止用户修改表s的入学成绩。
结果如图(27)所示:
程序清单如下:
图(27)
在管理平台上打开S表,修改入学成绩(escore),结果如图(28)所示:
图(28)
5、设计一个触发器,当插入或更新成绩列时,该触发器检查插入的数据是否处于设定的范围内。
结果如图(29)所示:
图(29)
在查询器中运行以下查询,观察结果如图(30)所示:
000002'
120)
图(30)
通过本次实验我理解触发器的概念,掌握各种触发器的创建方法,参数的使用,掌握查看、修改和删除触发器的方法,掌握触发器的触发时机和触发事件。