试验三 数据的更新

实验三  数据的更新

 

一、实验目的

1.掌握基本表的Insert,Update,Delete操作

2.掌握视图的Insert,Update,Delete操作

 

二、实验环境(实验的软件、硬件环境)

硬件:PC机 软件:SQL2000

 

三、实验说明

   请复习相关的SQL语句insert,update,delete语法知识点并完成如下内容。

 

四、实验内容

1.表中数据的基本操作

(1)给实验二中的5张表添加记录,记录数据见数据文件data.txt

(2)将作废订单(发票号5197791779)由订单明细表中删除

(3)将上海的客户住址全都改为深圳

(4)将工作满2周年的员工薪水上调5%,工作满5周年的员工薪水上调8%

(5)将客户c20090001在2009年1月购买的所有商品单价打9折

(6)根据订单明细表,修改订单主表的订单金额信息。

2.视图中数据的基本操作

(1)在实验二创建的视图上,对视图添加一条记录数据(注意:分别查看customer表和该视图的结果)

(2)删除视图中所有姓“王”的客户数据

(3)通过视图修改表内某一个客户的姓名

(4)对员工表和订单主表创建一个视图,该视图包含相同业务员的编号、姓名、订单号、订单金额。

(5)将上述视图中订单号为200808080808的记录的订单金额改为60000

(6)给上述视图添加一条记录数据

(7)删除上述视图

五、实验步骤

请完成实验内容,并写出具体的实验步骤

1.(1)代码:insert

into Employee(employeeNo,employeeName,sex,birthday,address,telephone,Hiredate,Department,Headship,salary)

values('E2005001','喻自强','M','1965-4-15','南京市',13817605008,'1990-2-6','财务科','科长',5800),

      ('E2005002','张小梅','F','1973-11-1','上海市',13817605008,'1991-3-28','业务科','职员',2400),

      ('E2005003','张小娟','F','1973-3-6','上海市',13817605008,'1992-3-28','业务科','职员',2600),

      ('E2005004','张 露','F','1967-1-5','南昌市',13817605008,'1990-3-28','业务科','科长',4100),

      ('E2005005','张小东','M','1973-9-3','南昌市',13817605008,'1992-3-28','业务科','职员',1800),

      ('E2006001','陈 辉','M','1965-11-1','南昌市',13817605008,'1990-3-28','办公室','主任',4000),

      ('E2006002','韩 梅','F','1973-12-11','上海市',13817605008,'1990-11-28','业务科','职员',2600),

      ('E2006003','刘 风','F','1973-5-21','南昌市',13817605008,'1991-2-28','业务科','职员',2500),

      ('E2007001','吴浮萍','M','1973-9-12','南京市',13817605008,'1990-6-28','业务科','职员',2500),

      ('E2007002','高代鹏','M','1973-1-2','南京市',13817605008,'1991-11-28','办公室','文员',2000),

      ('E2008001','陈诗杰','M','1968-1-6','南京市',13817605008,'1990-12-6','财务科','出纳',3200),

      ('E2008002','张 良','M','1972-2-16','上海市',13817605008,'1992-2-28','业务科','职员',2700),

      ('E2008003','黄梅莹','F','1972-5-15','上海市',13817605008,'1991-2-28','业务科','职员',3100),

      ('E2008004','李虹冰','F','1972-10-13','南京市',13817605008,'1990-5-28','业务科','职员',3400),

      ('E2008005','张小梅','F','1970-11-6','深圳市',13817605008,'1990-11-18','财务科','会计',5000

      );

---------------------------------

/*----------客户表数据--------------*/

insert

into customer(customerNo,customerName,telephone,address,zip)

