【MySQL数据类型3之 字符类型】
MySQ字符类型大致可以分成(MySQL 5.0):
CHAR(M):0-255字节
VARCHAR(M):0-65535字节
TINYBLOB、MEDIUMBLOB、BLOB、LONGBLOB(实际长度分别+1,3,2,4)
TINYTEXT、MEDIUMTEXT、TEXT、LONGTEXT(实际长度分别+1,3,2,4)
BINARY(M):0-M字节
VARBINARY(M):实际长度+1
MySQL其他类型大致可以分成(MySQL 5.0):
ENUM(枚举类型):1~65535个成员 1—2个字节
SET:1--8字节
详细范围可以参考帮助手册
1.CHAR、VARCHAR、XXXTEXT
create table test4(c1 char(7),varchar(7));
insert test4 values(' a ',' a ');
mysql> select length(c1),length(c2),concat(c1,'yes'),concat(c2,'yes')
-> from test4;
+------------+------------+------------------+------------------+
| length(c1) | length(c2) | concat(c1,'yes') | concat(c2,'yes') |
+------------+------------+------------------+------------------+
| 2 | 3 | ayes | a yes |
+------------+------------+------------------+------------------+
可以很明显看出,char类型和varchar类型的前空格在检索时不会被省略,但是尾部空格就不一样了,char类型尾部空格是忽略的,varchar类型则反之;
至于varchar与TEXT是完全一样的(以前的版本的是和TINYTEXT版本一样),唯一的区别在于TEXT的上限是确定的,不需要特定区设置一个宽度,但是varchar类型需要自己设定。
2..xxxBLOB BINARY(M) VARBINARY(M):
它们的都是存储二进制字符串的字段类型。他们与文本的区别是排序是按照二进制编码进行的,使得排序更加准确。
3.ENUM
mysql> create table test5(en enum('A','B'));
mysql> insert test5 select 'a';
mysql> insert test5 select null;
相关文档:
对于每个类型拥有的值范围以及并且指定日期何时间值的有效格式的描述见7.3.6 日期和时间类型。
这里是一个使用日期函数的例子。下面的查询选择了所有记录,其date_col的值是在最后30天以内:
mysql> SELECT something from table
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) select DAYOFWEEK('1998-02-03');
-&g ......
就象许多的PHP开发者一样,在刚开始建立动态网站的时候,我都是使用相对简单
的数据结构。PHP在连接数据库方面的确实是十分方便(译者注:有些人认为PHP在连接不同数据库时没有一个统一的接口,不太方便,其实这可以通过一些扩
展库来做到这一点),你无需看大量的设计文档就可以建立和使用数据库,这也是PHP获得成功的主 ......
MySQL日期时间类型大致可以分成(5.0版本):
DATE:4字节 1000-01-01 ----9999-12-31
TIME:3字节 -839:59:59 -----839:59:59
YEAR:1字节 1901-----2155
DATETIME:8字节 1000-01-01 00:00:00 -------- 9999-12-31 23:59:59
TIMESTAMP:4字节 19700101080001&nbs ......