Sqlite全面學習(二)

來源:互聯網
上載者:User

標籤:資料庫   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全面學習(二)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.