数据库sqlite

SQLite备忘笔记

2021-06-30  本文已影响0人  熊爸天下_56c7

一. SQLite简介

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

SQLite特点

二. 安装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 说明
csv CSV文件, 逗号分隔值的输出
column 左对齐的列输出
html HTML 的 <table> 代码
line 每行一个值
list 由 .separator 字符串分隔的值
tabs 由 Tab 分隔的值
insert TABLE 表的 SQL 插入(insert)语句
tcl TCL 列表元素
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,
);

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

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

例如:

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;
上一篇下一篇

猜你喜欢

热点阅读