实验七视图及SQL数据更新语句

合集下载

实验七视图及SQL数据更新语句

实验七视图及SQL数据更新语句

实验七视图及SQL数据更新语句一、实验目的1.掌握视图的概念;2.熟练掌握视图的生成及操作语句;3.熟练掌握SQL数据更新语句;二、实验步骤构建数据表作为实验数据内容(数据表同实验六,参考实验六实验步骤)运行SQL SERVER服务管理器,确认数据库服务器开始运行。

打开查询分析器,选择刚才恢复的数据库exampleDB,输入SQL指令,获得运行结果。

任务:完成以下SQL数据更新语句(1)创建视图V_SupplyCount,显示供应商编号,以及该供应商供应的产品的品种数(非CategoryID),该视图包含两个字段:SupplierID、ProductCount。

(2)创建视图V_OrderCount,显示顾客编号,顾客所下订单的产品总金额(金额=单价×数量×折扣),该视图包含两个字段:CustomerID,TotalFee。

(3)通过视图V_SupplyCount,查出供应产品的品种数最少的供应商编号和供应商名称。

(4)通过视图V_OrderCount,查出所下订单的产品总金额最多的顾客编号和地址。

(5)再Region表中,添加一个新的地区:地区编号为5,地区描述为Central(6)将Suppliers表中的所有国家为法国的供应商信息内容添加到OldSuppliers中(7)将所有由职员Fuller(LastName)签订的订单运费降低10%(8)将所有美国顾客购买的订单单价调高20%(9)将订货数量最多的产品的单价上调5元(10)删除订单个数最少的职员的信息(11)删除所有没有下订单的顾客信息三. 实验结果与分析(上交实验报告)创建视图V_SupplyCount,显示供应商编号,以及该供应商供应的产品的品种数(非CategoryID),该视图包含两个字段:SupplierID、ProductCount。

create view V_SupplyCount(SupplierID,ProductCount)as select SupplierID,count(ProductID) from products group by SupplierID●创建视图V_OrderCount,显示顾客编号,顾客所下订单的产品总金额(金额=单价×数量×折扣),该视图包含两个字段:CustomerID,TotalFee。

实验七 数据库的更新及视图的定义与维护

实验七 数据库的更新及视图的定义与维护

实验七数据的更新及视图的定义与维护一.实验目的1.掌握使用SQL语言向数据库中插入数据、修改数据和删除数据等更新操作2.掌握视图的定义与维护操作3. 加深对视图在关系数据库中的作用的理解二.实验准备1.装有SQL Server 2005的PC机。

2. 成功创建各数据库、数据库表、并已插入各种数据。

三.实验内容11.打开“SQL Server Management Studio”窗口2.创建学生选课数据库“S_T”3.在学生选课数据库中完成以下插入数据的操作:(1)将一个新学生元组(学号:200215128;姓名:陈东;性别:男;年龄:18;所在系:IS)插入学生表中;(2)插入一条选课记录(‘200215128’,1);(3)对每一个系,求学生的平均年龄,并把结果存入数据库。

提示:首先在学生-选课数据库中建立一个新表,其中一列存放系名,另一列存放相应的学生平均年龄;然后对student表按系分组求平均年龄,再把系名和平均年龄存入新表中。

4.在学生选课数据库中完成以下修改数据的操作:(4)将学生200215121的年龄改为22岁;(5)将所有学生的年龄增加一岁;(6)将计算机科学系全体学生的成绩置零;5.在学生选课数据库中完成以下删除数据的操作:(7)删除学号为200215122的学生记录;(8)删除所有的学生选课记录;(9)删除计算机科学系所有学生的选课记录四.实验内容21. 在学生选课数据库中完成以下创建视图的操作:(1)建立信息系学生的视图,并要求进行修改和插入操作时仍须保证该视图只有信息系的学生;(2)建立信息系选修了“1”号课程的学生视图;(3)建立信息系选修了“1”号课程且成绩在90分以上的学生视图;(4)定义一个反映学生出生年份的视图;(5)将学生的学号及他的平均成绩定义为一个视图;(6)将Student表中所有女生记录定义为一个视图;2. 在学生选课数据库中完成以下删除视图的操作:(7)选择一个您所建的视图进行删除;3. 在学生选课数据库中完成以下查询视图的操作:(8)在信息系学生的视图中找出年龄小于20岁的学生;(9)查询选修了1号课程的信息系学生;4. 在学生选课数据库中完成以下更新视图的操作:(10)将信息系学生视图中学号为200215122的学生姓名改为“刘辰”;(11)向信息系学生视图中插入一个新的学生记录,其中学号为200215129,姓名为赵新,年龄为20岁。

使用SQL语句创建视图和更新视图数据

使用SQL语句创建视图和更新视图数据

视图的概念
视图不是真实存在的基础表(基表), 而是一张虚表。
通过视图看到的数据只是存放在基表 中的数据 对视图的操作与对表的操作一样 可以对其进行查询、修改(有一定的 限制)和删除; 可以在视图的基础上继续创建视图。
2.视图的用途
1
简化查询操作
用户可以将多个表 中感兴趣的数据集 中在一个视图中, 通过查询视图查看 多个表中的数据。
通过视图执行的所有数据修改语句 必须符合视图定义中设置的条件, 即商品类型='水果'。
如果‘水果类商品信息’视图定义时没有With check option ,能添加成功,只是加在商品表上。 ‘水果类商品信息’视图显示的是水果类,所以不显示伊 利红枣酸牛奶的记录
3.往‘商品销售详细信息’视图中添加一条记录,销售号: '101-106-45',销售时间:'2010-4-18',是否会员:0,支付 方式:’现金’ ,条形码:'2000000341316',销售数量:5 。
思考:是否能添加成功??如果出错,为什么?
消息550,级别16,状态1,第1 行 试图进行的插入或更新已失败,原因是目标视图或者目标 视图所跨越的某一视图指定了WITH CHECK OPTION, 而该操作的一个或多个结果行又不符合CHECK OPTION 约束。
语句已终止。
--不能添加成功,
因为创建视图时使用With check option,
思考:能否添加成功?如果出错,为什么?
insert 商品销售详细信息(销售号,销售时间,是否会员,支付方式,条形码,销售数量) values('101-106-45','2010-4-18',0,'现金','2000000341316',5)

