当前位置: 首页 > news >正文

01_SQLite

文章目录

    • ** SQLite 存储各类和数据类型 **
    • ** SQLite 五种亲缘类型**
    • SQLite 创建数据表
    • 删除数据表
    • 插入数据信息
    • 从数据表中获取数据,以结果表的形式返回数据(结果集)
    • update
    • distinct
    • order by
    • group by
    • having
    • 触发器
    • 删除一个触发器(trigger)

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

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

    .databases
    
  2. 打开数据库

.open
  1. 退出slite提示符
.quit
  1. 查询数据库有那些表
.tables
  1. 显示各种设置的当前值
.show
  1. ** 创建数据库 **
sqlite3 #启动
.open db1.db #打开/创建
.databases 
  1. ** 附加与分离 **
    1、附加数据库语句:attach database 文件名称 as 数据库名称
    此操作:打开数据库和使用 attach 附加进来的数据库必须在同一目录
#...创建数据库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 语句语法:

SELECT column1,column2,column3,... columnN
FROM table_name;

where 子句基本语法:

SELECT column1,column2,column3,column4,columnN
FROM table_name
WHERE [condition]

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

select 12 % 7

结果:3

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

select * from sc where grade<60;

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

select * from sc where grade>70 and grade <90;

update

UPDATE table_name
SET column1 = value1, column2 = value3...., columnN =
valueN
WHERE [condition];

distinct

用于消除重复记录

SELECT distinct column1,column2,
column3,......columnN
FROM table_name
WHERE [condition]

order by

用于对一个或者多个字段按升序降序
顺序排列数据。

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

group by

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

SELECT column-list
FROM table_name
WHERE [ conditions ]
group by column1, column2....columnN
group by column1, column2....columnN

having

用于指定条件来过滤数据,having 子句
由 group by 子句创建的分组在设置条件。

SELECT
FROM table_name
WHERE
GROUP BY
having
ORDER BY

触发器

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

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

CREATE TRIGGER trigger_name [BEFORE|AFTER] event_name
ON table_name
BEGIN

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

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

删除一个触发器(trigger)

DROP TRIGGER trigger_name;
http://www.lryc.cn/news/454136.html

相关文章:

  • 【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【下篇】
  • 畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)
  • 【机器学习(十一)】糖尿病数据集分类预测案例分析—XGBoost分类算法—Sentosa_DSML社区版
  • 二分查找一>寻找峰值
  • 《Linux从小白到高手》理论篇:深入理解Linux的网络管理
  • redis数据类型介绍
  • 一张照片变换古风写真,Flux如何做到?
  • 医药行业的智能合同审查:大模型与AI赋能合规管理
  • 幂等性接口实现
  • C++ 语言特性29 - 协程介绍
  • [Day 84] 區塊鏈與人工智能的聯動應用:理論、技術與實踐
  • 八大排序--01冒泡排序
  • 【Kubernetes】常见面试题汇总(五十)
  • Linux 操作系统中的 main 函数参数和环境变量
  • Vue项目中通过插件pxtorem实现大屏响应式
  • (Django)初步使用
  • 【星汇极客】单片机竞赛之2024睿抗机器人大赛-火线速递赛道(持续更新)
  • 生信科研,教授(优青)团队一站式指导:高通量测序技术--农业植物基因组分析、组蛋白甲基化修饰、DNA亲和纯化测序、赖氨酸甲基化
  • 【Immich部署与访问】自托管媒体文件备份服务 Immich 本地化部署与远程访问存储数据
  • AI少女/HS2甜心选择2 仿逆水寒人物卡全合集打包
  • C/C++逆向:数据类型识别
  • PASCAL VOC 2012数据集 20类物体,这些物体包括人、动物(如猫、狗、鸟等)、交通工具(如车、船、飞机等)以及家具(如椅子、桌子、沙发等)。
  • 题目:最左边的数字
  • 第 4 章 Spring IoC容器之BeanFactory
  • 滚雪球学Oracle[2.3讲]:Oracle Listener配置与管理
  • 免费送源码:Javaspringboot++MySQL springboot 社区互助服务管理系统小程序 计算机毕业设计原创定制
  • 成都睿明智科技有限公司抖音电商新蓝海的领航者
  • 不可错过!CMU最新《生成式人工智能大模型》课程:从文本、图像到多模态大模型
  • 重庆数字孪生工业互联网可视化技术,赋能新型工业化智能制造工厂
  • Qt QPushButton clicked信号浅析