插入数据

1.插入元组

INSERT
INTO <表名> [(<属性列1>[,<属性列2>]...)]
VALUES (<常量1>[,<常量2>]...);

案例:
1.将一个学生元组(学号: 201215128, 姓名:陈冬,性别:男,所在系:IS,年龄:18)插入到student表中

INSERT INTO student (Sno,Sname,Ssex,Sdept,Sage)
VALUES ('201215128','陈冬','男','IS',18);

或者

INSERT INTO student
VALUES ('201215128','陈冬','男','IS',18);

当插入的数据为一个元组时,才能省略属性列,而且常量列要一一对应

2.插入子查询结果

INSERT
INTO <表名> [(<属性列1>[,<属性列2>]...)]
子查询

案例:
对每一个系,求学生的平均年龄,并把结果存入数据库:
1.先建一个新表

CREATE TABLE Dept_age(
    Sdept CHAR(15)
    Avg_age SMALLINT
);

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

INSERT
INTO Dept_age(Sdept, Avg_age)
SELECT Sdept, AVG(Sage)
FROM student
GROUP BY Sdept;

修改数据

UPDATE <表名>
SET <列名>=<表达式> [,<列名>=<表达式>]...
[WHERE <条件>];

1.修改一个元组的值

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

UPDATE student 
SET Sage = 22
WHERE Sno = '201215121';

2.修改多个元组的值

案例:
将所有学生的年龄增加1岁

UPDATE student
SET Sage = Sage + 1;

3.带子查询的修改语句

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

UPDATE sc
SET grade = 0
WHERE sno IN
    (SELECT sno
    FROM student
    WHERE Sdept = 'CS');

删除数据

DELETE
FROM <表名>
[WHERE <条件>];

如果省略WHERE子句,则默认删除所有元组

DELETE子句只是删除的数据,而不是表关于表的定义

1.删除某一个元组的值

案例:
删除学号为201215121的学生记录。

DELETE
FROM student
WHERE sno = '201215121';

2.删除多个元组

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

DELETE 
FROM sc;

3.带子查询的删除语句

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

DELETE 
FROM sc
WHERE sno IN
    (SELECT sno
    FROM student
    WHERE Sdept = 'CS');
最后修改:2021 年 07 月 04 日 06 : 43 PM
如果觉得我的文章对你有用,请随意赞赏