SQL语言 --- 数据更新

一.插入数据

1.插入元组

INSERT INTO <表名> [(<属性列1> [,<属性列2>…])] VALUES (<常量1> [,<常量2>]…);

(1)功能:将新元组插入指定表中。

(2)INTO子句

①指定要插入数据的表名及属性列;
②属性列的顺序可与表定义中的顺序不一致;
③没有指定属性列:表示要插入的是一条完整的元组,且属性列属性与表定义中的顺序一致;
④指定部分属性列:插入的元组在其余属性列上取空值。

(3)VALUES子句

①提供的值必须与INTO子句匹配
a.值的个数;
b.值的类型。

(4)例子:将学生张晨民的信息插入到Student表中。

INSERT INTO Student
VALUES('201215126','张晨民','男',18,'CS');

2.插入子查询结果(可以一次插入多个元组)

INSERT INTO <表名> [(<属性列1> [,<属性列2>…])] 子查询;

(1)INTO子句
(2)子查询

SELECT子句目标列必须与INTO子句匹配
a.值的个数;
b.值的类型。

(3)例子:

INSERT INTO Dept_age(Sdept,Avg_age)
SELECT Sdept,AVG(Sage)
FROM Student
GROUP BY Sdept;

(4)关系数据库管理系统在执行插入语句时会检查所插元组是否破坏表上已定义的完整性规则。
①实体完整性;
②参照完整性;
③用户定义的完整性。

NOT NULL约束;
UNIQUE约束;
值域约束。

二.修改数据

UPDATE <表名> SET <列名>=<表达式>,[,<列名>=<表达式>]… [WHERE <条件>];

功能:
①修改指定表中满足WHERE子句条件的元组;
②SET子句给出<表达式>的值用于取代相应的属性列;
③如果省略WHERE子句,表示要修改表中的所有元组。

1.修改某一个元组的值

例子:将学生201215121的年龄改为22岁。

UPDATE Student
SET Sage=22
WHERE Sno='201215121';

2.修改多个元组的值

例子:将所有学生的年龄增加1岁。

UPDATE Student
SET Sage=Sage+1;

3.带子查询的修改语句

例子:将计算机科学系全体学生的成绩置零。

UPDATE SC
SET Grade=0
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='CS');

关系数据库管理系统在执行修改语句时会检查修改操作是否破坏表上已定义的完整性规则:
a.实体完整性;
b.主码不允许修改;
c.用户定义的完整性:
NOT NULL约束;
UNIQUE约束;
值域约束。

三.删除数据

DELETE FROM <表名> [WHERE <条件>];

(1)功能:删除指定表中满足WHERE子句条件的元组。

(2)WHERE子句

a.指定要删除的元组;
b.缺省表示要删除表中的全部元组,表的定义仍在字典中。

1.删除某一个元组的值

例子:删除学号为201215128的学生记录。

DELETE FROM Student
WHERE Sno='201215128';

2.删除多个元组的值

例子:删除所有学生选课记录。

DELETE FROM SC;

3.带子查询的删除语句

例子:删除计算机科学系所有学生的选课记录。

DELETE FROM SC
WHERE Sno IN
(SELECT Sno
FROM Student
WHERE Sdept='CS');
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

llurran

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值