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

相关文章
|
2月前
|
存储 SQL 关系型数据库
Mysql学习笔记(二):数据库命令行代码总结
这篇文章是关于MySQL数据库命令行操作的总结,包括登录、退出、查看时间与版本、数据库和数据表的基本操作(如创建、删除、查看)、数据的增删改查等。它还涉及了如何通过SQL语句进行条件查询、模糊查询、范围查询和限制查询,以及如何进行表结构的修改。这些内容对于初学者来说非常实用,是学习MySQL数据库管理的基础。
132 6
|
2月前
|
SQL Ubuntu 关系型数据库
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
本文为MySQL学习笔记,介绍了数据库的基本概念,包括行、列、主键等,并解释了C/S和B/S架构以及SQL语言的分类。接着,指导如何在Windows和Ubuntu系统上安装MySQL,并提供了启动、停止和重启服务的命令。文章还涵盖了Navicat的使用,包括安装、登录和新建表格等步骤。最后,介绍了MySQL中的数据类型和字段约束,如主键、外键、非空和唯一等。
73 3
Mysql学习笔记(一):数据库详细介绍以及Navicat简单使用
|
1月前
|
存储 SQL 数据库
数据库知识:了解SQLite或其他移动端数据库的使用
【10月更文挑战第22天】本文介绍了SQLite在移动应用开发中的应用,包括其优势、如何在Android中集成SQLite、基本的数据库操作(增删改查)、并发访问和事务处理等。通过示例代码,帮助开发者更好地理解和使用SQLite。此外,还提到了其他移动端数据库的选择。
31 8
|
2月前
|
Web App开发 SQL 数据库
使用 Python 解析火狐浏览器的 SQLite3 数据库
本文介绍如何使用 Python 解析火狐浏览器的 SQLite3 数据库,包括书签、历史记录和下载记录等。通过安装 Python 和 SQLite3,定位火狐数据库文件路径,编写 Python 脚本连接数据库并执行 SQL 查询,最终输出最近访问的网站历史记录。
|
2月前
|
存储 关系型数据库 数据库
轻量级数据库的利器:Python 及其内置 SQLite 简介
轻量级数据库的利器:Python 及其内置 SQLite 简介
|
2月前
|
应用服务中间件 PHP Apache
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
PbootCMS提示错误信息“未检测到您服务器环境的sqlite3数据库扩展...”
|
3月前
|
存储 API 数据库
QML使用Sqlite数据库存储ListModel数据
本文介绍了在QML中使用Sqlite数据库存储ListModel数据的方法,包括如何创建数据库、读取数据、动态添加和删除数据,以及如何在程序启动和退出时与数据库同步数据。
|
3月前
|
数据库 数据库管理
qt对sqlite数据库多线程的操作
本文总结了在Qt中进行SQLite数据库多线程操作时应注意的四个关键问题,包括数据库驱动加载、加锁、数据库的打开与关闭,以及QsqlQuery变量的使用。
172 1
|
2月前
|
存储 缓存 关系型数据库
sqlite 数据库 介绍
sqlite 数据库 介绍
40 0
|
3月前
|
SQL 关系型数据库 MySQL
php学习笔记-连接操作mysq数据库(基础)-day08
本文介绍了PHP中连接操作MySQL数据库的常用函数,包括连接服务器、设置字符集、关闭连接、选择数据库、结果集释放、获取影响行数以及遍历结果集等操作。通过书籍查询的实例演示了如何使用这些函数进行数据库操作,并提供了一个PHP操纵MySQL数据库的模板。
php学习笔记-连接操作mysq数据库(基础)-day08