sql数据更新

插入

基本语法

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

插入元组

将一个新学生元组(学号: 200215128 ;姓名: 陈冬;性别:男;所在系: IS ;年龄: 18 岁)插入到 Student 表中

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

插入一条选课记录 ( '200215128' , '1 ')

INSERT INTO
sc (Sno, Cno)
VALUES('200215128', '1');

插入子查询结果

基本语法

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

子查询SELECT 子句目标列必须与 INTO 子句匹配

对每一个系,求学生的平均年龄,并把结果存入数据库

/*1.建表*/
CREATE TABLE Dept_age(
	Sdept CHAR(15),
	Avg_age SMALLINT
);

/*2.插入数据*/
INSERT INTO
Dept_age(Sdept, Avg_age)
SELECT Sdept, AVG(Sage)
FROM student
GROUP BY Sdept;

image-20220219082711590

修改

基本语法

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

修改一个元组

将学生 200215121 的年龄改为 22 岁

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

修改多个元组

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

UPDATE student
SET Sage=Sage+1;

带子查询的修改语句

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

UPDATE sc
SET Grade=0
WHERE 'CS'=(
	SELECT Sdept
	FROM student
	WHERE student.`Sno`=sc.`Sno`
);

删除

基本语法

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

删除一个元组

删除学号为 200215128 的学生记录

DELETE FROM student
WHERE Sno='200215128';

删除所有的学生选课记录

DELETE FROM sc;

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

DELETE FROM sc
WHERE 'CS'=(
	SELECT Sdept
	FROM student
	WHERE student.`Sno`=sc.`Sno`
);
posted @ 2022-02-19 08:44  dctwan  阅读(126)  评论(0编辑  收藏  举报