SQLSERVER数据库实验

合集下载

SQL Server数据库实验指导书

SQL Server数据库实验指导书

SQL Server数据库实验指导书SQL Server数据库实验指导书《SQL Server 数据库》教研小组编著目录实验一 SQL Server常用管理工具的使用 ................................................ ............. 2 实验二创建数据库 ................................................ (3)实验三数据库的管理 ................................................ ............................................ 4 实验四表的操作 ................................................ ....................................................6 实验五表的完整性 ................................................ (7)实验六简单查询 ................................................ (9)实验七高级查询 ................................................ ....................................................9 实验八视图的使用 ................................................ .......................................... 10 实验九索引 ................................................ ................................................... ... 11 实验十存储过程 ................................................ (11)实验十一触发器 ................................................ (12)实验十二数据库的备份与恢复 ................................................ ......................... 13 20XX-9-1实验一 SQL Server常用管理工具的使用实验目的1. 理解服务的概念,掌握SQL Server服务的启动、暂停和停止。

数据库sqlserver实验报告

数据库sqlserver实验报告

数据库sqlserver实验报告实验一熟悉常用的DBMS:SQL SERVER 2022、Oracle试验内容及要求:〔1〕了解不同数据库管理系统及不同版本的相应功能特点目前,商品化的数据库管理系统以关系型数据库为主导产品,技术比拟成熟。

面向对象的数据库管理系统虽然技术先进,数据库易于开发、维护,但尚未有成熟的产品。

国际国内的主导关系型数据库管理系统有Oracle、Sybase、INFORMIX 和INGRES。

这些产品都支持多平台,如 UNIX、VMS、Windows,但支持的程度不一样。

IBM的DB2也是成熟的关系型数据库。

但是,DB2是内嵌于IBM的AS/400系列机中,只支持OS/400操作系统。

1.MySQLMySQL是最受欢送的开源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 ServerSQL Server是由微软开发的数据库管理系统,是Web上最流行的用于存储数据的数据库,它已广泛用于电子商务、银行、保险、电力等与数据库有关的行业。

目前最新版本是SQL Server 2022,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。

sql server实验指导书(学生版)

sql server实验指导书(学生版)

数据库实验指导书信息安全专业王爽2009一.概述1.SQL Server 2000 组成SQL Server是可缩放的高性能基于SQL和客户/服务器体系结构的关系数据库管理系统服务器软件包,是由Microsoft 公司推出的SQL Server 数据库管理系统的最新版本。

从图1 SQL Server 的体系结构示意图中看出,SQL Server 2000由4部分组成,在实验中,我们要求掌握基于SQL Server 2000的服务器的使用,也就是数据库管理员DBA的主要操作。

(注:本文所有内容均在SQLServer 2000上实现,读者也可在SQL Server 2005 上得到类似结果。

)图1 SQL Server 的体系结构示意图2. SQL Server 2000 的安装SQL Server 2000 的常见版本有:企业版、标准版、个人版、开发人员版等。

对软硬件的最低需求为:CPU Pentium 166MHz,内存64MB,硬盘180 MB。

SQL Server 2000企业版和标准版只能在windows2000 Server 版和Professional 版操作系统下运行。

下面介绍SQL Server 2000企业版在本地机上的安装过程。

1)插入SQL Server 2000 光盘,自动安装程序启动,屏幕上出现如图2所示画面,按图2 所示选择SQL Server 2000 组件;2) 选择安装数据库服务器,如图3所示,进入SQL Server2000 企业版安装向导;3)在安装向导对话框中点击下一步,进入计算机名对话框;4)选择本地安装,点击下一步,进入安装选择对话框;5)选择创建新的SQL Server 实例,点击下一步,进入用户信息对话框;6)输入用户信息,点击下一步,进入安装定义对话框;7)选择服务器和客户端工具,点击下一步,进入实例名对话框;8)输入实例名,点击下一步,进入安装类型选择对话框;9)选择典型安装,进入服务帐号设置对话框,如图4所示;10)选择对每一个用户使用同一个帐号,自动启动服务器,点击下一步,进入选择身份验证模式选择对话框,如图5所示;11)选择Windows 身份验证模式。

