数据库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”命令检查创建的数据库。如下所示:
t3
还可以在SQLite根文件夹中看到创建的数据库:
t4

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]

猜你喜欢

转载自blog.csdn.net/qq_42446456/article/details/80919813