您现在的位置是:首页 > 学无止境
MySQL数据类型
转载自:http://www.cn-cuckoo.com/2009/11/07/mysql-data-type-1230.html
MySQL跟其他主流数据库一样,能够存储任何类型的数据,比如字符、数值和日期。而且,大多数应用程序中只会用到这3种数据。
1. 字符数据
1.1 字符数据分为字符型和文本型。字符型又分为两种,一是固定长度字符型(char ),存储空间为255字 节,不足空间以空格填充;另一种是可变长度字符型(varchar ),存储空间为65 535字节,不足空间不用空格填充。在为表列定义字符类型时,必须指定最大字符数(英文每个字母占一个字节,汉字每个字占两个字节),不能超过相应类型的 字节上限,例如:
char(40) /* 固定长度字符列,最多可以保存40个英文字母或20个汉字 */
char(280) /* 无效,超过了255字节 */
varchar(280) /* 可变长度字符列,最多可以保存280个英文字母或140个汉字 */
1.2 另外,在为表列指定数据类型的同时,可以同时指定列的字符集,例如:
varchar(20) character set utf8 /* UTF-8字符集,可以用于保存汉字等多字节字符 */
甚至,在创建数据库时也可以直接指定默认的字符集,例如:
create database myblog character set utf8;
1.3 对于要求存储空间大于64KB(64×1024=65 535字节)的列,就需要声明为文本型了。文本型又分为四种:短文本型(tinytext /255)、 文本型(text /65 535)、中长文本型(mediumtext /16 777 215)和长文本型(longtext /4 294 967 295)。
由于MySQL提供了65 535字节长的可变长度字符型(varchar ),因此短文本型(tinytext ) 和文本型(text )并不常用。
关于文本型数据,有以下说明:
(1)如果实际文本超出相应类型指定的最大长度,则多余文本将被截掉;
(2)如果实际文本不足相应类型指定的最大长度,则不会删除后面空格;
2. 数值数据
数值数据分为整数和浮点数(带小数点的数,有符号),而整数又分有符号数和无符号数(用于区分正负数)。MySQL中有5种整数数值类型:
较小整数(tinyint
/-128~127或0~255);
小整数(smallint
/-32 768~32 767或0~65 535);
中长整数(mediumint
/-8 388 608~8 388 607或0~16 777 215);
整数(int
/-2 147 483 648~2 147 483 647或0~4 294 967 295);
大整数(bigint
/-9 223 372 036 854 775 808~9 223 372 036 854
775 807或0~18 446 744 073 709 551 615)。
声明整数类型列时,必须指定该列是有符号(signed)还是无符号(unsigned),例如:
smallint unsigned /* 表示只保存正整数 */
有两种浮点数值类型:单精度浮点数,float(p,s)和双精度浮点数,double(p,s)。其中,p表示精度(小数点左右两侧的数字位数 和),s表示至少保留几位小数。
3.时间数据
时间数据可以是日期、时间、日期加时间。MySQL有5种时间数据类型:
日期型:date
YYYY-MM-DD 1000-01-01~9999-12-31
日期时间型:datetime
YYYY-MM-DD HH:MI:SS 1000-01-01
00:00:00~9999-12-31 23:59:59
时间戳型:timestamp
YYYY-MM-DD HH:MI:SS 1970-01-01 00:00:00
to 2037-12-31 23:59:59
年型:year
YYYY 1901 to 2155
时间型:time
HHH:MI:SS -838:59:59 to 838:59:59
其中,HHH:MI:SS中的HHH表示已经过去的小时数,而其他日期时间组件YYYY(年)、MM(月)、DD(日)的含义是可以一目了然的。
如果只想在某列中保存日期(年月日),则date即可满足需要;如果想保存日期和时间(年月日时分秒),则要使用datetime 。timestamp 与datatime 的 区别除表示的时间范围不同之外,是它的值可以在记录增加或被更新时自动生成。
补充
首先,在GBK内码的情况下,一个汉字占两个字节,但是在UTF-8内码的情况下,一个汉字需要占用三个字节
其次,在MySQL 5.x版本中,varchar(n)中的n是以“字符”为单位的,因此varchar(10)的列可以容纳10个中文字符
上一篇:IE中的条件注释
下一篇:javascript 小测试
文章评论
- 登录后评论
点击排行
-
php-fpm安装、配置与优化
转载自:https://www.zybuluo.com/phper/note/89081 1、php中...
-
centos下postgresql的安装与配置
一、安装(以root身份进行)1、检出最新的postgresql的yum配置从ht...
-
Mysql的大小写敏感性
MYSQL在默认的情况下查询是不区分大小写的,例如:CREATE TABLE...
-
关于URL编码
转载自:http://www.ruanyifeng.com/blog/2010/02/url_encoding....
-
header中的Cache-control
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的...