数据库数据更新(insert、update、delete)

数据更新

插入数据(insert)

一种是插入一个元组、另一种是插入子查询结果。

插入元组

例 3.69 将一个新学生元组(学号:201215128,姓名:陈冬,性别:男,所在系:IS,年龄:18岁插入到Student表中。

insert into Student(Sno,Sname,Ssex,Sdept,Sage)
values('201215128','陈冬','男','IS',18);

在into子句中指出了表名Student,并指出了新增加的元组在哪些属性上要赋值,属性的顺序可以与create table 中的顺序不一样

例 3.70 将学生张成民的信息插入到Student表中。

insert into Student
values('201215126','张成民','男',18,'CS');

into子句中只指出了表名,没有指出属性名。属性列的次序与create table中的次序相同。

例 3.71 插入一条选课记录(‘201215128’,‘1’)

insert into SC(Sno,Cno)
values('201215128','1');
或
insert into SC
values('201215128','1',null);

第一种会在新插入的记录的Grade列上自动地赋空值。

第二种没有指出SC的属性名,在Grade列上要明确给出空值。

插入子查询结果

子查询不仅可以嵌套在SELECT语句中用以构造父查询的条件,也可以嵌套在INSERT语句中用以生成要插入的批量数据。

例 3.72 对每个系,求学生的平均年龄,并把结果存入数据库。

首先在数据库中建立一个新表,其中一列存放系名,另一列存放相应的学生评论年龄。

create table Dept_age
  (Sdept char(15)
   Avg_age smallint);

然后对Student表按系分组求平均年龄,再把系名和平均年龄存入新表中。

insert 
into Dept_age(Sdept,AVg-age)
select Sdept,avg(Sage)
from Student
group by Sdept;

修改数据(update)

修改指定表中满足WHERE子句条件的元组,其中SET子句给出<表达式>的值用于取代相应的属性列值如果省略了WHERE子句,则子句要修改表中的所有元组

修改某一个元组的值

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

update Student
set Sage=22
where Sno='201215121';
修改多个元组的值

例 3.74 将所有学生的年龄增加一岁。

update Student
set Sage=Sage+1;
带子查询的修改语句

子查询也可以嵌套在UPDATE语句中,用以构造修改的条件。

例 3. 75 将计算机科学系的全体学生的成绩置零。

update SC
set Grade=0
where Sno in(
 select Sno from Student
 where Sdept='CS');

删除数据(delete)

delete语句删除的是表中的数据,而不是关于表的定义。

删除某一个元组的值

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

delete from Student 
where Sno='201215128';
删除多个元组的值

例 3.77 删除所有学生选课记录

delete 
from SC;//SC会成为空表
带子查询的删除语句

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

delete from Sc 
where Sno in(
select Sno from Student
where Sdept='CS');
  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值