數據庫SQLite
標簽: 數據庫SQLite 數據庫 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]
智能推薦
數據庫SQLite<一>
一、SQLite數據庫簡介 SQLite第一個Alpha版本誕生于2000年5月,它是一款輕量級數據庫,它的設計目標是嵌入式的,占用資源非常的低,只需要幾百K的內存就夠了。SQLite已經被多種軟件和產品使用,Mozilla FireFox就是使用SQLite來存儲配置數據的,Android和iPhone都是使用SQLite來存儲數據的。 二、Android中如何使用SQLite 1. 使用SQL...
《Python》《SQLite》Python連接SQLite數據庫,讀表
配置Python環境的方法在我的博客中已經詳細介紹。 一、SQLite和PySQLite 在最近的Python版本中(從2.5開始),SQLite的優勢在于它的一個包裝(PySQLite)已經被包括在標準庫內。SQLite在Python中的模塊名稱為“sqlite3”,我們可以在...
《SQLite》最輕巧的數據庫SQLite——初探
文章目錄 一、SQLite概念及優點 二、SQLite圖形化管理工具——SQLite Expert Professional 三、SQLite基礎語言 1、創建數據庫 2、刪除數據庫 3、創建表 4、刪除表 5、表操作語句 一、SQLite概念及優點 概念: SQLite是一款嵌入式數據庫,和Oracle、Mysql、DB2等數據庫不同,比如Oracle它是與程序分離的,而...
Android數據庫 之 SQLite數據庫
2019獨角獸企業重金招聘Python工程師標準>>> 每個應用程序都要使用數據,Android應用程序也不例外,Android使用開源的、與操作系統無關的SQL數據庫—SQLite。 SQLite第一個Alpha版本誕生于2000年5月,它是一款輕量級數據庫,它的設計目標是嵌入式的,占用資源非常的低,只需要幾百K的內存就夠了。 SQLite已經被多種軟件和產品使用,...
猜你喜歡
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...