SQL:数据库更新语句操作实例

SQL:数据库更新语句操作实例

SQL:数据库更新语句操作实例⼀、SQL Server数据库更新操作(create,update,delete,insert,drop,alter)背景知识:⼀、插⼊:对表进⾏插⼊操作,insert into table_name(属性列)values(插⼊值),⼀定要注意属性列和插⼊值的顺序要⼀样⼆、语法记忆:update、delete、insert都不改变表的结构,所以只需要加上table_name就可以,⽽drop、create,alter都改变了表的结构,所以需要加上table,例如drop table table_name名称解释(不区分⼤⼩写)student学⽣表:包含属性列:sno学号、sname学⽣姓名、age年龄、sex性别、dno学院编号、birthday⽣⽇sc选课信息表:包含属性列:sno学号、cno课程号、grade成绩dept学院信息表:包含属性列:dno学院编号、dname学院名称、dean学院负责⼈course课程信息表:包含属性列:cno课程号、cname课程名称、tname⽼师名称、credit学分、room教室下⾯语句可以直接复制到SQL Server运⾏运⾏⽅法,选中执⾏语句⽅法不唯⼀,有问题欢迎留⾔讨论!代码块见⽂章末尾⼆、代码select * from scselect * from studentselect * from course–插⼊新的学⽣李⼀和李⼆insert into student(sno,sname,sex,dno,BIRTHDAY)values(‘20069011’,‘李⼀’,‘男’,‘0001’,‘1985-01-02’)select * from studentwhere sname = ‘李⼀’insert into student(sno,sname,sex,dno,BIRTHDAY)values(‘20069012’,‘李⼆’,‘⼥’,‘0002’,‘1986-01-02’)select * from studentwhere sname = ‘李⼆’–创建新表CREATE TABLE chengjiao(SNO char (8) not null unique,SNAME char(10),SEX char(2),DNO char(8),AGE smallint,BIRTHDAY datetime )–插⼊新学⽣张三、王⼆、张三INSERT INTO student(SNO,SNAME,AGE,DNO) VALUES (‘20067027’,‘张三’,20,‘0002’) INSERT INTO chengjiao(SNO,SNAME,AGE,DNO) VALUES (‘20067011’,‘王⼆’,23,‘0003’) INSERT INTO chengjiao(SNO,SNAME,AGE,DNO) VALUES (‘20067021’,‘张三’,19,‘0003’) select * from studentwhere sno = ‘20067027’unionselect * from studentwhere sno = ‘20067011’unionselect * from studentwhere sno = ‘20067021’–将成教表 chengjiao 中的所有学⽣⼀次性添加到学⽣表 student 中。

使用SQL语句创建视图和更新视图数据.

使用SQL语句创建视图和更新视图数据.

相关限制 在一个语句中,一次不能修改一个以上的视图基表; 对视图中所有列的修改必须遵守视图基表中所定义 的各种数据约束条件; 不允许对视图中的计算列进行修改,也不允许对 视图定义中包含有统计函数或GROUP BY子句的 视图进行插入或修改操作。
2.往‘水果类商品信息’视图中添加一条记录:条形码 为:’907992101279’,商品名称为:’伊利红枣酸牛奶 ’,库存数量为:0,商品类型为:’牛奶’。 思考:是否能添加成功??如果出错,为什么?
SELECT
FROM
列名或表达式
表名或视图名
[WHERE 行条件表达式] [GROUP BY 列名] [HAVING 组条件表达式] [ORDER BY 列名 [ASC|DESC]]
1.重新创建视图‘目前商品价格2’,查询各商品目前的零 售价和会员价,结果包括条形码、商品名称、零售价、会员 价。 提示:通过视图‘目前商品价格1’和商品表创建。 将目前商品价格1当成一张表来使用, 要查找条形码、商品名称、零售价、会员价 将目前商品价格1’和商品表连接起来 select dbo.商品.条形码,商品名称,零售价,会员价
任务5:创建视图和更新视图数据
使用management studio创建视图;
使用CREATE VIEW语句创建视图;
视图的管理:查看视图信息、修改视图、删除视图、重命 名视图等; 使用视图对表数据操作:查询、添加、修改、删除等。
第一部分
Байду номын сангаас
创建视图
1.视图概述
视图是一种常用的数据库对象,是从 一个或多个基表中导出的表,其结构 和数据是对数据表进行查询的结果。 视图被定义后便存储在数据库中,通 过视图看到的数据只是存放在基表中 的数据。

数据库试验---SQL数据更新语句

数据库试验---SQL数据更新语句

实验SQL数据更新语句一、实验目的本次实验了解SQL Server 2005的启动,熟悉如何使用SSMS和5@1.建立数据库和表,并加深对于完整性的理解。

一.二、背景知识在使用数据库的过程中,接触最多的就是数据库中的表。

表是数据存储的地方,是数据库中最重要的部分,管理好表也就管理好了数据库。

表是由行和列组成的。

创建表的过程主要就是定义表的列的过程。

表的列名在同一个表中具有唯一性,同一列的数据属于同一种数据类型。

除了用列名和数据类型来指定列的属性外,还可以定义其它属性:是否为空、默认值、标识符列、全局唯一标识符列等。

约束是SQL Server提供的自动保持数据库完整性的一种方法,定义了可输入表或表的单个列中的数据的限制条件。

在SQL Server中有5种约束:主关键字约束(Primary Key Constraint)、外关键字约束(Foreign Key Constraint)、惟一性约束(Unique Constraint)x 检查约束(Check Constraint)和默认约束(Default Constraint) 0...三、实验目的加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌握掌握单个元组及多个元组的插入、修改及删除操作的实现过程加深对更新操作时数据库中数据一致性问题的了解加深对约束条件在数据更新操作执行中的作用问题的了解。

实验报告要求1、写出与上述任务相对应的SQL更新语句(实验报告上写出3、5、10的SQL语句)2、并记录在实验过程中遇到的问题、解决办法及心得体会。

