循序漸進SQLite2

<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]; 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • SQL SELECT 語句 一、查詢SQL SELECT 語法 (1)SELECT 列名稱 FROM 表名稱 (2...
    有錢且幸福閱讀 6,000評論 0 33
  • 數(shù)據(jù)庫入門 數(shù)據(jù)庫: 保存有組織的數(shù)據(jù)的容器(通常是一個文件或一組文件).數(shù)據(jù)庫軟件應(yīng)該稱為 DBMS(DataB...
    Mjericho閱讀 576評論 0 0
  • MySQL技術(shù)內(nèi)幕:SQL編程 姜承堯 第1章 SQL編程 >> B是由MySQL創(chuàng)始人之一Monty分支的一個版...
    沉默劍士閱讀 2,636評論 0 3
  • 【學(xué)號】2017101304 【姓名】張敬藝 【性別】女 【城市】山西省晉中市 【簡書號】張敬藝 【擅長】長跑 登...
    張敬藝閱讀 217評論 1 0
  • 晚上和阿貓聊天,貓貓昨天夢到我們在一塊要刷睡覺,這是三個月后的場景啊,開心!掛住您。 一大早送宋志去高鐵,也是一段...
    聶一一閱讀 135評論 0 0

友情鏈接更多精彩內(nèi)容