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.rhkb.cn/news/439453.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件设计师——数据结构

本博文所有内容来自于B站up主zst_2001 目录 时间复杂度 常规数据结构 链表 栈与队列 ​编辑 串 数组 树 卡特兰数&#xff1a; 平衡二叉树 哈夫曼 图 AOV 排序 顺序 折半 哈希 时间复杂度 常规数据结构 链表 栈与队列 串 找i位置前面的字符串&#xff0c…

TIM输入捕获及其应用场景

一&#xff0c;TIM输入捕获介绍&#xff08;IC&#xff08;Input Capture&#xff09;输入捕获&#xff09; 定义&#xff1a;输入捕获模式下&#xff0c;当通道输入引脚出现指定电平跳变&#xff08;如上升沿或下降沿&#xff09;时&#xff0c;当前定时器的计数值&#xff0…

【Matlab案例】imageJ + matlab 实现物体轨迹追踪及路径彩色上色

我们经常看到一些文献中对细胞或者粒子的运动轨迹进行上色&#xff0c;不同的颜色对应着不同的时间。一纯色的轨迹实现起来很方便&#xff0c;彩色的轨迹如何实现呢&#xff1f;本文使用imageJ获取轨迹数据&#xff0c;使用matlab对轨迹进行上色。结果如下&#xff1a; 1. im…

酒店新科技,飞睿智能毫米波雷达人体存在感应器,智能照明创新节能新风尚

在这个日新月异的时代&#xff0c;科技正以未有的速度改变着我们的生活。从智能手机到智能家居&#xff0c;每一个细微之处都渗透着科技的魅力。而今&#xff0c;这股科技浪潮已经席卷到了酒店行业&#xff0c;为传统的住宿体验带来了翻天覆地的变化。其中&#xff0c;引人注目…

Linux驱动开发(速记版)--设备树

第五十二章 初识设备树 52.1 设备树介绍 设备树&#xff08;Device Tree&#xff09;是嵌入式系统和Linux内核中用于描述硬件的一种机制。 设备树概述 目的&#xff1a;描述硬件设备的特性、连接关系和配置信息。 优势&#xff1a;与平台无关&#xff0c;提高系统可移植性和可…

外贸网站怎么搭建对谷歌seo比较好?

外贸网站怎么搭建对谷歌seo比较好&#xff1f;搭建一个网站自然不复杂&#xff0c;但要想搭建一个符合谷歌seo规范的网站&#xff0c;那就要多注意了&#xff0c;你的网站做的再酷炫&#xff0c;再花里胡哨&#xff0c;但如果页面都是js代码&#xff0c;或者页面没有源代码内容…

相机基础概念

景深&#xff1a; 景深的定义 DOF:depth of filed 是指在摄影机镜头或其他成像器前沿能够取得清晰图像的成像所测定的被摄物体前后距离范围。光圈、镜头、及焦平面到拍摄物的距离是影响景深的重要因素。定义3&#xff1a;在镜头前方&#xff08;焦点的前、后&#xff09;有一…

【RISCV指令集手册】向量扩展v1.0

概述 从rvv 0.9说起 此前写过向量扩展0.9的阅读记录&#xff0c;三年已过&#xff0c;本以为不再参与RVV的相关开发&#xff0c;奈何造化弄人&#xff0c;旧业重操&#xff0c;真就世事难料呀。 总的来说1.0版本相比0.9版本的扩充了较多内容&#xff0c;但大部分为指令功能的…

Qt中使用QPainter绘制阴影

困扰了很久的问题&#xff0c;今天终于明白了如何绘制QGraphicDropShadowEffect同样效果的阴影&#xff0c;故写下这篇文章分享给大家。其方法是复制Qt源代码中QGraphicDropShadowEffect绘制实现的核心代码然后稍作修改实现&#xff0c;先看效果和封装过后的源代码&#xff1a;…

深度探索Kali Linux的精髓与实践应用