五、实验内容方法一:在SSMS中插入、删除及修改数据,方法二:在查询编辑器中写SQL插入、删除及修改数据设有一个SPJ数据库,包括S, P, J, SPJ四个关系模式:S (SNO, SNAME, STATUS, CITY)dlim-S dbo. F dbo. JP (PNO, PNAME, COLOR, WEIGHT)PNAM;vardnar(2D)08L8Cbi3l(4)0WEIGm-int H□J (JNO, JNAME, CITY)列名数据类型允许空供应商表S由供应商代码(SNO)、供应商姓名(SNAME)、供应商(STATUS)、供应商所在城市(CITY)组成;零件表P由零件代码(PNO)、零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成;工程项目表1由工程项目代码(JNO)、工程项目名(JNAME)、工程项目所在城市(CITY)组成;供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)组成,表示某供应商供应某种零件给某工程项目的数量为QTY。

基于SQL的关系数据库更新和视图

基于SQL的关系数据库更新和视图

2. UPDATE (修改数据 修改数据) 修改数据
格式: 格式
UPDATE <表名 表名> 表名 SET <列名 = <表达式 列名> 表达式>|<子查询 子查询> 列名 表达式 子查询 [, <列名 = <表达式 列名> 表达式>|<子查询 子查询>……..] 列名 表达式 子查询 [WHERE <条件表达式 条件表达式>]; 条件表达式 说明:修改时,对满足条件表达式的行, 说明:修改时,对满足条件表达式的行,将用表达式的 值或子查询的结果(唯一值)替换相应列的值. 值或子查询的结果(唯一值)替换相应列的值.
例:将学生05001的年龄改为22岁。 将学生05001的年龄改为22岁 05001的年龄改为22 UPDATE Student SET Sage=22 WHERE Sno=' 05001 ';
例:将信息系所有学生的年龄增加1岁。 将信息系所有学生的年龄增加1 UPDATE Student SET Sage= Sage+1 WHERE Sdept='IS';
• 对于有NOT NULL约束的属性列是否提供了非空值 对于有NOT NULL约束的属性列是否提供了非空值 • 对于有UNIQUE约束的属性列是否提供了非重复值 对于有UNIQUE约束的属性列是否提供了非重复值 UNIQUE • 对于有值域约束的属性列所提供的属性值是否在值 域范围内
SQL视图 视图
例:将学生张立转入学生李勇所在的系 UPDATE Student SET sdept=
(SELECT sdept FROM Student WHERE SNAME = '李勇 李勇') 李勇

SQL数据更新语句

SQL数据更新语句

SQL操作功能插入记录INSERT INTO dbf-name [frame1,frame2] V ALUE()INSERT INTO dbf-name 说明向指定表插入记录[frame1,frame2] 当插入不完整记录时,用frame1,frame2 指定记录V ALUE()给出具体值INSERT TABLE表名FROM ARRAY数组名SQL数据更新记录语句UPDA TE 表名SET <列名1> =表达式[,列名2=表达式2]WHERE条件表达式UPDA TA雇员SETEMAIL=ALLTRIM(部门号)+ALLTRIM(雇员号)+“@XXXX.@.com.cnUPDATEALL日期=DATA()一般用WHERE子句指定条件,以更新满足条件的一些记录的字段值,并且一次可以更新多个字段,若不使用WHERE子句,则更新全部记录俩表的连接条件在WHERE子句中指定,另外对记录进行记录的筛选的条件通过AND短语与表的连接条件一起凡在where子句之后SELECT 字段名from 表名WHERE 连接条件GROUPE BYCOUNTHAVINGORDERBYASCDESC排序字段有多个,每个字段之间用英语逗号分开,默认排序方式是升序TabIndex属性可以用来控制光标在控件之间移动次序,光标按照1、2、3的顺序依次移动DELET删除记录DELECT FROM 表名WHERE 条件若不使用WHERE则删除所有记录SetFocus可以让控件获得焦点,使其成为活动对象。

如果一个控件的Enabled属性值和Visible属性值.F.,将不能获得焦点,如果一个控件获得焦点,则Enabled 属性值和Visible属性值.T.ALRET TABLE 表名ALRETCREATEVIEW视图名asSQL语句表单类、方法、事件类只是实例对象的抽象,类并不进行任何行为操作。

类是对相似对象的性质描述,对象具有相同的性质:相同种类的属性和方法继承是基于现有的类创建新类,新类继承现有类的方法和属性,病创建新的属性和方法子类继承父类所有属性和方法事件是由系统预先定义而由用户或系统发出的动作,事件作用于对象,对象识别事件并作出相应的反应,事件集是固定的,用户不可以定义新事件表单的事件、属性、方法运行时事件load事件Init事件在对象建立时引发。

sql 语句实现数据库数据的更新查询

sql 语句实现数据库数据的更新查询

实验二:简单查询和连接查询一、实验目的:熟练掌握用SQL语句实现的简单查询和多个数据表连接查询。

二、实验内容:(一)完成下面的简单查询:①查询所有“天津”的供应商明细;②查询所有“红色”的14公斤以上的零件。

③查询工程名称中含有“厂”字的工程明细。

(二)完成下面的连接查询:①等值连接:求s表和j表的相同城市的等值连接。

②自然连接:查询所有的供应明细,要求显示供应商、零件和工程的名称,并按照供应、工程、零件排序。

③笛卡尔积:求s和p表的笛卡尔积④左连接:求j表和spj表的左连接。

⑤右连接:求spj表和j表的右连接。

三、完成情况:成功完成各项查询任务查询的sql语句如下:SELECT*FROM SWHERE CITY='天津';SELECT*FROM PWHERE COLOR='红'AND WEIGHT>=14;SELECT*FROM JWHERE JNAME like'%厂';SELECT*FROM S,JWHERE S.CITY=J.CITY;select SPJ.SNO,S.SNAME,SPJ.PNO,P.PNAME,SPJ.JNO,J.JNAME,SPJ.QTYfrom S,P,J,SPJwhere S.SNO=SPJ.SNO AND P.PNO=SPJ.PNO AND J.JNO=SPJ.JNOORDER BY QTY;select*from S,PSELECT J.JNO,J.JNAME,J.CITY,SPJ.SNO,SPJ.PNO,QTYFROM J LEFT JOIN SPJ on(J.JNO=SPJ.JNO);SELECT J.JNO,J.JNAME,J.CITY,SPJ.SNO,SPJ.PNO,QTYFROM J right JOIN SPJ on(J.JNO=SPJ.JNO);SELECT J.JNO,J.JNAME,J.CITY,SPJ.SNO,SPJ.PNO,QTYFROM SPJ right JOIN J on(J.JNO=SPJ.JNO);四、实验结果:①查询所有“天津”的供应商明细;SNO SNAME STATUS CITYS1 精益 20 天津S4 丰盛泰 20 天津②查询所有“红色”的14公斤以上的零件。

