@数据库的数据类型与java的有所不同
#数据类型的简单介绍
数据库的数据类型
MySQL具有丰富的数据类型,在建表和存储的过程中都需要指定数据类型
数据类型有:
数值类型
字符类型
日期和时间类型
整数类型
MySQL主要提供的整数类型有:
tinyint、smallint、mediumint、int、bigint
tinyint 很小的整数 1个字节
smallint 小的整数 2个字节
mediumint 中等大小的整数 3个字节
int (INTEGER) 普通大小的整数 4个字节
bigint 大整数 8个字节
例如:year int(4),该声明指明,在year字段中的数据一般只显示4位数字的宽度。
# 显示的宽度和数据类型的取值范围是无关的。显示宽度只是指明MySQL最大可能显示的数字个数,
数值的位数小于指定的宽度时会由空格填充;如果插入了大于显示宽度的值,
只要该值不超过该类型的取值范围,数值依然可以插入,而且能够显示出来。
例如:向year字段插入一个数值19999,当使用select查询该列的时候,
MySQL显示的将是完整的带有5位数字的19999,而不是4位数字的值。
--整数类型
#可以在定义表结构时指定整数类型的显示宽度,如果不指定,系统为每一个类型指定默认的宽度值,
#通过举例可以看出长度没有变化
--加长度
#id字段的数据类型为int(11),
注意后面的数字11,这表示的是该数据类型指定的显示宽度,
指定能够显示的数值中数字的个数。
CREATE TABLE test_2
(
a TINYINT(11),
b SMALLINT(11),
c MEDIUMINT(11),
d INTEGER(11),
f BIGINT
);
DESC test_2;
INSERT INTO test_2 VALUES(123,1234,123456,124576);
SELECT * FROM test_2;
--不加长度
-- 使用数据库
USE <数据库名>;
-- 创建数据表
--测试整数类型
CREATE TABLE test_1
(
a TINYINT,
b SMALLINT,
c MEDIUMINT,
d INTEGER,
f BIGINT
);
DESC test_1;
INSERT INTO test_1 VALUES(123,1234,1234,124576);
浮点数类型和定点数类型
#MySQL中使用浮点数和定点数来表示小数。
浮点类型有两种:单精度float和双精度double。
定点类型只有一种:decimal。浮点类型和定点类型都可以用(M,N)来表示
其中M表示精度,表示总共的位数;N表示标度,是表示小数的位数。
float 单精度浮点型 4个字节
double 双精度浮点型 8个字节
decimal(M,D) 压缩的“严格”定点数 M+2个字节
例
-- 创建数据表
--测试浮点类型
CREATE TABLE test_3
(
x FLOAT(5,1),
y DOUBLE(5,2),
z DECIMAL(5,3)
);
DESC test_3;
INSERT INTO test_3 VALUES(3.141,3.14159,3.14159);
SELECT * FROM test_3;
日期和时间类型
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值
-- 日期和时间类型
-- 都有特定范围,超出范围会出错
CREATE TABLE test_year(y YEAR);
INSERT INTO test_ye