values('c2005001','统一股份有限公司','022-3566021','天津市',220012),

   ('c2005002','兴隆股份有限公司','022-3566021','天津市',220301),

   ('c2005003','上海生物研究室','022-3566021','北京市',108001),

   ('c2005004','五一商厦','022-3566021','上海市',210100),

   ('c2006001','大地商城','022-3566021','北京市',100803),

   ('c2006002','联合股份有限公司','022-3566021','上海市',210100),

   ('c2007001','南昌电脑研制公司','022-3566021','南昌市',330046),

   ('c2007002','世界技术开发公司','022-3566021','上海市',210230),

   ('c2007003','万事达股份有限公司','022-3566021','天津市',220400),

   ('c2008001','红度股份有限公司','022-3566021','北京市',100800

   );

 

---------------------------------

/*----------------商品信息表数据-------------------*/

insert

into product(productNo,productName,productclass,productprice)

values('p2005001','32M DRAM','内 存',80.70),  

   ('p2005002','17寸显示器','显示器',700.00),    

   ('p2005003','120GB硬盘','存储器',300.00),    

   ('p2005004','3.5寸软驱','设 备',35.00),    

   ('p2005005','键盘','设 备',100.60),    

   ('p2006001','VGA显示卡','显示器',1200.60),    

   ('p2006002','网卡','设 备',66.00),    

   ('p2006003','Pentium100CPU','处理器',200.00),    

   ('p2007001','1G DDR','内 存',256.00),    

   ('p2007002','52倍速光驱','设 备',200.00),    

   ('p2007003','计算机字典','图 书',100.00),    

   ('p2007004','9600bits/s调制解调','设 备',320.00),    

   ('p2008001','Pentium主板','主 板',890.00),    

   ('p2008002','索泰克主板','主 板',1100.00),    

   ('p2008003','纯平显示器','显示器',900.00

   );

 

--------------------------------- 

/*订单主表数据*/

insert

into orderMaste(orderNo,customerNo,saleNo,orderdate,ordersum,invoiceNo)

values('200801090001',      'c2005001',        'E2005002'  ,   '2008-1-9'   ,    '0.00',       'I000000001'),

   ('200801090002',      'c2005004',        'E2005003',     '2008-1-9',       '0.00',       'I000000002'),

   ('200801090003',      'c2008001',        'E2005002',     '2008-1-9',       '0.00',       'I000000003'),

   ('200802090001',      'c2005001',        'E2005003',     '2008-2-19',      '0.00',       'I000000004'),

   ('200802090002',      'c2007002',        'E2008002',     '2008-2-19',      '0.00',       'I000000005'),

   ('200803010001',      'c2007002',        'E2008001',     '2008-3-1',       '0.00',       'I000000006'),

   ('200803020001',      'c2005004',        'E2008003',     '2008-3-2',       '0.00',       'I000000007'),

   ('200803090001',      'c2007003',        'E2008004',     '2008-3-9',       '0.00',       'I000000008'),

   ('200805090001',      'c2006002',        'E2008002',     '2008-5-9',       '0.00',       'I000000009'),

   ('200806120001',      'c2005001',        'E2005002',     '2008-6-12',      '0.00',       'I000000010'

   );

--------------------------------

/*订单明细表数据*/

insert

into orderDetil(OrderNo,ProductNo,Qty,OrderPrice)