数据库实验数据更新和视图的建立与使用

数据库实验数据更新和视图的建立与使用

实验五实验名称:数据更新和视图的建立与使用一、实验目的1.熟练使用INSERT/DELETE/UPDATE语句进行表的更新操作。

2. 理解视图的定义、视图的优点与视图的工作原理。

掌握在企业管理器和查询分析器中创建、修改及删除视图。

能够熟练掌握利用视图向表中插入、删除和修改数据。

二、实验原理1.数据更新操作只能针对一个表进行,即每次只能在一个表中插入、删除和修改数据。

用INSERT语句可以通过使用V ALUES关键字一次只向一个表插入一条记录,也可以通过子查询向一个表中插入若干条记录;当使用DELETE和UPDATE语句实现表的删除和更改时,若题目中涉及多个表的信息,可以使用子查询来挑选出部分数据,以作为删除或更改的条件,也可以在语句中用FROM 子句给出题目中涉及的所有表,而在WHERE子句中给出多个表之间的连接条件。

2. 利用CREATE VIEW、ALTER VIEW 、DROP VIEW语句创建、修改及删除视图。

由于视图是虚表,通过视图向表中添加数据时必须满足一定的条件。

如果视图引用了多个数据表,那么在通过视图向数据表中添加数据时,这个语句只能指定同一个表中的字段。

如果通过一个引用了多个数据表的视图向这些数据表中添加数据时,必须书写多个INSERT语句。

通过使用多个表的视图对数据表进行更新也需要书写多个UPDATE语句,另外适用于INSERT操作的许多限制同UPDATE操作。

使用DELETE语句可以通过视图将数据表中的数据删除。

但如果视图应用了两个或两个以上的数据表,则不允许删除视图中的数据。

另外,通过视图删除的记录,不能违背视图定义的WHERE子句中的条件限制。

三、实验设备安装有SQL SERVER 2005的计算机。

四、实验内容凡是能用多种方法实现的,请用多种方法实现。

1、为各表添加若干条记录,必须符合实验二中设定的各种约束。

2、将每个员工的薪水上调10%。

3、删除sales表中作废的订单(其发票号码为‘I000000004’),其订货明细表中的数据也一并删除。

第九讲 SQL更新语句与视图

第九讲 SQL更新语句与视图

学完本讲后,你应该能够了解:
1.
2.属性G取空值INTO子句中没有指定列名。

