前言
我们在上一篇博文《浅显易懂 SQLite3 笔记(03)— SQL数据查询(超级详细)》,学习了如何使用SQL语句进行数据查询。本篇,我们将继续学习如何使用SQL语句进行数据更新(增加、删除、修改)。
一、插入数据
【例1】将一条新的学生记录(学号:2005;姓名:王东;性别:男;所在系:数学;年龄:20岁)插入到student表中。
INSERT INTO Student(sno,sname,sage,ssex,sdept)VALUES('2005','王东',18,'男','数学系');
注意:表名后面可以不跟字段名。此时,values中字段值的顺序必须与建立表时的字段顺序一致。
- 若如果插入多条记录,则使用如下语句
INSERT INTO Student(sno,sname,sage,ssex,sdept)VALUES
('2006','小南',18,'男','数学系'),('2007','小西',19,'男','数学系');
【例2】对于每一个系,求学生的平均年龄,并把结果存入数据库中。
//方法一:
CREATE TABLE Dept_age1(sdept VARCHAR(20) PRIMARY KEY,avg_age TINYINT not null);
INSERT INTO Dept_age1(sdept,avg_age) SELECT sdept,avg(sage) FROM student GROUP BY sdept;
//方法二:
SELECT sdept, avg(sage) AS avg_age INTO Dept_age FROM student GROUP BY sdept;
注意:方法二可以用于SQL serve数据库,不能用于SQLite3数据库。
二、修改数据
【例1】将所有学生的年龄增加1。
UPDATE Student SET sage = sage + 1 ;
【例2】将“计算机系”学生的年龄增加1岁。
UPDATE student SET sage = sage + 1 WHERE sdept = '计算机系';
【例3】将“王东”的姓名改为“王西”,年龄改为20。
UPDATA student SET sname = '王西',sage = 20 WHERE sname = '王东';
【例4】当课程号为C004的成绩低于该门课程的平均成绩时,将成绩提高5%。
UPDATE sc SET grade = grade * 1.05 WHERE cno= 'C004' and
grade < (SELECT AVG(grade) FROM sc WHERE cno = 'C004');
【例5】将“陈晨”的成绩提高2分。
//方法一:
UPDATE sc SET grade = grade + 2 WHERE sno IN (SELECT sno FROM student WHERE sname = '刘晨');
//方法二:
UPDATE sc SET grade = grade + 2 FROM student s INNER JOIN sc ON s.sno = sc.sno AND s.sname = '刘晨';
//方法三:
UPDATE sc SET grade = grade + 2 WHERE '刘晨'= (SELECT sname FROM student WHERE sno = sc.sno);
三、删除数据
【例1】删除所有学生的基本信息。
DELETE FROM student;
【例2】删除“计算机系”学生的基本信息。
DELETE FROM student WHERE sdept = '计算机系';
【例3】删除计算机系所有学生的选课记录。
//方法一:
DELETE FROM sc WHERE sno IN (SELECT sno FROM student WHERE sdept = '计算机系');
//方法二:
DELETE FROM sc WHERE '计算机系'= (SELECT sdept FROM student WHERE sno = sc.sno);
//方法三:
DELETE sc FROM sc,student s WHERE sc.sno = s.sno and s.sdept = '计算机系';
伪删除
:为了能恢复被删除的记录,则需实现“伪删除”,方法如下:
(1)在表中增加字段: is_deleted (bit类型)
(2)设置is_deleted字段的默认值为0
(3)一旦删除记录,则设置该记录的is_deleted字段的值为1
- 例如:删除学号为“990001”的记录
UPDATE student SET is_deleted=1 WHERE sno='990001' and is_deleted=0;
(4)选择记录的时候,加上限制条件is_deleted =0
- 例如,浏览student表中的全部记录
SELECT * FROM student WHERE is_deleted = 0;
总结
以上就是浅显易懂 SQLite3 笔记(04)— SQL数据更新(增加、删除、修改)的所有内容,希望大家阅读后都能有所收获!原创不易,转载请标明出处,若文章出现有误之处,欢迎读者留言指正批评!