数据库MYSQL学习总结6—数据类型之字符串类型
2019-04-13 16:59
316 查看
版权声明:. https://blog.csdn.net/WildestDeram/article/details/89282145
测试char和varchar的例子
[code]CREATE TABLE test_str( a CHAR(5), b VARCHAR(5) )
添加数据
根据第一条添加的数据可以分析:a所占的字节大小是5个,而b是长度+1,也就是1个
[code]INSERT test_str(a,b) VALUES('',''); INSERT test_str(a,b) VALUES('a','b'); INSERT test_str(a,b) VALUES('ab','ab'); INSERT test_str(a,b) VALUES('abc','abc'); INSERT test_str(a,b) VALUES('abcd','abcd'); INSERT test_str(a,b) VALUES('abcde','abcde');
同样的如果超过字节长度,也会自动进行截取操作。
空格也算是一个字节占位
[code]INSERT test_str(a,b) VALUES(' 123 ',' 123 ');
MySQL中连接字符串
[code]SELECT CONCAT('*',a,'*'),CONCAT('*',b,'*') FROM test_str;
char在保存值的时候,内容达不到字节长度,则会用空格来填充指定长度 。但是在查找数据的时候会把后面空格去掉。
总结:
CHAR效率高于VARCHAR,CHAR相当于拿空间换时间,VARCHAR拿时间换空间
CHAR默认存储数据的时候,后面会用空格填充到指定长度;而检索的时候会去掉后面的空格;VARCHAR在保存的时候不进行填充,尾部的空格会留下。
TEXT列不能有默认值
测试ENUM和SETl类型
[code]CREATE TABLE test_enum( sex ENUM('男','女','保密') ); INSERT test_enum(sex) VALUES('男');
如果存入不存在的数据,则无法录入数据,会报错。 ENUM的编号是从1开始,当然如果插入不存在的编号数据,则会报错。
如果插入的枚举中有空格,也是可以录入,因为枚举类型会自动过滤掉空格
枚举类型的值只能从里面获取一个,而集合类型的值可以从里面获得多个。
测试SET
[code]CREATE TABLE test_set( a SET('A','B','C','D','E','F') ); INSERT test_set(a) VALUES('A'); INSERT test_set(a) VALUES('C'); INSERT test_set(a) VALUES('C,D,E'); INSERT test_set(a) VALUES('C,F,A');
相关文章推荐
- Java学习总结--字符串String类和基本的数据类型有什么区别
- 数据库MYSQL学习总结13—数据表名称更改
- MySQL学习总结----数据类型
- 数据库MYSQL学习总结30—无限级分类数据表的设计及实现
- 学习笔记--mysql常用数据类型总结
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- 数据库数据类型学习总结
- MySql之数据类型学习总结
- Linux 数据库学习---mysql常用的数据类型
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- 第一天学习MySql(5)-数据库的事务和其他数据类型
- Mysql学习之创建数据库,数据类型
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- mysql 学习总结2 -- 表设计时数据类型选择1
- Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型
- 数据库:深入浅出mysql学习笔记【超级详细(一)】--mysql的安装,启动和数据类型详细介绍
- MySQL:MySQL日期数据类型、MySQL时间类型使用总结
- sql server 、oracle和mysql 三大数据库数据类型的比较
- C\C++ 程序员从零开始学习Android - 个人学习笔记(四) - java基础 - 数据类型、变量、字符串、数组
- Mysql常用数据类型详细说明及实例说明(学习笔记一)