3.
把结果存入数据库
1.多列多行WHERE子句列名
2.
3.
4.
1.删除整行不能用来从特定的列中删除数据
2.
3.
4.(SELECT SD
FROM S
WHERE S.S# = SC.S#);
1.[(〈列名〉[,〈列名〉] …)][WITH CHECK OPTION]
2.
2.
平均成绩Gavg AVG(G)
3.
并要求进行修改和插入操作时仍需保证该视图只有信息系的学生。

WITH CHECT OPTION
4.
¾¾
¾
例13 在信息系学生的视图中找出年龄小于20岁的学生。

有些情况下,这种转换不能直接进行:
WHERE AVG(G) >= 90
¾
行子集视图(Horizontal view)----若一个¾
¾
¾对视图操作的语法与对基本表的一样
¾
¾
不可更新的视图¾行列子集视图¾
不允许更新的视图
例15 将信息系学生视图IS_S中学有些更新不能有意义地转
换成对基本表S的更新:
学完本讲后,你应该能够了解:
2.。

SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告

SQL数据的查询和更新实验报告报告实验三、SQL的数据查询1、实验目的熟悉SQL语句的数据查询语言,能够SQL语句对数据库进行单表查询、连接查询、嵌套查询、集合查询和统计查询。

2、实验内容实验内容主要是对数据库进行查询操作,包括如下四类查询方式:单表查询查询的目标表达式为所有列、指定的列或指定的列的运算三种不同。

使用DISTINCT保留字消除重复行。

对查询结果排序和分组。

集合分组使用集函数进行各项统计。

连接查询笛卡儿连接和等值连接。

自连接。

外连接复合条件连接。

多表连接。

嵌套查询通过实验验证对子查询的两个限制条件。

体会相关子查询和不相关子查询的不同。

考察四类谓词的用法,包括:第一类,IN、NOT IN;第二类,带有比较运算符的子查询;第三类,SOME、ANY或ALL谓词的子查询,查询最大值和最小值;第四类,带有EXISTS谓词的子查询,实现“所有”等情况集合运算使用保留字UNION进行集合或运算。

采用逻辑运算符AND或OR来实现集合交和减运算。

3、实验步骤以University_Mis数据库为例,该数据库中有四张如实验一,其中Score是每门课的考试成绩,Scredit是学生所有考试合格课程所获得的积分总数,Ccredit每门课程的学分数。

在数据库中,存在这样的联系:学生可以选择课程,一个课程对应一个教师。

在表Reports中保存学生的选课记录和考试成绩。

1请先输入如下元组,再对数据库进行有关的查询操作:图、Students表图、Teachers表图、Courses表图、Reports表2查询性别为“男”的所有学生的名称并按学号升序排列。

查询学生的选课成绩合格的课程成绩,并把成绩换算为积分。

积分的计算公式为:[1+(考试成绩-60)*]*Ccredit。

考试成绩>=60。

查询学分是3或4的课程的名称。

查询所有课程名称中含有“算法”的课程编号。

查询所有选课记录的课程号。

统计所有老师的平均工资。

SQL实验四_SQL的数据更新

SQL实验四_SQL的数据更新

SQL实验四_SQL的数据更新第一篇:SQL实验四_SQL的数据更新实验四、数据更新1、实验目的熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、更新、删除操作。

2、实验内容λ在本实验中,主要内容是如何用SQL语句对数据进行更新。

λ使用INSERT INTO语句插入数据,包括插入一个元组或将子查询的结果插入到数据库中两种方式。

λ使用UPDATE语句可以修改指定表中满足WHERE子句条件的元组,有三种修改的方式:修改某一个元组的值;修改多个元组的值;带子查询地修改语句。

λ使用DELETE语句删除数据:删除某一个元组的值;删除多个元组的值;带子查询地删除语句。

3、实验步骤在数据库University_Mis上按下列要求进行数据更新。

(1)使用SQL语句向Students表中插入元组(Sno:S78;Sname:李迪;Semail:***********.cn;Scredit:0;Ssex:男)。

(2)对每个课程,求学生的选课人数和学生的平均成绩,并把结果存入。

(3)在Students表中使用SQL语句将姓名为李迪的学生的学号改为S70。

(4)在Teachers表中使用SQL语句将所有教师的工资加500元。

(5)将姓名为刘华的学生的课程“数据库原理及其应用”的成绩加上6分。

(6)在Students表中使用SQL语句删除姓名为李迪的学生信息。

(7)删除所有选修课程JAVA的选修课记录。

(8)对Courses表做删去学分<=4的元组操作,讨论该操作所受到的约束。

第二篇:实验四SQL语言实验四 SQL语言——数据更新操作2007-06-16 01:12:44|分类:课程作业 |标签:数据更新操作sql 语言|字号大中小订阅实验四 SQL语言——数据更新操作三、实验条件与环境1.通用PC机2.PC机必须安装Windows 2000系列、Windows XP系列或Windows NT操作系统平台 3.PC机还须安装Microsoft SQL Server 2000 任意一版本(个人版、标准版、企业版)4.最好有一台公用的SQL Server 2000 服务器四、实验目的1.通过上机实验进一步加深对SQL数据更新(插入、修改及删除)语句的基本语法格式的掌握2.通过上机实验掌握单个元组插入操作的实现过程3.通过上机实验掌握多个元组插入操作的实现过程4.通过上机实验掌握单个元组修改操作的实现过程5.通过上机实验掌握多个元组修改操作的实现过程6.通过上机实验掌握单个元组删除操作的实现过程7.通过上机实验掌握多个元组删除操作的实现过程8.通过上机实验加深对更新操作时数据库中数据一致性问题的了解9.通过上机实验加深对约束条件在数据更新操作执行中的作用问题的了解五、实验要求1.本实验所有实验内容要求在规定时间(2课时)内完成2.实验内容中涉及到的各更新操作均通过SQL语言来实现3.本实验中各操作内容的执行均会更新当前数据库,为便于下一实验内容的顺利执行,请在每成功完成一个实验内容后重新导入初始状态下的实验数据库4.实验完成后需要书写实验报告,本次实验报告需在下次实验课堂上上交六、实验内容:1.在S表中插入元组“s6,华誉,402.在J表中插入元组“j8,传感器厂”3.对每一个供应商,求他为各种工程供应零件的总数量,并将此结果存入数据库4.将P表中PNO值为p6的元组的color属性值改为绿,weight 属性值改为605.将SPJ表中前4个元组的qty属性值统一修改为3006.将S表中city属性名含有“京”或“津”的相应status属性值增加1007.将供应商s2为“一汽”工程项目所供应的零件数量修改为20008.将全部红色零件的颜色修改为浅红色9.由s5供给j4的零件p6改为由s3供应,请在数据库中作必要的数据修改10.在SPJ表中新增一列属性名为SDATE的属性列,对该表中的每一元组在SDATE属性列上填上实验当时的日期和时间11.删除所在城市为“广州”的供应商记录12.删除所有零件名称中第一个字为“螺”字的零件记录,并在供应情况表中删除相应的记录13.删除s3和s4两供应商为“三建”工程供应“螺母”或“螺丝刀”零件的相应供应情况数据信息七、实验总结:数据更新操作(插入操作[INSERT]、修改操作[UPDATE]、删除操作[DELETE])是关系数据库系统中一种极为重要、数据更新能力强、使用灵活的数据操纵方式,此数据操作的使用不是完全独立的,而是和数据定义操作、数据查询操作有着紧密联系的。

3.6SQL(四)数据更新和视图

3.6SQL(四)数据更新和视图

UPDATE SC
DBMS在执行时会检
SET Grade=0 WHERE Sno IN
( SELECT Sno
查修改操作是否破坏 表上已定义的完整性 规则
FROM Student
WHERE Sdept=’CS’);
16
数据库原理及应用-SQL DML
删除数据
/*带子查询的删除*/
[例3]删除计算机系所有学生的选课记录。
DELETE
FROM SC
WHERE Sno IN (SELECT Sno FROM Student WHERE Sdept=’CS’);
17
数据库原理及应用-SQL DML
删除数据
DBMS在执行删除语句时会检查所删元组 是否破坏表上已定义的完整性规则
参照完整性
不允许删除
级联删除
如:foreign key (userId) references UserInfo(UserId) on delete cascade
INTO Deptage(Sdept,Avgage)
SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;
SELECT子句目标列必须与INTO 子句匹配:值的个数;值的类型
14
数据库原理及应用-SQL DML
插入数据
DBMS在执行插入语句时会检查所插元组是 否破坏表上已定义的完整性规则
32
数据库原理及应用-SQL DML
定义视图
定义视图时列名的定义 直接使用select语句后的列名,如例3 如果想给查询结果列起别名,可以在 select后直接写别名 可以直接在视图名后定义视图列名
33
数据库原理及应用-SQL DML

SQL数据的更新(UPDATE语句的使用方法)

SQL数据的更新(UPDATE语句的使用方法)

SQL数据的更新(UPDATE语句的使⽤⽅法)⽬录学习重点使⽤UPDATE语句可以更改(更新)表中的数据。

更新部分数据⾏时可以使⽤WHERE来指定更新对象的条件。

通过WHERE⼦句指定更新对象的UPDATE语句称为搜索型UPDATE语句。

UPDATE语句可以将列的值更新为NULL。

同时更新多列时,可以在UPDATE语句的SET⼦句中,使⽤逗号分隔更新对象的多个列。

⼀、UPDATE语句的基本语法使⽤INSERT语句向表中插⼊数据之后,有时却想要再更改数据,例如“将商品销售单价登记错了”等的时候。

这时并不需要把数据删除之后再重新插⼊,使⽤UPDATE语句就可以改变表中的数据了。

KEYWORDUPDATE语句和INSERT语句、DELETE语句⼀样,UPDATE语句也属于 DML 语句。

通过执⾏该语句,可以改变表中的数据。

其基本语法如下所⽰。

语法 4 改变表中数据的UPDATE语句UPDATE <表名>SET <列名> = <表达式>;将更新对象的列和更新后的值都记述在SET⼦句中。

我们还是以Product(商品)表为例,由于之前我们删除了“销售单价⼤于等于 4000 ⽇元”的 2 ⾏数据,现在该表中只剩下了 6⾏数据了(表 2)。

KEYWORDSET ⼦句表 2 Product表product_id (商品编号)product_name(商品名称)product_type(商品种类)sale_price(销售单价)purchase_price(进货单价)regist_date(登记⽇期)0001T 恤衫⾐服10005002009-09-200002打孔器办公⽤品5003202009-09-110004菜⼑厨房⽤具300028002009-09-200006叉⼦厨房⽤具5002009-09-200007擦菜板厨房⽤具8807902008-04-280008圆珠笔办公⽤品1002009-11-11接下来,让我们尝试把regist_date列(登记⽇期)的所有数据统⼀更新为“2009-10-10”。

实验七 视图的创建和管理

实验七 视图的创建和管理

实验七视图的创建和管理一、实验目的与要求⏹熟练掌握使用企业管理器和SQL语句创建、查询、更新、修改和删除视图。

⏹进一步掌握视图与基本表的联系与区别。

二、实验内容和步骤1、创建视图(1)启动企业管理器,在产品销售数据库CPXS中创建价格小于2000的产品视图VIEW_CP_PRICE2000,要求对该视图的更新都要符合价格小于2000这个条件,写出创建过程和对应的SQL语句:CREATE VIEW VIEW_CP_PRICE2000ASSELECT *FROM CPWHERE 价格< 2000(2)打开查询分析器,用SQL语句创建各客户购买产品的情况VIEW_GMQK视图,包括客户编号、客户名称、产品编号、产品名称、价格,购买日期、购买数量。

CREATE VIEW VIEW_GMQKAS SELECT distinct cpxsb.客户编号, 客户名称,cpxsb.产品编号,产品名称,价格,销售日期,数量FROM CPXSB, cp, xssWHERE cp.产品编号= cpxsb.产品编号AND cpxsb.客户编号= xss.客户编号(3)创建分区视图:在CPXS数据库中创建CP1和CP2两个表,CP1表中为编号小于等于’100010’产品数据,CP2表中为编号大于‘100010’产品数据,以分区列为产品编号,创建可更新的分区视图VIEW_CP1和VIEW_CP2。

CREATE VIEW VIEW_CP1 AS SELECT *FROM CPWHERE 产品编号< '100010'CREATE VIEW VIEW_CP2AS SELECT*FROM CPWHERE产品编号>='100010'WITH CHECK OPTION(这样创建的视图才可进行数据的更新!!要加最后一条子句,否则不可更新)2、查询视图(1)基于VIEW_CP_PRICE2000视图,查询价格在2000以下产品的产品编号、名称和价格。

SqL语句更新,SQL语句视图与索引

SqL语句更新,SQL语句视图与索引

DELETE
FROM Reports
WHERE Sno=’S04’ AND Cno=’C02’;
例 删除所有学生的选课记录。
DELETE
FROM Reports;
这条DELETE语句将删除Reports的所有元组,使Reports成为空表。
例 删除数学系所有学生的选课记录。
例 删除数学系学生视图C_Student中学号为“S09”的记录。
DELETE
FROM C_Student
WHERE Sno=’S09
二 查询视图
例 在数学系的学生视图C_Student中找出年龄(Sage)小于20岁的学生姓名(Sname)和年龄(Sage)。
SELECT Sname, Sage
FROM C_Student
WHERE Sage<20;
说明:本例转换后的查询语句为:
SELECT Sname, Sage
UPDATE Reports
SET Grade=0
WHERE ‘数学’=
(SELECT Sdept
FROM Students
WHERE Students.Sno=Reports.Sno);
3 删除数据
例 删除学号为“S04”的学生选修的课号为“C02”的记录。
CREATE VIEW C_Student
AS
SELECT Sno, Sname, Sage, Sdept
FROM Students
WHERE Sdept=’数学’
WITH CHECK OPTION
例 建立学生的学号(Sno)、姓名(Sname)、选修课程名(Cname)及成绩(Grade)的视图。

数据库原理实验报告S7-数据更新及创建视图

数据库原理实验报告S7-数据更新及创建视图

实验7 数据更新及创建视图实验日期和时间:2014.10.31 实验室:软件实验室班级:12计科3 学号:20124122 姓名:张翔实验环境:1.硬件:内存4.00GB 处理器2.50Hz2.软件:Windows 7旗舰版Microsoft SQL Server 2005实验原理:实验主要任务:在学生选课数据库中,对数据库中的各个表实施如下更新操作:1.按下表的定义创建“俱乐部”表:“俱乐部”表字段定义字段名称数据类型字段大小主键俱乐部编号文本 4 是俱乐部名称文本20成立日期日期/时间俱乐部主席文本 6俱乐部地址文本20状态文本 4人数Integercreate table俱乐部(俱乐部编号char(4)primary key,俱乐部名称char(20),成立日期datetime,俱乐部主席char(6),俱乐部地址char(20),状态char(4),人数integer)2.按下表的定义创建“俱乐部成员”表:“俱乐部成员”表字段定义字段名称数据类型字段大小主键俱乐部编号文本 4 是学号文本10 是加入日期日期/时间create table俱乐部成员(俱乐部编号char(4),学号char(10),加入日期datetime,primary key(俱乐部编号,学号),foreign key(俱乐部编号)references俱乐部(俱乐部编号))3.修改表结构1)在俱乐部成员表中增加大小为6个字符的姓名字段:alter table俱乐部成员add姓名char(6)2)从俱乐部表中删除俱乐部地址字段:4.插入记录1)插入单条记录。

