- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL的数据更新功能
SQL的数据更新功能
SQL语言的数据操纵也称为数据更新,主要包括插入数据、修改数据和删除数据三种语句。
?
7.3.1? 插入数据记录
插入数据是把新的记录插入到一个存在的表中。插入数据使用语句INSERT INTO,可插入一条记录,也可插入多条记录。
1. 插入一行新记录
【命令】 INSERT INTO 表名[(字段名1[,字段名2…])]
VALUES(表达式1[,表达式2…])
【功能】 将新记录插入到指定的表中,分别用表达式1、表达式2等为字段名1、字段名2等赋值。
【说明】 表名是指要插入新记录的表;字段名是可选项,指定待添加数据的列;VALUES子句指定待添加数据的具体值。
列名的排列顺序不一定要和表定义时的顺序一致。但当指定字段名时,VALUES子句表达式的排列顺序必须和字段名的排列顺序一致,个数相等,数据类型一一对应。INTO语句中没有出现的列名,新记录在这些列上将取空值(如果在表定义时说明了NOT NULL的属性列不能取空值)。如果INTO子句没有带任何列名,则插入的新记录必须在每个属性列上均有值。
【例7-44】 在学生表中插入一条学生记录。
INSERT INTO 学生 (学号,姓名,性别,出生年月,入校总分,三好生) ;
VALUES (s0201111,徐? 畅,女,{^1984-06-25},588,.T.)
注意:各列名和数据必须用逗号分开,表达式的值必须是常量。
2. 插入多行记录
插入多行记录用于表间的拷贝,将一个表中的数据抽取数行插入另一表中,可以通过子查询来实现。
【命令】 INSERT INTO 表名 [(字段名1[,字段名2…])]
【功能】 插入数据。
【例7-45】 求出各学生选修课的平均成绩,把结果存放在新表学生平均成绩中。
(1)首先建立新表学生平均成绩,用来存放学生姓名和学生选修课的平均成绩。
CREATE TABLE 学生平均成绩 (姓名 CHAR(8),平均成绩 INT(3))
(2)然后利用子查询求出各学生的平均成绩,把结果存放在新表学生平均成绩中。
INSERT INTO学生平均成绩;
SELECT 姓名,AVG(成绩);
FROM 学生,选课;
WHERE 学生.学号=选课.学号;
GROUP BY 学号
?
7.3.2? 修改数据记录
SQL语言可以使用UPDATE语句对表中的一行或多行记录的某些列值进行修改。
【命令】 UPDATE 表名
SET 字段名=表达式 [,字段名=表达式]… [WHERE 条件]
【功能】 对表中的一行或多行记录的某些列值进行修改。
【说明】 表名是指要修改的表;SET子句给出要修改的列及其修改后的值;WHERE子句指定待修改的记录应当满足的条件,WHERE子句省略时,则修改表中的所有记录。
1. 修改一行记录
【例7-46】 把“陈静”教师的职称改成副教授。
UPDATE 教师;
SET 职称=‘副教授’;
WHERE 姓名=‘陈? 静’
2. 修改多行记录
【例7-47】 把教师表中工资小于或等于2000元的教师的工资提高20%。
UPDATE 教师;
SET 工资=1.2*工资;
WHERE 工资=2000
?
3. 用子查询修改记录
【例7-48】 把王小平同学的所有成绩置零。
UPDATE 选课;
SET 成绩=0;
WHERE 学号 IN;
(SELECT 学生.学号;
FROM 学生,选课;
WHERE 学生.学号=选课.学号;
AND 姓名=‘王小平’)
?
7.3.3? 删除数据记录
使用DELETE语句可以删除表中的一行或多行记录。
【命令】 DELETE FROM表名 [WHERE 条件]
【功能】 删除表中的一行或多行记录。
【说明】 表名是指要删除数据的表。WHERE子句指定待删除的记录应当满足的条件,WHERE子句省略时,则删除表中的所有记录。
1. 删除一行记录
【例7-49】 删除刘伟教师的记录。
DELETE FROM 学生 WHERE 姓名=‘徐? 畅’
2. 删除多行记录
【例7-50】 删除所有学生的成绩。
DELETE FROM 选课
执行此语句后,选课表即为一个空表,但其定义仍存在数据字典中。
3. 利用子查询选择要删除的行
【例7-51】 删除陈静教师授课的记录。
DELETE FROM 授课;
WHERE 教师号=;
(SELECT 教师号;
??? FROM 教师;
??? WHERE 姓名=‘陈 ?静’)
文档评论(0)