標籤:資料庫 sql語句 sql sqlite3
PS一句:最終還是選擇CSDN來整理髮表這幾年的知識點,該文章平行遷移到CSDN。因為CSDN也支援MarkDown文法了,牛逼啊!
【工匠若水 http://blog.csdn.net/yanbober】
本篇繼續接上一篇,閱讀上一篇《Sqlite全面學習(一)》
SQLite建立資料庫
建立資料庫文法:
sqlite3 DatabaseName.db
如下展示一個執行個體:
SQLite附加資料庫
假設這樣一種情況,當在同一時間有多個資料庫可用,您想使用其中的任何一個。SQLite的ATTACH DTABASE語句是用來選擇一個特定的資料庫,使用該命令後,所有的SQLite語句將在附加的資料庫下執行。 ATTACH DATABASE語句添加另外一個資料庫檔案到當前的串連中,如果檔案名稱為”:memory:”,我們可以將其視為記憶體資料庫,記憶體資料庫無法持久化到磁碟檔案上。如果操作Attached資料庫中的表,則需要在表名前加資料庫名,如dbname.table_name。最後需要說明的是,如果一個事務包含多個Attached資料庫操作,那麼該事務仍然是原子的。
附加資料庫文法(Alias-Name的取值不能為main或者temp,系統的):
ATTACH DATABASE ‘DatabaseName‘ As ‘Alias-Name‘;
如下展示一個執行個體:
SQLite分離資料庫
SQLite的DETACH DTABASE語句是用來把命名資料庫從一個資料庫連接分離和游離出來,串連是之前使用ATTACH語句附加的。如果同一個資料庫檔案已經被附加上多個別名,DETACH 命令將只斷開給定名稱的串連,而其餘的仍然有效。您無法分離main或temp資料庫。如果資料庫是在記憶體中或者是臨時資料庫,則該資料庫將被摧毀,且內容將會丟失。
分離資料庫文法:
DETACH DATABASE ‘Alias-Name‘;
如下展示一個執行個體:
SQLite建立表
SQLite的CREATE TABLE語句用於在任何給定的資料庫建立一個新表。建立基本表,涉及到命名表、定義列及每一列的資料類型。
建立表文法:
CREATE TABLE database_name.table_name( column1 datatype PRIMARY KEY(one or more columns), column2 datatype, column3 datatype, ..... columnN datatype,);
如下展示一個執行個體:
SQLite刪除表
SQLite的DROP TABLE語句用來刪除表定義及其所有相關資料、索引、觸發器、約束和該表的許可權規範。使用此命令時要特別注意,因為一旦一個表被刪除,表中所有資訊也將永遠丟失。
刪除表文法:
DROP TABLE database_name.table_name;
如下展示一個執行個體:
SQLite Insert語句
SQLite的INSERT INTO語句用於向資料庫的某個表中添加新的資料行。
Insert語句文法:
INSERT INTO TABLE_NAME (column1, column2, column3,...columnN) VALUES (value1, value2, value3,...valueN);
如果要為表中的所有列添加值,您也可以不需要在SQLite查詢中指定列名稱。但要確保值的順序與列在表中的順序一致。
INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);
也可以通過在一個有一組欄位的表上使用select語句填充資料到另一個表中(使用一個表來填充另一個表)。下面是文法:
INSERT INTO first_table_name [(column1, column2, ...columnN)] SELECT column1, column2, ...columnN FROM second_table_name [WHERE condition];
如下展示一個執行個體:
SQLite Select語句
SQLite的SELECT語句用於從SQLite資料庫表中擷取資料,以結果表的形式返回資料。這些結果表也被稱為結果集。
Select語句文法:
SELECT column1, column2, columnN FROM table_name;
如果您想擷取所有可用的欄位,那麼可以使用下面的文法:
SELECT * FROM table_name;
如下展示一個執行個體:
SQLite算術運算子
運算子 |
描述 |
+ |
把運算子兩邊的值相加 |
- |
左運算元減去右運算元 |
* |
把運算子兩邊的值相乘 |
/ |
左運算元除以右運算元 |
% |
左運算元除以右運算元後得到的餘數 |
這個太小兒科就不示範例子了。
SQLite比較子
運算子 |
描述 |
== |
檢查兩個運算元的值是否相等,如果相等則條件為真。 |
= |
檢查兩個運算元的值是否相等,如果相等則條件為真。 |
!= |
檢查兩個運算元的值是否相等,如果不相等則條件為真。 |
<> |
檢查兩個運算元的值是否相等,如果不相等則條件為真。 |
> |
檢查左運算元的值是否大於右運算元的值,如果是則條件為真。 |
< |
檢查左運算元的值是否小於右運算元的值,如果是則條件為真。 |
>= |
檢查左運算元的值是否大於等於右運算元的值,如果是則條件為真。 |
<= |
檢查左運算元的值是否小於等於右運算元的值,如果是則條件為真。 |
!< |
檢查左運算元的值是否不小於右運算元的值,如果是則條件為真。 |
!> |
檢查左運算元的值是否不大於右運算元的值,如果是則條件為真。 |
這個太小兒科就不示範例子了,結合where語句使用就行。
SQLite邏輯運算子
運算子 |
描述 |
AND |
AND運算子允許在一個SQL語句的WHERE子句中的多個條件的存在。 |
BETWEEN |
BETWEEN運算子用於在給定最小值和最大值範圍內的一系列值中搜尋值。 |
EXISTS |
EXISTS運算子用於在滿足一定條件的指定表中搜尋行的存在。 |
IN |
IN運算子用於把某個值與一系列指定列表的值進行比較。 |
NOT IN |
IN運算子的對立面,用於把某個值與不在一系列指定列表的值進行比較。 |
LIKE |
LIKE運算子用於把某個值與使用萬用字元運算子的相似值進行比較。 |
GLOB |
GLOB運算子用於把某個值與使用萬用字元運算子的相似值進行比較。GLOB與LIKE不同之處在於,它是大小寫敏感的。 |
NOT |
NOT運算子是所用的邏輯運算子的對立面。比如NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定運算子。 |
OR |
OR運算子用於結合一個SQL語句的WHERE子句中的多個條件。 |
IS NULL |
NULL運算子用於把某個值與NULL值進行比較。 |
IS |
IS運算子與=相似。 |
IS NOT |
IS NOT運算子與!=相似。 |
\\ (兩豎線) |
串連兩個不同的字串,得到一個新的字串。 |
UNIQUE |
UNIQUE運算子搜尋指定表中的每一行,確保唯一性(無重複)。 |
如下展示一個執行個體:
SQLite位元運算符
下表中列出了SQLite語言支援的位元運算符。
運算子 |
描述 |
& |
二進位AND運算子。 |
/(一個豎線) |
二進位OR運算子。 |
~ |
二進位補碼運算子是一元運算子,具有”翻轉”位效應。 |
<< |
左運算元的值向左移動右運算元指定的位元。 |
>> |
右運算元的值向右移動右運算元指定的位元。 |
例子就不示範了。
SQLite布林運算式
SQLite的布林運算式在匹配單個值的基礎上擷取資料。
如下示範了SQLite布林運算式的用法:
SQLite數值運算式
數值運算式用來執行查詢中的任何數學運算。
文法:
SELECT numerical_expression as OPERATION_NAME [FROM table_name WHERE CONDITION] ;
如下樣本:
SQLite日期運算式
日期運算式返回當前系統日期和時間值,這些運算式將被用於各種資料操作。
文法:
SELECT CURRENT_TIMESTAMP;
返回結果:
CURRENT_TIMESTAMP = 2013-03-17 10:43:35
總結
至此,基本的Sqlite使用已經算是可以了。關於Sqlite更多知識點再下一篇會有詳細說明。閱讀下一篇《。。。。。等待》
【工匠若水 http://blog.csdn.net/yanbober】
Sqlite全面學習(二)