数据库SQLite
数据库SQLite
了解最轻巧的数据库SQLite
SQLite,是一款轻型的数据库,占用资源非常低,它的源代码不受版权限制,能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。SQLite的最新版本是SQLite 3,是实现了自给自足的、无服务器的、零配置的、事务性的在世界上最广泛部署的SQL 数据库引擎。
SQLite下载和安装
- 地址:http://www.sqlite.org/download.html 下载预编译的Windows二进制文件。
- 需要下载压缩文件s:qlite-tools-win32-.zip 和 sqlite-dll-win64-.zip 。
- 创建一个文件夹:F:\sqlite放置这些文件
- 进入F:\sqlite目录并打开sqlite3命令。如下图所示:
SQLite创建数据库
在SQLite中,sqlite3命令用于创建新的数据库。
语法:
1.sqlite3 DatabaseName.db
示例:
创建一个名称为“test.db”的数据库:
sqlite3 test.db,执行命令后,就创建了数据库。 可以使用“.databases”命令检查创建的数据库。如下所示:
还可以在SQLite根文件夹中看到创建的数据库:
SQLite创建表
在SQLite中,CREATE TABLE语句用于创建新表。 在创建表时,需要为表指定一个名称并定义表的每列和数据类型。
语法:
- SQLite ANALYZE 语句:
ANALYZE;
or
ANALYZE database_name;
or
ANALYZE database_name.table_name;
- SQLite AND/OR 子句:
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION-1 {AND|OR} CONDITION-2;
- ALTER语句
SQLite ALTER TABLE 语句:
ALTER TABLE table_name ADD COLUMN column_def...;
SQLite ALTER TABLE 语句(Rename):
ALTER TABLE table_name RENAME TO new_table_name;
- SQLite ATTACH DATABASE 语句:
ATTACH DATABASE 'DatabaseName' As 'Alias-Name';
- SQLite BEGIN TRANSACTION 语句:
or
BEGIN EXCLUSIVE TRANSACTION;
- SQLite BETWEEN 子句:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;
- SQLite COMMIT 语句:
COMMIT;
- ALTER语句
SQLite CREATE INDEX 语句:
CREATE INDEX index_name
ON table_name ( column_name COLLATE NOCASE );
SQLite CREATE UNIQUE INDEX 语句:
CREATE UNIQUE INDEX index_name
ON table_name ( column1, column2,...columnN);
SQLite CREATE TABLE 语句:
CREATE TABLE table_name(
column1 datatype,
column2 datatype,
column3 datatype,
.....
columnN datatype,
PRIMARY KEY( one or more columns )
);
SQLite CREATE TRIGGER 语句:
CREATE TRIGGER database_name.trigger_name
BEFORE INSERT ON table_name FOR EACH ROW
BEGIN
stmt1;
stmt2;
....
END;
SQLite CREATE VIEW 语句:
CREATE VIEW database_name.view_name AS
SELECT statement....;
SQLite CREATE VIRTUAL TABLE 语句:
CREATE VIRTUAL TABLE database_name.table_name USING weblog( access.log );
or
CREATE VIRTUAL TABLE database_name.table_name USING fts3( );
- SQLite COMMIT TRANSACTION 语句:
COMMIT;
- SQLite COUNT 子句:
SELECT COUNT(column_name)
FROM table_name
WHERE CONDITION;
- SQLite DELETE 语句:
DELETE FROM table_name
WHERE {CONDITION};
- SQLite DETACH DATABASE 语句:
DETACH DATABASE 'Alias-Name';
- SQLite DISTINCT 子句:
SELECT DISTINCT column1, column2....columnN
FROM table_name;
- SQLite Insert语句
SQLite 的 INSERT INTO 语句用于向数据库的某个表中添加新的数据行。
语法如下:
①INSERT INTO TABLE_NAME [(column1, column2, column3,...columnN)]
VALUES (value1, value2, value3,...valueN);
②INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
- SQLite Select语句
SQLite 的 SELECT 语句用于从 SQLite 数据库表中获取数据,以结果表的形式返回数据。这些结果表也被称为结果集。
语法如下:
①SELECT column1, column2, columnN FROM table_name;
②SELECT * FROM table_name;
- SQLite 表达式
表达式是一个或多个值、运算符和计算值的SQL函数的组合。SQL 表达式与公式类似,都写在查询语言中。您还可以使用特定的数据集来查询数据库。
①SQLite - 布尔表达式
SQLite 的布尔表达式在匹配单个值的基础上获取数据。语法如下:
SELECT column1, column2, columnN
FROM table_name
WHERE SINGLE VALUE MATCHING EXPRESSION;`
②SQLite - 数值表达式
这些表达式用来执行查询中的任何数学运算。语法如下:
SELECT numerical_expression as OPERATION_NAME
[FROM table_name WHERE CONDITION] ;
③SQLite - 日期表达式
日期表达式返回当前系统日期和时间值,这些表达式将被用于各种数据操作。
sqlite> SELECT CURRENT_TIMESTAMP;
CURRENT_TIMESTAMP = 2018-07-8 09:34:34
SQLite Where子句
SQLite的 WHERE 子句用于指定从一个表或多个表中获取数据的条件。如果满足给定的条件,即为真(true)时,则从表中返回特定的值。您可以使用 WHERE 子句来过滤记录,只获取需要的记录。WHERE 子句不仅可用在 SELECT 语句中,它也可用在 UPDATE、DELETE 语句中,等等。
语法如下:
SELECT column1, column2, columnN
FROM table_name
WHERE [condition]
SQLite Update语句
SQLite 的 UPDATE 查询用于修改表中已有的记录。可以使用带有 WHERE 子句的 UPDATE 查询来更新选定行,否则所有的行都会被更新。
语法如下:
UPDATE table_name
SET column1 = value1, column2 = value2...., columnN = valueN
WHERE [condition];
SQLite Delete语句
SQLite 的 DELETE 查询用于删除表中已有的记录。可以使用带有 WHERE 子句的 DELETE 查询来删除选定行,否则所有的记录都会被删除。
语法如下:
DELETE FROM table_name
WHERE [condition];
SQLite Like子句
SQLite 的 LIKE 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,LIKE 运算符将返回真(true),也就是 1。这里有两个通配符与 LIKE 运算符一起使用:
百分号(%)代表零个、一个或多个数字或字符。下划线(_)代表一个单一的数字或字符。这些符号可以被组合使用。% 和 _ 的基本语法如下:
SELECT column_list
FROM table_name
WHERE column LIKE 'XXXX%'
or
SELECT column_list
FROM table_name
WHERE column LIKE '%XXXX%'
or
SELECT column_list
FROM table_name
WHERE column LIKE 'XXXX_'
or
SELECT column_list
FROM table_name
WHERE column LIKE '_XXXX'
or
SELECT column_list
FROM table_name
WHERE column LIKE '_XXXX_'
SQite Glob子句
SQLite 的 GLOB 运算符是用来匹配通配符指定模式的文本值。如果搜索表达式与模式表达式匹配,GLOB 运算符将返回真(true),也就是 1。与 LIKE 运算符不同的是,GLOB 是大小写敏感的,对于下面的通配符,它遵循 UNIX 的语法。
星号(*)代表零个、一个或多个数字或字符。问号(?)代表一个单一的数字或字符。这些符号可以被组合使用。
- 和 ? 的基本语法如下:
SELECT FROM table_name
WHERE column GLOB 'XXXX*'
or
SELECT FROM table_name
WHERE column GLOB '*XXXX*'
or
SELECT FROM table_name
WHERE column GLOB 'XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX'
or
SELECT FROM table_name
WHERE column GLOB '?XXXX?'
or
SELECT FROM table_name
WHERE column GLOB '????'
SQLite Limit子句
SQLite 的 LIMIT 子句用于限制由 SELECT 语句返回的数据数量。
语法如下:
SELECT column1, column2, columnN
FROM table_name
LIMIT [no of rows]
SQLite Order By
SQLite 的 ORDER BY 子句是用来基于一个或多个列按升序或降序顺序排列数据。
语法如下:
SELECT column-list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
SQLite Group By
SQLite 的 GROUP BY 子句用于与 SELECT 语句一起使用,来对相同的数据进行分组。
在 SELECT 语句中,GROUP BY 子句放在 WHERE 子句之后,放在 ORDER BY 子句之前。
下面给出了 GROUP BY 子句的基本语法。GROUP BY 子句必须放在 WHERE 子句中的条件之后,必须放在 ORDER BY 子句之前。
SELECT column-list
FROM table_name
WHERE [ conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
SQLite Having子句
HAVING 子句允许指定条件来过滤将出现在最终结果中的分组结果。
WHERE 子句在所选列上设置条件,而 HAVING 子句则在由 GROUP BY 子句创建的分组上设置条件。
下面是 HAVING 子句在 SELECT 查询中的位置:
SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
在一个查询中,HAVING 子句必须放在 GROUP BY 子句之后,必须放在 ORDER BY 子句之前。下面是包含 HAVING 子句的 SELECT 语句的语法:
SELECT column1, column2
FROM table1, table2
WHERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
SQLite Dinstinct关键字
SQLite 的 DISTINCT 关键字与 SELECT 语句一起使用,来消除所有重复的记录,并只获取唯一一次记录。
有可能出现一种情况,在一个表中有多个重复的记录。当提取这样的记录时,DISTINCT 关键字就显得特别有意义,它只获取唯一一次记录,而不是获取重复记录。
用于消除重复记录的 DISTINCT 关键字的基本语法如下:
SELECT DISTINCT column1, column2,.....columnN
FROM table_name
WHERE [condition]
上一篇: Python 中groupby方法运用
下一篇: Docker子命令汇总与解析