博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysql 字面值
阅读量:5914 次
发布时间:2019-06-19

本文共 1073 字,大约阅读时间需要 3 分钟。

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           |+-------------------+-------------+

 

---

转载地址:http://mxgpx.baihongyu.com/

你可能感兴趣的文章
Raffi Krikorian 为“在运行中进行架构重写”提供了指南
查看>>
OneAPM挂牌新三板,续写ITOM新篇章
查看>>
通过源码解析 Node.js 中一个 HTTP 请求到响应的历程
查看>>
做了一点事,学到了一些
查看>>
CodeIgniter的密码处理论
查看>>
深入Mysql - 谈谈我对数据类型的认识
查看>>
Tsuru 1.7.0-rc4 发布,基于 Docker 的 PaaS 框架
查看>>
Apache HBase 2.1.3 发布,分布式数据库
查看>>
微信端H5开发整体解决方案
查看>>
Python之retrying
查看>>
OWASP 10 大 Web 安全问题在 JEE 体系完全失控
查看>>
洛谷 P1640 BZOJ 1854 [SCOI2010]连续攻击游戏
查看>>
如何理解Unity组件化开发模式
查看>>
util.promisify 的那些事儿
查看>>
未来黑科技公司完成亿元Pre-B轮融资,已和宝马达成合作
查看>>
三篇文章了解 TiDB 技术内幕 - 谈调度
查看>>
【DG】DG的3种保护模式
查看>>
[20150107]关于print_table.txt
查看>>
Chrome 如何知道网站启用了SPDY 协议?
查看>>
8天玩转并行开发——第五天 同步机制(下)
查看>>