浅显易懂 SQLite3 笔记(04)— SQL数据更新(增加、删除、修改)


前言

   我们在上一篇博文《浅显易懂 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数据更新(增加、删除、修改)的所有内容,希望大家阅读后都能有所收获!原创不易,转载请标明出处,若文章出现有误之处,欢迎读者留言指正批评!
在这里插入图片描述

  • 9
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
SQL 语句可以通过 SQLite 的命令行工具或者 Python 中的 sqlite3 模块来执行。以下是一个使用 SQL 语句从 SQLite 数据库中读取数据的示例: ```sql SELECT * FROM table_name; ``` 这个 SQL 语句查询了表 table_name 中的所有数据,并返回一个包含所有数据的结果集。你可以使用 SQLite 的命令行工具或者 Python 中的 sqlite3 模块来执行这个 SQL 语句。 使用 SQLite 命令行工具: 1. 打开命令行工具,进入到 SQLite 数据库所在的目录。 2. 执行命令 `sqlite3 example.db` 进入到 SQLite 命令行界面(其中 example.db 是数据库文件名)。 3. 输入 SQL 语句 `SELECT * FROM table_name;` 并按下回车键。 4. 查看返回的结果集。 使用 Python 的 sqlite3 模块: ```python import sqlite3 # 连接数据库 conn = sqlite3.connect('example.db') # 创建游标 cursor = conn.cursor() # 执行查询语句 cursor.execute('SELECT * FROM table_name') # 读取查询结果 results = cursor.fetchall() # 关闭游标和连接 cursor.close() conn.close() # 处理查询结果 for row in results: # 处理每一行数据 pass ``` 在这个示例中,我们首先使用 `sqlite3.connect()` 方法连接到了 SQLite 数据库。接着,我们使用 `conn.cursor()` 方法创建了一个游标对象,使用 `cursor.execute()` 方法执行了 SQL 语句 `SELECT * FROM table_name`,并使用 `cursor.fetchall()` 方法获取查询结果。最后,我们关闭游标和连接,并对查询结果进行处理。 需要注意的是,SQL 语句的具体写法和 SQLite 数据库的表结构有关,你需要根据实际情况修改 SQL 语句。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤生i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值