sqlserver实验报告

sqlserver实验报告

实验报告:SQL Server一、实验目的本次实验旨在熟悉并掌握SQL Server数据库管理系统,了解其功能特点、操作方法和应用场景。

通过实验,我们希望深入理解数据库的基本概念,掌握SQL Server的基本操作,为后续的数据库学习和应用打下坚实的基础。

二、实验内容1. 了解SQL Server版本和功能特点通过阅读教材、查阅资料,我们了解了SQL Server的不同版本及其功能特点。

目前,SQL Server最新版本是SQL Server 2008,它只能在Windows上运行,操作系统的系统稳定性对数据库十分重要。

2. 安装SQL Server在实验过程中,我们按照教材的指导,成功安装了SQL Server 2008。

安装过程中,我们注意了安装选项的选择,确保安装了必要的组件和工具。

3. 创建和管理数据库在SQL Server中,我们通过对象资源管理器创建了名为“testdb”的数据库。

在创建过程中,我们设置了数据库的名称、文件路径、文件大小等参数。

同时,我们还学习了如何修改数据库的属性,如修改数据库的名称、删除数据库等。

4. 创建和管理表在“testdb”数据库中,我们创建了名为“employees”的表,用于存储员工信息。

在创建表的过程中,我们定义了表的列名、数据类型、约束等属性。

同时,我们还学习了如何修改表的属性,如添加列、删除列等。

5. 查询数据通过查询语句,我们从“employees”表中检索了所有员工的信息。

在查询过程中,我们使用了SELECT语句,并通过WHERE子句对结果进行了筛选。

同时,我们还学习了如何使用聚合函数对数据进行统计和分析。

6. 插入、更新和删除数据在“employees”表中,我们插入了新的员工信息,更新了现有员工的信息,并删除了离职的员工信息。

在插入、更新和删除数据的过程中,我们使用了INSERT、UPDATE和DELETE语句。

同时,我们还学习了如何使用事务来确保数据的完整性和一致性。

新SQL——SERVER实验练习答案

新SQL——SERVER实验练习答案

SQL-Server实验答案上海师范大学计算机系目录第一部分企业管理器的使用 (3)试验一注册服务器.................................................................................. 错误!未定义书签。

试验二创建数据库.................................................................................. 错误!未定义书签。

试验三创建表.......................................................................................... 错误!未定义书签。

实验四数据输入...................................................................................... 错误!未定义书签。

实验五登录到数据库服务器.................................................................. 错误!未定义书签。

第二部分SQL语言 (3)第二部分SQL语言 (3)试验一数据库创建 (3)试验二创建表 (3)试验三创建数据完整性 (5)试验四数据完整性试验 (6)试验五索引 (10)试验六更新数据 (11)试验七 Sql 查询语句 (12)试验八视图 (15)试验九安全性控制实验 (16)试验十存储过程 (17)试验十二触发器 (21)试验十二恢复技术 (25)试验十三事务 (26)试验十四锁 (27)第一部分企业管理器的使用第二部分SQL语言试验一数据库创建目的:1掌握利用SQL语言进行数据库的创建、维护。

2 sp_helpdb 命令要求:1 创建数据库 2 修改数据库 3 删除数据库一建立school 数据库1 使用查询分析器创建数据库 schoolCreate DataBase school2 使用 SP_helpdb 查询数据库 School 的信息3 使用SQL-Server 的企业管理器查看数据库 school 的信息。

sqlserver试验报告—数据库和表的创建

sqlserver试验报告—数据库和表的创建