2)插入多条记录。

1)增加一条编号为“0811”、名称为“足球终结者”的俱乐部记录:insertinto俱乐部(俱乐部编号,俱乐部名称)values('0811','足球终结者')2)增加一条编号为“0906”、名称为“海龙八极拳会”、俱乐部主席为“蔡小刀”的俱乐部记录:insertinto俱乐部(俱乐部编号,俱乐部名称,俱乐部主席)values('0906','海龙八极拳会','蔡小刀')3)增加一条今天参加了编号为“0906”的俱乐部、学号为“2005218141”、姓名为“东方鸿”的俱乐部成员记录:insertinto俱乐部成员(俱乐部编号,学号,加入日期,姓名)values('0906','2005218141',get date(),'东方鸿')4)学生名单中“031国贸3”班全部男生今天都加入了足球终结者俱乐部,请向俱乐部成员表中插入这些记录:insertinto俱乐部成员(俱乐部编号,学号,加入日期,姓名)select俱乐部编号,sno,get date(),snamefrom俱乐部,studentwhere俱乐部名称='足球终结者'and ssex='男'and sclass='031国贸3班'5.修改记录1)单条记录的单项数据更新。

SQL语言——更新操作命令

SQL语言——更新操作命令
TRUNCATE table name
从表TSC恢复数据到表SC,命令为: INSERT INTO SC SELECT * FROM TSC --这是一种方 便、简易地恢复数据的方法。
q江xz南vb大@1学63.2c0o1m2
3、DELETE命令
实验示例
[注意]:在T-SQL中,关键字FROM是可选的, 这里是为了区别别的版本的SQL兼容而加上的。 在操作数据库时,使用DELETE语句要小心,因 为数据是从数据库中永远地被删除。
q江xz南vb大@1学63.2c0o1m2
实验内容与要求
实验示例
q江xz南vb大@1学63.2c0o1m2
实验内容与要求
实验示例
13、在基本表SC中删除尚无成绩的选课元组。 14、把“钱横”同学的选课情况全部删去。 15、能删除学号为“98005”的学生记录吗?一 定要删除该记录的话,该如何操作?给出操作命 令。
q江xz南vb大@1学63.2c0o1m2
2、UPDATE命令
实验示例
q江xz南vb大@1学63.2c0o1m2
2、UPDATE命令
实验示例
[例5.5] 将学生98003的年龄改为23岁。 UPDATE Student SET Sage=23 WHERE Sno='98003'; [例5.6] 将Student表的前3位学生的年龄均增加1岁。 USE JXGL GO UPDATE Student SET Student.Sage= Student.Sage+1 FROM (SELECT TOP 3 * FROM Student ORDER BY SNO) AS STU3 WHERE STU3.SNO=Student.SNO
q江xz南vb大@1学63.2c0o1m2