Kali Linux简介 Kali Linux作为全球网络安全领域的首选操作系统之一&#xff0c;其强大的功能性及广泛的适用范围令人瞩目。除了上述基础介绍外&#xff0c;让我们深入探究Kali Linux的几个关键特性及其在实际操作中的具体应用案例。 Kali工具集成&#xff1a;全面的安全工具…

计算机视觉——图像修复综述篇

目录 1. Deterministic Image Inpainting 判别器图像修复 1.1. sigle-shot framework (1) Generators (2) training objects / Loss Functions 1.2. two-stage framework 2. Stochastic Image Inpainting 随机图像修复 2.1. VAE-based methods 2.2. GAN-based methods …

【C++】“list”的介绍和常用接口的模拟实现

【C】“list”的介绍和常用接口的模拟实现 一. list的介绍1. list常见的重要接口2. list的迭代器失效 二. list常用接口的模拟实现&#xff08;含注释&#xff09;三. list与vector的对比 一. list的介绍 list是可以在常数范围内在任意位置进行插入和删除的序列式容器&#xf…

国庆普及模拟赛-5

题目链接&#xff1a; file:///C:/Users/Administrator/Desktop/%E4%B8%8B%E5%8F%91%E6%96%87%E4%BB%B61005/20241005.pdf T1&#xff1a; 题目分析&#xff1a;不需要进行模拟&#xff0c;想要获得分数最大化&#xff0c;只需要将大的数据相加&#xff0c;再减去小的数据。 …

C语言进阶版第16课—自定义类型:结构体

文章目录 1. 结构体类型的声明和初始化2. 结构体自引用3. 结构体内存对齐3.1 结构体内存对齐规则3.2 修改默认对齐数 4. 结构体传参4. 结构体实现位段5. 位段使用的注意事项 1. 结构体类型的声明和初始化 结构体在使用之前都要对其类型进行声明&#xff0c;关键字是struct&…

Pandas -----------------------基础知识(主要matplotlib知识)(七)

Dataframe变形 转置 T import pandas as pddata {2022: [10, 30, 15, 20], 2023: [40, 50, 36, 21]} df1 pd.DataFrame(data, index[q1, q2, q3, q4]) print("原始数据框&#xff1a;") print(df1)df2 df1.Tprint("转换后数据框&#xff1a;") print(df…

计算机视觉算法知识详解(含代码示例)

✅作者简介&#xff1a;2022年博客新星 第八。热爱国学的Java后端开发者&#xff0c;修心和技术同步精进。 &#x1f34e;个人主页&#xff1a;Java Fans的博客 &#x1f34a;个人信条&#xff1a;不迁怒&#xff0c;不贰过。小知识&#xff0c;大智慧。 &#x1f49e;当前专栏…

FRP搭建内网穿透:云服务端 + 家用Linux/Windows主机【2024】

介绍 FRP是一个可以自己搭建内网穿透服务的开源项目&#xff0c;开源地址直达&#xff1a; FRP-GitHub 实际上frp由两个程序组成 ①frps:在服务端运行的程序 ②frpc:在客户端运行的程序 运作方式示意图如下 服务端 因为服务上使用了1Panel面板&#xff0c;直接在应用商店安…

【算法系列-链表】删除链表的倒数第N个结点

【算法系列-链表】删除链表的倒数第N个结点 文章目录 【算法系列-链表】删除链表的倒数第N个结点1. 算法分析&#x1f6f8;2. 模拟解决问题2.1 思路分析&#x1f3af;2.2 代码示例&#x1f330; 3. 双指针(快慢指针)解决问题3.1 思路分析&#x1f3af;3.2 代码示例&#x1f330…

软件验证与确认实验二-单元测试

目录 1. 实验目的及要求.................................................................................................... 3 2. 实验软硬件环境.................................................................................................... 3 …

进阶岛第4关:InternVL 多模态模型部署微调实践

准备InternVL模型 我们使用InternVL2-2B模型。该模型已在share文件夹下挂载好&#xff0c;现在让我们把移动出来。 mkdir -p /root/project/joke/modelcp -r /root/share/new_models/OpenGVLab/InternVL2-2B /root/project/joke/model # 不用ln -s 准备环境 这里我们来手动配…