数据更新

插入数据


插入元组

插入元组是指将新的元组插入指定表中。
语句格式为:
insert into <表名>[<属性列1>,<属性列2>…]
values([<常量1>,<常量2>…])
例:将一个新学生元组(学号:2014213000,;姓名:Larry;性别:男;所在系:CS)插入到Student表中

**insert into** Student(Sno,Sname,Ssex,Sdept) **values**('2014213000','Larry','男','CS');

如果元组的每一个属性都要插入新值,那么可以省略表名后面的属性列表
例:将一个新学生元组(学号:2014213000,;姓名:Larry;性别:男;所在系:CS,年龄:21)插入到Student表中

insert into Student values('2014213000','Larry','男','CS',21);

插入子查询结果

例:对每一个系,求学生的平均年龄,并把结果存入数据库
首先在数据库中建立一个新表,其中一列存放系名,另一列存放相应的学生平均年龄

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;

修改数据


其功能是修改指定表中满足where子句条件的元组。
其语句格式为:
update <表名> set <列名>=<表达式>[,<列名>=<表达式>]
[where<条件>];

修改某一个元组的值

例:将学生2014213000的年龄改为22岁

update Student set Sage = 22
where Sno = '2014213000';

修改多个元组的值

例:将所有的学生的年龄都加一岁

uodate Student set Sage = Sage + 1;

带子查询的修改语句

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

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

或者为:

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

删除数据


删除语句的格式为:
delete from <表名>
[where<条件>];

删除某一个元组的值

例:删除学号为2014213000的学生记录

delete from Student where Sno = '2014213000';

删除多个元组的值

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

delete from SC; 

带子查询的删除语句

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

delete from SC
where Sno in(
    select Sno
    from Student 
    where Sno = SC.Sno and Sdept = 'CS'
);
posted @ 2016-06-05 14:59  larryking  阅读(367)  评论(0编辑  收藏  举报