這個SQLite快速入門教程教你如何有效地開始學(xué)習(xí)并使用SQLite。通過本教程的實踐操作學(xué)習(xí)之后,相信你應(yīng)該可以了解并能夠熟練地使用SQLite了。
如果您一直在使用其他關(guān)系數(shù)據(jù)庫管理系統(tǒng),例如:MySQL,PostgreSQL,Oracle,Microsoft SQL Sever等,并且您聽說過SQLite。那么現(xiàn)在就可更多了解和學(xué)習(xí)SQLite了。
如果您想使用SQLite數(shù)據(jù)庫而不是簡單文件來管理應(yīng)用程序中的結(jié)構(gòu)化數(shù)據(jù)。并想要立即開始使用SQLite,以確定SQLite是否可以用于您的應(yīng)用程序。
如果你是剛剛開始學(xué)習(xí)SQL,并希望使用SQLite作為數(shù)據(jù)庫系統(tǒng)。
如果您是上述人員之一,這個SQLite教程是很適合您。
SQLite是一種開源,零配置,獨立的,獨立的,事務(wù)關(guān)系數(shù)據(jù)庫引擎,旨在嵌入到應(yīng)用程序中。
如果這是您第一次使用SQLite,應(yīng)該先學(xué)習(xí)這一部分。 按照這3個簡單的步驟,快速開始使用SQLite。
SQLite以其零配置而聞名,所以不需要復(fù)雜的設(shè)置或管理。 下面來看看如何在系統(tǒng)上安裝SQLite。
按照以下步驟進行:
打開SQLite官方網(wǎng)站,轉(zhuǎn)到下載頁面 - http://www.sqlite.org/download.html 并下載預(yù)編譯的Windows二進制文件。
下載sqlite-dll和sqlite-shell的zip文件以及sqlite-tools-win32-x86-3170000.zip文件。
創(chuàng)建一個文件夾:D:/software/sqlite并放置這些文件。