values('200801090001',     'p2005001',       5,          500),

      ('200801090001',     'p2005002',       3,          500),

      ('200801090001',     'p2005003',       2,          300),

      ('200801090002',     'p2006002',       5,          250),

      ('200801090002',     'p2008001',       5,          280),

      ('200801090002',     'p2008002',       4,          270),

      ('200801090002',     'p2008003',       2,          158),

      ('200801090003',     'p2005001',       5,          130),

      ('200801090003',     'p2006001',       3,          350),

      ('200802190001',     'p2006003',       4,          270),

      ('200802190001',     'p2007001',       2,          158),

      ('200802190001',     'p2007002',       5,          250),

      ('200802190001',     'p2007003',       3,          350),

      ('200802190001',     'p2007004',       2,          330),

      ('200802190001',     'p2008001',       2,          160),

      ('200802190001',     'p2008002',       3,          260),

      ('200802190001',     'p2008003',       1,          330),

      ('200802190002',     'p2005003',       2,          160),

      ('200802190002',     'p2005005',       3,          150),

      ('200802190002',     'p2007001',       3,          500),

      ('200803010001',     'p2005001',       8,          150),

      ('200803010001',     'p2007001',       4,          150),

      ('200803020001',     'p2005001',       2,          100),

      ('200803020001',     'p2005002',       1,          200),

      ('200803020001',     'p2007003',       3,          200),

      ('200803090001',     'p2005003',       4,          200),

      ('200803090001',     'p2005004',       5,          250),

      ('200803090001',     'p2007001',       2,          158),

      ('200803090001',     'p2007002',       5,          380),

      ('200803090001',     'p2007004',       3,          350),

      ('200805090001',     'p2006003',       8,          300),

      ('200805090001',     'p2007001',       4,          500),

      ('200805090001',     'p2007002',       2,          600),

      ('200805090001',     'p2007003',       5,          300),

      ('200806120001',     'p2005004',       2,          600),

      ('200806120001',     'p2005005',       3,          600),

      ('200806120001',     'p2006001',       1,          300),

      ('200806120001',     'p2006002',       2,          280

      );

  ---------------------------------------------------------------------

试验结果图:                        

1.(2)代码:--()将作废订单(发票号)由订单明细表中删除

--select InvoiceNo from orderMaste

--执行操作未出现此号码

delete

from orderDetil

where  orderNo in

(

    select orderNo from orderMaste

    where InvoiceNo = '5197791779'

)  

试验结果图:

 

1.(3)代码:--()将上海的客户住址全都改为深圳

//-----------操作成功------------

update customer

set address='深圳市'

where address='上海市';

试验结果图:

 

1.(4)代码:--()将工作满周年的员工薪水上调%,工作满周年的员工薪水上调%

-----------操作未成功------------

--select *

--from ordermaste

 

update Employee

set salary=salary*(1+0.05)

where (GETDATE()-Hiredate)>=2 and (GETDATE()-Hiredate)<5

 

update Employee

set salary=salary*(1+0.08)

where (GETDATE()-Hiredate)>=5

试验结果图:

 

1.(5)代码:--()将客户c20090001在年月购买的所有商品单价打折

-----------无此客户----------------  

update orderMaste

set ordersum=ordersum*0.9 

where customerNo='c20090001' and orderMaste.orderdate between '2009-1-1' and '2009-1-31'

试验结果图:

 

1.(6)代码:--()根据订单明细表,修改订单主表的订单金额信息

update orderMaste

set ordersum=(select SUM(orderPrice*Qty)

                from orderdetil

                where orderdetil.orderno=orderMaste.orderNo)

试验结果图:

 

 

2.(1)代码:insert into shanghai(customerNo,customerName,Address,Createdate)

values('007','软工二班','师大南区','2012-09-10')

试验结果图:select * from customer

 

select * from shanghai

 

2.(2)代码:delete

from shanghai

where customerName='王%'

试验结果图:

3.(3)update shanghai

set customerName='福师大软院软工二班'

where customerName='软工二班'

试验结果图:

 

2.(4)代码:create view e_m_b

as

select employeeNo,employeeName,b.OrderNo,Ordersum

from Employee a,orderMaste b

where a.EmployeeNo=b.CustomerNo

试验结果图:

 

2.(5)代码:update e_m_b

set Ordersum=60000

where orderno='200808080808'

试验结果图:

 

2.(6)代码:insert into e_m_b

values('E2014002','新加记录','201403201234',1000)

试验结果图:

 

2.(7)代码:

drop view emt_view

试验结果图:

 

六、思考题:

1.请注意区别Create,alter,drop和insert,update,delete的异同和使用情况?

