常用的数据类型有:
- 数据类型
- 字符类型
- 日期和时间类型
例子:
create table emp
(
id int(11),
name varchar(25),
deptId int(11),
salary float
);
d字段的数据类型为int(11),注意后面的数字11,这表示的是该数据类型指定的显示宽度,指定能够显示的
数值中数字的个数。
例如:year int(4),该声明指明,在year字段中的数据一般只显示4位数字的宽度。
显示的宽度和数据类型的取值范围是无关的。显示宽度只是指明MySQL最大可能显示的数字个数,数值的
位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,只要该值不超过该类型的取值范围,
数值依然可以插入,而且能够显示出来。
例如:向year字段插入一个数值19999,当使用select查询该列的时候,MySQL显示的将是完整的带有5位
数字的19999,而不是4位数字的值。
可以在定义表结构时指定整数类型的显示宽度,如果不指定,系统为每一个类型指定默认的宽度值,如:
提示:显示宽度只是用于显示,并不能限制取值范围和占用空间,如:int(3)会占用4个字节的存储空间,并且允
许的最大值也不会是999,而是int所允许的最大值。
2. 浮点数类型和定点数类型
MySQL中使用浮点数和定点数来表示小数。浮点类型有两种:单精度float和双精度double。定点类型只有一种:
decimal。浮点类型和定点类型都可以用(M,N)来表示,其中M表示精度,表示总共的位数;N表示标度,是表示小
数的位数。
例:创建表tmp2,其中x、y、z数据类型依次为float(5,1),double(5,1)和decimal(5,1),
向表中插入数据5.12、5.15和5.123,如下
3. 时间和日期类型
1.Year类型
Year类型表示年,可以使用各种格式指定year的值
以4位字符串或者4位数字格式表示year,取值范围’1901’~‘2155’,输入格式为‘YYYY’或者YYYY,例如:
输入’2010’或2010
以2位字符串格式表示的year,范围’00‘-’99‘。’00‘-’69‘和’70‘-’99‘范围的值分别被转换成2000-2069和1970-1999
范围的year的值。
以2位数字表示的year,范围1-99。1-69和70-99范围的值分别被转换为2001-2069和1970-1999范围的year值。
2.TIME类型
TIME类型用在只需要时间信息的值,在插入数据时要注意,因为可以采用非严格语法,支持
3.DATE类型
DATE类型用在仅需要日期值时,没有时间部分,在插入遵循 YYYY-MM-DD、 YY-MM-DD、 YYYYMMDD、 YYMMDD都可以,并且允许非严格语法,比如插入98.11.31 98/11/31 98@11@31,任何标点符合都可以做日期、时间的分割符。
使用current_date或者now(),可以插入当前系统日期。
4.DATATIME类型
DATATIME类型用在需要同时包括日期和时间信息的值,格式为‘YYYY-MM-DD HH:MM:SS’、‘YYYYMMDDHHMMSS’、 ‘YY-MM-DD HH:MM:SS’、‘YYMMDDHHMMSS’、 YYYYMMDDHHMMSS、 YYMMDDHHMMSS。
5.TIMESTAMP类型
TIMESTAMP的显示格式与DATETIME相同,但TIMESTAMP的取值范围小于DATETIME的取值范围,为‘1970-01-01 00:00:01’ UTC~‘2038-01-19 03:14:07’ UTC,其中UTC为世界标准时间,在插入数据时,要保证在合法的取值范围内。
实际操作:
-- 建立一个temp3类 时间timestamp型测试表格
create table temp3(a TIMESTAMP);
insert into temp3 values('1970-1-1 00:10:00');
insert into temp3 values('1980-1-1 00:10:00');
insert into temp3 values('1990-1-1 00:10:00');
insert into temp3 values('2000-1-1 00:10:00');
insert into temp3 values('2010-1-1 00:10:00');
SELECT * FROM temp3;