05.sqlite3学习——DML(数据管理:插入、更新、删除)

目录

DML(数据管理:插入、更新、删除)

插入

更新

删除整个表

语法

实例


DML(数据管理:插入、更新、删除)

数据操纵(DML):用于增、删、改数据

作用:负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心

插入

语法:insert into 表名(字段1,字段2,字段3,...,字段n) values(值1,值2,值3,...,值n);

一次性插入多条数据

sql 复制代码
    insert into 表名(字段1,字段2,字段3,...,字段n)
                 values
                 (值1,值2,值3,...,值n),
                 (值1,值2,值3,...,值n),
                 (值1,值2,值3,...,值n);

更新

语法:update 表名 set 字段1=值1,字段2=值2,...字段n=值n [where 条件];

更新多个表中数据:

sql 复制代码
update 表名1 表名2 set 表名1.字段1=值1,表名2.字段2=值2,...字段n=值n [where 条件];

删除

语法:delete from 表名 [where 条件];

如:

sql 复制代码
delete from test2 where name = 'zhangsan';

删除多个表中的数据,如:

sql 复制代码
delete 表1,表2,...表n from 表1,表2,...表n [where 条件];

删除整个表

在 SQLite 中,并没有 TRUNCATE TABLE 命令,但可以使用 SQLite 的 DELETE 命令从已有的表中删除全部的数据。

语法

DELETE 命令的基本语法如下:

sql 复制代码
sqlite> DELETE FROM table_name;

但这种方法无法将递增数归零。

如果要将递增数归零,可以使用以下方法:

sql 复制代码
sqlite> DELETE FROM sqlite_sequence WHERE name = 'table_name';

当 SQLite 数据库中包含自增列时,会自动建立一个名为 sqlite_sequence 的表。这个表包含两个列:name 和 seq。name 记录自增列所在的表,seq 记录当前序号(下一条记录的编号就是当前序号加 1)。如果想把某个自增列的序号归零,只需要修改 sqlite_sequence 表就可以了。UPDATE sqlite_sequence SET seq = 0 WHERE name = 'table_name';

实例

假设 COMPANY 表有如下记录:

sql 复制代码
ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0

下面为删除上表记录的实例:

sql 复制代码
SQLite> DELETE FROM sqlite_sequence WHERE name = 'COMPANY';
SQLite> VACUUM;

现在,COMPANY 表中的记录完全被删除,使用 SELECT 语句将没有任何输出。

相关推荐
虾球xz4 分钟前
CppCon 2015 学习:CLANG/C2 for Windows
开发语言·c++·windows·学习
沉到海底去吧Go31 分钟前
【图片自动识别改名】识别图片中的文字并批量改名的工具,根据文字对图片批量改名,基于QT和腾讯OCR识别的实现方案
数据库·qt·ocr·图片识别自动改名·图片区域识别改名·pdf识别改名
老纪的技术唠嗑局1 小时前
重剑无锋,大巧不工 —— OceanBase 中的 Nest Loop Join 使用技巧分享
数据库·sql
蓝婷儿1 小时前
6个月Python学习计划 Day 17 - 继承、多态与魔术方法
开发语言·python·学习
未来之窗软件服务1 小时前
JAVASCRIPT 前端数据库-V6--仙盟数据库架构-—-—仙盟创梦IDE
数据库·数据库架构·仙盟创梦ide·东方仙盟·东方仙盟数据库
寒山李白1 小时前
MySQL复杂SQL(多表联查/子查询)详细讲解
sql·mysql·子查询·多表联查
持续前进的奋斗鸭1 小时前
Postman测试学习(1)
学习·postman
hello kitty w2 小时前
Python学习(7) ----- Python起源
linux·python·学习
一叶知秋秋2 小时前
python学习day39
人工智能·深度学习·学习
永日456702 小时前
学习日记-day24-6.8
开发语言·学习·php