答:create用于新建表,视图等,alter用于修改表,视图等,drop用于删除表,视图等,insert用于添加即插入数据,update用于修改即更新数据,delete用于删除数据。

2.请思考基本表数据的更新和视图数据的更新的联系和区别?

 

七、总结(实验过程的体会、心得和实验教与学之间还需改进的内容)

1.在试验过程中加深了我对SQL的理解,已经让我加深了对数据库里的表,视图的命令

2.在试验过程中,分清了数据更新的各种操作,尤其是思考题1中的问题

3.我对试验的建议就是,老师能在每次试验任务后面多问几个我们容易混淆的概念以及区别

转载于:https://www.cnblogs.com/LOB104-zhanglei/articles/3624195.html

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验 数据管理操作 一、实验目的 1.熟悉大型数据库实验环境,以MS SQL SERVER为例; 2.掌握DDL语句,使用DDL语句完成数据表的创建; 3.掌握DML语句,使用DML语句完成数据的插入、修改和删除; 4.掌握MS SQL SERVER的备份和还原; 5.掌握MS SQL SERVER的权限分配。 实验内容 (1)用DDL(数据定义语句的Create database)创建一个新数据库FlightDB,数据库文件的设置都可以使用默认值。 (2)用DDL(数据定义语句的Create Table)创建张表 1.航班表(hbb)包括如下字段: 航班号(hbh):字符型,6位定长,主码,以CZ、CA、FM开头 始发地(sfd):字符型,可变长统一编码字符型20位长,非空 目的地(mdd):字符型,可变长统一编码字符型20位长,非空 原价(YJ):整型,非空,必须>=0 2.乘客表(Ckb)包括如下字段: 身份证号(sfzh):字符型,20位变长字符串,主码 姓名(xm):可变长统一编码字符型,10位长 3.售票表(spb)包括如下字段: 航班号(hbh):主码 身份证号(sfzh):主码 起飞日期(qfrq):日期时间型,非空 售票日期(sprq):日期时间型,非空,默认值为当前时间 实价(sj):整型,非空 其:航班号为引用航班表的外码,身份证号为引用乘客表的外码。 (3)用DML(数据操纵语句的Insert)在hbb表插入如下数据 CZ1301,北京,上海,1200 CZ1209,南京,昆明,1300 CZ1502,上海,北京,1200 CA1130,成都,北京,1800 CA1230,拉萨,广州,1500 CA1401,广州,南京,1600 (4)对数据库进行一次完整备份,备份名为BackupFull (5)用DML(数据操纵语句的Insert)在乘客表和售票表插入如下数据 代码 乘客 91201 王曼 91202 张飞 91203 刘羽蕴 91204 王若雨 91205 张蕊 航班号 乘客 起飞 售票 实价 CZ1301 91201 2001-12-20 2001-11-20 900 CZ1209 91202 2001-12-20 2001-11-20 800 CZ1502 91201 2002-5-8 2002-5-2 1000 CA1230 91201 2001-12-5 2001-12-4 1100 CA1401 91202 2002-4-5 2002-4-4 1200 CZ1301 91203 2001-12-20 2001-11-20 900 CZ1209 91204 2001-12-20 2001-11-20 800 CZ1502 91205 2002-5-8 2002-5-2 1000 (6)对数据库进行一次差异备份,备份名为BackupAdd1 (7)用DML(数据操纵语句的Update)将所有目的地是北京的航班的原价提高10% (8)用DML(数据操纵语句的Delete)将“张飞”乘客删除,注意同时删除售票记录和乘客基本信息。 (9)尝试使用MS SQL Server的还原功能,还原到上一次差异备份的BackupAdd1处。 (10)在SQL Server创建一个用户FlightUser,设置FlightUser用户对张表都有查询权,但是该用户不能对乘客表和航班表进行增加、删除和修改记录,该用户对售票表能增加、删除和修改记录。然后用FlightUser登陆SQL Server,对如上权限设置进行验证。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值