数据库实验报告课程名称信息系统数据库技术实验名称数据表的管理专业班级 _______________________ 姓名___________________________ 学号___________________________ 实验日期 ________________________ 实验地点2012—2013 学年度第一学期一、实验目的1、掌握 Microsoft SQL Server 2005 Express Edition 的安装过程2、熟悉SQL Server 2005 Express Edition的基本菜单功能,界面。

3、掌握SQL Server 2005的启动、服务器注册等功能。

二、实验内容1、数据库的创建2、数据库的修改3、数据的导入4、数据的导出5、数据库的分离三、实验环境Windows XP 操作系统,Microsoft SQL Server 2005 Express Edition。

四、相关知识1、数据库命令规则取决于数据库兼容的级别,而数据库级别可以用存储过程sp_helpdb 来查询。

注意:其一由于在T-SQL中,“@”表示局部变量,“@@”表示全局变量,“##" 表示全局临时对象,所以不建议用这些符号作为数据库名称的开头;其二虽然在SQL Server 2005中,保留字区分大小写,但也不建议用改过大小写的保留字作为数据库名。

2、数据库文件:每个SQL Server 2005的数据库至少包含二个文件:一个数据文件(.mdf) 和一个日志文件(.ldf)。

3、数据库的创建命令:CREATE DATABASE4、数据库的修改命令:ALTER DATABASE只有数据库管到员或具有CREATE DATABASE权限的数据库所有者才有权执行 ATER DATABASE语句。

在实际操作中,ALTER DATABASE 一次只能修改一种参数5、数据库的删除命令:DROP DATABASE6、数据库的分离命令:SP_DETACH_DB 'filename'7、数据库的附加命令:CREATE DATABASE-FOR ATTACH8、数据的导入是指从其他数据源中把数据复制到SQL Server数据库中。

《数据库实验》实验报告

《数据库实验》实验报告

《数据库实验》实验报告《数据库实验》实验报告黄爱蓉编审湖北汽车⼯业学院电⼦信息科学系⼆〇〇七年⼀⽉实验⼀:建⽴数据库及基本表实验报告⼀、实验⽬的1、了解SQL Server数据库的逻辑结构和物理结构;2、了解SQL Server的基本数据类型;3、学会在企业管理器中创建数据库和表;4、使⽤SQL查询分析器⽤CREA TE、DROP、ALTER语句创建和删除数据库,创建、删除、更新基本表。

⼆、实验内容1、创建数据库和查看数据库属性。

2、创建表。

3、查看和修改表结构。

4、熟悉企业管理器和查询分析器⼯具的使⽤⽅法三、实验步骤1、在企业管理器中创建数据库和数据表。

(1) 使⽤企业管理器建⽴图书管理数据库,数据库名为BM,初始⼤⼩为10MB,最⼤为50MB,数据库⾃动增长,增长⽅式是按5%⽐例增长;⽇志⽂件初始为2MB,最⼤可增长到5MB,按1MB增长。

数据库的逻辑⽂件名和物理⽂件名均采⽤默认值。

详细步骤:(2) 在企业管理器中查看图书管理数据库的属性,并进⾏修改,使之符合要求。

(3) 通过企业管理器,在建好了图书管理数据库BM中建⽴图书(book)、读者(reader)和借阅(borrow)3个表,其结构为:图书(书号,类别,出版社,作者,书名,定价);读者(编号,姓名,单位,性别,电话);借阅(书号,读者编号,借阅⽇期)。

创建上述三个表的步骤:三个表各个字段的数据类型:2、在查询分析器中创建数据库和数据表(1) 创建数据库S-C 的sql语句:(2) 在数据库S-C下,创建基本表学⽣表student(sno,sname,ssex,sage,sdept)的sql语句:创建基本表课程表course(cno,cname, ccredit)的sql语句:创建基本表成绩表sc(sno,cno,grade)的sql语句:(3) 在窗⼝下分别键⼊DROP TABLE Student及DROP TABLE SC命令,运⾏后观察结果。

《SQLSERVER数据库应用》实验指导书_2016年版

《SQLSERVER数据库应用》实验指导书_2016年版

