首页 理论教育插入数据的格式及功能

插入数据的格式及功能

【摘要】:插入单个元组插入单个元组的INSERT语句的格式为:INSERTINTO<表名>[(<属性列1>[,<属性列2>…如果INTO子句中没有指定任何列名,则新插入的记录必须在每个属性列上均有值。INSERTINTO StudentVALUES;插入一条选课记录。)]子查询;该语句的功能是将子查询的结果以批量形式插入指定表中。对每个系求学生的平均年龄并把结果存入数据库。先建一个新表Deptage,包含系名和平均年龄两个属性列,然后从Student表中查询每个系学生的平均年龄并将其插入新建的表中。

INSERT语句有两种形式:一种是插入单个元组,另一种是插入子查询结果。

(1)插入单个元组

插入单个元组的INSERT语句的格式为:

INSERT

INTO<表名>[(<属性列1>[,<属性列2>…)]

VALUES(<常量1>[,<常量2>]…);

如果某些列在INTO子句中没有出现,则新记录在这些列上将取空值,但声明了NOT NULL的属性列不能取空值。

如果INTO子句中没有指定任何列名,则新插入的记录必须在每个属性列上均有值。

【例6.32】 将一个新学生记录(学号:070601112;姓名:张亮;性别:男;所在系:建筑工程;年龄:18)插入Student表中。

INSERT

INTO Student

VALUES(′070601112′,′张亮′,′男′,′建筑工程′,18);

【例6.33】 插入一条选课记录(学号:070601112;课程号:2)。

INSERT

INTO SC(Sno,Cno)

VALUES(′070601112′,′2′);

(2)插入子查询结果(www.chuimin.cn)

插入子查询结果的INSERT语句的格式为:

INSERT

INTO<表名>[(<属性列1>[,<属性列2>]…)]

子查询;

该语句的功能是将子查询的结果以批量形式插入指定表中。

【例6.34】 对每个系求学生的平均年龄并把结果存入数据库

先建一个新表Deptage,包含系名(Sdept)和平均年龄(Avgage)两个属性列,然后从Student表中查询每个系学生的平均年龄并将其插入新建的表中。具体语句如下:

CREATE TABLE Deptage

(Sdept CHAR(15)

Avgage SMALLINT);

INSERT

INTO Deptage

SELECT Sdept,AVG(Sage)

FROM Student

GROUP BY Sdept;