当前位置: 首页 > 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;

相关文章:

01_SQLite

文章目录 ** SQLite 存储各类和数据类型 **** SQLite 五种亲缘类型** SQLite 创建数据表删除数据表插入数据信息从数据表中获取数据&#xff0c;以结果表的形式返回数据&#xff08;结果集&#xff09;updatedistinctorder bygroup byhaving触发器删除一个触发器&#xff08;tr…...

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【下篇】

【STM32开发笔记】移植AI框架TensorFlow到STM32单片机【下篇】 一、上篇回顾二、项目准备2.1 准备模板项目2.2 支持计时功能2.3 配置UART4引脚2.4 支持printf重定向到UART42.5 支持printf输出浮点数2.6 支持printf不带\r的换行2.7 支持ccache编译缓存 三、TFLM集成3.1 添加tfli…...

畅阅读小程序|畅阅读系统|基于java的畅阅读系统小程序设计与实现(源码+数据库+文档)

畅阅读系统小程序 目录 基于java的畅阅读系统小程序设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 1、实体ER图 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师…...

【机器学习(十一)】糖尿病数据集分类预测案例分析—XGBoost分类算法—Sentosa_DSML社区版

文章目录 一、XGBoost算法二、Python代码和Sentosa_DSML社区版算法实现对比(一) 数据读入和统计分析(二)数据预处理(三)模型训练与评估(四)模型可视化 三、总结 一、XGBoost算法 关于集成学习中的XGBoost算法原理&#xff0c;已经进行了介绍与总结&#xff0c;相关内容可参考【…...

二分查找一>寻找峰值

1.题目&#xff1a; 2.解析&#xff1a; 暴力遍历代码&#xff1a;O(N),由于该题数据很少所以可以通过 暴力遍历&#xff1a;O(N),由于该题数据很少所以可以通过int index 0;for(int i 1; i < nums.length-1; i) {//某段区域内一直递增&#xff0c;更新就indexif(nums[i]…...

《Linux从小白到高手》理论篇:深入理解Linux的网络管理

今天继续宅家&#xff0c;闲来无事接着写。本篇详细深入介绍Linux的网络管理。 如你所知&#xff0c;在Linux中一切皆文件。网卡在 Linux 操作系统中用 ethX,是由 0 开始的正整数&#xff0c;比如 eth0、eth1… ethX。而普通猫和ADSL 的接口是 pppX&#xff0c;比如 ppp0 等。 …...

redis数据类型介绍

1. 字符串&#xff08;String&#xff09; 字符串是 Redis 中最基本的数据类型&#xff0c;它可以存储任何形式的字符串&#xff0c;包括文本、数字等。字符串类型的操作非常丰富&#xff0c;比如 SET、GET、INCR&#xff08;自增&#xff09;、DECR&#xff08;自减&#xff0…...

一张照片变换古风写真,Flux如何做到?

前言 解锁图像创作新体验&#xff1a;ComfyUI指南 在AI图像生成领域&#xff0c;ComfyUI 已成为不可忽视的力量。它是基于Stable Diffusion的图像生成工具&#xff0c;提供了一个节点式图形用户界面&#xff08;GUI&#xff09;&#xff0c;让用户可以通过简单的拖拽与配置来…...

医药行业的智能合同审查:大模型与AI赋能合规管理

随着医药行业的快速发展&#xff0c;尤其是在全球化背景下&#xff0c;企业在业务拓展、合作协议签订中需要处理大量复杂的合同。合同不仅是业务的法律保障&#xff0c;更是风险管理的重要工具。医药行业合同审查的复杂性源于其严格的合规性要求&#xff0c;包括与政府机构、研…...

幂等性接口实现

1、什么是幂等性 幂等&#xff08;idempotence&#xff09;&#xff0c;这个词源自数学&#xff0c;幂等性是数学中的一个概念&#xff0c;常见于抽象代数中。表达的是N次变换与1次变换的结果相同。简单来说&#xff0c;就是如果方法调用一次和调用多次产生的效果是相同的&…...

C++ 语言特性29 - 协程介绍

一&#xff1a;什么是协程 C20 引入了协程&#xff08;coroutine&#xff09;&#xff0c;这是 C 标准库中一个强大的新特性。协程是一种可以在执行中暂停并随后恢复的函数&#xff0c;允许程序在异步或并行场景下高效管理任务&#xff0c;而不需要传统的线程或复杂的回调机制。…...

[Day 84] 區塊鏈與人工智能的聯動應用:理論、技術與實踐

AI在公共安全中的應用實例 引言 隨著技術的進步&#xff0c;人工智能&#xff08;AI&#xff09;在公共安全領域的應用越來越廣泛。AI不僅能夠提高安全部門的工作效率&#xff0c;還能有效幫助預防和處理各類公共安全事件。從人臉識別、行為分析到災害預測&#xff0c;AI正在…...

八大排序--01冒泡排序