SQL语言——更新操作、视图、索引等操作

SQL语言——更新操作、视图、索引等操作

实验报告【实验名称】SQL语言——更新操作、视图、索引等操作姓名:学号:班级:日期:11月9日【实验目的】1.熟悉数据库的数据更新操作,能够使用SQL语句对数据库进行数据的插入、修改、删除操作。

2.熟悉SQL语言有关视图的操作,能够熟练使用SQL语句来创建需要的视图,定义数据库外模式,并能使用所创建的视图实现数据管理。

3.掌握索引设计原则和技巧,能够创建合适的索引以提高数据库查询。

【实验环境】SQL SERVER 2008【实验内容】1.针对SQL Server数据库设计单元组插入、批量数据插入、修改数据和删除数据等SQL 语句。

理解和掌握INSERT、UPDATE和DELETE语法结构的各个组成成分,结合嵌套SQL子查询,分别设计几种不同形式的插入、修改和删除数据的语句,并调试成功。

2.针对给定的数据库模式,以及相应的应用需求,创建视图、创建带WITH CHECK OPTION 的视图,并验证视图WITH CHECK OPTION选项的有效性。

理解和掌握视图消解执行原理,掌握可更新视图和不可更新视图的区别3.针对给定的数据库模式和具体应用需求,创建唯一索引、函数索引、复合索引等;修改索引;删除索引。

设计相应的SQL查询验证索引有效性。

【实验代码】--建立信息系学生的视图,要求进行修改和插入操作时仍需保证该视图只有信息系的学生CREATE VIEW IS_StudentASSELECT Sno,Sname,SageFROM StudentWHERE Sdept='IS'WITH CHECK OPTION;--建立信息系选修了1号课程的学生的视图(包括学号、姓名、成绩)CREATE VIEW IS_S1(Sno,Sname,Grade)ASSELECT Student.Sno,Sname,GradeFROM Student,SCWHERE Sdept='IS'ANDStudent.Sno=SC.Sno ANDo='1';--定义一个反映一个学生出生年份的视图CREATE VIEW BT_S(Sno,Sname,Sbirth)ASSELECT Sno,Sname,2014-SageFROM Student--将学生的学号及平均成绩定义为一个视图CREATE VIEW S_G(Sno,Gavg)ASSELECT Sno,AVG(Grade)FROM SCGROUP BY Sno;--在信息系学生的视图中摘除年龄小于20岁的学生SELECT Sno,SageFROM IS_StudentWHERE Sage<20;--在S_G视图中查询平均成绩在90分以上的学生学号和平均成绩SELECT *FROM S_GWHERE Gavg>90;--将信息系学生视图IS_Student中学号为“201215122”的学生姓名改为“”“刘辰”UPDATE IS_StudentSET Sname='刘辰'WHERE Sno='201215122';--删除信息系学生视图IS_Student中学号为“201215129”的记录DELETEFROM IS_StudentWHERE Sno='201215129'【实验结果】BT_S视图IS_Student视图S_G视图结果【实验心得】通过此次实验,理解和掌握了视图消解执行原理,掌握可更新视图和不可更新视图的区别,也熟悉了如何利用SQL语句新建、查询、更新视图等相关的操作,因而也更为清晰的了解了视图的几大优点:(1)视图能够简化用户操作(2)视图使用户能以多种角度看待同一数据(3)视图对重构数据库提供了一定程度的逻辑独立性(4)视图能够对机密数据提供安全保护(5)适当利用视图可以更清晰地表达查询。

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

实验七视图及SQL数据更新语句一、实验目的1.掌握视图的概念;2.熟练掌握视图的生成及操作语句;3.熟练掌握SQL数据更新语句;二、实验内容给定一个练习数据库和相应的练习题,要求上机完成,并验证结果实验基础知识提要视图是一个虚拟表,其内容由查询定义。

