内容简介:版权声明:本文为博主原创文章,欢迎扩散,扩散请务必注明出处。 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 发布,字符串模板类型实装
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
奇点系列
彼得•蒂尔、里德•霍夫曼、本•霍洛维茨、埃里克•杰克逊等 / 高玉芳、路蒙佳、杨晓红、徐彬等 / 中信出版社 / 2015-6-20 / 182.00
1.硅谷创投教父、PayPal创始人彼得•蒂尔、LinkedIn创始人里德•霍夫曼、创业导师本•霍洛维茨、“PayPal黑帮”初创成员埃里克•杰克逊联合作品。 2.彼得•蒂尔与埃隆•马斯克的首次交锋,PayPal从0到1改变全球金融的生死突围,商业硬汉的创业史诗,揭秘“PayPal黑帮”的创业维艰与联盟关系。 3.《人民日报》推荐创业者必读书目!“奇点系列”的作者们以及“PayPal黑......一起来看看 《奇点系列》 这本书的介绍吧!