亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQLite > 正文

SQLite教程(七):數據類型詳解

2020-01-25 19:26:15
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了SQLite教程(七):數據類型詳解,本文講解了存儲種類和數據類型、類型親緣性、比較表達式、操作符等內容,需要的朋友可以參考下
 

一、存儲種類和數據類型:

    SQLite將數據值的存儲劃分為以下幾種存儲類型:
 

復制代碼代碼如下:

     NULL: 表示該值為NULL值。
     INTEGER: 無符號整型值。
     REAL: 浮點值。
     TEXT: 文本字符串,存儲使用的編碼方式為UTF-8、UTF-16BE、UTF-16LE。
     BLOB: 存儲Blob數據,該類型數據和輸入數據完全相同。
 

    由于SQLite采用的是動態數據類型,而其他傳統的關系型數據庫使用的是靜態數據類型,即字段可以存儲的數據類型是在表聲明時即以確定的,因此它們之間在數據存儲方面還是存在著很大的差異。在SQLite中,存儲分類和數據類型也有一定的差別,如INTEGER存儲類別可以包含6種不同長度的Integer數據類型,然而這些INTEGER數據一旦被讀入到內存后,SQLite會將其全部視為占用8個字節無符號整型。因此對于SQLite而言,即使在表聲明中明確了字段類型,我們仍然可以在該字段中存儲其它類型的數據。然而需要特別說明的是,盡管SQLite為我們提供了這種方便,但是一旦考慮到數據庫平臺的可移植性問題,我們在實際的開發中還是應該盡可能的保證數據類型的存儲和聲明的一致性。除非你有極為充分的理由,同時又不再考慮數據庫平臺的移植問題,在此種情況下確實可以使用SQLite提供的此種特征。

 

   1. 布爾數據類型:

    SQLite并沒有提供專門的布爾存儲類型,取而代之的是存儲整型1表示true,0表示false。

   2. 日期和時間數據類型:

    和布爾類型一樣,SQLite也同樣沒有提供專門的日期時間存儲類型,而是以TEXT、REAL和INTEGER類型分別不同的格式表示該類型,如:
 

復制代碼代碼如下:

    TEXT: "YYYY-MM-DD HH:MM:SS.SSS"
    REAL: 以Julian日期格式存儲
    INTEGER: 以Unix時間形式保存數據值,即從1970-01-01 00:00:00到當前時間所流經的秒數。
 

 

二、類型親緣性:

    為了最大化SQLite和其它數據庫引擎之間的數據類型兼容性,SQLite提出了"類型親緣性(Type Affinity)"的概念。我們可以這樣理解"類型親緣性 ",在表字段被聲明之后,SQLite都會根據該字段聲明時的類型為其選擇一種親緣類型,當數據插入時,該字段的數據將會優先采用親緣類型作為該值的存儲方式,除非親緣類型不匹配或無法轉換當前數據到該親緣類型,這樣SQLite才會考慮其它更適合該值的類型存儲該值。SQLite目前的版本支持以下五種親緣類型:

 

親緣類型 描述  
TEXT 數值型數據在被插入之前,需要先被轉換為文本格式,之后再插入到目標字段中。
NUMERIC 當文本數據被插入到親緣性為NUMERIC的字段中時,如果轉換操作不會導致數據信息丟失以及完全可逆,那么SQLite就會將該文本數據轉換為INTEGER或REAL類型的數據,如果轉換失敗,SQLite仍會以TEXT方式存儲該數據。對于NULL或BLOB類型的新數據,SQLite將不做任何轉換,直接以NULL或BLOB的方式存儲該數據。需要額外說明的是,對于浮點格式的常量文本,如"30000.0",如果該值可以轉換為INTEGER同時又不會丟失數值信息,那么SQLite就會將其轉換為INTEGER的存儲方式。
INTEGER 對于親緣類型為INTEGER的字段,其規則等同于NUMERIC,唯一差別是在執行CAST表達式時。
REAL 其規則基本等同于NUMERIC,唯一的差別是不會將"30000.0"這樣的文本數據轉換為INTEGER存儲方式。
NONE 不做任何的轉換,直接以該數據所屬的數據類型進行存儲?! ?/td>

 

