zoukankan      html  css  js  c++  java
  • 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'
     
     
     
     
  • 相关阅读:
    Springboot整合Mybatis增删改查
    解决generator的文件头:http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd报红问题
    Error resolving template [favicon.ico], template might not exist or might not be accessible by any of the configured Template Resolvers
    MyEclipse默认标签TODO,XXX,FIXME和自定义标签的使用
    Java Timer 定时器的使用
    如何搭建struts2框架
    淘宝开源Web服务器Tengine基本安装步骤
    Debian 7.0.0 安装教程图解
    cron表达式详解
    rabbitMQ windows 安装 入门
  • 原文地址:https://www.cnblogs.com/-clq/p/3326407.html
Copyright © 2011-2022 走看看