《数据库应用》实验教学大纲一、基本信息二、实验安排三、实验目的、内容与要求实验一创建数据库和表以及表操作(一) 实验目的1.了解SQL Server数据库的逻辑结构和物理结构,表的结构特点;2.了解SQL Server的基本数据类型,空值概念;3.学会在企业管理器中创建数据库和表;4.学会使用T—SQL语句创建数据库和表;5.学会在企业管理器中对数据表进行插入、修改、删除数据操作;6.学会使用T-SQL对数据表进行插入、修改、删除数据操作;(二) 实验内容1.企业管理器访问数据库,查询分析器的使用;2.在企业管理器中创建、删除数据库和表;3.使用T-SQL语句创建数据库和表;4.在企业管理器中对数据表进行插入、修改、删除数据操作;5.使用T-SQL进行上述操作。

(三) 实验要求1.掌握在企业管理器中创建、修改、删除数据库和表;2.掌握查询分析器,使用T—SQL语句创建、修改、删除数据库和表。

实验二数据库的查询(一) 实验目的1.掌握SELECT语句的基本语法;2.掌握子查询的表示;3.掌握连接查询的表示;4.掌握数据汇总的方法;5.掌握SELECT语句的GROUP BY子句的作用和使用方法;6.掌握SELECT语句的ORDER BY子句的作用和使用方法。

(二) 实验内容1.SELECT语句的基本使用;2.子查询的使用,连接查询的使用,数据汇总,Group By、Order By子句的使用。

(三) 实验要求1.掌握数据库查询的基本的常用语句的使用方法;2.掌握数据库查询中的分组、排序等语句的使用方法。

实验三视图、存储过程、触发器等的建立与维护(一) 实验目的1.学会使用企业管理器建立视图,应用视图插入、删除、修改数据;2.掌握存储过程的使用方法;3.掌握触发器的使用方法。

(二) 实验内容1.视图插入、删除、修改数据;2.创建存储过程,调用存储过程;3.创建触发器。

(三) 实验要求1.利用所创建的数据库和数据表,综合应用视图、存储过程、触发器等知识完善数据库;2.掌握应用更新视图数据可以修改基本表数据的方法;3.熟练掌握添加、修改、删除记录的存储过程的定义及调用;4.掌握通过触发器来实现数据的参照完整性。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

SQL SERVER 数据库应用技术实验报告选课序号:班级:学号:姓名:指导教师:成绩:目录1.实验目的 (1)2.实验内容 (1)2.1创建数据库OrderDB(杂志订购数据库) (1)2.2 T-SQL查询 (1)2.3存储过程、自定义函数和触发器编程 (2)3.实验步骤 (2)3.1创建数据库OrderDB(杂志订购数据库) (2)3.2 T-SQL查询 (5)3.3存储过程、自定义函数和触发器编程 (5)4.总结与体会 (8)1.实验目的(1)创建与使用数据库。

了解数据库及其各类逻辑对象、数据库的文件与文件组的概念;实践数据库的设计、创建、查看和维护等的操作,。

(2)T-SQL查询。

掌握SELECT查询命令,INSERT、UPDATE和DELETE等更新命令,及T-SQL对查询与更新命令的增强功能操作。

(3)自定义函数、存储过程与触发器。

实践练习自定义函数、存储过程和触发器的使用方法。

2.实验内容2.1创建数据库OrderDB(杂志订购数据库)以下各表中的代码或编号列为char(6),名称或类别列为varchar(20),单价或金额列为numeric(10,2),数量列为int,订购日期为日期类型datetime,所在城市列为varchar(16)。

(1)杂志表Magazine(杂志代码Mno,杂志名称Mname,杂志类别Mtype,出版商所在城市Mcity,进货单价Miprice,订购单价Moprice),其中,订购价格>进货价格,杂志类别:文学类、历史类、科技类。

主键为(杂志代码Mno)。

