数据更新

来源:互联网 发布:开户数据 编辑:程序博客网 时间:2024/05/17 01:18

插入数据


插入元组

插入元组是指将新的元组插入指定表中。
语句格式为:
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 StudentGroup by Sdept;

修改数据


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

修改某一个元组的值

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

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

修改多个元组的值

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

uodate Student set Sage = Sage + 1;

带子查询的修改语句

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

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

或者为:

update SC set Grade = 0where '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 SCwhere Sno in(    select Sno    from Student     where Sno = SC.Sno and Sdept = 'CS');
0 0
原创粉丝点击