开发者学堂课程【 嵌入式之 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

Mysql中REPLACE INTO用法,判断数据是否存在,如果不存在,则插入,如果存在,则先删除此行数据,然后插入新的数据...
Mysql中REPLACE INTO用法,判断数据是否存在,如果不存在,则插入,如果存在,则先删除此行数据,然后插入新的数据...
【MySQL学习笔记】添加数据、查询数据、修改数据、删除数据
MySQL中用insert语句向数据表中添加数据,根据操作的不同目的一般分为两种,一种是为所有字段添加数据,一种格式为部分字段添加数据。但如果要添加的数据过多,重复操作很麻烦,此时就需要一次添加多行数据。
玩转SQLite4:SQLite数据插入与查看
之前两篇文章,介绍了**命令行**和**图形化**的方式进行**数据库的创建**和**表的创建**,相当于创建了一个框架,还没有具体数据,本篇就来介绍如何将数据添加到数据库的表中,以及如何查看表中的数据。 同样,本篇继续使用**命令行**和**图形化**两种方式进行操作。
mysql数据库使用insert语句插入中文数据报错在mysql的命令行模式中,通过insert语句插入中文数据的时候报错,类似于下面这样: Incorrect string value: 'xE7x8F' for column 'name' at row 1造成这个错误通常是由于创建数据表的时候使用了不正确的编码格式,可以使用如下命令查看操作的目标数据表的编码格式。 10761
技术图谱:由专家组参与技术图谱的绘制与编写,知识与实践的结合让开发者们掌握学习路线与逻辑,快速提升技能 电子书:电子书由阿里内外专家打造,供开发者们下载学习,更与课程相结合,使用户更易理解掌握课程内容 训练营:学习训练营 深入浅出,专家授课,带领开发者们快速上云 精品课程:汇集知识碎片,解决技术难题,体系化学习场景,深入浅出,易于理解 技能自测:提供免费测试,摸底自查 体验实验室:学完即练,云资源免费使用