(2)客户(杂志的订购单位信息)表Customer(客户代码Cno,客户名称Cname,客户所在城市Ccity,上级主管单位代码Sno,客户类别Ctype),客户(单位)类别:政府单位、事业单位、企业单位。

主键为(客户代码Cno)。

(3)杂志订购情况主表OrderH(订单编号Ono,客户代码Cno,订购日期Odate,订单货款金额合计OMsum,订单盈利金额合计OPsum),主键为订单编号Ono。

(4)杂志订购情况明细表OrderList(订单编号Ono,杂志代码Mno,订购数量Onum,进货单价Miprice,订购单价Moprice,订购金额Omoney,盈利金额Oprofit),主键为(订单编号Ono,杂志代码Mno),订购金额=订购单价×订购数量,盈利金额=(订购单价-进货单价)×订购数量。

2.2 T-SQL查询实现如下查询功能前,请向所有数据表添加足够多的演示数据。

求年份的函数为year( ),返回类型为int,年份=year(订购日期Odate)。

(1)使用WITH公用表表达式查看客户名称为’珠江航运公司’在广州市的所有上级主管单位代码和单位名称。

(2)查询客户名称为’天空网络公司’在2011年所订购的大于其最小订购数量的2倍的杂志代码、杂志名称及订购数量。

(3)使用COMPUTE BY、COMPUTE,求客户类别为’事业单位’在2011年订购的杂志类别为’历史类’的客户代码、客户名称、订购数量、订购金额,要求同时输出按客户计算的订购数量和订购金额的合计、所有客户的订购数量和订购金额的总计。

(4)使用TOP和查询结果集别名表达式,查询杂志名称为’读者’、2011年订购数量为第4-10名的客户代码、客户名称和订购数量(设’读者’的订购客户数>=10)。

(5)用游标编程,求大连市的杂志在2013年的平均订购数量和总订购数量的功能,不能用COUNT、AVG和SUM函数。

2.3存储过程、自定义函数和触发器编程(1)设计自定义函数fGetProfit,实现统计某年份给定杂志类别的盈利金额合计的功能,输入参数是统计年份和杂志类别,输出参数是盈利金额合计。

(2)设计存储过程pGetMoney,实现统计某年份给定客户类别的订购金额合计的功能,输入参数是统计年份和客户类别,输出参数是订购金额合计。

(3)编写一段T-SQL程序调用函数fGetProfit,输出2012年杂志类别为’科技类’的盈利金额合计。

(4)编写一段T-SQL程序调用存储过程pGetMoney,输出2013年客户类别为’企业单位’的订购金额合计。

(5)为杂志订购情况明细表OrderList定义一个【AFTER】触发器tr_after_OrderList,每插入一条订购情况明细记录(订单编号Ono,杂志代码Mno,订购数量Onum,进货单价Miprice,订购单价Moprice),自动计算其订购金额Omoney和盈利金额Oprofit,同时自动计算订购情况主表OrderH的订单货款金额合计OMsum和订单盈利金额合计OPsum。

其中,订购情况明细表OrderList的订购金额=订购单价×订购数量,盈利金额=(订购单价-进货单价)×订购数量。

(6)禁用触发器tr_after_OrderList,再为杂志订购情况明细表OrderList设计一个【INSTEAD OF】触发器tr_instead_OrderList,完成(5)的同样功能。

(7)编写insert语句示例,分别验证触发器tr_after_OrderList和tr_instead_OrderList效果。

3.实验步骤按以上实验内容的要求,给出实验步骤,包括功能实现过程的简要文字说明、T-SQL 语句、SQL Server Management Studio的运行结果截图等。

3.1创建数据库OrderDB(杂志订购数据库)3.1.1根据实验要求利用交互式SQL SERVER 2005创建OrderDB数据库的数据类型、列项和主键。

