Mysql常用数据类型
分类
1. 数据类型说明
BIT(M):位类型。M指定位数,默认值1,范围1-64
TINYINT[UNSIGNED]占1个字节:带符号的范围是-128到127。无符号0到255。默认是有符号
SMALLINT [UNSIGNED]2个字节:带符号是负的 2^15 到 2^15-1 ,无符号 0 到 2^16-1
MEDIUMINT[UNSIGNED] 3个字节:带符号是负的 2^23 到 2^23-1 ,无符号 0 到 2^24 -1 数值类型
INT [UNSIGNED]4个字节:带符号是负的 2^31 到 2^31-1 ,无符号 0 到 2^32-1
BIGINT[UNSIGNED] 8个字节:带符号是负的 2^63 到 2^63-1 ,无符号 0 到 2^64 -1 占用空间4个字节
FLOAT[UNSIGNED]:表示比float精度更大的小数,占用空间8个字节 DOUBLE [UNSIGNED]:表示比double精度更大的小数,占用空间16个字节
DECIMAL(M,D)[UNSIGNED]定点数M指定长度,D表示小数点的位数,
2. 文本、二进制类型
- CHAR(size) char(20) 固定长度字符串最大255 VARCHAR(size)
- varchar(20) 可变长度字符串 0~65535[即: 2^16-1〕
- BLOB LONGBLOB 二进制数据 BLOB0~2^16-1 LONGBLOB 0~2^32-1
- TEXT LONGTEXT 文本 Text 0~2^16 LONGTEXT0~2^32
3. 时间日期
DATE/DATETIME/TimeStamp 日期类型(YYYY-MM-DD)(YYYY-MM-DD
HH:MM:SS), TimeStamp表示时间戳,它可用于自动记录insert、 update操作的时间
第一步
#演示整型
#使用tinyint演示范围-128~127
CREATE TABLE `t3` (
id TINYINT
)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
INSERT INTO t3 VALUES(-129);#添加语句
error
sql 错误代码: 1264 Out of range value for column 'id' at row 1
-129越界了
第二步
#演示整型
#使用tinyint演示范围-128~127
CREATE TABLE `t3` (
id TINYINT
)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
INSERT INTO t3 VALUES(-128);#添加语句
SELECT * FROM t3
-128干近去了
第三步
#演示整型
#使用tinyint演示范围-128~127
CREATE TABLE `t3` (
id TINYINT
)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
#使用tinyint(unsigned)演示范围0~255
CREATE TABLE `t4` (
id TINYINT UNSIGNED
)CHARACTER SET utf8 COLLATE utf8_bin ENGINE INNODB;
INSERT INTO t3 VALUES(-128);#添加语句
INSERT INTO t4 VALUES(-1);#添加语句
INSERT INTO t4 VALUES(0);#添加语句
INSERT INTO t4 VALUES(255);#添加语句
SELECT * FROM t3
SELECT * FROM t4
在t4中,插入-1越界
0和255成功插入
数值型(bit)的使用
基本使用 mysql> create table t02 (num bit(8));
mysql> insert into t02 (1, 3);
mysql> insert into t02 values(2, 65);细节说明 bit.sql
bit 字段显示时,按照位的方式显示.
查询的时候仍然可以用使用添加的数值
如果一个值只有 0, 1 可以考虑使用 bit(1),可以节约空间
位类型。M指定位数,默认值1,范围1-64
使用不多.
演示bit类型
#演示bit类型使用
#说明
#1. bit(m) m 在 1-64
#2.添加数据范围按照你给的位数来确定,比如m = 8 表示一个字节 0~255
#3.显示按照bit
#4.查询时,仍然可以按照数来查询
CREATE TABLE t06 (num BIT(8));
INSERT INTO t06 VALUES(1);
INSERT INTO t06 VALUES(255);
SELECT * FROM t06;
SELECT * FROM t06 WHERE num = 1;
演示结果