- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验5SQL语言更新操作命令
实验5 SQL语言——更新操作命令
实验示例
1、INSERT命令
1.插入单个元组的INSERT语句的格式为:
INSERT INTO] 表名 [(属性列1[,属性列2...]) VALUES (常量1 [,常量2]...)
98011、张静、27、女、CS的新学生。
USE JXGL
GO
Insert Into Student Values(98011,张静,27,女,CS);
GO
执行结果如图5-1所示。
图5-1 在查询分析器中通过INSERT命令插入一记录
(2)按指定的属性顺序,也可以只添加部分属性(非Null属性为必须明确指定值)。
[例2] 插入学号为98012、姓名为李四、年龄为16的学生信息。
Insert Into Student(Sno,Sname, Sage) Values(98012, 李四,16); --新插入的记录在Ssex,Sdept列上取空值。执行结果如图5-2所示。
图5-2 在企业管理器中通过INSERT命令插入一记录
[注意]
(1)从篇幅考虑,其余更新命令的执行窗口与运行状况类似于上两图,将不再列出。
(2)在INSERT语句中,VALUES列表中的表达式的数量,必须与表中的列数匹配,表达式的数据类型必须可以和表格中的对应各列的数据类型兼容。如果表格中存在定义为NOT NULL的数据列,那么该列的值必须出现在VALUES的列表中。否则,服务器会给出错误提示,操作失败。在INSERT语句中,INTO是一个可选关键字,使用这个关键字可以使语句的定义更加清楚。使用该方法一次只能插入一行数据,而且,每次插入数据时都必须输入表格名字以及要插入的数据列的数值。
(3)如果没有按正确顺序提供插入的数据,那么服务器有可能给出一个语法错误,插入操作失败:也有可能服务器没有任何反应,数据插入成功,但数据是有错的。
2、插入子查询结果的INSERT语句的格式为:INSERT [INTO] 表名 [(属性列1 [,属性列2...]) 子查询;其功能一次将子查询子查询的结果全部插入指定表中。
CS系的学生开设5号课程,建立选课信息(成绩暂空)。
Insert Into SC
Select sno,cno,null
From Student,Course
Where Sdept=CS and cno=5;
[例4] 设班里来了位与“赵三”同名同姓同性别同年龄的学生,希望通过使用带子查询块的INSERT命令来添加该新生记录,学号设定成“赵三”的学号加1,姓名为“赵三2”,其它相同。
图5-3 带子查询的INSERT命令添加新记录
Insert Into Student
Select cast(cast(sno as integer)+1 as char(5)),sname+2,sage,ssex,sdept
From Student Where Sname=赵三;
GO
SELECT * FROM Student;
GO
执行结果如图5-3所示。
[注意]
INSERT表和SELECT表结果集的列数、列序和数据类型必须一致。数据类型一致是指两个表对应的列的数据类型要么相同,要么可以由SQL Server 2000服务器自动转换。
2、UPDATE命令
当需要修改表中的一列或多列的值时,可以使用UPDATE语句。使用UPDATE语句可以指定要修改的列和想赋予的新值,通过给出检索匹配数据行的WHERE子句,还可以指定要更新的列所必须符合的条件。UPDATE语句语法如下:
UPDATE 表名 SET 列名=表达式[,列名=表达式]...[FROM { table_source } [ ,...n ] ]
[WHERE 条件];
UPDATE Student SET Sage=23 WHERE Sno=98003;
[例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
[例7] 将98001学生选修3号课程的成绩改为该课的平均成绩。
Update SC
Set Grade=(Select AVG(Grade) From SC Where Cno=3)
Where Sno =98001 AND Cno=3;
[例8] 学生王林在2号课程考试中作弊,该课成绩应作零分计。
UPDATE SC SET GRADE=0
WHERE CNO=2 AND
王林=(SELECT SNAME FROM STUDENT
WHERE STUD
文档评论(0)