1.Customer表2.Magazine表3.OrderH表4.OrderList表3.1.2根据实验的查询要求向表中加入数据1.Customer表2.Magazine表3.OrderH表4.OrderList表(数据量较大,未能截全)3.2 T-SQL查询(1)--T-SQL(1)WITH Csno(sno)AS(SELECT snoFROM CustomerWHERE Cname ='珠江航运公司'UNION ALLSELECT Customer.snoFROM Csno, CustomerWHERE Csno.sno = o )SELECT o ,ameFROM Csno,CustomerWHERE Csno.sno = o AND Ccity='';--递归求出珠江航运公司在广州的上级主管单位执行结果(2)--T-SQL(2)SELECT Magazine.Mno,Mname,OnumFROM Customer JOIN OrderH ON(o=o)JOIN OrderListON(OrderH.Ono=OrderList.Ono)JOIN Magazine ON(OrderList.Mno=Magazine.Mno)WHERE year(Odate)='2011'AND ame='天空网络公司'AND Onum>(2*(SELECT MIN(Onum)FROM Customer JOIN OrderH ON(o=o)JOIN OrderListON(OrderH.Ono=OrderList.Ono)JOIN Magazine ON(OrderList.Mno=Magazine.Mno)WHERE year(Odate)='2011'AND ame='天空网络公司'))--’天空网络公司’在年所订购的大于其最小订购数量的倍的杂志代码、杂志名称及订购数量执行结果(3)--T-SQL(3)SELECT o,ame,Onum,OmoneyFROM Customer JOIN OrderH ON(o=o)JOIN OrderListON(OrderH.Ono=OrderList.Ono)JOIN Magazine ON(OrderList.Mno=Magazine.Mno)WHERE Customer.Ctype='事业单位'AND year(Odate)='2011'AND Magazine.Mtype='历史类' ORDER BY Cno --客户类别为’事业单位’在年订购的杂志类别为’历史类’的客户代码、客户名称、订购数量、订购金额COMPUTE SUM(Onum),SUM(Omoney)BY Cno --使用COMPUTE BY、COMPUTE同时输出按客户计算的订购数量和订购金额的合计、所有客户的订购数量和订购金额的总计。

COMPUTE SUM(Onum),SUM(Omoney)执行结果(4)--T-SQL(4)SELECT TOP 7 Onum,o,Cname --使用TOP和查询结果集别名表达式,查询杂志名称为’读者’、年订购数量为第-10名的客户代码、客户名称和订购数量FROM(SELECT DISTINCT TOP 10 Onum,CnoFROM OrderH JOIN OrderList ON(OrderH.Ono=OrderList.Ono)JOIN Magazine ON (OrderList.Mno=Magazine.Mno)WHERE year(Odate)='2011'AND Mname='读者'ORDER BY Onum ASC)AST1(Onum,Cno)JOIN Customer ON(o=o)执行结果(5)--T-SQL(5)DECLARE CurDnum SCROLL CURSOR FORSELECT Onum --用游标编程,求大连市的杂志在年的平均订购数量和总订购数量的功能,不能用COUNT、AVG和SUM函数。

