SQLite 插入和修改操作 | 学习笔记

简介: 快速学习 SQLite 插入和修改操作

开发者学堂课程【嵌入式之 RFID 开发与应用2020版:SQLite 插入和修改操作】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/665/detail/11225


SQLite 插入和修改操作

内容介绍:

一、修改表: alter 语句

二、删除表:drop table 语句

三、插入新行:insert into 语句

四、修改表中的数据:update 语句

 

一、修改表: alter 语句

在已有的表中添加或删除列以及修改表名。

语法: (添加、删除 -sqlite3 暂不支持、重命名)

alter table 表名 add 列名 数据类型;

sqlite> alter table persons add sex text;

alter 不能对表结构进行修改,可以在表中增加列、列属性

什么是修改表结构,比如说之前创建一张表:

sqlite> .tablespersons

sqlite> .schema

CREATE TABLE persons (id integer,name text,addr text);

假设 id integer,id 不具有主键约束,alter 就不能做到将 id 改成具有主键约束。

语法:( alter 修改表名)

alter table 表名 rename to 新表名;

sqlite> .tables

persons

sqlite> alter table persons rename to new_persons;

sqlite> .tables

new_persons

接下来介绍修改表,如修改如下表:

sqlite> .schema

CREATE TABLE[stu_info](

[id] int,-

[name] varchar(255),

[city] VARCHAR(244),

[score]_int) ;

如何进行修改:

sqlite> alter table stu_info rename to stu ;

再次查看:sqlite> .schema

CREATE TABLE IF NOT EXISTS "stu" (

[id] int,

[name] varchar(255),

[city] VARCHAR(244),

[score] int);

同样的方法也可以查看:

sqlite> select *from stu ;

200800|jiangbo| 成都 |11

200807| 李勇| 甘肃 |90

200815| lucy | lanzou |10

200811 | obama | 美国 |99

6804570|tv| |6429856

200912| 张三 | 北说 |34

200988| 李四 | 北京 |80

还可以在表中增加一列属性,根据 sqlite> alter table persons add sex text; 得知是直接加在 add 后,假如加 num integer:

sqlite> alter table stu add num integer;

sqlite> .schema

CREATE TABLE IF NOT EXISTS "stu"(

[id] int,

[name] varchar(255),

[city] VARCHAR(244),

[ score] int,num integer);

表的结构中出现 num integer

查看表的内容,内容如下:

sqlite> select*from stu ;

200800|jiangbo|成都|11|

200807|李勇|甘肃|90|

