SQL Lite 备忘录1

目录

[1. SQLite 是什么?](#1. SQLite 是什么?)

[2. SQLite 和 MySQL 最大区别是什么?](#2. SQLite 和 MySQL 最大区别是什么?)

[3. SQLite 支持哪些数据类型?](#3. SQLite 支持哪些数据类型?)

[4. 什么是 SQLite 动态类型?](#4. 什么是 SQLite 动态类型?)

[5. SQLite 自增主键怎么写?](#5. SQLite 自增主键怎么写?)

[6. SQLite 怎么查看所有表?](#6. SQLite 怎么查看所有表?)

[7. SQLite 怎么查看表结构?](#7. SQLite 怎么查看表结构?)

[8.sqlite 左右连接全连接及关键字](#8.sqlite 左右连接全连接及关键字)

1. SQLite 是什么?

标准答案:

SQLite 是一个嵌入式、轻量级、文件型关系数据库

它不需要单独启动数据库服务器,数据库通常直接存储在一个文件中。应用程序通过 SQLite 库直接读写这个数据库文件。

特点:

  • 无需独立服务器
  • 单文件数据库
  • 支持标准 SQL
  • 支持事务和 ACID
  • 支持索引、触发器、视图、外键
  • 适合移动端、桌面软件、嵌入式设备、本地数据存储
  • 不支持存储过程

追问:为什么 SQLite 不需要启动服务?

因为 SQLite 是嵌入到应用程序中的数据库引擎,而 MySQL/PostgreSQL 通常需要独立的数据库服务进程。

2. SQLite 和 MySQL 最大区别是什么?

最大的区别是架构:

SQLite MySQL(C/S架构)
嵌入式数据库 客户端/服务器数据库
数据通常是本地文件 数据由数据库服务管理
不需要启动服务 通常需要数据库服务
没有传统用户权限体系 有用户、角色、权限体系
单机使用非常方便 更适合多客户端、集中式服务
并发写入能力有限 更适合高并发写入

一句话:

SQLite 是嵌入式文件型数据库,MySQL 是服务器型数据库。

3. SQLite 支持哪些数据类型?

严格来说,SQLite 有 5 种 Storage Class(存储类)

复制代码
NULL
INTEGER
REAL
TEXT
BLOB

其中:

  • NULL:空值
  • INTEGER:整数
  • REAL:浮点数
  • TEXT:文本
  • BLOB:二进制数据

4. 什么是 SQLite 动态类型?

SQLite 的一个重要特点是:

列的声明类型不是绝对限制,实际数据有自己的存储类型。

sql 复制代码
CREATE TABLE test (
    value INTEGER
) STRICT;

STRICT 表可以进行更严格的类型检查

5. SQLite 自增主键怎么写?

推荐:

sql 复制代码
CREATE TABLE users (
    id INTEGER PRIMARY KEY,
    name TEXT
);

你没有提供 ID,SQLite 会给这一行分配一个 ROWID

如果写:

复制代码
id INTEGER PRIMARY KEY AUTOINCREMENT

则会使用 AUTOINCREMENT 机制,避免重用已经删除的 ROWID。

重要:

"给我一个这个表历史上从没用过的更大的 ROWID。

6. SQLite 怎么查看所有表?

sql 复制代码
SELECT name
FROM sqlite_schema
WHERE type = 'table';

也可以使用:

sql 复制代码
SELECT name
FROM sqlite_master
WHERE type = 'table';

sqlite_master 是经典写法,sqlite_schema 是更推荐的现代名称。

7. SQLite 怎么查看表结构?

复制代码
PRAGMA table_info(users);

如果需要查看更多信息,可以了解:

复制代码
PRAGMA table_xinfo(users);

8.sqlite 左右连接全连接及关键字

  1. 常用关键字SELECT 查询、INSERT 插入、UPDATE 修改、DELETE 删除;WHERE 筛选、ORDER BY 排序、GROUP BY 分组、HAVING 分组筛选、LIMIT 限制数量、DISTINCT 去重。

WHERE 筛选分组前的数据,HAVING 筛选分组后的数据。

  1. JOIN 表连接

  2. INNER JOIN 只保留两表匹配的数据;

  3. LEFT JOIN 保留左表全部数据,右表匹配不到则为 NULL

  4. RIGHT JOIN 保留右表全部数据;

  5. FULL OUTER JOIN 保留两表全部数据,匹配不到的一方为 NULL

相关推荐
躺不平的理查德2 天前
SQL Lite 备忘录2
sqlite
东莞市云毅网络有限公司3 天前
用标准库做网页正文抽取:从 HTML 到结构化字段的轻量实现
python·sqlite·自动化运维·geo·数据监测
小静AI工程实验室4 天前
Python 爬虫翻页为何重复、漏数据?SQLite 复现 OFFSET、复合游标与快照的 8 项检查
爬虫·python·sqlite
刘天远4 天前
Agent最小权限实现:策略表、临时令牌与撤权回归
java·jvm·人工智能·sqlite
cpolar技术支持5 天前
AI Agent 跑半小时就忘目标?用检查点与任务账本做可恢复长任务,cpolar 分享只读时间线
python·sqlite·cpolar·ai agent·任务恢复
东莞市云毅网络有限公司6 天前
用 SQLite FTS5 给企业知识库做问答检索原型:中文二元切分与 BM25 排序
python·sqlite·自动化运维·geo·数据监测
XiaoZhenHua987 天前
C# WinForms + 西门子S7 + SQLite + EPPlus生产数据采集系统架构设计
系统架构·sqlite·c#
张人玉8 天前
基于 C# / .NET 8 + Windows Forms + SQLite 的桌面银行业务演示系统——华夏示范银行管理系统
windows·sqlite·c#·.net
烂蜻蜓8 天前
Django入门教程(三):django-admin与manage.py命令完全指南
数据库·django·sqlite