假设有一组数据 arr[]{2&#xff0c;0&#xff0c;3&#xff0c;4&#xff0c;5&#xff0c;7} 方法&#xff1a;开辟两个指针&#xff0c;指向如图&#xff0c;前后两两进行比较&#xff0c;大数据向后冒泡传递&#xff0c;小数据换到前面。 一次冒泡后&#xff0c;数组中最大…...

【Kubernetes】常见面试题汇总(五十)

目录 112.考虑一个公司要向具有各种环境的客户提供所有必需的分发产品的方案。您如何看待他们如何动态地实现这一关键目标&#xff1f; 113.假设一家公司希望在从裸机到公共云的不同云基础架构上运行各种工作负载。在存在不同接口的情况下&#xff0c;公司将如何实现这一目标&…...

Linux 操作系统中的 main 函数参数和环境变量

在聊进程替换之前&#xff0c;有一些基础知识我们得先弄清楚。掌握了这些内容&#xff0c;不仅能让你更轻松地理解 Shell 是如何工作的&#xff0c;还能为之后的进程替换操作铺好路。进程替换说白了就是 Shell 的基本原理&#xff0c;它能把一个命令的输出直接当成另一个命令的…...

Vue项目中通过插件pxtorem实现大屏响应式

一、原理 rem单位代表的是根节点的font-size大小&#xff0c;所以当我们在页面上使用rem去替代px的时候&#xff0c;就可以通过修改根节点font-size的值&#xff0c;动态地让页面上的元素根据不同浏览器宽高下去实现变化。 二、工具 1.postcss-pxtorem 作用&#xff1a;在编…...

(Django)初步使用

前言 Django 是一个功能强大、架构良好、安全可靠的 Python Web 框架&#xff0c;适用于各种规模的项目开发。它的高效开发、数据库支持、安全性、良好的架构设计以及活跃的社区和丰富的文档&#xff0c;使得它成为众多开发者的首选框架。 目录 安装 应用场景 良好的架构设计…...

【星汇极客】单片机竞赛之2024睿抗机器人大赛-火线速递赛道(持续更新)

前言 本人是一名嵌入式学习者&#xff0c;在大学期间也参加了不少的竞赛并获奖&#xff0c;包括但不限于&#xff1a;江苏省电子设计竞赛省一、睿抗机器人国二、中国高校智能机器人国二、嵌入式设计竞赛国三、光电设计竞赛国三、节能减排竞赛国三。 后面会经常写一下博客&…...

生信科研,教授(优青)团队一站式指导:高通量测序技术--农业植物基因组分析、组蛋白甲基化修饰、DNA亲和纯化测序、赖氨酸甲基化

组蛋白甲基化修饰工具(H3K4me3 ChIP-seq) 组蛋白甲基化类型也有很多种&#xff0c;包括赖氨酸甲基化位点H3K4、H3K9、H3K27、H3K36、H3K79和H4K20等。组蛋白H3第4位赖氨酸的甲基化修饰(H3K4)在进化上高度保守&#xff0c;是被研究最多的组蛋白修饰之一。 DNA亲和纯化测序 DNA亲…...

【Immich部署与访问】自托管媒体文件备份服务 Immich 本地化部署与远程访问存储数据

文章目录 前言1.关于Immich2.安装Docker3.本地部署Immich4.Immich体验5.安装cpolar内网穿透6.创建远程链接公网地址7.使用固定公网地址远程访问 前言 本篇文章介绍如何在本地搭建lmmich图片管理软件&#xff0c;并结合cpolar内网穿透实现公网远程访问到局域网内的lmmich&#…...

椭圆曲线密码学(ECC)

一、ECC算法概述 椭圆曲线密码学&#xff08;Elliptic Curve Cryptography&#xff09;是基于椭圆曲线数学理论的公钥密码系统&#xff0c;由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA&#xff0c;ECC在相同安全强度下密钥更短&#xff08;256位ECC ≈ 3072位RSA…...

Mac软件卸载指南,简单易懂!

刚和Adobe分手&#xff0c;它却总在Library里给你写"回忆录"&#xff1f;卸载的Final Cut Pro像电子幽灵般阴魂不散&#xff1f;总是会有残留文件&#xff0c;别慌&#xff01;这份Mac软件卸载指南&#xff0c;将用最硬核的方式教你"数字分手术"&#xff0…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

用机器学习破解新能源领域的“弃风”难题

音乐发烧友深有体会&#xff0c;玩音乐的本质就是玩电网。火电声音偏暖&#xff0c;水电偏冷&#xff0c;风电偏空旷。至于太阳能发的电&#xff0c;则略显朦胧和单薄。 不知你是否有感觉&#xff0c;近两年家里的音响声音越来越冷&#xff0c;听起来越来越单薄&#xff1f; —…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

Golang——7、包与接口详解

包与接口详解 1、Golang包详解1.1、Golang中包的定义和介绍1.2、Golang包管理工具go mod1.3、Golang中自定义包1.4、Golang中使用第三包1.5、init函数 2、接口详解2.1、接口的定义2.2、空接口2.3、类型断言2.4、结构体值接收者和指针接收者实现接口的区别2.5、一个结构体实现多…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...

QT开发技术【ffmpeg + QAudioOutput】音乐播放器

一、 介绍 使用ffmpeg 4.2.2 在数字化浪潮席卷全球的当下&#xff0c;音视频内容犹如璀璨繁星&#xff0c;点亮了人们的生活与工作。从短视频平台上令人捧腹的搞笑视频&#xff0c;到在线课堂中知识渊博的专家授课&#xff0c;再到影视平台上扣人心弦的高清大片&#xff0c;音…...