同真实的表一样,视图包含一系列带有名称的列和行数据。

但是,视图并不在数据库中以存储的数据值集形式存在。

行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

对其中所引用的基础表来说,视图的作用类似于筛选。

定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。

创建视图的基本语句为:CREATE VIEW view_name [ ( column [ ,...n ] ) ]ASselect_statement[ WITH CHECK OPTION ]view_name是视图的名称。

视图名称必须符合标识符规则。

可以选择是否指定视图所有者名称。

column是视图中的列名。

只有在下列情况下,才必须命名CREATE VIEW 中的列:当列是从算术表达式、函数或常量派生的,两个或更多的列可能会具有相同的名称(通常是因为联接),视图中的某列被赋予了不同于派生来源列的名称。

还可以在SELECT 语句中指派列名。

如果未指定column,则视图列将获得与SELECT 语句中的列相同的名称。

select_statement是定义视图的SELECT 语句。

该语句可以使用多个表或其它视图。

若要从创建视图的SELECT 子句所引用的对象中选择,必须具有适当的权限。

WITH CHECK OPTION强制视图上执行的所有数据修改语句都必须符合由select_statement 设置的准则。

通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据。

三、实验步骤构建数据表作为实验数据内容(数据表同实验六,参考实验六实验步骤)运行SQL SERVER服务管理器,确认数据库服务器开始运行。

打开查询分析器,选择刚才恢复的数据库exampleDB,输入SQL指令,获得运行结果。

任务:完成以下SQL数据更新语句(1)创建视图V_SupplyCount,显示供应商编号,以及该供应商供应的产品的品种数(非CategoryID),该视图包含两个字段:SupplierID、ProductCount。

create view V_SupplyCount(SupplierID,ProductCount)asselect SupplierID,count(ProductID)from productsgroup by SupplierID(2)创建视图V_OrderCount,显示顾客编号,顾客所下订单的产品总金额(金额=单价×数量×折扣),该视图包含两个字段:CustomerID,TotalFee。

create view V_OrderCount(CustomerID,TotalFee)asselect CustomerID,sum(UnitPrice*Quantity*Discount)from orders,orderdetailswhere orders.OrderID=orderdetails.OrderIDgroup by CustomerID(3)通过视图V_SupplyCount,查出供应产品的品种数最少的供应商编号和供应商名称。

select SupplierID,CompanyNamefrom Supplierswhere SupplierID in(select SupplierIDfrom V_SupplyCountwhere ProductCount=(select min(ProductCount)from V_SupplyCount))(4)通过视图V_OrderCount,查出所下订单的产品总金额最多的顾客编号和地址。

select CustomerID,Addressfrom Customerswhere CustomerID in(select CustomerIDfrom V_OrderCountwhere TotalFee=(select max(TotalFee)from V_OrderCount))(5)再Region表中,添加一个新的地区:地区编号为5,地区描述为Central insert into Region values(5,'Central')(6)将Suppliers表中的所有国家为法国的供应商信息内容添加到OldSuppliers中create table OldSuppliers(SupplierID int NOT NULL primary key,CompanyName varchar(50) ,ContactName varchar(50) ,ContactTitle varchar(50) ,Address varchar(60) ,City varchar(50) ,Region varchar(50) ,PostalCode varchar(50) ,Country varchar(50) ,Phone varchar(50) ,Fax varchar(50) ,HomePage varchar(50))insert into OldSuppliersselect * from Suppliers where Country='France'(7)将所有由职员Fuller(LastName)签订的订单运费降低10%update Ordersset Freight=Freight*0.9where EmployeeID=(select EmployeeIDfrom Employeeswhere LastName='Fuller')(8)将所有美国顾客购买的订单单价调高20%update Orderdetailsset UnitPrice=UnitPrice*1.2where OrderID in(select distinct Orderdetails.OrderIDfrom Orderdetails,Orders,Customerswhere Orderdetails.OrderID=Orders.OrderID andOrders.CustomerID=Customers.CustomerID andCustomers.Country='USA')(9)将订货数量最多的产品的单价上调5元update Productsset UnitPrice=UnitPrice+5where ProductID in(select ProductIDfrom Orderdetailsgroup by ProductIDhaving sum(Quantity)>=ALL(select sum(Quantity)from Orderdetailsgroup by ProductID))(10)删除订单个数最少的职员的信息delete from Employeeswhere EmployeeID in(select EmployeeIDfrom Ordersgroup by EmployeeIDhaving count(OrderID)<=ALL(select count(OrderID)from Ordersgroup by EmployeeID))(11)删除所有没有下订单的顾客信息delete from Customerswhere not exists(select *from Orderswhere Customers.CustomerID=Orders.CustomerID)四. 实验结果与分析(上交实验报告)分析思考问题:1. 分析在什么情况下需要使用视图,并简述其目的;筛选用户表中需要的数据,但不对原用户表进行插入,更新,删除等修改操作时,建立视图可以使查找工作更方便,更有针对性,也不易受无关数据项干扰,用户表数据量越大以及需要查找数据量较大的情况下,使用视图就更方便,且是查找结果输出表格化,便于观察。

2. 分析是否可以使用视图进行数据更新删除,和对基础表进行更新删除有哪些异同点;您可以通过视图修改基础基表的数据,修改方式与通过 UPDATE、INSERT 和 DELETE 语句修改表中数据的方式一样。

但是,以下限制应用于更新视图,但不应用于表:任何修改(包括 UPDA TE、INSERT 和 DELETE 语句)都只能引用一个基表的列。

视图中被修改的列必须直接引用表列中的基础数据。

它们不能通过其他方式派生,例如通过:聚合函数(A VG、COUNT、SUM、MIN、MAX、GROUPING、STDEV、STDEVP、V AR 和 V ARP)。

计算,不能通过表达式并使用列计算出其他列。

使用集合运算符(UNION、UNION ALL、CROSSJOIN、EXCEPT 和 INTERSECT)形成的列得出的计算结果不可更新。

正在修改的列不受 GROUP BY、HA VING 或 DISTINCT 子句的影响。

五.讨论、心得。

相关文档
最新文档