sqlite基础

一.sqlite基础

1.下载与环境配置

下载地址,点击我 这里下载适合你版本的压缩包

  • 您需要下载 sqlite-tools-win32-*.zipsqlite-dll-win32-*.zip 压缩文件。
  • 创建文件夹 C:sqlite,并在此文件夹下解压上面两个压缩文件,将得到 sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件。
  • 添加 C:sqlite 到 PATH 环境变量

注意,配置成功可以在命令端口输入sqlite3命令,出现以下即创建成功:

C:>sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

如果你想在Linux中下载,只需要使用yum -y install sqlite命令下载即可,还不需要环境配置。

2.数据类型

数据类型 描述 存储空间
NULL 空值
INTEGER 整型数 1、2、3、4、6 或 8 字节的有符号整数
REAL 浮点数 8 字节的 IEEE 浮点数
TEXT 文本字符串 根据数据长度和数据库编码进行变化
BLOB 二进制数据 根据数据长度进行变化

注意:SQLite 没有 unsigned 整数类型。所有 INTEGER 类型都是有符号整数类型。如果您需要存储无符号整数,可以考虑将其存储为字符串或使用带符号整数类型,并在应用程序中进行转换。例如,对于一个 4 字节的无符号整数,可以使用 INTEGER 类型进行存储,然后在读取数据时将其转换为无符号整数。另外,SQLite 中的 INTEGER 类型也可以用于存储布尔类型,值为 0 或 1。

二.数据库操作

1.建立数据库

两种方式:

  • 1..open filename 他的本来意思是打开,但如果不存在对应的数据库,就变成了新建立一个数据库的意思。
  • 2.sqlite3 filename正常创建命令

一旦数据库被创建,您就可以使用 SQLite 的 .databases 命令来检查它是否在数据库列表中。

2.导入/导出数据库

sqlite3 testDB.db .dump > testDB.sql           --导出
sqlite3 testDB.db < testDB.sql                 --导入

3.创建表

SQLite 的 CREATE TABLE 语句用于在任何给定的数据库创建一个新表。创建基本表,涉及到命名表、定义列及每一列的数据类型。

CREATE TABLE database_name.table_name(
   column1 datatype  PRIMARY KEY(one or more columns),
   column2 datatype,
   column3 datatype,
   .....
   columnN datatype,
);

基本语法如上所示。

例如,接下来进行演示:

CREATE TABLE student (
  id INTEGER PRIMARY KEY,
  name TEXT
);

这里我们可以使用.tables,该命令用于列出附加数据库中的所有表。

同时这里可以使用.schema 表名得到表的完整信息,其实就是输出创建表的语句。

4.删除表

SQLite 的 DROP TABLE 语句用来删除表定义及其所有相关数据、索引、触发器、约束和该表的权限规范。

例如用来删除刚刚建立的学生表:

DROP TABLE student;

即可删除,你可以通过.tables点命令查看。

5.完整演示

TEu4.jpg

6.附加数据库

假设这样一种情况,当在同一时间有多个数据库可用,您想使用其中的任何一个。SQLite 的 ATTACH DATABASE 语句是用来选择一个特定的数据库,使用该命令后,所有的 SQLite 语句将在附加的数据库下执行。

7.分离数据库

SQLite 的 DETACH DATABASE 语句是用来把命名数据库从一个数据库连接分离和游离出来,连接是之前使用 ATTACH 语句附加的。如果同一个数据库文件已经被附加上多个别名,DETACH 命令将只断开给定名称的连接,而其余的仍然有效。您无法分离 maintemp 数据库。(这两个数据库比较特殊)

8.补充演示

TsRQ.jpg

三.sqlite语句

1.Insert语句

SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。

INSERT INTO 语句有两种基本语法,如下所示:

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

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

2.Select语句

SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。

SQLite 的 SELECT 语句的基本语法如下:

SELECT column1, column2, columnN FROM table_name;

在这里,column1, column2…是表的字段,他们的值即是您要获取的。如果您想获取所有可用的字段,那么可以使用下面的语法:

SELECT * FROM table_name;

在这里如果只是单纯的输出所有字段,上述命令就足够,但是如果你想要在输出基础上使它更美观输出,可以添加其他命令来实现。

3.演示1

TYPv.jpg

