01_SQLite

文章目录

SQLite 是一个轻量级的数据库,它不需要一个独立的服务器进程,也不需要配置,因此非常适合于小型项目、移动应用、桌面应用或者需要快速部署的场合。

  1. 列出数据库名称及附属文件信息

    sql 复制代码
    .databases
  2. 打开数据库

sql 复制代码
.open
  1. 退出slite提示符
sql 复制代码
.quit
  1. 查询数据库有那些表
sql 复制代码
.tables
  1. 显示各种设置的当前值
sql 复制代码
.show
  1. ** 创建数据库 **
sql 复制代码
sqlite3 #启动
.open db1.db #打开/创建
.databases 
  1. ** 附加与分离 **
    1、附加数据库语句:attach database 文件名称 as 数据库名称
    此操作:打开数据库和使用 attach 附加进来的数据库必须在同一目录
sql 复制代码
#...创建数据库db1.db,db2.db,db3.db
attach database `db1.db` as `db1test`;
.databases
attach database `db2.db` as `db2test`;
.databases
attach database `db3.db` as `db3test`;
.databases

2、分离数据库语句:detach database 数据库名称

** SQLite 存储各类和数据类型 **

1、SQLite 将数据值的存储划分为以下几种存储类型:

NULL: 表示该值为 NULL 值

INTEGER: 整型值。

REAL: 浮点值。

TEXT: 文本字符串,存储使用的编码方式为 UTF-8、UTF-16BE、UTF-16LE。

BLOB: 存储 Blob 数据,该类型数据和输入数据完全相同。

2、 日期和时间数据类型:和布尔类型一样,SQLite 也同样没有提 供专门的日期时间存储类型,而是以 TEXT、REAL 和 INTEGER 类型分别不同的格式表示该类型。

TEXT("YYYY-MM-DD HH:MM:SS.SSS")

REAL:从公元前 4714 年 11 月 24 日格林尼治时间的正午开始计算的天数。

INTEGER:从 1970-01-01 00:00:00 UTC 算起的秒数。

3、布尔类型:SQLite 没有提供专门的布尔存储类型,存储为 1 表示

true/0 表示 false。

** SQLite 五种亲缘类型**

最大化 SQLite 和其它数据库引擎之间的数据类型兼容性,SQLite 提出类型亲缘性(type affinity)。

TEXT:数值型数据在被插入之前,需要先被转换为文本格式,之后再插入到目标字段中。

NUMERIC:当文本数据被插入到亲缘性为 NUMERIC 的字段中时,如果转换操作不会导致数据信息丢失以及完全可逆,那

么 SQLite 就会将该文本数据转换为INTEGER 或 REAL 类型的数据,如果转换失败,SQLite 仍会以 TEXT 方式存储该数据。

INTEGER:对于亲缘类型为 INTEGER 的字段,其规则等同于NUMERIC,唯一差别是在执行 CAST 表达式时。

REAL:其规则基本等同于 NUMERIC,唯一的差别是不会将"30000.0"这样的文本数据转换为 INTEGER 存储方式。

NONE:不做任何的转换,直接以该数据所属的数据类型进行存储。

INTEGER(假设类型字符串当中包含 INT,此字段亲缘类型为 INEGER):

 INT、INTEGER(取值范围足够大,不用考虑超限问题);

 TINYINT:枚举类型;

 SMALLINT:用于小范围的统计数据;

 MEDIUMINT:用于比较大整数的计算;

 BIGINT:处理巨大整数才用到。

TEXT:

 VARCHAR 可变长度的字符串;

 TEXT:一个文本字符串;

 CLOB:大文本、大字段。

REAL:

 REAL:浮点值,以 8 个字节指数形式存储;

 FLOAT:单精度;

 DOUBLE:双精度。

NUMERIC:

 DECIMAL:小数值;

 NUMERIC:精确数字类型;

 DATE:日期类型;

 DATETIME:日期时间类型。

SQLite 比较表达式:=、==、<、<=、>、>=、!=、IN、NOT IN、BETWEEN、IS、

IS NOT。

SQLite 操作符:+ - * / % << >> & and |。

SQLite 创建数据表

1、create table 语句语法如下:

create table 数据表名称(

字段名称 1 数据类型 1 约束等条件,

字段名称 2 数据类型 2 约束等条件,

...);

