内容简介:版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。 https://blog.csdn.net/robinson_0612/article/details/82824320
版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。 https://blog.csdn.net/robinson_0612/article/details/82824320
在 MySQL 关系型数据库中,MySQL支持的数据类型非常丰富。它主要分为3大类,即:数值型,日期时间性,字符型。而实际上这三类数据类型可以进一步的细分扩展,可以根据业务需要选择最适合的一种。本文主要介绍字符类型,并演示其用法。
一、字符型
MySQL支持的字符类型可以进一步细分,即可以分为定(变)长字符型,大值字符型,枚举集合类型等。如下图所示:
二、字符型空间需求
三、字符型演示
mysql> show variables like 'version'; +---------------+------------+ | Variable_name | Value | +---------------+------------+ | version | 5.7.22-log | +---------------+------------+ mysql> select 'Leshami' as Author -> union all -> select 'http://blog.csdn.net/leshami'; +------------------------------+ | Author | +------------------------------+ | Leshami | | http://blog.csdn.net/leshami | +------------------------------+ -- 创建表,包含2种数据类型的列 mysql> CREATE TABLE vc -> ( -> v VARCHAR(4), -> c CHAR(4) -> ); Query OK, 0 rows affected (0.12 sec) mysql> INSERT INTO vc -> VALUES ('ab ', 'ab '); Query OK, 1 row affected (0.02 sec) -- 通过字符串函数可知,第二列定长类型ab后的空格被截断 mysql> SELECT CONCAT('(', v, ')'), -> CONCAT('(', c, ')') FROM vc; +---------------------+---------------------+ | CONCAT('(', v, ')') | CONCAT('(', c, ')') | +---------------------+---------------------+ | (ab ) | (ab) | +---------------------+---------------------+ 1 row in set (0.00 sec) -- 创建包含枚举和集合类型的表 mysql> CREATE TABLE tb5(status ENUM('a','b'), -> range_set SET ('a','b','c','d')); Query OK, 0 rows affected (0.16 sec) mysql> INSERT INTO tb5 -> VALUES ('a', ('a,b')), ('b', ('a,d')); Query OK, 2 rows affected (0.05 sec) Records: 2 Duplicates: 0 Warnings: 0 -- 以下insert操作仅为status插入值,报错,因为c值不在枚举范围内 mysql> INSERT INTO tb5(status) -> VALUES ('c'); ERROR 1265 (01000): Data truncated for column 'status' at row 1 -- 以下insert操作仅为status插入值,报错,因为a,b联合值不在枚举范围内 mysql> INSERT INTO tb5(status) -> VALUES ('a,b'); ERROR 1265 (01000): Data truncated for column 'status' at row 1 -- 以下insert操作仅为range_set插入值,报错,因为值超出集合范围 mysql> INSERT INTO tb5(range_set) -> VALUES ('a,b,c,f'); ERROR 1265 (01000): Data truncated for column 'range_set' at row 1 -- 以下操作成功 mysql> INSERT INTO tb5(range_set) -> VALUES ('a,b,c,d,a,c'); Query OK, 1 row affected (0.02 sec) -- 查看数据行 mysql> SELECT * FROM tb5; +--------+-----------+ | status | range_set | +--------+-----------+ | a | a,b | | b | a,d | | NULL | a,b,c,d | +--------+-----------+ 3 rows in set (0.00 sec) mysql> SELECT status + 0, range_set + 0 -> FROM tb5; +------------+---------------+ | status + 0 | range_set + 0 | +------------+---------------+ | 1 | 3 | | 2 | 9 | | NULL | 15 | +------------+---------------+ 3 rows in set (0.00 sec) -- 对于枚举型与集合型,不能超出枚举和集合范围 -- 集合型列值插入时可以重复,插入成功后重复值被过滤
以上所述就是小编给大家介绍的《MySQL数据类型 -- 字符型》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- Go 语言函数式编程系列教程(六) —— 数据类型篇:字符串和字符类型
- 二)redis 字符串类型
- python数据类型-字符串常用操作
- Golang语言包-字符串处理string和字符串类型转换strconv
- redis 基本数据类型-字符串(String)
- TypeScript 4.1 RC 发布,字符串模板类型实装
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
零成本实现Web性能测试
温素剑 / 电子工业出版社 / 2012-2 / 59.00元
《零成本实现Web性能测试:基于Apache JMeter》是一本关于Web性能测试的实战书籍,读者朋友们在认真阅读完《零成本实现Web性能测试:基于Apache JMeter》后,相信能够将所学知识应用到生产实践中。《零成本实现Web性能测试:基于Apache JMeter》首先介绍基础的性能测试理论,接着详细介绍如何使用JMeter完成各种类型的性能测试。实战章节中作者以测试某大型保险公司电话......一起来看看 《零成本实现Web性能测试》 这本书的介绍吧!
HTML 压缩/解压工具
在线压缩/解压 HTML 代码
XML 在线格式化
在线 XML 格式化压缩工具