mysql数据类型
来源:互联网 发布:rar在mac怎么打开 编辑:程序博客网 时间:2024/06/05 02:58
几个简单的原则:
1.更小的通常更好:在能够满足要求的情况下,越小性能越高
2.简单就好:简单的数据类型操作更为容易,例如整型比字符串操作更为容易
3.尽量避免使用NULL:如果不需要NULL,最好指定为NOT NULL
整数类型
TINYINT ,SMALLINT,MEDIUMINT,INT,BIGINT分别使用8, 16,24,32,64位存储。其中这些类型都可以声明为unsigned类型,表示不允许负值,可以使正数的上限提高一倍。
注:在MYSQL中可以为正数类型指定宽度,例如INT(11),他不会限制存储的范围,只是用来显示字符个数
实数类型
实数不仅仅用来存储小数部分,也可以用来存储比BIGINT还大的整数。
FLOAT和DOUBLE用户近似计算
DECIMAL用于存储精确小数
字符串类型
VARCHAR类型用于存储可变长的字符串。他比定长类型节省空间,他仅仅使用必要的空间。VARCHAR使用1个或者2个存储字符串的长度。因为update时可能出现行比原来的行更长,导致页内没有更多空间存储,InnoDB的处理方式是分裂页,使行可以存储到页内。
VARCHAR适用的场合:列的更新很少;每个存储都使用不同的字节数进行存储,存储的内容是变长的。
CHAR类型是定长的,Mysql根据字符串长度分配足够的空间,并且使用空格填充不足,所以字符串后面的空格会被删除。
CHAR适用于定长的字符串,和较短的字符串
注:varchar(5)和varchar(200)在存储字符串“abcd”是一样的。但是建议用更短的字符串,因为在内存中,varchar会分配定义时的长度来分配内存大小。也就是说更长的列在内存中消耗更多,所以用较小的长度较好。
BLOB和TEXT类型
这两种类型都是为了存储很大的数据而设计的字符串数据类型。TEXT属于字符类型,BLOB对应的是二进制类型。MYSQL会将BLOB和TEXT值当做一个独立的对象进行处理。
使用枚举(ENUM)代替字符串类型
可以使用枚举列代替字符串类型。枚举列可以将一些不重复的字符串存储成一个预定义的集合。MySQL在存储枚举时会很紧凑,节省存储的空间。
create table enum_test(e ENUM('fish','apple','dog')not null);//建表
insert into enum_test values('fish'),('dog'),('apple');//插入数据
这三行实际存储的是整数不是字符串
select e +0 from enum_test ;
+------+
| e +0 |
+------+
| 1 |
| 3 |
| 2 |
+------+
并且如果排序输入时,是按照整数排序而不是字符串进行排序
select e from enum_test order by e;
+-------+
| e |
+-------+
| fish |
| apple |
| dog |
+-------+
- SQL 数据类型:MySQL 数据类型
- MySQL数据类型--数据类型选择
- MySQL数据类型
- mysql数据类型
- MYSQL数据类型
- MySQL数据类型
- MySql数据类型
- mysql 数据类型
- MySQL数据类型
- MySql数据类型
- mysql数据类型
- MySQL 数据类型
- mysql 数据类型
- MySQL 数据类型
- Mysql数据类型
- Mysql数据类型
- mysql数据类型
- MySQL 数据类型
- 加大“定向降准”力度暗藏啥玄机?
- selenium.common.exceptions.WebDriverException: Message: "Can't load the profile.
- .NET分层架构
- wince windows moible Dialog 调整大小 适应屏幕
- Fckeditor中使用图片上传
- mysql数据类型
- 高仿QQHD mini左右滑动菜单栏效果
- tomcat远程调试方法
- matlab图像保存
- 课程分享 企业普及版贝斯OA与工作流系统
- 新版api mapreduce reduce结果写入mysql
- activeMQ
- UI引擎开发系列(一) 创建一个基本场景
- DOM attributes and properties