4.update语句

SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。

带有 WHERE 子句的 UPDATE 查询的基本语法如下:

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

5.Delate语句

SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。

带有 WHERE 子句的 DELETE 查询的基本语法如下:

DELETE FROM table_name
WHERE [condition];

6.演示2

Ty7h.jpg

四.sqlite结构

1.运算符

运算符是一个保留字或字符,主要用于 SQLite 语句的 WHERE 子句中执行操作,如比较和算术运算。

运算符用于指定 SQLite 语句中的条件,并在语句中连接多个条件。

  • 算术运算符
  • 比较运算符
  • 逻辑运算符
  • 位运算符

算术运算符就不介绍了,基本都是通用的。

比较运算符:

  1. =:等于号,用于检查两个值是否相等。
  2. <>!=:不等于号,用于检查两个值是否不相等。
  3. <:小于号,用于检查一个值是否小于另一个值。
  4. >:大于号,用于检查一个值是否大于另一个值。
  5. <=:小于等于号,用于检查一个值是否小于或等于另一个值。
  6. >=:大于等于号,用于检查一个值是否大于或等于另一个值。

逻辑运算符:

  1. AND:逻辑与运算,只有当所有条件都满足时才返回真。
  2. OR:逻辑或运算,只要有一个条件满足就返回真。
  3. NOT:逻辑非运算,取反操作,将真变成假,将假变成真。
  4. IN:用于比较一个表达式是否在一组值中,例如:SELECT * FROM my_table WHERE column_name IN (value1, value2, value3);
  5. BETWEEN:用于判断某个值是否在指定的范围内,例如:SELECT * FROM my_table WHERE column_name BETWEEN value1 AND value2;
  6. LIKE:用于模糊匹配,例如:SELECT * FROM my_table WHERE column_name LIKE 'value%';
  7. GLOB:类似于 LIKE,但使用的是 Unix shell 风格的通配符,例如:SELECT * FROM my_table WHERE column_name GLOB 'value*';

位运算符:

  1. &:按位与运算,将两个二进制位的值相与,结果为 1 的位表示两个二进制位上都是 1。
  2. |:按位或运算,将两个二进制位的值相或,结果为 1 的位表示至少有一个二进制位上是 1。
  3. ~:按位取反运算,对二进制数进行取反操作。
  4. <<:左移运算,将二进制数向左移动指定的位数,并在低位补零。
  5. >>:右移运算,将二进制数向右移动指定的位数。

2.sqlite表达式

语法:表达式是一个或多个值、运算符和计算值的SQL函数的组合。

SELECT column1, column2, columnN 
FROM table_name 
WHERE [CONDITION | EXPRESSION];

这里说实话就是一般SELECT语句的条件线性组合即可。

3.演示

TtpC.jpg

五.SQlite子句

1.WHERE子句

SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件。

如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用 WHERE 子句来过滤记录,只获取需要的记录。WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等,这些我们将在随后的章节中学习到。

SQLite 的带有 WHERE 子句的 SELECT 语句的基本语法如下:

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

2.LIKE子句

SQLite 的 LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:

  • 百分号 (%)
  • 下划线 (_)

百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。

例如:

T2ty.jpg

3.GLOB子句

SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的,对于下面的通配符,它遵循 UNIX 的语法。

  • 星号 (*)
  • 问号 (?)

星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。

这个子句与LIKE子句的效果一样,只是用的符号不同而已。总体来说,LIKE 子句更适合执行基本的字符串匹配,而 GLOB 子句则更适合实现高级匹配操作。我们学习sqlite只是把它作为工具使用,平时使用LIKE子句即可。

4.LIMIT子句

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

下面是 LIMIT 子句与 OFFSET 子句一起使用时的语法:

SELECT column1, column2, columnN 
FROM table_name
LIMIT [no of rows] OFFSET [row num]

SQLite 引擎将返回从OFFSET 的下一行开始直到给定的 LIMIT为止的所有行。

5.其他子句

子句较多,我们就不一一介绍了。

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

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

  • HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果;

  • DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。

六.说明

这一篇博客是今天学习sqlite的总结,主要是在windows下用命令操作。明天学习C语言链接sqlite和用C语言进行相关操作。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
THE END
分享
二维码

)">
< <上一篇
下一篇>>