Mysql:数据类型介绍
2022/9/17 2:17:21
本文主要是介绍Mysql:数据类型介绍,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
字段数据类型
整数类型
只能存储整数的数字。不同的整数类型区别在于存储数字的大小。如果说平时保存的数字很小不超过3位数,可以使用tinyint,保存数字特别大则可用bigint
常用整数类型:tinyint,int,bigint
上面是各整数类型的存值范围(有无符号表示有无加unsigned);然后相信大家经常还能看到类似:int(11),tinyint(4)...后面括号里的数字表示宽度,即在能存储的范围内,能接受数字的最大位数(包括负号),比如说 12就是2位,2122就4位。
但重点来了,他这个宽度没啥很大用处,在mysql8.0被优化掉了,所以大家了解下就好。
浮点类型
只能存储数字,但可存储有小数点的数字。如1,1.11都可进行存储。但会出现精度丢失的情况,因此实际在开发和生产很少去使用浮点类型
定点数类型
典型代表decimal,decimal的作用和浮点类型一样,但不同是不会出现精度丢失,因此在涉及金额或者不允许误差的业务场景下,使用的频率非常高。基本代替了浮点类型的使用
然后经常能看到decimal类型的字段有 decimal(M,D)的形式,M表示精度,D表示标度。说人话就是:M是保存数值能接受的最大位数(记住这里的位数不包括符号和小数点号),D表示必须保留的小数位数,不够位后面补0;
举个例子,假设decimal(5,2),
- 传123.45,实际保存123.45(5位)
- 传12.45,实际保存12.45(4位)
- 传12.4,实际保存12.40(4位)
- 传0,实际保存0.00(3位)
日期时间类型
保存日期或时间。
常用日期时间类型:Date(年月日)、DateTime(年月日时分秒)、TIMESTAMP(年月日时分秒)
Date插入示例:
INSERT INTO test_date1 VALUES ('2020-10-01'), ('20201001'), (20201001);
DateTime和TIMESTAMP插入示例:
INSERT INTO test_datetime_timestamp VALUES ('2021-01-01 06:50:30'), ('20210101065030');
开发建议
用得最多的日期时间类型,就是 DATETIME 。虽然 MySQL 也支持 YEAR(年)、 TIME(时间)、DATE(日期),以及 TIMESTAMP 类型,但是在实际项目中,尽量用 DATETIME 类型。因为这个数据类型包括了完整的日期和时间信息,取值范围也最大,使用起来比较方便。毕竟,如果日期时间信息分散在好几个字段,很不容易记,而且查询的时候,SQL 语句也会更加复杂。
此外,一般存注册时间、商品发布时间等,不建议使用DATETIME存储,而是使用 时间戳 ,因为DATETIME虽然直观,但不便于计算。
文本字符串类型
用于保存字符串。上面列举都可存储字符串,不同还是存储字符串的大小。
常用文本字符串类型:varchar(最常见)、text(小作文啥的可用)、LongText(大文本使用,如base64字符串)
MySQL5.0版本以上,varchar(20):指的是20字符。一个字符包括字母,数字,汉字。
InnoDB 存储引擎,建议使用VARCHAR类型,所以无脑用varchar就可以了。
二进制类型
用于保存字节数据。像音频、视频、图片不能用字符串或者数字类型表示,就可以字节的方式存储在二进制类型的字段里
但是平时特别少见,考虑到数据库数据量和读取,不会把大数据的东西放在Mysql、Oracle等关系型数据库中,一般优先考虑非关系型数据库进行存储
创建表指定字段 或 添加字段时涉及关键字
unsigned:用于在数字类型的字段,此字段只能为正数不允许负数
characted set '字符集':指定数据库 或 数据表 或 字段的字符集。示例如下:
数据库指定字符集: create database if not exists 数据库名 characted set '字符集';//指定字符集 show create database 数据库名;//查看数据库库字符集情况 创建表指定字符集: create table 表名( 字段1 数据类型1 ) characted set '字符集';//指定表的字符集 show create table 表名;//查看表的字符集情况 创建表时指定字段的字符集: create table 表名( 字段1 数据类型1 characted set '字符集' );//指定字段的字符集 show create table 表名;//查看字段的字符集情况
注意:如果字段没指定字符集,按表来,表没有,按数据库来。如果数据库没有,可以使用如下命令:
show variables like 'character_%'
红色部分的则是数据库未指定字符集情况下默认的字符集。
这篇关于Mysql:数据类型介绍的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-07MySQL读写分离入门:轻松掌握数据库读写分离技术
- 2024-12-07MySQL读写分离入门教程
- 2024-12-07MySQL分库分表入门详解
- 2024-12-07MySQL分库分表入门指南
- 2024-12-07MySQL慢查询入门:快速掌握性能优化技巧
- 2024-12-07MySQL入门:新手必读的简单教程
- 2024-12-07MySQL入门:从零开始学习MySQL数据库
- 2024-12-07MySQL索引入门:新手快速掌握MySQL索引技巧
- 2024-12-06BinLog学习:MySQL数据库BinLog入门教程
- 2024-12-06Binlog学习:MySQL数据库的日志管理入门教程