200815ilucy [lanzou |10|

200811iobama|美国|99|

6804570|tv| |6429856|

200912|张三|北说|34|

200988|李四|北京|80|

根据内容是看不出什么的,我们可以再增加一个 header:

sqlite> .header on

200800|jiangbo|成都|11|

200807|李勇|甘肃|90|

200815|lucy [lanzou |10|

200811|obama|美国|99|

6804570|tv| |6429856|

200912|张三|北说|34|

200988|李四|北京|80|

也看不出什么效果,所以:

sqlite>.mode column

sqlite> select*from stu;

id       name     city     score      num

200800  jiangbo   成都     11

200807   李勇     甘肃     90

200815   lucy     lanzou   10

200811   obama   美国     99

6804570   tv               6429856

200912   张三     北说     34

200988   李四     北京     80

Num就是刚刚增加的,我们不能修改表中的结构,如果一定要修改,可以通过创建一个新表,将数据导入新表,之后将旧表删除的方法完成。

Alter 语句是不支持删除表的,所以接下来要介绍删除表。

 

二、删除表:drop table 语句

用于删除表(表的结构、属性以及表的索引也会被删除)

语法:

drop table 表名称;

sqlite> .tables

persons

sqlite> drop table persons;

sqlite> .tables

sqlite>

在进行删除之前,先备份一个表。

sqlite> create table nstu as select*from stu;

sqlite> .schema

CREATE TABLE IF NOT EXISTS "stu"(

[id] int,

[name] varchar(255),

[city] VARCHAR(244),

[score] int, num integer) ;

CREATE TABLE nstu(

id INT,

name TEXT,

city TEXT,

score INT,

num INT

);

这时就可以将其中一个表删除,剩下的表和之前的 stu 表内容一致。

sqlite>.schema

CREATE TABLE nstu(

id INT,

name TEXT,

city TEXT,

score INT,

num INT

);

sqlite> select*from nstu;

id       name     city     score      num

200800  jiangbo   成都     11

200807   李勇     甘肃     90

200815   lucy     lanzou   10

200811   obama   美国     99

6804570   tv               6429856

200912   张三     北说     34

200988   李四     北京     80

以上就是删除操作。

 

三、插入新行:insert into 语句

插入有两种方式,一种是插入时将所有元素都赋值,二是给部分元素赋值。

1.全部赋值

给一行中的所有列赋值。

语法: insert into 表名 values (列值1,列值2,列值3,列值4,.…);注意: 当列值为字符串时要加上‘’号。

在终端下输入:

sqlite> create table persons (id integer,name text,addr text)

sqlite> insert into persons values (1, 'lucy ', 'beijing' );

2.部分赋值

给一行中的部分列赋值

语法: insert into 表名(列名 1,列名 2,gm, ) values (列值1,列值2,.….);

进行赋值操作:

sqlite> .exit

edu@edu : sqlite$ ls

stu. dbstu_info.dbt.db

edu@edu : sqlite$ sqlite3 stu . db

sQLite version 3.22.0 2018-01-2218:45:57

Enter ".help" for usage hints.

sqlite> .schema

CREATE TABLE tbl(id interger,name text, addr text);

CREATE TABLE tbl2(id interger primary key,name text, addr text);

这里有两张表,现在对第一张表赋值,是全部赋值:

sqlite= insert into tbl values ( 101, 'zs ' ,'bj' );

sqlite> select *from tbl;

101|zs| bj

sqlite insert into tbl values ( 102, 'ls' , 'tj' );

部分赋值:

sqlite> insert into tbl (id, name) values ( 103, 'ww ' );

sqlite> select *from tbl;

101|zs| bj

102ils|tj

103|ww|

以上就是全部插入和部分插入的基本流程。

 

四、修改表中的数据:update 语句

使用 where 根据匹配条件,查找一行或多行,根据查找的结果修改表中相应行的列值(修改哪一列由列名指定)。

语法:

update 表名 set 列 1= 值 1[,列 2= 值 2,..][匹配条件];

匹配: where 子句

where 子句用于规定匹配的条件。

操作符

描述

=

等于

<>

不等于

>

大于

<

小于

>=

大于等于

<=

小于等于

匹配条件语法:(基础)  where 列名操作符列值

在终端下输入:

sqlite> update pglrsons set id=2,addr='tianjing’ where name='peter';

数据库要牢记四点:增删查改  更新就是改,可以通过 update 修改表的内容,比如 103|ww|,它不存在地址但又存在,所以不属于 insert,如果要将内容补上,只能用 update。

sqlite> update tbl set addr=' sh' where id=103;

注:后面一定要有条件,指明修改的是哪一行的信息。

sqlite> select*from tbl;

101|zs|bj

102|ls|tj

103|ww|sh

Update 在修改时,匹配的条件比较多,比如可以他通过 where 进行匹配,可以查找一行和多行,原则上可以通过等号、不等号等等进行操作。

在查看时也可以用 where 进行操作,比如:

sqlite> select*from tbl where id>102;

103|ww|sh

Where 后可以跟多个条件。如果有多个条件要用空格隔开。

sqlite> select * from tbl where id between 102 and 105;

102|ls|tj

103|ww|sh

相关文章
|
13天前
|
存储 数据库 开发者
Python SQLite模块:轻量级数据库的实战指南
本文深入讲解Python内置sqlite3模块的实战应用,涵盖数据库连接、CRUD操作、事务管理、性能优化及高级特性,结合完整案例,助你快速掌握SQLite在小型项目中的高效使用,是Python开发者必备的轻量级数据库指南。
134 0
|
6月前
|
SQL 数据库连接 数据库
在C++的QT框架中实现SQLite数据库的连接与操作
以上就是在C++的QT框架中实现SQLite数据库的连接与操作的基本步骤。这些步骤包括创建数据库连接、执行SQL命令、处理查询结果和关闭数据库连接。在实际使用中,你可能需要根据具体的需求来修改这些代码。
316 14
|
12月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
299 6
|
10月前
|
关系型数据库 MySQL 数据库
Python处理数据库:MySQL与SQLite详解 | python小知识
本文详细介绍了如何使用Python操作MySQL和SQLite数据库,包括安装必要的库、连接数据库、执行增删改查等基本操作,适合初学者快速上手。
986 15
|
12月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
217 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
11月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
241 8
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08
|
12月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
224 4
|
12月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
343 3
|
人工智能 小程序 Java
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密
本文介绍了一款名为PyWxDump的开源工具,它可以获取微信账户信息、解密SQLite数据库以查看和备份聊天记录。此工具适用于已登录电脑版微信的用户,通过GitHub下载后简单几步即可操作。适合对数据恢复感兴趣的开发者,但请注意合法合规使用并尊重隐私。
1564 2
【工具】轻松解锁SQLite数据库,一窥微信聊天记录小秘密

热门文章

最新文章