Mysql常用数据类型的含义和应用场景


常用数据类型的含义和应用场景

下面我详细讲讲MySQL中各种数据类型的应用场景:


数字类型:

a. TINYINT:用于存放很小的正、负的整数,范围为 -128 ~ 127,占用1字节。通常用于存放0或1,表示状态开关、逻辑删除、性别等。例如:存储性别,可用0代表女性,1代表男性。

b. SMALLINT:用于存储较小的正、负整数,范围为 -32768 ~ 32767,占用2字节。通常用于存储年份、月份等,范围较小,可节省空间。例如:用户年龄等。

c. MEDIUMINT:用于存放中等大小的整数,通范围为 -8388608 ~ 8388607,占用3字节。常用于表示浏览量、下载量、用户统计等中等规模的数据。

d. INT(INTEGER):用于存放正、负、零的整数,范围为 -2147483648 ~ 2147483647,占用4字节。通常用于存储主键ID、数量、金额等整型数据。一般是我们开发中常用的数据类型。

e. BIGINT:用于存放较长的整数,范围为 -9223372036854775808 ~ 9223372036854775807,占用8字节。通常用于表示较大的数值,如电话号码、身份证号码等等。


字符类型:

a. CHAR:用于存储较短的文本字符串,固定长度,一般都是用来存储一些限定长度的字符数组,如省份、品牌等。

b. VARCHAR:用于存储较长的文本字符串,可变长度,通常用于存储较长的字符串,如地址、文章内容等等。

c. TEXT:用于存储更长的文本字符串,可达65535个字符以上,适合存储非常长的内容。

d. ENUM:用于存储一组预定义的字符值,通常用于表示状态值、性别等。如只有男女两种情况的情况可定义枚举类型来代替用数字代表的实现方法。

e. SET:用于存储一组预定义的字符集,适合存储选项、标志等内容。如用户爱好的多选情况。

扫描二维码关注公众号,回复: 15642772 查看本文章

日期与时间类型:

a. DATE:用于存储年月日格式的数据,通常用于存储生日、开卡时间等。格式为 'YYYY-MM-DD’。。

b. TIME:用于存储时分秒格式的数据,格式为 ‘hh:mm:ss’。通常用于存储上班时间、下班时间等。

c. DATETIME:用于存储日期和时间格式的数据,格式为 'YYYY-MM-DD hh:mm:ss’。可以存储从 ‘1000-01-01 00:00:00’ 到 ‘9999-12-31 23:59:59’ 的日期和时间。通常用于存储订单时间、合同时间等。

d. TIMESTAMP:用于存储 Unix 时间戳格式的数据,存储从 1970 年 1 月 1 日 00:00:00(协调世界时)到 2038 年 1 月 19 日 03:14:07(协调世界时)之间的秒数,占用4字节。通常用于记录最近一次修改或更新的时间戳。

e. YEAR:用于存储年份,YEAR是一种比较特殊的数据类型,只需要占用1字节,可以存储从 1901 年到 2155 年间的年份。通常不用于精确的数据存储,如年度活动等。

需要注意的是,不同的MySQL版本,数据类型可能存在区别,因此在使用时需要进行核对选择。此外,还需要根据实际需求进行选择,一般可以依据业务数据长度、充分利用存储空间以及读写效率等方面进行考虑,选择与应用场景匹配的数据类型。


字符的含义


varchar(10)中的10代表的含义是什么?

在英文中一个字符通常是一个字母或者一个标点符号,varchar(10)中的10是指的10个英文字符。

在 MySQL 数据库中,VARCHAR(10)中的10是指该字段最多可以存储10个字符。VARCHAR 是可变长度的字符串类型,可以存储最大长度为 65535 个字符的字符串,但是如果我们知道该字段最大的存储值不会超过一个特定的长度,可以使用 VARCHAR(n) 来规定该字段的最大长度,来控制数据的存储空间。n 表示该字段最多可以存储 n 个字符;如果插入的字符串长度小于 n,则实际存储的值将与插入的字符串长度相同。如果插入字符串长度超过 n,则该字段将自动被截断为 n 长度以内的字符串。因此,VARCHAR(10) 表示该字段最多可以存储 10 个字符,而当存储一个长度小于或等于10个字符的字符串,则会完整存储该字符串。如果存储的字符串长度大于 10,则该字段只存储前面的 10 个字符,后面的字符将被截断掉。如:VARCHAR(10) 存储字符串 “Hello World” 时,将存储 “Hello Worl” 字符串数据。


1个字符是几个字节?

一个字符通常是由多个字节组成的,这取决于所使用的字符编码方式。在 MySQL 中,常用的字符编码方式包括 UTF-8、GBK、GB2312 和 BIG5 等等。

一般来说,在 UTF-8 编码中,一个 ASCII 字符(包括英文字母、数字、特殊符号等)占用 1 个字节,一个汉字占用 3 个字节。在 GBK 编码中,一个 ASCII 字符占用 1 个字节,一个汉字占用 2 个字节。在 BIG5 编码中,一个 ASCII 字符占用 1 个字节,一个汉字占用 2 个字节。因此,要确定一个字符占用几个字节,需要考虑所使用的字符编码方式。

在 MySQL 中,定义一个字符数据类型时,需要指定该数据类型所占用的字符长度。例如,定义一个 VARCHAR(10) 数据类型时,表示该字段能够存储最多 10 个字符长度的字符串,这个字符长度也取决于所使用的字符编码。如果使用 UTF-8 编码方式,那么 VARCHAR(10) 数据类型最多可以存储 30 个字节(一个汉字占用 3 个字节)。

VARCHAR 的长度可以是从 1 到最大存储范围的任何长度,在选择 VARCHAR 的长度时,需要根据实际需求来选择字符类型和长度,以控制存储空间和数据存储特性。


猜你喜欢

转载自blog.csdn.net/m0_37742400/article/details/130170259