目录
DML(数据管理:插入、更新、删除)
插入
更新
删除整个表
语法
实例
DML(数据管理:插入、更新、删除)
数据操纵(DML):用于增、删、改数据
作用:负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心
插入
语法:insert into 表名(字段1,字段2,字段3,...,字段n) values(值1,值2,值3,...,值n);
一次性插入多条数据
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 条件];
更新多个表中数据:
update 表名1 表名2 set 表名1.字段1=值1,表名2.字段2=值2,...字段n=值n [where 条件];
删除
语法:delete from 表名 [where 条件];
如:
delete from test2 where name = 'zhangsan';
删除多个表中的数据,如:
delete 表1,表2,...表n from 表1,表2,...表n [where 条件];
删除整个表
在 SQLite 中,并没有 TRUNCATE TABLE 命令,但可以使用 SQLite 的 DELETE 命令从已有的表中删除全部的数据。
语法
DELETE 命令的基本语法如下:
sqlite> DELETE FROM table_name;
但这种方法无法将递增数归零。
如果要将递增数归零,可以使用以下方法:
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 表有如下记录:
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
下面为删除上表记录的实例:
SQLite> DELETE FROM sqlite_sequence WHERE name = 'COMPANY';
SQLite> VACUUM;
现在,COMPANY 表中的记录完全被删除,使用 SELECT 语句将没有任何输出。