FROM Magazine JOIN OrderList ON(Magazine.Mno=OrderList.Mno)JOIN OrderHON(OrderList.Ono=OrderH.Ono)WHERE Mcity=''AND year(Odate)='2013';--定义局部变量DECLARE AvgDnum numeric(4,1), SumDnum INT, PerDnum INT,Cnt numeric(4,1);SET SumDnum = 0;SET Cnt = 0;OPEN CurDnum;--打开游标FETCH Next FROM CurDnum INTO PerDnum;--提取第一条游标记录WHILE FETCH_STATUS= 0 --提取成功则循环BEGINSET SumDnum=SumDnum+PerDnum;Set Cnt=Cnt+1FETCH Next FROM CurDnum INTO PerDnum;--提取下一条游标记录ENDSET AvgDnum = SumDnum / Cnt--显示总订阅数量和平均订阅数量SELECT SumDnum as'总订阅数量',AvgDnum as'平均订阅数量'CLOSE CurDnum;DEALLOCATE CurDnum;--释放游标执行结果3.3存储过程、自定义函数和触发器编程(1)--存储过程、自定义函数和触发器编程(1)CREATE FUNCTION dbo.fGetProfit(time datetime,type varchar(20))RETURNS numeric(10,2) ASBEGINRETURN(SELECT SUM(Oprofit)AS总利润FROM Magazine JOIN OrderList ON(Magazine.Mno=OrderList.Mno)JOIN OrderH ON (OrderList.Ono=OrderH.Ono)WHERE year(Odate)= time AND Mtype=type)END执行结果(2)--存储过程、自定义函数和触发器编程(2)CREATE PROC pGetMonytime datetime,type varchar(20),money numeric(10,2)OUTPUTASBEGINSELECT money=SUM(Omsum)FROM Customer JOIN OrderH ON(o=o)WHERE year(Odate)=time AND Ctype=typeEND执行结果(3)--存储过程、自定义函数和触发器编程(3)DECLARE a datetime,b varchar(20),c numeric(10,2)SET a=2011SET b='文学类'select c=dbo.fGetProfit(a,b)print(c)执行结果(4)--存储过程、自定义函数和触发器编程(4)DECLARE time1 datetime,type1 varchar(20),money1 numeric(10,2)SET time1=2013SET type1='企业单位';EXEC pGetMony time1,type1,money1 OUTPUTprint(money1)执行结果(5)--存储过程、自定义函数和触发器编程(5)CREATE TRIGGER tr_after_OrderListON OrderList AFTER INSERT ASBEGINDECLARE money numeric(10,2),profit numeric(10,2),c varchar(6)--设置变量UPDATE OrderList --更新OrderList表SET Omoney=(OrderList.Moprice*OrderList.Onum),Oprofit=((OrderList.Moprice-OrderList.Miprice)*OrderList.Onum) FROM OrderH JOIN inserted a ON(OrderH.Ono=a.Ono)SELECT c=Ono --从插入的表中提取出Ono,作为后续更新表的条件FROM insertedSELECT money=SUM(Omoney),profit=SUM(Oprofit)FROM OrderListWHERE OrderList.Ono=cUPDATE OrderH --更新OrderH表SET OMsum=money,OPsum=profitWHERE OrderH.Ono=cEND执行结果(6)--存储过程、自定义函数和触发器编程(6)DISABLE TRIGGER tr_after_OrderList ON OrderList--禁用tr_after_OrderList触发器CREATE TRIGGER tr_instead_OrderListON OrderList instead of INSERT ASBEGINDECLARE money numeric(10,2),profit numeric(10,2),c varchar(6)--设置变量UPDATE OrderList --更新OrderList表SET Omoney=(OrderList.Moprice*OrderList.Onum),Oprofit=((OrderList.Moprice-OrderList.Miprice)*OrderList.Onum) FROM OrderH JOIN inserted a ON(OrderH.Ono=a.Ono)SELECT c=Ono --从插入的表中提取出Ono,作为后续更新表的条件FROM insertedSELECT money=SUM(Omoney),profit=SUM(Oprofit)FROM OrderListWHERE OrderList.Ono=cUPDATE OrderH --更新OrderH表SET OMsum=money,OPsum=profitWHERE OrderH.Ono=cEND执行结果(7)--存储过程、自定义函数和触发器编程(7)INSERT--验证tr_after_OrderList触发器INTO OrderList(Ono,Mno,Onum,Miprice,Moprice)VALUES('D7',2,300,3.2,3.5)执行结果INSERT--验证tr_instead_OrderList触发器INTO OrderList(Ono,Mno,Onum,Miprice,Moprice)VALUES('DD',6,300,4.6,5.0)执行结果4.总结与体会这次实验学到了很多,首先是创建数据库,还有表格,当然这个利用SQLSERVER2005的图形界面操作很简单,不过对于表的约束还是要注意的地方。

相关文档
最新文档