1. 決定字段親緣性的規則:

    字段的親緣性是根據該字段在聲明時被定義的類型來決定的,具體的規則可以參照以下列表。需要注意的是以下列表的順序,即如果某一字段類型同時符合兩種親緣性,那么排在前面的規則將先產生作用。
    1). 如果類型字符串中包含"INT",那么該字段的親緣類型是INTEGER。
    2). 如果類型字符串中包含"CHAR"、"CLOB"或"TEXT",那么該字段的親緣類型是TEXT,如VARCHAR。
    3). 如果類型字符串中包含"BLOB",那么該字段的親緣類型是NONE。
    4). 如果類型字符串中包含"REAL"、"FLOA"或"DOUB",那么該字段的親緣類型是REAL。
    5). 其余情況下,字段的親緣類型為NUMERIC。

    2. 具體示例:

 

聲明類型 親緣類型 應用規則
INT
INTEGER
TINYINT
SMALLINT
MEDIUMINT
BIGINT
UNSIGNED BIG INT
INT2
INT8
INTEGER 1
CHARACTER(20)
VARCHAR(255)
VARYING CHARACTER(255)
NCHAR(55)
NATIVE CHARACTER(70)
NVARCHAR(100)
TEXT
CLOB
TEXT 2
BLOB NONE 3
REAL
DOUBLE
DOUBLE PRECISION
FLOAT
REAL 4
NUMERIC
DECIMAL(10,5)
BOOLEAN
DATE
DATETIME
NUMERIC 5

 

注:在SQLite中,類型VARCHAR(255)的長度信息255沒有任何實際意義,僅僅是為了保證與其它數據庫的聲明一致性。

三、比較表達式:

    在SQLite3中支持的比較表達式有:"=", "==", "<", "<=", ">", ">=", "!=", "<>", "IN", "NOT IN", "BETWEEN", "IS" and "IS NOT"。
    數據的比較結果主要依賴于操作數的存儲方式,其規則為:
    1). 存儲方式為NULL的數值小于其它存儲類型的值。
    2). 存儲方式為INTEGER和REAL的數值小于TEXT或BLOB類型的值,如果同為INTEGER或REAL,則基于數值規則進行比較。
    3). 存儲方式為TEXT的數值小于BLOB類型的值,如果同為TEXT,則基于文本規則(ASCII值)進行比較。
    4). 如果是兩個BLOB類型的數值進行比較,其結果為C運行時函數memcmp()的結果。

