阅读 102

SQLite备忘笔记

一. SQLite简介

SQLite是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库,这意味着与其他数据库不一样,您不需要在系统中配置。
就像其他数据库,SQLite 引擎不是一个独立的进程,可以按应用程序需求进行静态或动态连接。SQLite 直接访问其存储文件。

SQLite特点

  • 不需要一个单独的服务器进程或操作的系统(无服务器的)。

  • SQLite 不需要配置,这意味着不需要安装或管理。

  • 一个完整的 SQLite 数据库是存储在一个单一的跨平台的磁盘文件。

  • SQLite 是非常小的,是轻量级的,完全配置时小于 400KiB,省略可选功能配置时小于250KiB。

  • SQLite 是自给自足的,这意味着不需要任何外部的依赖。

  • SQLite 事务是完全兼容 ACID 的,允许从多个进程或线程安全访问。

  • SQLite 支持 SQL92(SQL2)标准的大多数查询语言的功能。

  • SQLite 使用 ANSI-C 编写的,并提供了简单和易于使用的 API。

  • SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中运行。

二. 安装SQLite

  1. 下载
    https://www.sqlite.org/download.html 我们直接选择预编译版本就行了

  1. 安装
    创建文件夹 C:\sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。

  2. 创建环境变量
    添加 C:\sqlite 到 PATH 环境变量

  3. 测试环境
    命令行输入: sqlite3 --version可以查看版本信息 输入sqlite3可以进入sqlite3

三. SQLite 的点命令

如需获取可用的点命令的清单,可以在任何时候输入 ".help"

具体点命令

1. 退出 SQLite 提示符

.exit
.quit
2. 显示各种设置的当前值

.show
3. 开启或关闭统计

.stats ON|OFF
#例如:
.stats ON
4. 超时时间

.timeout MS
5. 开启或关闭头部显示

.header(s) ON|OFF
6. 设置输出模式

.mode MODE
MODE说明
csvCSV文件, 逗号分隔值的输出
column左对齐的列输出
htmlHTML 的 <table> 代码
line每行一个值
list由 .separator 字符串分隔的值
tabs由 Tab 分隔的值
insertTABLE 表的 SQL 插入(insert)语句
tclTCL 列表元素
7. 备份数据库到文件

.backup ?DB? FILE
# 例如:.backup main c:\sqlite
8. 发生错误后是否停止

.bail ON|OFF
# 例如:
.bail ON
9. 列出数据库的名称及其所依附的文件

.databases

四. 数据库操作

1. 创建数据库

#在命令行中
sqlite3 students.db
# 或者在sqlite3命令行中: 
.open students.db
# 存在则直接会打开,不存在就创建它。

五. 表操作

1. 创建表

CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,);
  • 可以使用 SQLIte 命令中的 .tables 命令来验证表是否已成功创建

  • 可以使用 .schema查看创建信息 (也可以只查看单个的.schema SCHOOL)

关于每一列的约束.可以参考下表:

约束说明
NOT NULL确保某列不能有 NULL 值
UNIQUE确保某列中的所有值是不同的
PRIMARY KEY唯一标识数据库表中的各行/记录
DEFAULT当某列没有指定值时,为该列提供默认值
AUTOINCREMENT自动递增
CHECKCHECK 约束确保某列中的所有值满足一定条件

例如:

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL UNIQUE,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL    DEFAULT 50000.00,
   TAXRATE       REAL    CHECK(TAXRATE> 0));

2. 删除表

DROP TABLE database_name.table_name;
#例如: DROP TABLE TEST

六. 数据操作

1. 插入数据(Insert 语句)

方法1: 要确保值的顺序与列在表中的顺序一致

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

方法2:

INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]  
VALUES (value1, value2, value3,...valueN);

在这里,column1, column2,...columnN 是要插入数据的表中的列的名称。

例如

INSERT INTO STUDENT VALUES (1,'TOM',13,'tingshua');

2. 更新数据

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

例如:

UPDATE STUDENT SET AGE=16 WHERE NAME='TOM';

3. 删除数据

DELETE FROM table_name
WHERE [condition];

七. 查询操作

1. SELECT语句

SELECT * FROM table_name;
SELECT column1, column2, columnN FROM table_name;

2. 带条件的查询

SELECT * FROM STUDENT WHERE AGE>12;SELECT * FROM STUDENT WHERE AGE%2 == 1;SELECT * FROM STUDENT WHERE AGE IN (11,13);SELECT * FROM STUDENT WHERE AGE BETWEEN 10 AND 15;SELECT * FROM STUDENT WHERE NAME LIKE 'a%%';

下面是sqlite常用的运算符

3. 方言LIMIT  OFFSET

SQLite 的 LIMIT 子句用于限制由 SELECT 语句返回的数据数量。

4. 排序 ORDER BY

SQLite 的 ORDER BY 子句是用来基于一个或多个列按升序或降序顺序排列数据。

5. 分组 GROUP BY

SQLite 的 GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。

在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。

假设我们有这样一个表:

我们看到里面有三个James, 两个paul , 我们可以把他们分别视为一组来统计

6. HAVING子句 (子筛选)

HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。
WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。

7. DISTINCT 消除所有重复

SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。
有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。

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

八. 常用函数

1.  COUNT 函数

COUNT 聚集函数是用来计算一个数据库表中的行数。

SELECT COUNT(AGE) FROM STUDENT WHERE AGE>14;

2. MAX 函数

MAX 聚合函数允许我们选择某列的最大值

SELECT MAX(salary) FROM COMPANY;

3.  MIN 函数

MIN 聚合函数允许我们选择某列的最小值

4. AVG 函数

SELECT AVG(salary) FROM COMPANY;

5. SUM 函数

SUM 聚合函数允许为一个数值列计算总和。

SELECT SUM(salary) FROM COMPANY;

6. ABS 函数

ABS 函数返回数值参数的绝对值。

SELECT ABS(salary) FROM COMPANY;

7. UPPER 函数 /  LOWER 函数

UPPER 函数把字符串转换为大写字母。 / SQLite LOWER 函数把字符串转换为小写字母。

SELECT UPPER(NAME),AGE FROM STUDENT;

8. LENGTH 函数

LENGTH 函数返回字符串的长度。

SELECT UPPER(NAME),AGE FROM STUDENT WHERE LENGTH(NAME)=3;

九. 事务控制

1. 开始事务

BEGIN;

2. 提交事务

COMMIT;

3. 回滚事务

ROLLBACK;



作者:熊爸天下_56c7
链接:https://www.jianshu.com/p/e005a747bd37


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