<h3>SQLite命令</h3>
基于命令的操作性質(zhì)可分為:
- DDL:數(shù)據(jù)定義語言
| 命令 | 描述 |
|---|---|
| CREATE | 創(chuàng)建一個新的表,一個表的視圖,或者數(shù)據(jù)庫中的其他對象 |
| DROP | 刪除整個表,或者表的視圖,或者數(shù)據(jù)庫中的其他對象 |
| ALTER | 修改數(shù)據(jù)庫中的某個已有的數(shù)據(jù)庫對象,比如一個表 |
- DQL:數(shù)據(jù)查詢語言
| 命令 | 描述 |
|---|---|
| SELECT | 從一個或多個表中檢索某些記錄 |
- DML:數(shù)據(jù)操作語言
| 命令 | 描述 |
|---|---|
| INSERT | 創(chuàng)建一條記錄 |
| UPDATE | 修改記錄 |
| DELETE | 刪除記錄 |
<h3>SQLite常用數(shù)據(jù)類型</h3>
- SQLite存儲類
| 存儲類 | 描述 |
|---|---|
| NULL | 值是一個NULL值 |
| INTEGER | 值是一個帶符號的整數(shù),根據(jù)值的大小存儲在1、2、3、4、6或8字節(jié)中 |
| REAL | 值是一個浮點值,存儲為8字節(jié)的IEEE浮點數(shù)字 |
| TEXT | 值是一個文本字符串,使用數(shù)據(jù)庫編碼(UTF-8、UTF-16BE或UTF-16LE)存儲 |
| BLOB | 值是一個bolb數(shù)據(jù),完全根據(jù)它的輸入存儲 |
- Date與Time數(shù)據(jù)類型
| 存儲類 | 描述 |
|---|---|
| TEXT | 格式為"YYYY-MM-DD HH:MM:SS.SSS" 的日期 |
| REAL | 從公元前4714年11月24日格林尼治時間的正午開始算起的天數(shù) |
| INTEGER | 從1970-01-01 00:00:00 UTC算起的秒數(shù) |
<h3>操作命令</h3>
打開終端,輸入sqlite3 testDB.db。此命令將在當前目錄下創(chuàng)建好一個文件testDB.db,該文件將被SQLite引擎用作數(shù)據(jù)庫,可以注意到sqlite3命令在成功創(chuàng)建數(shù)據(jù)庫文件后,將提供一個sqlite>提示符。使用點命令.databases檢查創(chuàng)建的數(shù)據(jù)庫是否在數(shù)據(jù)庫列表中。