2、SQLite 常用约束如下:

NOT NULL 约束:确保某列不能有 NULL 值。

DEFAULT 约束:当某列没有指定值时,为该列提供默认值。

UNIQUE 约束:确保某列中的所有值是不同的。

PRIMARY Key 约束:唯一标识数据库表中的各行/记录。

CHECK 约束:CHECK 约束确保某列中的所有值满足一定条件。

删除数据表

drop table 语句语法如下:

sqlite3>drop table 数据库名称.数据表名称

插入数据信息

1、INSERT INTO 语句语法

INSERT INTO TABLE_NAME [(column1,column2, column3,

column4,...columnN)]

VALUES (value1,value2,value3,value4,...valueN);

2、INSERT INTO 语句插入数据不指定列名,则确保值顺序与表中的

顺序一致即可。

INSERT INTO TABLE_NAME

VALUES (value1,value2,value3,value4,...valueN);

从数据表中获取数据,以结果表的形式返回数据(结果集)

select 语句语法:

sql 复制代码
SELECT column1,column2,column3,... columnN
FROM table_name;

where 子句基本语法:

sql 复制代码
SELECT column1,column2,column3,column4,columnN
FROM table_name
WHERE [condition]

算术运算符:+、-、*、/、%。

sql 复制代码
select 12 % 7

结果:3

比较运算符:=、==、!=、<>、>、<、>=、<=、!<、!>

sql 复制代码
select * from sc where grade<60;

逻辑运算符:and、between、exists、in、not in、like、glob、not、or、is null、is、is not、unique。

sql 复制代码
select * from sc where grade>70 and grade <90;

update

sql 复制代码
UPDATE table_name
SET column1 = value1, column2 = value3...., columnN =
valueN
WHERE [condition];

distinct

用于消除重复记录

sql 复制代码
SELECT distinct column1,column2,
column3,......columnN
FROM table_name
WHERE [condition]

order by

用于对一个或者多个字段按升序降序

顺序排列数据。

sql 复制代码
SELECT column-list
FROM table_name
[WHERE condition]
[order by column1,column2,column3,...... columnN]
[ASC | DESC];
ASC:从小到大,升序排序(默认值);
DESC:从大小到,降序排列。

group by

用于配合相同数据进行分组

sql 复制代码
SELECT column-list
FROM table_name
WHERE [ conditions ]
group by column1, column2....columnN
group by column1, column2....columnN

having

用于指定条件来过滤数据,having 子句

由 group by 子句创建的分组在设置条件。

sql 复制代码
SELECT
FROM table_name
WHERE
GROUP BY
having
ORDER BY

触发器

是数据库的一个回调函数,在指定的数据库事件发生时,自动执行或调用。比如 insert、update、delete 时等触发。

1、创建一个触发器(trigger)基本语法如下:

sql 复制代码
CREATE TRIGGER trigger_name [BEFORE|AFTER] event_name
ON table_name
BEGIN

BEFORE/AFTER 关键字决定什么时候执行触发器动作,决定是在关联的插入、修改或删除之前或者之后执行触发器动作。

当触发器相关联的表被删除时,自动删除触发器。

删除一个触发器(trigger)

sql 复制代码
DROP TRIGGER trigger_name;
相关推荐
容器( ु⁎ᴗ_ᴗ⁎)ु.。oO14 分钟前
MySQL事务
数据库·mysql
cyt涛2 小时前
MyBatis 学习总结
数据库·sql·学习·mysql·mybatis·jdbc·lombok
liuxin334455663 小时前
教育技术革新:SpringBoot在线教育系统开发
数据库·spring boot·后端
看山还是山,看水还是。3 小时前
MySQL 管理
数据库·笔记·mysql·adb
fishmemory7sec3 小时前
Koa2项目实战2(路由管理、项目结构优化)
数据库·mongodb·koa
momo小菜pa4 小时前
【MySQL 09】表的内外连接
数据库·mysql
Jasonakeke4 小时前
【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化
数据库·mysql
程序猿小D4 小时前
第二百六十九节 JPA教程 - JPA查询OrderBy两个属性示例
java·开发语言·数据库·windows·jpa
小宇成长录4 小时前
Mysql:数据库和表增删查改基本语句
数据库·mysql·数据库备份