當(dāng)前位置:首頁 > 公眾號(hào)精選 > 碼農(nóng)愛學(xué)習(xí)
[導(dǎo)讀]已經(jīng)快速了解了SQLite的基本用法以及簡(jiǎn)單的Pyhton與C語言的API函數(shù)的使用。本篇再來全面介紹下SQLite的基本語法與數(shù)據(jù)類型。

已經(jīng)快速了解了SQLite的基本用法以及簡(jiǎn)單的Pyhton與C語言的API函數(shù)的使用。本篇再來全面介紹下SQLite的基本語法與數(shù)據(jù)類型。

1 SQLite 基本語法

1.1 SQLite注釋

  • 單行注釋以兩個(gè)連續(xù)的橫杠:"--" 開始
  • 多行注釋則與C風(fēng)格的:“/* */”一致
sqlite>.help -- 這是一個(gè)簡(jiǎn)單的注釋
sqlite>.help /* 這也是一個(gè)簡(jiǎn)單的注釋 */

1.2 SQLite大小寫

SQLite是不區(qū)分大小寫,比如select語句中,既可以使用大寫的SELECT,也可以用小寫的select。

但有例外:GLOB和glob在SQLite語句中有不同的含義。

1.3 SQLite語句/命令

SQLite 語句以關(guān)鍵字開始,以分號(hào);結(jié)束

關(guān)鍵字,也稱SQLite命令,如:SELECT,INSERT,UPDATE,DELETE,ALTER,DROP等,具體分類如下:

1.3.1 DDL - 數(shù)據(jù)定義語言

數(shù)據(jù)操作語言,即數(shù)據(jù)的增、刪、改數(shù)據(jù)庫在的數(shù)據(jù)表

命令 描述
CREATE/create 創(chuàng)建一個(gè)新的表,一個(gè)表的視圖,或者數(shù)據(jù)庫中的其他對(duì)象
ALTER/alter 修改數(shù)據(jù)庫中的某個(gè)已有的數(shù)據(jù)庫對(duì)象,比如一個(gè)表
DROP/drop 刪除整個(gè)表,或者表的視圖,或者數(shù)據(jù)庫中的其他對(duì)象

1.3.2 DML - 數(shù)據(jù)操作語言

數(shù)據(jù)操作語言,即對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行增、刪、改操作

命令 描述
INSERT/insert 創(chuàng)建一條記錄
DELETE/delete 刪除記錄
UPDATE/update 修改記錄

1.3.3 DQL - 數(shù)據(jù)查詢語言

數(shù)據(jù)操作語言,即對(duì)數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行操作

命令 描述
SELECT/select 從一個(gè)或多個(gè)表中檢索某些記錄

總結(jié)一下:

2 SQLite數(shù)據(jù)類型

SQLite存儲(chǔ)類

SQLite 中的每一列,每個(gè)變量和表達(dá)式都有相關(guān)的數(shù)據(jù)類型,每個(gè)存儲(chǔ)在 SQLite 數(shù)據(jù)庫中的值都具有以下存儲(chǔ)類之一:

存儲(chǔ)類 描述
NULL 值是一個(gè) NULL 值。
INTEGER 值是一個(gè)帶符號(hào)的整數(shù),根據(jù)值的大小存儲(chǔ)在 1、2、3、4、6 或 8 字節(jié)中。
REAL 值是一個(gè)浮點(diǎn)值,存儲(chǔ)為 8 字節(jié)的 IEEE 浮點(diǎn)數(shù)字。
TEXT 值是一個(gè)文本字符串,使用數(shù)據(jù)庫編碼(UTF-8、UTF-16BE 或 UTF-16LE)存儲(chǔ)。
BLOB 值是一個(gè) blob 數(shù)據(jù),完全根據(jù)它的輸入存儲(chǔ)。

SQLite 的存儲(chǔ)類稍微比數(shù)據(jù)類型更普遍。

比如INTEGER存儲(chǔ)類,包含 6 種不同的不同長(zhǎng)度的整數(shù)數(shù)據(jù)類型,但只要INTEGER值被從磁盤讀出進(jìn)內(nèi)存處理,就被轉(zhuǎn)換成最一般的數(shù)據(jù)類型(8-字節(jié)有符號(hào)整形)。

對(duì)于BLOB數(shù)據(jù),它表示二進(jìn)制大對(duì)象,一般用來保存圖片,視頻等,另外還有CLOB,表示字符大對(duì)象,能夠存放大量基于字符的數(shù)據(jù)。

Boolean 數(shù)據(jù)類型

SQLite 沒有單獨(dú)的 Boolean 存儲(chǔ)類,它使用INTEGER作為存儲(chǔ)類型,布爾值被存儲(chǔ)為整數(shù) 0(false)和 1(true)。

Date 與 Time 數(shù)據(jù)類型

SQLite 沒有一個(gè)單獨(dú)的用于存儲(chǔ)日期和/或時(shí)間的存儲(chǔ)類,但內(nèi)置的sqlite日期和時(shí)間函數(shù)能夠?qū)⑷掌诤蜁r(shí)間以TEXT,REAL或INTEGER形式存放數(shù)能夠?qū)⑷掌诤蜁r(shí)間以TEXT,REAL或INTEGER形式存放。

存儲(chǔ)類 日期格式
TEXT 格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。
REAL 從公元前 4714 年 11 月 24 日格林尼治時(shí)間的正午開始算起的天數(shù)。
INTEGER 從 1970-01-01 00:00:00 UTC 算起的秒數(shù)。

內(nèi)置的日期和時(shí)間函數(shù)包括:

函數(shù) 含義
date(timestring, modifier, modifier, ...) 以 YYYY-MM-DD 格式返回日期
time(timestring, modifier, modifier, ...) 以 HH:MM:SS 格式返回時(shí)間
datetime(timestring, modifier, modifier, ...) 以 YYYY-MM-DD HH:MM:SS 格式返回
julianday(timestring, modifier, modifier, ...) 這將返回從格林尼治時(shí)間的公元前 4714 年 11 月 24 日正午算起的天數(shù)
strftime(format, timestring, modifier, modifier, ...) 這將根據(jù)第一個(gè)參數(shù)指定的格式字符串返回格式化的日期
  • 第一個(gè)參數(shù)(timestring):時(shí)間字符串
  • 后面的參數(shù)(modifier):修飾符
  • strftime() 函數(shù)可以把格式字符串format作為其第一個(gè)參數(shù)

前四個(gè)個(gè)函數(shù)也可以轉(zhuǎn)換成strftime函數(shù):

date(...)         strftime('%Y-%m-%d', ...)
time(...)         strftime('%H:%M:%S', ...)
datetime(...)     strftime('%Y-%m-%d %H:%M:%S', ...)
julianday(...)    strftime('%J', ...)

strftime中的格式包括:

-- 格式   格式說明
-- %d    天數(shù),例如:01-31中某一個(gè)天
-- %f    帶小數(shù)部分(SS.SSS格式)的秒
-- %H    小時(shí),例如:00-23中某一個(gè)小時(shí)
-- %j   一年中的第幾天,001-366
-- %J    儒略日數(shù),DDDD.DDDD
-- %m    月,00-12中某一具體月份
-- %M    分,00-59
-- %s    從 1970-01-01 算起的秒數(shù)
-- %S    秒,00-59
-- %w    一周中的第幾天,0-6 (0 is Sunday)
-- %W    一年中的第幾周,01-53
-- %Y    年,YYYY
-- %%    % symbol

通過SQLite語句,可以簡(jiǎn)單測(cè)試一些日期格式(打印當(dāng)前的時(shí)間):



本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