




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库原理实验手册实验一实验名称:熟悉SQL SERVER 2000环境一、实验目的熟悉SQL SERVER 2000提供的服务管理器、企业管理器、查询分析器、客户端和服务器端网络实用工具等常用管理工具的使用。了解Windows身份验证和SQL Server身份验证这两种连接数据库服务器方式的不同,并能够使用某种连接方式登陆上SQL SERVER数据库服务器。学会使用SQL SERVER的联机丛中寻求帮助。二、实验原理使用SQL SERVER 2000提供的各种常用管理工具进行有关的操作。三、实验设备安装有SQL SERVER 2000的计算机。四、实验内容1 启动SQL SERVER 服务。
2、2 打开SQL SERVER的企业管理器,连接上SQL SERVER服务器。展开左边树状窗口的各级结点,观察右边内容窗口的变化。3 在SQL SERVER的企业管理器的树状窗口或内容窗口中选择某一项,点击鼠标右键,了解快捷菜单中的有关功能。4 使用Windows身份验证的连接方式打开SQL SERVER的查询分析器,在查询窗口用USE命令打开样例数据库pubs(也可以从工具栏中的数据库下拉列表中选择pubs数据库)。5 在查询窗口输入exec sp_help,运行后察看结果。6 在查询窗口输入select * from authors ,运行后察看结果。7 在SQL SERVER的查询分析器的
3、“帮助”菜单中点击“目录与索引”,然后在SQL SERVER的联机丛中选“索引”,输入要查找的关键字“sp_help”、“exec”、“select”,了解它们的含义。8 在SQL SERVER的企业管理器中创建数据库S_T,并在该数据库中创建表student、course和sc,在创建表的同时可以创建各种约束。这三个表的结构可以参考书上85页的例5、例6和例7。9 向各个表输入数据,各个表的数据可参考书56页的图2.4。10 在SQL Server的查询分析器中打开S_T数据库,输入书中91页开始的例题,实现对数据库的查询。实验二实验名称:创建和修改数据库一、实验目的熟悉SQL SERVER
4、的企业管理器和查询分析器的用户界面,掌握用企业管理器和查询分析器创建数据库,修改数据库和删除数据库的方法。了解数据库的三种文件类型:主数据文件(.mdf)、次要数据文件(.ndf)和事务日志文件(.ldf)。二、实验原理在企业管理器中实现对数据库的管理及使用TSQL语句CREATE DATABASE、ALTER DATABASE及DROP DATABASE来实现数据库的创建、修改及删除。三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例1 创建名称为testdb的数据库,数据库中包含一个数据文件,逻辑文件名为testdb_data,磁盘文件名为testdb.mdf,文件初始
5、容量为2MB,最大容量为8MB,文件容量递增值为1MB;事务日志文件的逻辑文件名为testdb_log,磁盘文件名为testdb_log.ldf,文件初始容量为1MB,最大容量为5MB,文件容量递增值为1MB。CREATE DATABASE testdbON( NAME=testdb_data, FILENAME='d:DATAtestdb.mdf',SIZE=2MB,MAXSIZE=8MB,FILEGROWTH=1MB )LOG ON(NAME=testdb_log, FILENAME='d:DATAtestdb_log.ldf',SIZE=1MB,MAXSI
6、ZE=5MB,FILEGROWTH=1MB )2 对testdb数据库进行修改:添加一个数据文件,逻辑文件名为testdb2_data,磁盘文件名为testdb2_data.ndf,文件初始容量为1MB,最大容量为5MB,文件容量递增值为1MB。ALTER DATABASE testdbADD FILE (NAME=testdb2_data, FILENAME='d:DATAtestdb2.ndf',SIZE=1MB,MAXSIZE=5MB,FILEGROWTH=1MB )五、实验内容分别使用SQL SERVER 2000企业管理器和TSQL语句,按下列要求创建、修改和删除用户
7、数据库。1 删除数据库S_T,在查询分析器中用命令采用默认设置创建数据库S_T(只需给出数据库名)。2 创建名称为company的数据库,数据库中包含一个数据文件,逻辑文件名为company_data,磁盘文件名为company_data.mdf,文件初始容量为5MB,最大容量为15MB,文件容量递增值为1MB;事务日志文件的逻辑文件名为company_log,磁盘文件名为company_log.ldf,文件初始容量为5MB,最大容量为10MB,文件容量递增值为1MB。3 对该数据库进行修改:添加一个数据文件,逻辑文件名为company2_data,磁盘文件名为company2_data.nd
8、f,文件初始容量为1MB,最大容量为5MB,文件容量递增值为1MB;将日志文件company_log的最大容量增加为15MB,文件容量递增值为2MB。4 在company数据库中添加一个文件组TempGroup,并向该文件组中添加一个容量为3MB,最大容量为10MB,递增量为1MB的数据文件,该数据文件的逻辑文件名为company3_data,磁盘文件名为company3_data.ndf。5 在company数据库中删除数据文件company2_data。6 删除数据库company。7 采用默认设置创建数据库company。实验三实验名称:创建和修改数据表一、实验目的熟悉有关数据表的创建和
9、修改等工作,理解数据库模式的概念,了解主键约束、外键约束、UNIQUE约束和CHECK约束的创建和应用。要求学生熟练掌握使用企业管理器和TSQL语句CREATE TABLE、ALTER TABLE及DROP TABLE语句对数据表进行管理。二、实验原理在企业管理器中实现表的创建和修改等工作及使用TSQL语句CREATE TABLE、ALTER TABLE及DROP TABLE来实现数据表的创建、修改及删除。三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例两个示例:l 一个是书上的学生选课数据库S_T,S_T数据库中有学生表student,课程表course和学生选课表sc
10、。各表的结构如下:学生表studentSnochar(5)Not nullprimary key学号Snamechar(20)Not null姓名Ssexchar(2)Not null性别SagesmallintNot null年龄Sdeptchar(20)Not null系别课程表courseCnochar(4)Not nullprimary key课程号Cnamechar(40)Not null课程名Cpnochar(4)先行课Ccreditsmallint Not null学分学生选课表scSnochar(5)Not nullprimary key学号Cnochar(4)Not null
11、primary key课程号Gradesmallint成绩l 另一个示例是某公司的产品销售数据库company,company数据库中存在人事表employee、客户表customer、销售表sales、销售明细表sale_item、产品表product。各表的结构如下:员工人事表employee emp_nochar(5)Not nullprimary key员工编号emp_namevarchar(10)Not null员工姓名sexchar(2)Not null性别deptvarchar(10)Not null所属部门titlevarchar(10)Not null职称date_hired
12、datetimeNot null雇佣日birthdaydatetimeNull生日salaryintNot null薪水telephonevarchar(20)Null电话addrvarchar(50)null住址客户表customercust_idchar(5)Not nullprimary key客户号cust_namevarchar(20)Not null客户名称addrvarchar(40)Not null客户住址tel_novarchar(20)Not null客户电话zipchar(6)null邮政编码销售主表sales order_nointNot nullprimary key
13、订单编号cust_idchar(5)Not null客户号sale_idchar(5)Not null业务员编号tot_amtnumeric(9,2)Not null订单金额order_datedatetimeNot null订货日期销货明细表sale_item order_nointNot nullprimary key订单编号prod_idchar(5)Not nullprimary key产品编号qtyintNot null销售数量unit_pricenumeric(7,2)Not null单价order_datedatetimenull订单日期产品名称表product prod_idc
14、har(5)Not nullprimary key产品编号prod_namevarchar(20)Not null产品名称1创建表及相应的约束create table employee1(emp_no char(5) not null check(emp_no like 'E-F0-90-90-90-9'),emp_name char(10) not null,emp_sex char(1) not null check(emp_sex in ('m','f'),emp_phone char (13) not null,emp_add varch
15、ar(60) not null,emp_salary char(5) not null check (emp_salary between 60000 and 80000)go2修改表alter table employeeadd constraint ck_phone check (phone like 0-90-90-90-90-90-90-90-90-90-90-90-90-9)五、实验内容分别在SQL SERVER 2000企业管理器和在查询分析分析器中使用TSQL语句完成以下操作:l 针对S_T数据库:1 创建student表,设置Sno为主键;在Sno列上创建核查约束,要求学号各个
16、位上只能取数字字符;在Ssex列上创建核查约束,要求性别只能取“男”或“女”;在Sage 列上创建核查约束,要求学生的年龄只能在14至38之间。2 创建course表,设置列Cno为主键;在Cno列上创建核查约束,要求课程号只能取数字字符。3 创建sc表,设置主键为Sno与Cno的组合;在Grade列上创建核查约束,限定成绩只能在0-100。4 修改course表,在表中为Cpno列添加一外键约束Fk_Cpno,它参照了course表的主键Cno。5 修改sc表,在表中为Sno添加一外键约束Fk_Sno,它参照了student表中的主键Sno;为Cno添加外键约束Fk_Cno, 它参照了cou
17、rse表中的主键Cno。l 针对company数据库:1 在数据库company中创建以上五张表,并设置各表的主键。2 在销售主表sales中添加字段“发票号码” invoice_no,char(10),NOT NULL。3 添加外键约束:a) 在销售主表sales的业务员编号字段sale_id上添加外键约束,参照字段为员工表employee中的字段员工编号emp_no,约束名为FK_sale_id。b) 在销售主表sales的客户号字段cust_id上添加外键约束,参照字段为客户表customer中的字段客户号cust_id,约束名为FK_cust_id。c) 在销售明细表sale_item
18、的订单编号字段order_no上添加外键约束,参照字段为销售主表sales中的字段订单编号order_no,约束名为FK_order_no。d) 在销售明细表sale_item的产品编号字段prod_id上添加外键约束,参照字段为产品名称表product中的产品编号字段prod_id,约束名为FK_prod_id。4 添加核查约束:a) 将员工表employee中的薪水字段salary的值限定在1000至10000间,约束名为CK_salary。b) 将员工表employee中的员工编号字段emp_no设定为以“E”字母开头, 后面跟5位数的编号,约束名为CK_emp_no。c) 将员工表em
19、ployee中的性别字段设定这取值只能是“男”和“女”。约束名为CK_sex。d) 将销售主表sales中的发票号码字段invoice_no设定为以“I”字母开头,后面跟9位数的编号,约束名为CK_inno。5为销售主表sales中的字段发票号码invoice_no设置为唯一约束,约束名为UN_inno。实验四实验名称:简单的单表查询一、实验目的熟练掌握用SELECT语句实现简单的单表查询。掌握SELECT子句、FROM子句、WHERE子句及ORDER BY 子句的用法。二、实验原理用SELECT语句实现简单的单表查询。在SELECT子句中用TOP关键字来限制返回到结果集中的记录数目,用DIS
20、TINCT关键字从结果集中去掉重复的记录。WHERE子句中用关系比较符、NOT BETWEEN、NOT IN、LIKE、 IS NOTNULL及逻辑运算符构成查询条件,对结果集中的记录进行筛选。ORDER BY子句将根据查询结果集中一个或多个字段对查询结果进行排序。三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例1查找表中所有姓刘的职工的工号,姓名,部门,薪水select emp_no,emp_name,dept,salaryfrom employeewhere emp_name like '刘%'2查找所有定单金额高于20000的所有客户编号select
21、 cust_idfrom saleswhere tot_amt>200003查找业务部或会计部的女员工的基本信息。select emp_no,emp_name,deptfrom employee where sex='女' and dept in ('业务','会计')4选取编号界于C0001和C0004的客户编号、客户名称、客户地址。select cust_id,cust_name,addrfrom customer where cust_id between 'C0001' AND 'C0004'5选取销
22、售数量最多的前5条订单订单号、数量。select top 5 order_no,qtyfrom sale_itemorder by qty desc6计算出sale_item表中每一笔销售数据的销售金额,并按照销售金额的大小排序。select prod_id,qty,unit_price,(qty*unit_price)tot_amtfrom sale_itemorder by tot_amt desc五、实验内容运行查询文件company.sql,生成上机必要的数据,然后完成以下操作。1、 查找所有经理的姓名、职称、薪水。2、在销售主表sales中查找销售金额大于等于10000元的订单。3、
23、在员工表employee中查找薪水在4000至8000元之间的员工。select *from employeewhere salary between 4000 and 80004、在员工表employee中查找住址为上海、北京、天津这三个城市的员工。5、在客户表customer中查找住址不在上海、北京、天津这三个城市的客户。6、在员工表employee中查找姓“王”用姓名最后一个字为“功”的员工。7、在客户表customer中查找姓“刘”的客户名称、电话。select cust_name,tel_nofrom customerwhere cust_name like '刘%'
24、8、查找出职称为“经理”或“职员”的女工的信息。9、查找薪水最高的前三条员工记录。10、查找订单金额最高的前10%的订单记录。select top 10 percent *from salesorder by tot_amt desc11、查找员工表中所属部门。(去掉重复记录)select distinct emp_no,emp_name,deptfrom employee12、查找员工表中的所有记录,并按薪水由低到高进行排序。select *from employeeorder by salary asc实验五实验名称:复杂的单表查询 一、实验目的熟练掌握SELECT查询语句中的Group
25、by 子句、Having子句的用法,以及汇总函数的使用。二、实验原理在查询语句中用Group by子句进行分组;用Having子句对分组进行筛选。使用MAX(),MIN(),COUNT(),SUM(),AVG()等函数在查询结果集中生成汇总值。三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例1、统计表中员工的薪水在40000-60000之间的人数select count(*) as 人数from employeewhere salary between 40000 and 600002、计算'P0001'产品的平均销售单价select avg(unit_p
26、rice)from sale_itemwhere prod_id='P0001'3、 找出目前销售业绩超过40000元的业务员编号及销售业绩,并按销售业绩从大到小排序。Select sale_id ,sum(tot_amt)from sales group by sale_id having sum(tot_amt)>40000order by sum(tot_amt) desc4、 查询订购了三种以上产品的订单号。Select order_no from sale_itemGroup by order_noHaving count(*)>3五、实验内容1、在员工表
27、employee中统计员工人数。select count(*) 人数from employee2、统计各部门员工的员工人数及平均薪水。select count(*) 人数,avg(salary) 平均工资from employee3、查询销售业绩超过10000元的员工编号。select sale_idfrom (select sale_id,sum(tot_amt) amountfrom salesgroup by sale_id) awhere a.amount > 100004、计算每一产品销售数量总和与平均销售单价。select prod_id,sum(qty) tot_amoun
28、t,sum(unit_tot)/sum(qty) average_unit_pricefrom (select prod_id,qty,qty*unit_price unit_totfrom sale_item) agroup by prod_id5、统计各部门不同性别、或各部门、或不同性别或所有员工的平均薪水。(在GROUP BY 子句中使用CUBE关键字)6、 统计各部门不同性别、或各部门或所有员工的平均薪水。(在GROUP BY 子句中使用ROLLUP关键字)7、 计算出一共销售了几种产品。select count(prod_id)from (select distinct prod_i
29、dfrom sale_item) a8、 显示sale_item表中每种产品的订购金额总和,并且依据销售金额由大到小排列来显示出每一种产品的排行榜。select prod_id,sum(qty) tot_amount,sum(unit_tot) tot_amountfrom (select prod_id,qty,qty*unit_price unit_totfrom sale_item) agroup by prod_idorder by sum(unit_tot) desc9、 计算每一产品每月的销售金额总和,并将结果按销售(月份,产品编号)排序。select prod_id,month,
30、sum(unit_amount) month_amountfrom (select prod_id,qty*unit_price unit_amount,month(order_date) monthfrom sale_item) agroup by prod_id,monthorder by prod_id asc,month_amount desc10、 查询每位业务员各个月的业绩,并按业务员编号、月份降序排序select sale_id,sum(tot_amt)month_amount,month(order_date) monthfrom salesgroup by sale_id,m
31、onth(order_date)order by sale_id desc,month desc实验六实验名称:连接查询一、实验目的掌握使用连接的方法从多个表中查询数据。理解内连接、外连接(包括左外连接、右外连接和全外连接)、自身连接的概念和使用。要求学生熟练掌握在FROM子句和在WHERE子句中指定连接条件的这两种方法。二、实验原理在查询语句的FROM子句中用以下形式实现各种连接操作:l FROM 表1 INNER JOIN 表2 ON 表1列名=表2列名 (实现内连接)l FROM 表1 LEFT OUTER JOIN 表2 ON 表1列名=表2列名 (实现左外连接)l FROM 表1 R
32、IGHT OUTER JOIN 表2 ON 表1列名=表2列名 (实现右外连接)l FROM 表1 FULL OUTER JOIN 表2 ON 表1列名=表2列名 (实现全外连接)l FROM 表1 AS 别名1 JOIN 表1 AS 别名2 ON 别名1列名=别名2列名 (实现自身连接)在查询语句的WHERE子句中用以下形式实现各种连接操作:l FROM 表1,表2 WHERE 表1列名=表2列名 (实现内连接)l FROM 表1,表2 WHERE 表1列名*=表2列名 (实现左外连接)l FROM 表1,表2 WHERE 表1列名=*表2列名 (实现右外连接)l FROM 表1 AS 别名
33、1 ,表1 AS 别名2 WHERE 别名1列名=别名2列名 (实现自身连接)三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例1、 检索product 表和sale_item表中数量大于2的相同产品的产品编号、产品名称、数量、单价。select d_id,a.qty,a.unit_price,d_namefrom sale_item as a inner join product as b /*如果改成left join/right join 试分析结果*/on (d_id=_id) and a.qty>2order by a
34、.prod_id2、查找出employee表中住址相同的员工的姓名、性别、职称、薪水、住址。select a.emp_name,a.sex,a.title,a.salary,a.addr,b.emp_name,b.sex,b.title,b.salary,b.addrfrom employee as a inner join employee as bon (a.emp_no!=b.emp_no) and (a.emp_name>b.emp_name) and (a.addr=b.addr)3、查找商品名称为14寸显示器商品的销售情况,显示该商品的编号、销售数量、单价和金额select
35、d_id,qty,unit_price,unit_price*qty totpricefrom sale_item a,product bwhere d_id=d_id and prod_name='14寸显示器'五、实验内容1、 查找出employee表中部门相同且住址相同的女员工的姓名、性别、职称、薪水、住址。select a.emp_name,a.sex,a.title,a.salary,a.addr,b.emp_name,b.sex,b.title,b.salary,b.addrfrom employee as a inner join e
36、mployee as bon (a.emp_no!=b.emp_no) and (a.dept=b.dept) and (a.addr=b.addr) and a.sex = '女' and a.sex = b.sex2、 检索product 表和sale_item表中相同产品的产品编号、产品名称、数量、单价。select d_id,d_name,a.qty,a.unit_pricefrom sale_item a,product b where d_id = d_idgroup by d_id,d_name,a.qt
37、y,a.unit_price3、 检索product 表和sale_item表中单价高于2400元的相同产品的产品编号、产品名称、数量、单价。select d_id,d_name,a.qty,a.unit_pricefrom sale_item a,product b where d_id = d_id and a.unit_price > 2400group by d_id,d_name,a.qty,a.unit_price4、 查询在每张订单中订购金额超过24000元的客户名及其地址。select b.cust_name,b
38、.addrfrom sales a,customer bwhere tot_amt > 24000 and a.cust_id = b.cust_id5、 查找有销售记录的客户编号、名称和订单总额select b.cust_id,b.cust_name,a.tot_amtfrom sales a,customer bwhere a.cust_id = b.cust_id6、 每位客户订购的每种产品的总数量及平均单价,并按客户号,产品号从小到大排列。select x.cust_id, d_id,sum(qty) sum_qty,avg(unit_price) avg_pricef
39、rom (select cust_id,prod_id,qty,unit_pricefrom sales a,sale_item bwhere a.order_no = b.order_no) xgroup by x.cust_id,d_idorder by cust_id asc,prod_id asc7、 查找在1997年中有销售记录的客户编号、名称和订单总额select a.cust_id,cust_name,tot_amtfrom customer a,sales bwhere a.cust_id = b.cust_id and year(b.order_date) = 19
40、978、 分别使用左向外连接、右向外连接、完整外部连接检索product 表和sale_item表中单价高于2400元的相同产品的产品编号、产品名称、数量、单价。并分析比较检索的结果。 左外:select d_id,d_name,qty,unit_pricefrom product left join sale_item on(d_id = sale_d_id and sale_item.unit_price > 2400)右外:select d_id,d_nam
41、e,qty,unit_pricefrom product right join sale_item on(d_id = sale_d_id and sale_item.unit_price > 2400)全外:select d_id,d_name,qty,unit_pricefrom product full join sale_item on(d_id = sale_d_id and sale_item.unit_price > 2400)实验七实验名称:嵌套查
42、询一、实验目的掌握SELECT语句的嵌套使用,实现多表的复杂查询,进一步理解SELECT语句的高级使用方法。二、实验原理使用嵌套查询时,先用内查询(子查询)挑选出部分数据,以作为外查询(主查询)的数据来源或搜索条件。包含子查询的语句通常采用以下格式:WHERE 表达式 NOT IN (子查询)WHERE 表达式 比较运算符 ANY|ALL (子查询)WHERE NOT EXISTS (子查询)其中前两种又称为不相关子查询,子查询的查询条件不依赖其父查询,所以可以先求出子查询的结果,然后由内到外逐层求解。最后一种为相关子查询,其子查询的查询条件依赖于外层父查询的某个属性值,所以不能先一次性地求出
43、子查询的结果。三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例1、由employee表中查找出薪水最高的员工信息。select *from employeewhere salary= (select max(salary ) from employee )2、由sales表中查找出订单金额大于“E0013业务员在1996/10/15这天所接每一张订单的金额”的所有订单。select *from saleswhere tot_amt>all (select tot_amt from sales where sale_id='E0013'and orde
44、r_date='1996/10/15')order by tot_amt3、用存在量词查找没有订货记录的客户名称select cust_namefrom customer awhere not exists (select * from sales b where a.cust_id=b.cust_id)五、实验内容1、 由sales表中查找出销售金额最高的订单。2、 由sales表中查找出订单金额大于“E0013业务员在1996/10/15这天所接任一张订单的金额”的所有订单,并显示承接这些订单的业务员和该条订单的金额。3、 找出公司女业务员所接的订单。4、 找出目前业绩未超
45、过200000元的员工。5、 在销售主表sales中查询销售业绩最高的业务员编号及销售业绩。6、 找出目前业绩超过232000元的员工编号和姓名。7、 查询订购的产品至少包含了订单10003中所订购产品的订单。8、查询末承接业务的员工的信息。实验八实验名称:数据更新一、实验目的熟练使用INSERT/DELETE/UPDATE语句进行表的更新操作。二、实验原理数据更新操作只能针对一个表进行,即每次只能在一个表中插入、删除和修改数据。用INSERT语句可以通过使用VALUES关键字一次只向一个表插入一条记录,也可以通过子查询向一个表中插入若干条记录; 当使用DELETE和UPDATE语句实现表的删
46、除和更改时,若题目中涉及多个表的信息,可以使用子查询来挑选出部分数据,以作为删除或更改的条件,也可以在语句中用FROM子句给出题目中涉及的所有表,而在WHERE子句中给出多个表之间的连接条件。三、实验设备安装有SQL SERVER 2000的计算机。四、实验示例1、在产品名称表中插入一条记录。INSERT INTO product VALUES(p0009,CD_ROM)2、 将employee员工表中性别为“女”的员工的员工编号、姓名,职称和薪水复制到一个名为temp_emp表文件中,该文件只具有这四个列。INSERT INTO temp_emoSELECT emp_no,emp_name,
47、title,salaryFROM employeeWHERE sex=女3、 将所有经理的薪水上调10%。UPDATE EMPLOYEESET salary=salary*1.1WHERE title=经理4、 删除李小明的销售记录。DELETE employeeFROM employee, salesWHERE employee.emp_no=sales.sale_id and emp_name=李小明或DELETE employeeWHERE emp_name=李小明 and emp_no IN ( SELECT DISTINCT sale_id FROM sales )五、实验内容凡是能
48、用多种方法实现的,请用多种方法实现。1、为各表添加若干条记录,必须符合实验二中设定的各种约束。2、将每个员工的薪水上调10%。3、删除sales表中作废的订单(其发票号码为I000000004),其订货明细表中的数据也一并删除。5、 删除所有没有销售业绩的员工记录。6、 对那些只要有一笔销售业绩超过20000元的员工的薪水增加500元。实验九实验名称:视图的建立与使用一、实验目的理解视图的定义、视图的优点与视图的工作原理。掌握在企业管理器和查询分析器中创建、修改及删除视图。能够熟练掌握利用视图向表中插入、删除和修改数据。二、实验原理利用CREATE VIEW、ALTER VIEW 、DROP
49、VIEW语句创建、修改及删除视图。由于视图是虚表,通过视图向表中添加数据时必须满足一定的条件。如果视图引用了多个数据表,那么在通过视图向数据表中添加数据时,这个语句只能指定同一个表中的字段。如果通过一个引用了多个数据表的视图向这些数据表中添加数据时,必须书写多个INSERT语句。通过使用多个表的视图对数据表进行更新也需要书写多个UPDATE语句,另外适用于INSERT操作的许多限制同UPDATE操作。使用DELETE语句可以通过视图将数据表中的数据删除。但如果视图应用了两个或两个以上的数据表,则不允许删除视图中的数据。另外,通过视图删除的记录,不能违背视图定义的WHERE子句中的条件限制。三、
50、实验环境安装有SQL SERVER 2000的计算机。四、实验示例1、创建视图emp_view,该视图中包含女员工的编号、姓名和薪水。create view emp_view asselect emp_no,emp_name,salaryfrom employeewhere sex='女' 2、创建视图sale_item_view,该视图中包含订单编号、订货日期、产品编号及数量。然后利用该视图向表中插入数据。create view sale_item_view asselect sales.order_no,sales.order_date,prod_id,qtyfrom sa
51、les,sale_itemwhere sales.order_no=sale_item.order_no/*注意:插入数据时要考虑数据列是否有默认值或允许为空,否则INSERT失败。*/insert into sale_item_view(order_no,order_date)values(10010,'1996/12/20')insert into sale_item_view(prod_id,qty)values('p0010',8)五、实验内容以下操作中,有些在实现过程中可能会报错,请分析错误原因。1、 创建一个视图cust_view,该视图只含上海客户
52、信息,即客户号、客户姓名、住址。2、 利用cust_view视图添加一条记录数据。(注意:分别查看customer表和该视图的结果。)3、 修改cust_view视图,该视图只含上海客户信息,即客户号、客户姓名、住址、电。4、 删除视图中所有姓“王”的客户数据。5、 通过视图修改表内某一客户的姓名。6、 有两个基本表employee和sales,创建一个视图,该视图包含相同业务员的编号、姓名、订单号、销售总金额。7、 将上述视图中订单号为10001的记录的销售金额改为60000。8、 给上述视图添加一条记录数据。9、 删除上述视图。实验十实验名称:存储过程的建立与调用一、实验目的理解存储过程的概念、作用、建立和调用方法。二、实验原理使用CREATE PROCEDURE语句创建存储过程,ALTER PROCEDURE语句修改存储过程,DROP PROCEDURE语句删除存储过程,存储过程有不带参数的、有带输入参数的、有带输出参数(output)的,还可以有带返回值的。创建好的存储过程可以使用EXEC procedure_name语句执行。三、实验设备安装有SQL SERV
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微量泵使用与护理
- 2-14逻辑函数的化简-卡诺图法3
- 台州科技职业学院《全科医学概论理论》2023-2024学年第二学期期末试卷
- 铁门关职业技术学院《矿物加工技术基础》2023-2024学年第二学期期末试卷
- 南京医科大学康达学院《学前儿童游戏与指导》2023-2024学年第一学期期末试卷
- 四川省宜宾市翠屏区2025年初三十月月考化学试题试卷含解析
- 上海民远职业技术学院《物流配送中心设计》2023-2024学年第二学期期末试卷
- 辽宁省阜新二高2025届高三第二学期入学检测试题试卷英语试题含解析
- 江西生物科技职业学院《分子生物学实验技术与原理》2023-2024学年第二学期期末试卷
- 江苏省扬州市梅岭2025届中考第二次模拟考试语文试题理试题含解析
- 社会组织培训概述课件
- 三角函数的应用论文Word版
- 农业创业风险控制与防范培训课件
- 平面位置(轴线)测量记录表
- 生物制造国内外状况课件
- 处分通报范文员工处分通报范文4篇
- 幼儿园大班数学口算练习题可打印
- 罚没收缴物品处理管理流程图
- 生命体征监测-PPT课件
- 药物临床试验管理和质量控制课件(PPT 55页)
- 桥梁下部结构监理细则
评论
0/150
提交评论