• sqlite 的比较等运算是根据不同的值而不同的,并不是根据的字段类型,因为 sqlite 是弱类型字段


    sqlite 的比较等运算是根据不同的值而不同的,并不是根据的字段类型,因为 sqlite 是弱类型字段
     
    --------------------------------------------------
    http://www.sqlite.com.cn/MySqlite/5/127.Html
     
    在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'
     
     
     
     
  • 相关阅读:
    Xcode修改新建项目注释模板(作者和公司名等)
    Xcode全局替换内容,一键Replace
    The type javax.ws.rs.core.MediaType cannot be resolved. It is indirectly referenced from required .class files
    IT公司的女流之辈
    论公司的核心竞争力
    人性
    如何使用yum 下载 一个 package ?如何使用 yum install package 但是保留 rpm 格式的 package ? 或者又 如何通过yum 中已经安装的package 导出它,即yum导出rpm?
    The type java.lang.CharSequence cannot be resolved. It is indirectly referenced from required .class files.
    maven repo plugin archiver
    Error connecting to database [Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (13)]
  • 原文地址:https://www.cnblogs.com/-clq/p/3326407.html
Copyright © 2020-2023  润新知