是弱类型字段

sqlite 的可比等运算是依据不一样的值而分裂的,并非基于的字段类型,因为 sqlite 是弱类型字段

 


 

在SQLite3.0版中,值被定义为啥类型只和值笔者有关,和列未有涉及,和变量也远非关系. (那有的时候被称作 弱类型.)全数其余的我们所采纳的数据库引擎都受静态类型系统的限制,在那之中的全数值的类是由其所属列的个性决定的,而和值非亲非故.

 

为了最大限度的充实SQLite数据库和其他数据库的宽容性,SQLite帮衬列的"类型亲和性". 列的亲和性是为该列所蕴藏的数据建议三个类型.我们要小心是提议并非强迫.在答辩上来说,任何列依旧是足以积累任何项指标多少的. 只是本着一些列,倘使给建议项指标话,数据库将按所建议的门类存款和储蓄.这一个被优先选用的数据类型则被称之为"亲和品种". 

 


When grouping values with the 当用GROUP BY子句给值分组时,具备不一致存款和储蓄类型的值被认为是例外的, 但也许有分化, 比方,一个整数值和二个实数值从数字角度来讲是相等的,那么它们则是格外的.用GROUP by 子句相比较完后,值不具备任何亲和性.

 


要特别注意的是 sqlite 文档解提起的

 

BLOB文本是以“x”或“X”开端的隐含十六进制文本新闻的文本值。举例:

 

    X'53514697465'

 

"

BLOB literals are string literals containing hexadecimal data and preceded by a single "x" or "X" character. For example:

 

    X'53514C697465'

 

"

 

此处写入的是二进制内容, 那样写入的字符串是无法用 "=" 选拔出来的,比方

 

insert into appzfdata(id) values(x'3131')

insert into appzfdata(id) values('11')

 

假定用语句采用

 

select * from appzfdata where id = '11' 是选取不出来第一条的(不论创制表时 id 用什么品种的字段).可是您用管理工具软件去看去开采两条记下的 id 值都以"11" 假如不明就里,你势必会足够抓狂.我以为那是个特别沉痛的主题素材,我怎么精通里面存的是何许品种的多少? 

 

用 like 代替 "=" 号则可以抽取来.

 

/*
select length(id),x'31'  t,* from appzfdata  --where id like "1"

--and t = x'31'

where id = x'313100' or id = '11'

 

--select ('aaa' ||id) ||'aaa', * from appzfprice where [appname] like'i1'

 

select length ( appname ), * from appzfprice where [appname] like 'i1'

 

*/

select * from t2 where id = '1'

 

 

 

 

本文由明仕msyz手机版发布于情感专区-情绪智力,转载请注明出处:是弱类型字段

TAG标签:
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。