#常见的数据类型
/*
数值型:
整形
小数:
定点数
浮点数
字符型:
较长的文本:text、BLOB(较长的二进制数据)
较短的文本:VARCHAR.CHAR
日期型:
*/
#一、整形
/*
分类:
TINYINT 1
SMALLINT 2
MEDIUMINT 3
INT/INTEGER 4
BIGINT 8
特点:
1.如果不设置无符号还是有符号,默认为有符号;如果想设置为无符号,需添加UNSIGNED
2.若插入的数值超出了整型的范围,会报OUT OF RANGE 的错误
3.如果不设置长度,会有默认的长度
长度代表了显示的最大宽度,如果不够会用0在左边填充,但必须搭配ZEROFILL使用
*/
#1.如何设置有符号和无符号
CREATE TABLE TAB_INT (
T1 INT(7) ZEROFILL,
T2 INT(7) UNSIGNED
);
DESC TAB_INT;
INSERT INTO TAB_INT VALUES(-12345);
INSERT INTO TAB_INT VALUES(-12345,-12);
INSERT INTO TAB_INT VALUES(-123,123);
#二、小数
/*
分类:
1.定点数
FLOAT(M,D)
DOUBLE(M,D)
2.浮点数
DECIMAL(M,D)
DEC(M,D)
2.特点
1.M:整数不为+小数部位
D:小数部位
2.如果超出范围,则插入临界值
M和D都可省略,如果DEC则M默认为10,D默认为0
如果是FLOAT,DOUBLE则会根据插入的数值的精度来决定精度
3.定点型的精度较高,如果要求插入的精度较高则可以考虑使用
*/
#测试M和D
CREATE TABLE TAB_FLOAT(
F1 FLOAT,
F2 DOUBLE,
F3 DEC
);
DESC TAB_FLOAT;
INSERT INTO TAB_FLOAT VALUES(123.456,123.456,123.456);
INSERT INTO TAB_FLOAT VALUES(123.4,123.4,123.4);
INSERT INTO TAB_FLOAT VALUES(1234.456,1234.456,1234.456);
DROP TABLE TAB_FLOAT;
#原则
/*
所选择的类型越简单越好,能保存的数值的类型位数越小越好,节省存储空间
*/
#三、字符型
/*
较短的文本:VARCHAR(M不可以省略),
CHAR(M可省略默认为1)
其他:
BINARY和VARBINARY用于保存较短的二进制
ENUM用于保存枚举
SET用于保存集合
较长的文本:TEXT
BLOB(较大的二进制)
特点:
写法 M的意思 特点 空间的耗费 效率
CHAR char(M) 最大的字符数 固定长度的字符 比较耗费空间 高
VARCHAR VARCHAR(M) 最大的字符数 可变长度的字符 比较节省 低
*/
CREATE TABLE TAB_CHAR(
C1 ENUM('A','B','C')
);
INSERT INTO TAB_CHAR VALUES('A');
INSERT INTO TAB_CHAR VALUES('B');
INSERT INTO TAB_CHAR VALUES('M');
CREATE TABLE TAB_SET(
S1 SET('A','B','C')
);
INSERT INTO TAB_SET VALUES('B');
INSERT INTO TAB_SET VALUES('A,B,C');
#四、日期型
/*
分类:
DATE 只保存日期
TIME 只保存时间
YEAR 只保存年
DATETIME 只保存日期+时间
TIMESTAMP 只保存日期+时间
特点:
字节 范围 时区等的影响
datetime 8 1000-9999 不受
TIMESTAMP 4 1970-2039 受
*/
CREATE TABLE TAB_DATE(
T1 DATETIME,
T2 TIMESTAMP
);
INSERT INTO TAB_DATE VALUES(NOW(),NOW());
SELECT * FROM TAB_DATE;
SHOW VARIABLES LIKE 'TIME_ZONE';
SET TIME_ZONE='+9:00';
11MYSQL-常见的数据类型
猜你喜欢
转载自blog.csdn.net/qq_41644888/article/details/105151372
今日推荐
周排行