0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

玩轉(zhuǎn)SQLite7:基本語法與數(shù)據(jù)類型

碼農(nóng)愛學(xué)習(xí) ? 來源:碼農(nóng)愛學(xué)習(xí) ? 作者:碼農(nóng)愛學(xué)習(xí) ? 2022-09-26 09:07 ? 次閱讀

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

1 SQLite 基本語法

1.1 SQLite注釋

單行注釋以兩個連續(xù)的橫杠: "--" 開始

多行注釋則與C風(fēng)格的:“/* */”一致

sqlite>.help -- 這是一個簡單的注釋
sqlite>.help /* 這也是一個簡單的注釋 */

1.2 SQLite大小寫

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

但有例外:GLOBglob在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é)一下:

poYBAGMwWtGAJyhcAAC5pcK6YkU088.png

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語句,可以簡單測試一些日期格式(打印當前的時間):

pYYBAGMwWueAJMoKAABPoqWM94k730.png

end
審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • C語言
    +關(guān)注

    關(guān)注

    180

    文章

    7575

    瀏覽量

    134027
  • SQlite
    +關(guān)注

    關(guān)注

    0

    文章

    78

    瀏覽量

    15846
收藏 人收藏

    評論

    相關(guān)推薦

    labview數(shù)據(jù)類型的取值范圍是多少

    LabVIEW的數(shù)據(jù)類型豐富多樣,涵蓋了整數(shù)、小數(shù)(浮點數(shù))、復(fù)數(shù)等多種類型,每種類型都有其特定的取值范圍。以下是對LabVIEW中常見數(shù)據(jù)類型取值范圍的說明: 整數(shù)
    的頭像 發(fā)表于 09-04 17:33 ?254次閱讀

    技術(shù)干貨驛站 ▏深入理解C語言:基本數(shù)據(jù)類型和變量

    在C語言中,數(shù)據(jù)類型和變量是編程的基礎(chǔ),也是理解更復(fù)雜概念的關(guān)鍵。數(shù)據(jù)類型決定了變量的內(nèi)存分配、存儲范圍和操作方式,而變量則是存儲數(shù)據(jù)的容器。本篇文章將從基本數(shù)據(jù)類型和變量兩個方面,帶
    的頭像 發(fā)表于 07-26 17:53 ?1629次閱讀
    技術(shù)干貨驛站 ▏深入理解C語言:基本<b class='flag-5'>數(shù)據(jù)類型</b>和變量

    C語言數(shù)據(jù)類型有哪些

    在 C 語言中,數(shù)據(jù)類型指的是用于聲明不同類型的變量或函數(shù)的一個廣泛的系統(tǒng)。變量的類型決定了變量存儲占用的空間,以及如何解釋存儲的位模式。
    發(fā)表于 03-20 10:56 ?348次閱讀
    C語言<b class='flag-5'>數(shù)據(jù)類型</b>有哪些

    plc數(shù)據(jù)類型怎么理解和應(yīng)用

    PLC(可編程邏輯控制器)是一種工業(yè)自動化設(shè)備,用于控制機械和工業(yè)過程。在PLC編程中,數(shù)據(jù)類型是非常重要的概念,因為它決定了程序中數(shù)據(jù)的存儲和處理方式。正確理解和應(yīng)用PLC數(shù)據(jù)類型是編寫有效、可靠
    的頭像 發(fā)表于 12-19 11:39 ?3419次閱讀

    oracle和mysql語法區(qū)別大嗎

    Oracle和MySQL是兩種不同的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。雖然它們都是遵循SQL標準,但在語法和特性上仍存在一些區(qū)別。以下是對Oracle和MySQL語法區(qū)別的詳細說明: 數(shù)據(jù)類
    的頭像 發(fā)表于 12-06 10:26 ?854次閱讀

    oracle的數(shù)據(jù)類型有哪些

    Oracle數(shù)據(jù)庫中有許多數(shù)據(jù)類型可供選擇,每種數(shù)據(jù)類型都有其各自的特點和適用場景。下面是對Oracle數(shù)據(jù)庫中最常用的數(shù)據(jù)類型的詳盡說明,
    的頭像 發(fā)表于 12-05 16:45 ?1970次閱讀

    javascript的基本數(shù)據(jù)類型有哪些

    JavaScript 是一種動態(tài)的、面向?qū)ο蟮木幊陶Z言,廣泛應(yīng)用于 Web 開發(fā)中。在 JavaScript 中,有七種基本數(shù)據(jù)類型(Primitive Types),它們分別是 Undefined
    的頭像 發(fā)表于 12-03 11:17 ?593次閱讀

    redis的五種數(shù)據(jù)類型

    Redis是一種高性能的內(nèi)存數(shù)據(jù)庫,常用于緩存、任務(wù)隊列、分布式鎖等場景。它提供了多種數(shù)據(jù)類型來滿足各種不同的需求,包括字符串(string)、哈希(hash)、列表(list)、集合(set
    的頭像 發(fā)表于 11-16 11:06 ?515次閱讀

    如何將ROS數(shù)據(jù)類型轉(zhuǎn)換為MATLAB數(shù)據(jù)類型

    。 例如,四元數(shù)消息包含w、x、y和z屬性,但該消息并不強制四元數(shù)作為一個整體是有效的。所以有可能在單獨修改一個四元數(shù)信息后,這個四元數(shù)是不符合模型的。 同時消息屬性還可以具有各種數(shù)據(jù)類型。MATLAB使用ROS設(shè)置的規(guī)則來確定這些數(shù)據(jù)類型。 為此,這些
    的頭像 發(fā)表于 11-15 15:24 ?423次閱讀
    如何將ROS<b class='flag-5'>數(shù)據(jù)類型</b>轉(zhuǎn)換為MATLAB<b class='flag-5'>數(shù)據(jù)類型</b>

    數(shù)據(jù)的位是什么?C語言中常見的數(shù)據(jù)類型有哪些?

    本文介紹關(guān)于C語言中數(shù)據(jù)類型的相關(guān)知識,比如常見的數(shù)據(jù)類型有哪些,怎么定義和使用數(shù)據(jù)類型等。 1 、數(shù)據(jù)的位是什么? 計算機系統(tǒng)的存儲最小單元為一個二進制位,每一位要么0要么1。一般來
    的頭像 發(fā)表于 11-08 15:55 ?1107次閱讀
    <b class='flag-5'>數(shù)據(jù)</b>的位是什么?C語言中常見的<b class='flag-5'>數(shù)據(jù)類型</b>有哪些?

    SystemC中的數(shù)據(jù)類型概念

    引起一個事件,要使用通知函數(shù)notify( ),語法如下: event_name. notify (參數(shù)); 或 notify (參數(shù),event_name); SystemC中的數(shù)據(jù)類型 作為C++
    的頭像 發(fā)表于 11-02 15:44 ?720次閱讀
    SystemC中的<b class='flag-5'>數(shù)據(jù)類型</b>概念

    C語言數(shù)據(jù)類型詳解

    計算機編程語言是用來控制計算機的行為及操作,協(xié)助人們解決現(xiàn)實中的問題,其能表達的數(shù)據(jù)類型也是從實際中提取并抽象出來形成的數(shù)據(jù)結(jié)構(gòu)描述。
    發(fā)表于 11-02 11:32 ?993次閱讀
    C語言<b class='flag-5'>數(shù)據(jù)類型</b>詳解

    Redis數(shù)據(jù)類型介紹

    Redis 作為一個內(nèi)存數(shù)據(jù)庫已經(jīng)被許許多多的公司使用,它的性能非常的優(yōu)秀,讀寫速度支持非??於抑С?10W 的 QPS 。今天我們就來學(xué)習(xí)下它的豐富的數(shù)據(jù)類型。 Redis 數(shù)據(jù)類型 Redis
    的頭像 發(fā)表于 10-09 10:53 ?688次閱讀
    Redis<b class='flag-5'>數(shù)據(jù)類型</b>介紹

    Redis的數(shù)據(jù)類型有哪些

    Redis的數(shù)據(jù)類型有哪些?有五種常用數(shù)據(jù)類型:String、Hash、Set、List、SortedSet。以及三種特殊的數(shù)據(jù)類型:Bitmap、HyperLogLog、Geospatial
    的頭像 發(fā)表于 10-09 10:51 ?650次閱讀

    FreeRTOS使用的數(shù)據(jù)類型有哪些

    數(shù)據(jù)類型 FreeRTOS 使用的數(shù)據(jù)類型主要分為 stdint.h 文件中定義的和自己定義的。其中 char 和 char * 定義的變量要特別注意。 FreeRTOS 主要自定義了以下四種數(shù)據(jù)類型
    的頭像 發(fā)表于 09-28 11:49 ?631次閱讀