当前位置:网站首页>MySQL基础 数据类型精讲

MySQL基础 数据类型精讲

2022-06-09 08:50:00 Maximize+

在这里插入图片描述

数值类型

在这里插入图片描述

日期时间类型

在这里插入图片描述

字符串类型

纯文本类型
在这里插入图片描述
在这里插入图片描述

空间类型

在这里插入图片描述

常见属性

在这里插入图片描述
可以不为负数
在这里插入图片描述

字符集设置

#关于属性:character set name
SHOW VARIABLES LIKE 'character_%';

#创建数据库时指定字符集
CREATE DATABASE IF NOT EXISTS dbtest12 CHARACTER SET 'utf8';
SHOW CREATE DATABASE dbtest12;
#创建表的时候指定表的字符集
CREATE TABLE temp(
id INT
) CHARACTER SET 'utf8';

SHOW CREATE TABLE temp;
#创建表指明字段时,可以指定字段的字符集
CREATE TABLE temp1(
id INT,
NAME VARCHAR(15)CHARACTER SET 'gbk'
);
SHOW CREATE TABLE temp1;

整数类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#整数数据类型
USE dbtest12;
CREATE TABLE test_int1(
	f1 TINYINT,
	f2 SMALLINT,
	f3 MEDIUMINT,
	f4 INTEGER,
	f5 BIGINT
);

DESC test_int1;
INSERT INTO test_int1(f1) 
VALUES(12),(-128),(127);

SELECT *FROM test_int1;
#超出了范围
#Out of range value for column 'f1' at row 1
INSERT INTO test_int1(f1)
VALUES(128);

CREATE TABLE test_int2(
	f1 INT,
	f2 INT(5),
	f3 INT(5) ZEROFILL #显示宽度为5,当insert的值不足5位时,用0填充。
	#当使用ZEROFILL时会自动添加 unsigned 无符号的意思
)
INSERT INTO test_int2(f1,f2)
VALUES(123,123),(123456,123456)

SELECT*FROM test_int2;

INSERT INTO test_int2(f3)
VALUES(123),(123456);

SHOW CREATE TABLE test_int2;

CREATE TABLE test_int3(
f1 INT UNSIGNED#不包括负数
);

INSERT INTO test_int3
VALUES(2412321);
#Out of range value for column 'f1' at row 1
INSERT INTO test_Int3
VALUES(4294967296);

浮点类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#浮点类型 
CREATE TABLE test_double1(
f1 FLOAT,
f2 FLOAT(5,2),
f3 DOUBLE,
f4 DOUBLE(5,2)
);
DESC test_double1;
INSERT INTO test_double1(f1,f2)
VALUES(123.45,123.45);
SELECT*FROM test_double1;

INSERT INTO test_double1(f3,f4)
VALUES(123.45,123.456);
SELECT*FROM test_double1;#存在四舍五入
#整数位出错
INSERT INTO test_double1(f3,f4)
VALUES(123.45,1234.456);

INSERT INTO test_double1(f3,f4)
VALUES(123.45,999.995);

#测试float和double的精度问题
CREATE TABLE test_double2(
f1 DOUBLE
);
INSERT INTO test_double2
VALUES(0.47),(0.44),(0.19);

SELECT SUM(f1)
FROM test_double2;

SELECT SUM(f1) = 1.1,1.1=1.1
FROM test_double2;

定点数类型

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#定点数类型
CREATE TABLE test_decimal1(
f1 DECIMAL,
f2 DECIMAL(5,2)
);
DESC test_decimal1;

INSERT INTO test_decimal1(f1)
VALUES(123),(123.45);

SELECT*FROM test_decimal1;

INSERT INTO test_decimal1(f2)
VALUES(999.99);
SELECT*FROM test_decimal1;

INSERT INTO test_decimal1(f2)
VALUES(67.567);#存在四舍五入
#Out of range value for column 'f2' at row 1
INSERT INTO test_decimal1(f2)
VALUES(1267.567);
#情况相同
INSERT INTO test_decimal1(f2)
VALUES(999.995);

ALTER TABLE test_double2
MODIFY f1 DECIMAL(5,2);
DESC test_double2;


SELECT*FROM test_double2;
DELETE FROM test_double2;
INSERT INTO test_double2
VALUES(0.47),(0.44),(0.19);
SELECT SUM(f1)
FROM test_double2;

位类型

在这里插入图片描述

#位类型
CREATE TABLE test_bit1(
	f1 BIT,
	f2 BIT(5),
	#f3 bit(65)
	f3 BIT(64)
);
DESC test_bit1;
INSERT INTO test_bit1(f1)
VALUES(0),(1);
SELECT *FROM test_bit1;

INSERT INTO test_bit1(f2)
VALUES(31);
原网站

版权声明
本文为[Maximize+]所创,转载请带上原文链接,感谢
https://blog.csdn.net/qq_55868059/article/details/125192601