数据类型(精) Mysql中的数据类型 整型类型 类型介绍 可选属性 M 显示宽度不会影响类型的实际宽度 设置字段f1,f2,f3 f1 INT, f2 INT(5), f3 INT(5) ZEROFILL#不足宽度时,会自动
设置字段f1,f2,f3
f1 INT,
f2 INT(5),
f3 INT(5) ZEROFILL#不足宽度时,会自动补0;并且自动变成UNSIGNED
添加数据
INSERT INTO 表名(f1,f2,f3)
VALUES(123,123,123)(123456,123456,123456);
结果不会报错
#但是在显示f3时,123前面会补出两0
如果确定没有负数,则最好使用无符号数
要兼容存储空间和可靠性
最好用大的存储(考虑扩容等)
DOUBLE(M,D)(非标准语法)
DOUBLE 和 FLOAT 都存在误差
使用浮点型数据时,尽量不要用“=”来判断两数是否相等
最好加上精度和标度
定点数是以字符串类型存储的
默认DECIMAL(10,0)
也会和浮点数一样的四舍五入的规则
只能添加0和1(10进制下)
默认以16进制来实现,可以使用函数BIN()(2进制)来改变输出形式;在字段后面加0,则以10进制来实现
建议都用‘’来括起来
insert into test_year(f1)
values("2155"),("69"),("70"),(0),("00");#最好用大写
#添加指定时间
INSERT INTO 表(字段)
VALUES ("1999-01-12");
#添加当前时间
INSERT INTO 表(字段)
VALUES (CURRENT()),(CURRENT_DATE()),(NOW());
#添加指定时间
INSERT INTO 表(字段)
VALUES ("2 12:13:14"),("12:12"),("45");
#添加当前时间
INSERT INTO 表(字段)
VALUES (CURRENT()),(CURRENT_TIME()),(NOW());
#添加指定时间
INSERT INTO 表(字段)
VALUES ("2001-01-01 12:12:12");
#添加当前时间
INSERT INTO 表(字段)
VALUES (CURRENT_TIMESTAMP()),(NOW()),(SYSDATE());
格式:YYYY-MM-DD HH:MM:SS(年-月-日 时:分:秒)
注意时间的越界
#添加指定时间
INSERT INTO 表(字段)
VALUES ("1998-01-01 12:2:12");
#添加当前时间
INSERT INTO 表(字段)
VALUES (CURRENT_TIMESTAMP()),(NOW()),(SYSDATE());
insert into temp_time values ("2021-9-2 14:45:52","2021-9-2 14:45:52");
insert into temp_time values(now(),now());
#修改时区
SET time_zone = "+9:00";
CHAR类型
VARCHAR类型(必须写M)
最大范围不可以写65535,而应该写21845
CHAR 与 VARCHAR 的选择
CHAR:浪费存储空间,效率高
1. 适用于存储不大,效率要求高的
2. 十分平凡的修改column的
3. MyISAM和MEMORY存储引擎
VARCHACR:节约存储空间,效率低
用来保存文本型字符串,不需要预先定义长度
由于实际长度不确定,mysql不允许TEXT类型的字段做主键(可以采用CHAR(M)或是VARCHAR(M))
频繁使用的表不建议使用TEXT类型,建议单独用一个表
create table tst_text(
t1 TEXT
);
insert into (t1)
values ("hello Word");#记得最好大写
添加时,忽略大小写
可以使用索引来完成调用
null也可以添加(没有限制非空)
create table tst_enum(
e1 enum("春","夏","秋","冬")#添加时从4个里面选*一个*
# 1 2 3 4
);
insert into (e1)
values ("春"),("冬");#记得最好大写
create table tst_set(#记得最好大写
s1 SET("A","B","C")
);
insert into (s1)
values ("A")("A,B");
insert into (s1)
values ("A")("A,B,C,A");#重复的A会过滤掉
insert into (s1)
values ("A")("A,B,C,D");#会报错,应为D不存在
与CHAR 和 VARCHAR 的区别类似
binary 一旦确定了长度,就不会改变
create table tst_binary(#记得最好大写
f1 binary,#默认是1
f2 binary(3),
f3 varbinary,#默认是1
f4 varbinary(10)
);
insert into (f1,f2)
values ("a","abc");
BLOB是一个二进制大对象,可以容纳可变数量的数据(像图片,视频等)
Mysql一般不会在数据库中使用BLOB类型,往往是将它们存储到服务器的硬盘上,将访问路径存储到MySQL上
TEXT和BLOB的使用事项
CREATE TABLE test_json(
js json
);
insert into test_json(js)
values("{"name":"wht","age":20,"address":{"province":"beijing","city":"beijing"}}");
#提取其中的数据(->)
select js -> "$.name" as NAME,js -> "$.age" as AGE,js -> "$.address.province" as PROVINCE,js ->"$.address.city" as CITY
from test_json;
整型:INT
小数:DECIMAL(M,D)
日期时间:DATETIME
字符串:见阿里巴巴《开发手册》
原文地址:https://www.cnblogs.com/wht-de-bk/arcHive/2022/03/11/15995488.html
--结束END--
本文标题: MySQL数据类型(精)
本文链接: https://www.lsjlt.com/news/9167.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
2024-05-21
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0