四、操作符:

    所有的數學操作符(+, -, *, /, %, <<, >>, &, and |)在執行之前都會先將操作數轉換為NUMERIC存儲類型,即使在轉換過程中可能會造成數據信息的丟失。此外,如果其中一個操作數為NULL,那么它們的結果亦為NULL。在數學操作符中,如果其中一個操作數看上去并不像數值類型,那么它們結果為0或0.0。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91在线免费观看网站| 日本午夜人人精品| 91在线视频精品| 日韩福利视频在线观看| 国产精自产拍久久久久久蜜| 91免费综合在线| 亚洲综合小说区| 国内精久久久久久久久久人| 欧美在线免费视频| 国产精品视频免费观看www| 国产亚洲在线播放| 国产精品稀缺呦系列在线| 最新69国产成人精品视频免费| 中文字幕综合一区| 国产精品久久久久免费a∨| 久久成年人免费电影| 欧美在线www| 美女精品久久久| 大伊人狠狠躁夜夜躁av一区| 久久99精品久久久久久青青91| 在线视频欧美性高潮| 成人免费网站在线看| 2018中文字幕一区二区三区| 中国china体内裑精亚洲片| 成人激情av在线| 91美女福利视频高清| 亚洲另类欧美自拍| 久久这里只有精品视频首页| 亚洲第一精品夜夜躁人人躁| 久久精品99国产精品酒店日本| 91av视频在线| 亚洲国产精品中文| 久久久久久午夜| 1769国内精品视频在线播放| 亚洲人在线观看| 亚洲国产婷婷香蕉久久久久久| 在线成人一区二区| 久久精品中文字幕一区| 在线视频一区二区| 久久成年人免费电影| 91av在线播放视频| 欧美黄网免费在线观看| 欧美电影第一页| 成人黄色在线播放| 国产精品高潮视频| 日韩中文视频免费在线观看| 亚洲欧美三级伦理| 日韩最新中文字幕电影免费看| 国产精品电影一区| 久久久www成人免费精品| 久久久综合av| 欧美www在线| 蜜臀久久99精品久久久无需会员| 国产在线不卡精品| 日韩激情av在线播放| 国产精品中文字幕久久久| 欧美视频在线免费| 国产视频久久久久久久| 日韩精品免费观看| 欧美精品中文字幕一区| 一区二区日韩精品| 欧美日韩在线视频一区| 国产精品久久久久久久av电影| 国产裸体写真av一区二区| 欧美性xxxxx极品| 亚洲毛片在线看| 国产精品电影久久久久电影网| 久久69精品久久久久久久电影好| 91沈先生在线观看| 精品一区二区三区电影| 亚洲人午夜精品免费| 亚洲国产精品嫩草影院久久| 亚洲高清免费观看高清完整版| 精品久久香蕉国产线看观看gif| 久久av在线播放| 国产精品三级在线| 国产精品91在线| 97高清免费视频| 国产婷婷97碰碰久久人人蜜臀| 欧美大荫蒂xxx| 国产日韩专区在线| 日韩在线观看免费全集电视剧网站| 国产97人人超碰caoprom| 国产视频自拍一区| 国产精品一区二区三区免费视频| 狠狠色噜噜狠狠狠狠97| 国产精品入口夜色视频大尺度| 亚洲精品自拍偷拍| 92福利视频午夜1000合集在线观看| 久久久久久午夜| 久久99久国产精品黄毛片入口| 久久精品国产一区二区三区| 亚洲九九九在线观看| 中文字幕国产精品| 欧美黄色片在线观看| 欧美午夜片在线免费观看| 福利精品视频在线| 91九色视频在线| 久久久久99精品久久久久| 中文字幕日韩欧美在线| 久久精品99久久久香蕉| 欧美人与性动交a欧美精品| 欧美精品性视频| 国产精品久久久久国产a级| xxxx欧美18另类的高清| 黄色成人在线播放| 国产精品99一区| 国产亚洲精品美女久久久| 久久久久久12| 色妞在线综合亚洲欧美| 久久精品国产99国产精品澳门| 国产精品久久久久久影视| 欧美日韩精品中文字幕| 亚洲社区在线观看| 久久成人精品视频| 久久久久久91香蕉国产| 国产精品自产拍在线观| 91啪国产在线| 亚洲精品二三区| 欧美成人剧情片在线观看| 亚洲第一免费网站| 狠狠做深爱婷婷久久综合一区| 亚洲精品福利资源站| 欧美洲成人男女午夜视频| 亚洲欧洲日本专区| 国产精品中文字幕在线观看| 在线日韩av观看| 国产精品av网站| 久久偷看各类女兵18女厕嘘嘘| 久久精品国产亚洲7777| 在线日韩中文字幕| 久久久久成人精品| 色综合久久久久久中文网| 91网站免费看| 国产欧美日韩最新| 91网在线免费观看| 久久精品国产视频| 欧美激情精品在线| 91丝袜美腿美女视频网站| 久久久精品在线| 成人性教育视频在线观看| 亚洲国产精品成人精品| 欧美日韩亚洲精品内裤| 清纯唯美日韩制服另类| 奇米4444一区二区三区| 欧洲亚洲免费视频| 一区二区三区黄色| 亚洲夜晚福利在线观看| 欧美一区二区视频97| 国内精品中文字幕| 国语自产精品视频在线看抢先版图片| 亚洲视频网站在线观看| 亚洲国产日韩精品在线| 91久久国产综合久久91精品网站| 亚洲白拍色综合图区| 成人免费视频网| 国产精品久久久999| 高清在线视频日韩欧美| 午夜精品久久久久久久99热浪潮| 亚洲美女www午夜| 亚洲少妇激情视频| 中文字幕欧美日韩va免费视频| 日韩一区二区欧美| 98视频在线噜噜噜国产|