前面幾篇文章已經(jīng)快速了解了SQLite的基本用法以及簡單的Pyhton與C語言的API函數(shù)的使用。本篇再來全面介紹下SQLite的基本語法與數(shù)據(jù)類型。
1 SQLite 基本語法
1.1 SQLite注釋
單行注釋以兩個連續(xù)的橫杠: "--
" 開始
多行注釋則與C風格的:“/* */
”一致
sqlite>.help -- 這是一個簡單的注釋
sqlite>.help /* 這也是一個簡單的注釋 */
1.2 SQLite大小寫
SQLite是不區(qū)分大小寫,比如select語句中,既可以使用大寫的SELECT,也可以用小寫的select。
但有例外:GLOB
和glob
在SQLite語句中有不同的含義。
1.3 SQLite語句/命令
SQLite 語句以關(guān)鍵字開始,以分號 ;
結(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)建一個新的表,一個表的視圖,或者數(shù)據(jù)庫中的其他對象 |
ALTER/alter | 修改數(shù)據(jù)庫中的某個已有的數(shù)據(jù)庫對象,比如一個表 |
DROP/drop | 刪除整個表,或者表的視圖,或者數(shù)據(jù)庫中的其他對象 |
1.3.2 DML - 數(shù)據(jù)操作語言
數(shù)據(jù)操作語言,即對數(shù)據(jù)表中的數(shù)據(jù)進行增、刪、改操作
命令 | 描述 |
---|---|
INSERT/insert | 創(chuàng)建一條記錄 |
DELETE/delete | 刪除記錄 |
UPDATE/update | 修改記錄 |
1.3.3 DQL - 數(shù)據(jù)查詢語言
數(shù)據(jù)操作語言,即對數(shù)據(jù)表中的數(shù)據(jù)進行查操作
命令 | 描述 |
---|---|
SELECT/select | 從一個或多個表中檢索某些記錄 |
總結(jié)一下:
2 SQLite數(shù)據(jù)類型
SQLite存儲類
SQLite 中的每一列,每個變量和表達式都有相關(guān)的數(shù)據(jù)類型,每個存儲在 SQLite 數(shù)據(jù)庫中的值都具有以下存儲類之一:
存儲類 | 描述 |
---|---|
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 | 值是一個 blob 數(shù)據(jù),完全根據(jù)它的輸入存儲。 |
SQLite 的存儲類稍微比數(shù)據(jù)類型更普遍。
比如INTEGER存儲類,包含 6 種不同的不同長度的整數(shù)數(shù)據(jù)類型,但只要INTEGER值被從磁盤讀出進內(nèi)存處理,就被轉(zhuǎn)換成最一般的數(shù)據(jù)類型(8-字節(jié)有符號整形)。
對于BLOB數(shù)據(jù),它表示二進制大對象,一般用來保存圖片,視頻等,另外還有CLOB,表示字符大對象,能夠存放大量基于字符的數(shù)據(jù)。
Boolean 數(shù)據(jù)類型
SQLite 沒有單獨的 Boolean 存儲類,它使用INTEGER作為存儲類型,布爾值被存儲為整數(shù) 0(false)和 1(true)。
Date 與 Time 數(shù)據(jù)類型
SQLite 沒有一個單獨的用于存儲日期和/或時間的存儲類,但內(nèi)置的sqlite日期和時間函數(shù)能夠?qū)⑷掌诤蜁r間以TEXT,REAL或INTEGER形式存放數(shù)能夠?qū)⑷掌诤蜁r間以TEXT,REAL或INTEGER形式存放。
存儲類 | 日期格式 |
---|---|
TEXT | 格式為 "YYYY-MM-DD HH:MM:SS.SSS" 的日期。 |
REAL | 從公元前 4714 年 11 月 24 日格林尼治時間的正午開始算起的天數(shù)。 |
INTEGER | 從 1970-01-01 00:00:00 UTC 算起的秒數(shù)。 |
內(nèi)置的日期和時間函數(shù)包括:
函數(shù) | 含義 |
---|---|
date(timestring, modifier, modifier, ...) | 以 YYYY-MM-DD 格式返回日期 |
time(timestring, modifier, modifier, ...) | 以 HH:MM:SS 格式返回時間 |
datetime(timestring, modifier, modifier, ...) | 以 YYYY-MM-DD HH:MM:SS 格式返回 |
julianday(timestring, modifier, modifier, ...) | 這將返回從格林尼治時間的公元前 4714 年 11 月 24 日正午算起的天數(shù) |
strftime(format, timestring, modifier, modifier, ...) | 這將根據(jù)第一個參數(shù)指定的格式字符串返回格式化的日期 |
第一個參數(shù)(timestring):時間字符串
后面的參數(shù)(modifier):修飾符
strftime() 函數(shù)可以把格式字符串format作為其第一個參數(shù)
前四個個函數(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中某一個天
-- %f 帶小數(shù)部分(SS.SSS格式)的秒
-- %H 小時,例如: 00-23中某一個小時
-- %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語句,可以簡單測試一些日期格式(打印當前的時間):
end
審核編輯:湯梓紅
-
C語言
+關(guān)注
關(guān)注
180文章
7604瀏覽量
136685 -
SQlite
+關(guān)注
關(guān)注
0文章
78瀏覽量
15936
發(fā)布評論請先 登錄
相關(guān)推薦
評論