D:/software/sqlite目錄并打開sqlite3命令。它將如下所示:D:\software\sqlite> sqlite3
SQLite version 3.18.0 2017-03-28 18:48:43
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database.
sqlite>
上述方法有助于永久創(chuàng)建數(shù)據(jù)庫,附加數(shù)據(jù)庫和分離數(shù)據(jù)庫。在SQLite中執(zhí)行CRUD操作有另一種方法。在這種方法中,不需要設(shè)置路徑。下面我們來看看如何操作 -
sqlite-tools-win32-x86-3170000.zip。D:/software/sqlite。sqlite3.exe應(yīng)用程序,得到如下結(jié)果 -
現(xiàn)在就可以在這里執(zhí)行SQLite查詢。 但是在這里,數(shù)據(jù)是暫時的,一旦你關(guān)閉了電腦,就將失去操作過的所有數(shù)據(jù)記錄。因為使用這種方法不能創(chuàng)建,附加或分離數(shù)據(jù)庫。
當(dāng)前,幾乎所有的Linux操作系統(tǒng)都將SQLite作為一部分一起發(fā)布。可使用以下命令來檢查你的機器上是否安裝了SQLite。
$ sqlite3
SQLite version 3.7.15.2 2013-01-09 11:53:05
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>
如果沒有看到上面的結(jié)果,那么你的Linux機器上就還沒有安裝SQLite??梢园凑找韵虏襟E安裝SQLite:
打開轉(zhuǎn)到SQLite下載頁面( http://www.sqlite.org/download.html ),并從源代碼部分下載文件:sqlite-autoconf-*.tar.gz 。
按照以下步驟操作:
$ tar xvfz sqlite-autoconf-3071502.tar.gz
$ cd sqlite-autoconf-3071502
$ ./configure --prefix=/usr/local
$ make
$ make install
語法是一組獨特的規(guī)則和約定。 以下是SQLite的語法列表。
區(qū)分大小寫:
GLOB和glob在SQLite語句中有不同的含義。注釋:
- ”字符。/*”字符開始,并延伸至下一個“*/”字符對所包括的內(nèi)容視為注釋。SQLite語句
所有的SQLite語句都是以關(guān)鍵字(如:SELECT,INSERT,UPDATE,DELETE,ALTER,DROP等)開始的。所有語句都以分號(;)結(jié)尾。
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;
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語句的語法:
BEGIN;
-- or
BEGIN EXCLUSIVE TRANSACTION;
SQLite BETWEEN語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name BETWEEN val-1 AND val-2;
SQLite COMMIT Statement:
COMMIT;
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 DROP INDEX語句的語法:
DROP INDEX database_name.index_name;
SQLite DROP TABLE語句的語法:
DROP TABLE database_name.table_name;
SQLite DROP VIEW語句的語法:
DROP INDEX database_name.view_name;
SQLite DROP TRIGGER 語句的語法:
DROP INDEX database_name.trigger_name;
SQLite EXISTS語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name EXISTS (SELECT * FROM table_name );
SQLite EXPLAIN語句的語法:
EXPLAIN INSERT statement...;
-- or
EXPLAIN QUERY PLAN SELECT statement...;
SQLite GLOB語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name GLOB { PATTERN };
SQLite GROUP BY語句的語法:
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name;
SQLite HAVING語句的語法:
SELECT SUM(column_name)
FROM table_name
WHERE CONDITION
GROUP BY column_name
HAVING (arithematic function condition);
SQLite INSERT INTO語句的語法:
INSERT INTO table_name( column1, column2....columnN)
VALUES ( value1, value2....valueN);
SQLite IN語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name IN (val-1, val-2,...val-N);
SQLite Like語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name LIKE { PATTERN };
SQLite NOT IN語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE column_name NOT IN (val-1, val-2,...val-N);
SQLite ORDER BY語句的語法:
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION
ORDER BY column_name {ASC|DESC};
SQLite PRAGMA語句的語法:
PRAGMA pragma_name;
有關(guān)pragma的幾個示例:
PRAGMA page_size;
PRAGMA cache_size = 1024;
PRAGMA table_info(table_name);
SQLite RELEASE SAVEPOINT語句的語法:
RELEASE savepoint_name;
SQLite REINDEX語句的語法:
REINDEX collation_name;
REINDEX database_name.index_name;
REINDEX database_name.table_name;
SQLite ROLLBACK語句的語法:
ROLLBACK;
-- or
ROLLBACK TO SAVEPOINT savepoint_name;
SQLite SAVEPOINT語句的語法:
SAVEPOINT savepoint_name;
SQLite SELECT語句的語法:
SELECT column1, column2....columnN
FROM table_name;
SQLite UPDATE語句的語法:
UPDATE table_name
SET column1 = value1, column2 = value2....columnN=valueN
[ WHERE CONDITION ];
SQLite VACUUM語句的語法:
VACUUM;
SQLite WHERE Clause:
SELECT column1, column2....columnN
FROM table_name
WHERE CONDITION;
本節(jié)介紹可用于SQLite的基本SQL語句。首先將學(xué)習(xí)如何創(chuàng)建數(shù)據(jù)庫,并執(zhí)行CURD操作數(shù)據(jù)。 如果您已經(jīng)熟悉SQL(那最好不過,不熟悉也沒有關(guān)系),則會注意到SQLite中SQL方言和SQL標(biāo)準(zhǔn)之間的差異。
DISTINCT子句從表查詢唯一行(去除重復(fù)行)。%)和下劃線(_)。GROUP BY子句可用于分組總結(jié)數(shù)據(jù)以進行報告。GROUP BY子句分組匯總的組的條件。inner join子句查詢來自多個表的數(shù)據(jù)。left join子句組合查詢來自多個表的數(shù)據(jù)。left join和union子句來模擬SQLite中的完整外連接。這部分將介紹如何使用insert,update和delete語句更新表中的數(shù)據(jù)。
SQLite insert語句 – 將行數(shù)據(jù)插入到表中
SQLite update語句 – 更新表中存在行數(shù)據(jù)記錄。
SQLite delete語句 – 從表中刪除存在行數(shù)據(jù)記錄。
在本節(jié)中,將演示如何使用SQL數(shù)據(jù)定義語言創(chuàng)建數(shù)據(jù)庫對象,如:表,視圖,索引。
CREATE TABLE語句在數(shù)據(jù)庫中創(chuàng)建新表。PRIMARY KEY約束來定義表的主鍵。AUTOINCREMENT屬性的工作原理以及為什么情況下應(yīng)該避免使用它。ALTER TABLE語句將新行添加到現(xiàn)有表中并重命名表。 還提供執(zhí)行其他操作的步驟,例如:刪除列,重命名列等。SQLite聚合函數(shù)
聚合函數(shù)將多行的值組合成一個值,該值可以作為分組的度量,例如:最小值,最大值,平均值,總數(shù)等。SQLite支持以下聚合函數(shù):
Java連接SQLite
Java連接SQLite部分中演示如何使用Java JDBC API與SQLite數(shù)據(jù)庫進行交互。參考:http://www.yiibai.com/sqlite/java-with-sqlite.html
Python連接SQLite
Python連接SQLite中演示如何使用Python sqlite3模塊處理SQLite數(shù)據(jù)庫。參考:http://www.yiibai.com/sqlite/python-with-sqlite.html
PHP連接SQLite
本節(jié)介紹如何使用PHP PDO與SQLite數(shù)據(jù)庫進行交互。將引導(dǎo)您完成設(shè)置PHP項目結(jié)構(gòu),連接到SQLite數(shù)據(jù)庫和執(zhí)行常見數(shù)據(jù)庫操作的步驟。參考:http://www.yiibai.com/sqlite/php-with-sqlite.html