标签:使用 event 枚举类 也会 mod views var 查看 binary
原创: http://106.13.73.98/__/26/
目录
官网:https://dev.mysql.com/doc/refman/5.7/en/char.html
注意:char与varchar括号内的参数指的是字符的固定长度
定长,简单粗暴,浪费空间,存取速度快
变长,精确,节省空间,存取速度慢
char 与 varchar 的官方解释:
![在这里插入图片描述](http://106.13.73.98/media/ai/2019-03/19ee0315-2e73-4b2a-b94a-598f26d0a8d1.png)
测试之前先来了解两个函数:
- # 创建测试表,分别指明字段x为char类型,字段y为varchar类型
- mysql> create table test(x char(5), y varchar(5));
- Query OK, 0 rows affected (0.11 sec)
-
- # 插入数据,后面加空格
- mysql> insert into test values("数据库 ", "数据库 ");
- Query OK, 1 row affected (0.00 sec)
-
- # 在检索时,char类型会过滤掉后面的空格,而varchar正常显示
- mysql> select x, char_length(x), y, char_length(y) from test;
- +-----------+----------------+------------+----------------+
- | x | char_length(x) | y | char_length(y) |
- +-----------+----------------+------------+----------------+
- | 数据库 | 3 | 数据库 | 4 |
- +-----------+----------------+------------+----------------+
- 1 row in set (0.00 sec)
-
- mysql> set sql_mode = ‘pad_char_to_full_length‘;
- Query OK, 0 rows affected, 1 warning (0.00 sec)
-
- # 查当前SQL模式
- mysql> select @@sql_mode;
- +-------------------------+
- | @@sql_mode |
- +-------------------------+
- | PAD_CHAR_TO_FULL_LENGTH |
- +-------------------------+
- 1 row in set (0.00 sec)
-
- # 再次检索,发现char类型的数据是占满规定的长度的(在后面填充空格)
- mysql> select x, char_length(x), y, char_length(y) from test;
- +-------------+----------------+------------+----------------+
- | x | char_length(x) | y | char_length(y) |
- +-------------+----------------+------------+----------------+
- | 数据库 | 5 | 数据库 | 4 |
- +-------------+----------------+------------+----------------+
- 1 row in set (0.00 sec)
-
- # 查看字节数
- # char类型:3个中文字符 + 两个空格 = 11bytes
- # varchar类型:3个中文字符 + 1个空格 = 10bytes
- mysql> select x, length(x), y, length(y) from test;
- +-------------+-----------+------------+-----------+
- | x | length(x) | y | length(y) |
- +-------------+-----------+------------+-----------+
- | 数据库 | 11 | 数据库 | 10 |
- +-------------+-----------+------------+-----------+
- 1 row in set (0.01 sec)
常用字符串系列:char 与 varchar
虽然varchar使用起来较为灵活,但是从整个系统的性能角度来说,char数据类型的处理速度更快,有时甚至可以超出varchar处理速度的50%。因此,用户在设计数据库时应当综合考虑各方面的因素,以求达到最佳的平衡
其它字符串系列(效率:char > varchar > text):
TEXT系列:text数据类型用于保存变长的大字符串,可以最多到65535(2**16 - 1)个字符
mediumtext:A TEXT column with a maximum length of 16,777,215 (2**24 ? 1) characters.
longtext:A TEXT column with a maximum length of 4,294,967,295 or 4GB (2**32 ? 1) characters.
即字段的值只能在规定范围中选择,如单选框,多选框
enum枚举:即单选,只能在给定的范围内选一个值.(如:性别 sex boy/girl)
set集合:即多选,在给定的范围内可以选择一个或一个以上的值.(如:爱好1,爱好2,爱好3)
- mysql> create table information(
- -> name char(3),
- -> sex enum("男", "女"),
- -> hobby set("抽烟", "喝酒", "烫头")
- -> );
- Query OK, 0 rows affected (0.05 sec)
-
- mysql> insert into information values
- -> ("张三", "男", "抽烟,喝酒"),
- -> ("李四", "女", "烫头");
- Query OK, 2 rows affected (0.00 sec)
- Records: 2 Duplicates: 0 Warnings: 0
-
- mysql> select * from information;
- +---------+------+---------------+
- | name | sex | hobby |
- +---------+------+---------------+
- | 张三 | 男 | 抽烟,喝酒 |
- | 李四 | 女 | 烫头 |
- +---------+------+---------------+
- 2 rows in set (0.00 sec)
原创: http://106.13.73.98/__/26/
【MySQL】数据类型之字符相关 -- 2019-08-07 10:35:07
标签:使用 event 枚举类 也会 mod views var 查看 binary
原文地址:https://www.cnblogs.com/gqy02/p/11313764.html