数据更新
首先要了解数据更新操作有三种:向表中添加若干行数据、修改表中的数据和删除表中的若干行数据。
插入数据
1、插入元组
关键词 INSERT
INSERT
INTO<表名>[(<属性列1>[,<属性列2>]....)]
VALUES(<常量1>[,<常量2>]...);
注意:
1、在定义该属性的时候若说明NOT NULL时,不能取空值,否则会报错。
2、INTO语句中没有说明那些属性列,那在VALUES中要都提及,并且要按照定义的属性次序相同。若没有属性所对应的值,则用NULL。
3、字符串中的内容要用单引号引出
4、不要插入主码相同的数据,否则会报错
例3.69
将一个新学生元组(学号:201215128,姓名:陈冬,性别:男,所在系:IS,年龄:18岁)插入到Student表中。
INSERT
INTO Student(Sno,Sname,Ssex,Sdept,Sage)
VALUES('201215128','陈冬','男','IS',18);
例3.70
将学生张成民的信息插入到Student表中。
INSERT
INTO Student
VALUES('201215126','张成民','男',18,'CS');
两例如果如下图:
例3.71
插入一条选课记录(‘201215128’,‘1’)。
INSERT
INTO SC(Sno,Cno)
VALUES('201215128','1');
或者
INSERT
INTO SC
VALUES('201215128','1','NULL');
2、插入子查询的结果
子查询简单来说就是嵌套在SELECT语句中当作条件来使用。
INSERT
INTO<表名>[(<属性列1>[,<属性列2>....])]
子查询;
例3.72
对每一个系,求学生的平均年龄,并把结果存入数据库。
--1、建新表,存放系名和平均值。
CREATE TABLE Dept_age
(Sdept VARCHAR(15),
Avg_age SMALLINT);
--2、存数据
INSERT
INTO Dept_age(Sdept,Avg_age)
SELECT Sdept,