SQLite創(chuàng)建create表####
SQLite的create table (<b>需要注意的是:SQLite是不區(qū)分大小寫的,但有些命令是大小寫敏感的,比如GLOB和glob在SQLite的語句中有不同的含義。</b>) 語句用于在任何給定的數(shù)據(jù)庫創(chuàng)建一個新表。創(chuàng)建基本表,涉及到命名表、定義列表及每一列的數(shù)據(jù)類型?;菊Z法如下:
create table database_name.table_name( column1 datatype primary key, column2 datatype, column3 datatype, ...... columnN datatype);
可以使用.tables命令來驗證表是否已成功創(chuàng)建,該命令用于列出數(shù)據(jù)庫中的所有表。.schema命令則可以得到表的完整信息。
SQLite刪除drop表####
SQLite的drop table語句用來刪除表定義及其所有相關(guān)數(shù)據(jù)、索引、觸發(fā)器、約束和該表的權(quán)限規(guī)范。注意使用此命令,一旦一個表被刪除,表中所有信息也將永遠丟失。
drop table database_name.table_name;
SQLite Insert語句####
SQLite的insert into 語句用于向數(shù)據(jù)庫的某個表中添加新的數(shù)據(jù)行?;菊Z法:
insert into table_name (column1,column2,column3,...columnN)values(value1,value2,value3,...valueN);
此處的column1,column2,...columnN為要插入數(shù)據(jù)的表中的列的名稱。如果要給表中的所有列添加值,可以不指定列名稱,但是務(wù)必要確保值的順序與列在表中的順序一致。即:
insert into table_name values(value1,value2,value3,...valueN);
SQLite Select語句####
SQLite的select語句用于從SQLite數(shù)據(jù)庫中獲取數(shù)據(jù),以結(jié)果表的形式返回數(shù)據(jù)?;菊Z法:
select column1,column2,columnN from table_name;
如果想要獲取所有的可用的字段,則可以使用下面的語法:
select * from table_name;
SQLite Where子句####
SQLite的where子句用于指定從一個表或多個表中獲取數(shù)據(jù)的條件。如果滿足給定的條件,即為真(ture)時,則從表中返回特定的值。可以使用where子句來過濾記錄,只獲取需要的記錄。where子句不僅可以用在select語句中,還可以用在update、delete語句中,等等?;菊Z法:
select column1,column2,columnN from table_name where [condition];
SQLite運算符####
運算符是一個保留字或字符,主要用于 SQLite 語句的 WHERE 子句中執(zhí)行操作,如比較和算術(shù)運算。運算符用于指定 SQLite 語句中的條件,并在語句中連接多個條件。
- 算術(shù)運算符
| 運算符 | 描述 |
|---|---|
| + | 加法:將運算符兩邊的值相加 |
| - | 減法:左操作數(shù)減去右操作數(shù) |
| * | 乘法:把運算符兩邊的值相乘 |
| / | 除法:左操作數(shù)除以右操作數(shù) |
| % | 取模:左操作數(shù)除以右操作數(shù)后得到的余數(shù) |
- 比較運算符
| 運算符 | 描述 |
|---|---|
| == | 檢查兩個操作數(shù)的值是否相等,如果相等則條件為真 |
| = | 檢查兩個操作數(shù)的值是否相等,如果相等則條件為真 |
| != | 檢查兩個操作數(shù)的值是否相等,如果不相等則條件為真 |
| <> | 檢查兩個操作數(shù)的值是否相等,如果不相等則條件為真 |
| > | 檢查左操作數(shù)的值是否大于右操作數(shù)的值,如果是則條件為真 |
| < | 檢查左操作數(shù)的值是否小于右操作數(shù)的值,如果是則條件為真 |
| >= | 檢查左操作數(shù)的值是否大于等于右操作數(shù)的值,如果是則條件為真 |
| <= | 檢查左操作數(shù)的值是否小于等于右操作數(shù)的值,如果是則條件為真 |
| !< | 檢查左操作數(shù)的值是否不小于右操作數(shù)的值,如果是則條件為真 |
| !> | 檢查左操作數(shù)的值是否不大于右操作數(shù)的值,如果是則條件為真 |
- 邏輯運算符
| 運算符 | 描述 |
|---|---|
| AND | AND 運算符允許在一個 SQL 語句的 WHERE 子句中的多個條件的存在 |
| BETWEEN | BETWEEN 運算符用于在給定最小值和最大值范圍內(nèi)的一系列值中搜索值 |
| EXISTS | EXISTS 運算符用于在滿足一定條件的指定表中搜索行的存在 |
| IN | IN 運算符用于把某個值與一系列指定列表的值進行比較 |
| NOT IN | IN 運算符的對立面,用于把某個值與不在一系列指定列表的值進行比較 |
| LIKE | LIKE 運算符用于把某個值與使用通配符運算符的相似值進行比較 |
| GLOB | GLOB 運算符用于把某個值與使用通配符運算符的相似值進行比較。GLOB 與 LIKE 不同之處在于,它是大小寫敏感的 |
| NOT | NOT 運算符是所用的邏輯運算符的對立面。比如 NOT EXISTS、NOT BETWEEN、NOT IN,等等。它是否定運算符 |
| OR | OR 運算符用于結(jié)合一個 SQL 語句的 WHERE 子句中的多個條件 |
| IS NULL | NULL 運算符用于把某個值與 NULL 值進行比較 |
| IS | IS 運算符與 = 相似 |
| IS NOT | IS NOT 運算符與 != 相似 |
| UNIQUE | UNIQUE 運算符搜索指定表中的每一行,確保唯一性(無重復(fù)) |
- 位運算符
SQLite Update語句####
SQLite的update查詢用于修改表中的已有的記錄,和set一起使用??梢允褂脦в衱here子句的update查詢來更新選定行,否則所有的行都會被更新?;菊Z法:
update table_name
set column1 = value1, column2 = value2...,columnN = valueN
where [condition];
SQLite Delete語句####
SQLite的delete用于刪除表中的已有的記錄,可以使用帶有where子句的delete來刪除選定行,否則所有的記錄都會被刪除?;菊Z法:
delete from table_name where [condition];
SQLite Like子句####
SQLite的like運算符是用來匹配通配符指定模式的文本值。如果搜索表達式與模式表達式匹配,like運算符將返回真(true),也就是1。有兩個通配符與like運算符一起使用。百分號(%)和下劃線(_)。百分號代表零個、一個或多個數(shù)字或字符。下劃線代表一個單一的數(shù)字或字符。這些符號可以被組合使用。基本語法:
select from table_name where column like 'xxxx%';
或者
select from table_name where column like '%xxxx%';
或者
select from table_name where column like 'xxxx_';
或者
select from table_name where column like '_xxxx';
或者
select from table_name where column like '_xxxx_';
下面給出一些實例演示帶有'%'和'_'運算符的like子句的不同的地方:
| 語句 | 描述 |
|---|---|
| where column like 'hi%' | 查找以hi開頭的任意值 |
| where column like '%hi%' | 查找任意位置包含hi的任意值 |
| where column like '_hi%' | 查找第二位和第三位為hi的任意值 |
| where column like 'h_%_%' | 查找以h開頭,且長度至少為3個字符的任意值 |
| where column like '%h' | 查找以h結(jié)尾的任意值 |
| where column like '_h%i' | 查找第二位為h,且以i結(jié)尾的任意值 |
| where column like 'h___i' | 查找長度為5位數(shù),且以h開頭以i結(jié)尾的任意值 |
SQLite Order By排序####
SQLite的order by子句是用來基于一個或多個列按升序或降序順序排列數(shù)據(jù)。ASC表示升序,DESC表示降序。基本語法:
select column-list
from table_name
[where condition]
[order by column1,column2, .. columnN] [ASC | DESC];
SQLite Group By分組####
SQLite的group by子句用于與select語句一起使用,來對相同的數(shù)據(jù)進行分組。在select語句中,group by子句放在where子句之后,放在order by子句之前。基本語法:
select column-list
from table_name where [condition]
group by column1,column2,...columnN
order by column1,column2,...columnN;
SQLite Distinct關(guān)鍵字####
SQLite的Distinct 關(guān)鍵字與select語句一起使用,來消除所有重復(fù)的記錄,并只獲取唯一一次記錄。有可能出現(xiàn)一種情況,在一個表中有多個重復(fù)的記錄。當提取這樣的記錄時,distinct關(guān)鍵字就顯得很有意義了?;菊Z法:
select distinct column1,column2,...columnN
from table_name
where [condition];
SQLite Alter命令####
SQLite的alter table命令不通過執(zhí)行一個完整的轉(zhuǎn)儲和數(shù)據(jù)的重載來修改已有的表??梢允褂胊lter table語句重命名表,使用alter table語句還可以在已有的 表中添加額外的列?;菊Z法:
重命名表:
alter table database_name.table_name rename to new_table_name;
在已有的表中添加一個新的列:
alter table database_name.table_name add column column_definition...;
實例:
alter table person add column sex char(1);
SQLite AND/OR 運算符####
SQLite的AND和OR運算符用于編譯多個條件來縮小在SQLite語句中的所選的數(shù)據(jù)。這兩個運算符被稱為連接運算符。
- AND運算符
AND 運算符允許在一個 SQL 語句的 WHERE 子句中的多個條件的存在。使用 AND 運算符時,只有當所有條件都為真(true)時,整個條件為真(true)。例如,只有當 condition1 和 condition2 都為真(true)時,[condition1] AND [condition2] 為真(true)。基本語法:
select column1,column2,...columnN
from table_name
where [condition] and [condition2]...and [conditionN];
- OR 運算符
OR 運算符也用于結(jié)合一個 SQL 語句的 WHERE 子句中的多個條件。使用 OR 運算符時,只要當條件中任何一個為真(true)時,整個條件為真(true)。例如,只要當 condition1 或 condition2 有一個為真(true)時,[condition1] OR [condition2] 為真(true)。
select column1,column2,...columnN
from table_name
where [condition] or [condition2]...or [conditionN];