zoukankan      html  css  js  c++  java
  • mysql 字面值

    mysql 数据库中实现了许多的数据类型、通常我们用的最多的是在建表的时候指定列的数据类型 如:brithday date default '2000-01-01'

    那么我们如何给字面值(直接量)指定类型呢?

    1、为字符指定它的类型

      格式:  _{字符集名}'字符'

      例如:  _gb2312'蒋乐哥哥'

    2、为时间|日期指定它的类型

      格式:  {date | time | timestamp} '值' # 注意这个值要和前面的时间对的上、不然会报错的。这里没有datetime 这个类型可用

      例子:  date '2017-03-17'

    3、十六进制的字面值

      格式:  X'值'  #注意这里的值这的最小长度一定要是一个字节,也只能是整数个字节。如X'F' 是不行的,它只有1/2个字节长。

      例子:  X'a0'

    4、2进制的字面值

      格式:  b'值'

      例子:  b'1010'

    5、bool类型的字面值

      格式:  TRUE  | FALSE  |true  |false

    6、空值的字面值

      格式:  NULL

    升华:

      在我们定义表的时候如果我们想要的是一个字符型的列,那么我们定义成char / varchar 就行了。如果我们不定义那么数据库会给它分配一个

      默认的字符集、我这边通常会设置默认字符集为utf8。在mysql比较两个字符串是否相等时、事实上是在比较两个串的字节序列。

    select _gb2312'蒋乐哥哥'=_utf8'蒋乐哥哥';
    ERROR 1267 (HY000): Illegal mix of collations (gb2312_chinese_ci,COERCIBLE) and (utf8_general_ci,COERCIBLE) for operation '='

      前文说过字符只是一串字节序列、然而二进制类型、16进制类型是最天然的二进制序列的表达方式;那么它们之间怎么转换呢?

      由'a'的字节序列直接转换为字符

    select _utf8 b'01000001',_utf8 X'41';
    +-------------------+-------------+
    | _utf8 b'01000001' | _utf8 X'41' |
    +-------------------+-------------+
    | A                 | A           |
    +-------------------+-------------+

    ---

  • 相关阅读:
    javaScript中eval()方法转换json对象
    JS 根据参数是否为空进行true|false判断呢
    mybatis返回map类型数据空值字段不显示(三种解决方法)
    值类型与引用类型的区别
    随机生成四位数字和字母
    彩票
    冒泡排序
    查询资料:二分查找法
    随机数生成机制
    运算符
  • 原文地址:https://www.cnblogs.com/JiangLe/p/6885177.html
Copyright © 2011-2022 走看看