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;
修改
基本语法
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`
);