MySQL数据类型全解析指南
MySql数据类型有哪些
MySQL支持的各种数据类型主要包括:数值数据类型、日期/时间类型和字符串类型。
1.整数数据类型及其取值范围:
类型
描述
内存要求(取值范围)
tinyint小整数1字节([0~255],[-128~127]);255=2^8-1;127=2^7-1
smallint小整数2字节(0~65535,-32768~32767);65535=2^16-1
mediumint中3字节(0~16777215);16777215=2^24-1
int(integer)普通4字节(0~4294967295));4294967295=2^32-1
h3int大整数8字节(0~18446744073709551615);18446744073709551615=2^64-1
浮点和定点:
类型名称
描述
内存要求
float单精度浮点数,4字节
double双精度浮点数,8字节
decimal压缩的“严格”定点数M+2字节
注意:定点数存储在字符串形式。
对于高精度要求,最好避免对浮点数进行减法和比较操作。
2.时间/日期类型:年份范围:1901-2155;时间格式:“HH:MM:SS”(如果省略并且不存在冒号,则从最右边的两位数字开始秒,然后是分钟,最后是时间);输入当前系统时间:inserttintotable_namevalues(current_date()),(now());日期类型:“YYYY-MM-DD”;日期/时间(日期+时间):“YYYY-MM-DTH:MM:SS”或“YYYYMMDDHHMMSS”,值范围:“1000-01-0100:00:00”~“9999-12-3123:59:59”;时间戳格式与日期时间相同,但需要4个字节来存储(日期/时间需要8个字节)并且以UTC(通用协调时间)存储(即时间戳随设置的时区变化,从而改变日期/时间存储但从不:时间戳范围:1970–2037)。
3.字符串类型:文本类型:Tinytext、Text、Mediumtext、Longtext;
类型
区域
tinytext255=2^8-1
文本65535=2^16-1
中文本16777215=2^24-1
长文本4294967295=4GB=2^32-1
定义固定长度时指定char的存储要求;Varchar的内存需求取决于实际值的长度。
设置类型格式:Set('值1','值2'...)-可以有0个或多个值。
如果插入的值重复,则仅选择一个。
如果插入的值的顺序不正确,则会自动按正确的顺序插入。
插入异常值会被忽略。
二进制类型:Bit(M)——存储位域值(位域类型),M代表值的位数,例如:例如:selectBIN(b+0)from表名–b是列名;+0代表二进制结果,转换为对应的数值。
BIN()函数将数字转换为二进制值。
博客——-用于存储可变数量数据的二进制大对象。
数据类型
内存区域(字节)
tinyblog最大255=2^8-1字节
bolg最大65535=2^16-1字节
mediumblog最大16777215=2^24-1字节
longblog最大4294967295=4GB=2^32-1字节
MySQL支持不同字段的数据类型和属性设置mysql不同字段
MySQL是一种流行的关系型数据库管理系统,支持各种字段的数据类型和属性设置,包括整数、浮点数、日期/时间、字符串等。这些数据类型和属性设置是MySQL的重要组成部分,可以帮助用户存储并更有效地管理数据。
整数数据类型MySQL支持各种整数数据类型,包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT。
两种数据类型都可以存储整数值,但它们的存储区域和空间使用情况不同。
例如,TINYINT只能存储-128到127之间的值,而BIGINT可以存储更大的整数值。
创建Integer类型列的代码示例:CREATETABLE`example`(`id`INT(10)NOTNULLAUTO_INCRMENT,`age`TINYINT(2)NOTNULL,`salary`BIGINT(20)NOTNULL,PRIMARYKEY(`id`))引擎=InnoDBDEFAULTCHARSET=utf8;浮点数据类型MySQL还支持各种浮点类型,包括FLOAT和DOUBLE。
这些数据类型可以存储十进制值,但它们的存储方式和精度也有所不同。
例如,FLOAT可以存储大约7位小数,而DOUBLE可以存储更多的小数位。
创建浮点列的代码示例:CREATETABLE`example`(`id`INT(10)NOTNULLAUTO_INCRMENT,`weight`FLOAT(5,2),`price`DOUBLE(10,2),PRIMARYKEY(`id`))引擎=InnoDBDEFAULTCHARSET=utf8;日期和时间数据类型MySQL还支持多种日期和时间类型,包括DATE、TIME、DATETIME和TIMESTAMP。
这些数据类型可以存储日期和时间值并支持各种格式选项。
例如,DATE类型可以存储年、月和日,而TIME类型可以存储小时、分钟和秒。
创建日期类型列的代码示例:CREATETABLE`example`(`id`INT(10)NOTNULLAUTO_INCRMENT,`birthday`DATE,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;字符串数据类型MySQL支持多种字符串类型,包括VARCHAR、TEXT和BLOB。
这些数据类型可以存储文本和二进制数据,并且可用于存储和检索文本数据。
VARCHAR类型可以指定最大长度,而TEXT类型可以存储更大的文本数据。
创建字符串类型列的代码示例:CREATETABLE`example`(`id`INT(10)NOTNULLAUTO_INCRMENT,`name`VARCHAR(50)NOTNULL,`description`TEXT,PRIMARYKEY(`id`))ENGINE=InnoDBDEFAULTCHARSET=utf8;属性设置除了各种数据类型之外,MySQL还支持各种属性设置。
这些属性设置允许用户更好地控制数据输入和输出以及查询排序和过滤。
属性设置包括:1.NOTNULL:指定列不能为空。
2.DEFAULT:指定列的默认值。
3.AUTO_INCRMENT:指定的列是自增列。
4.UNIQUE:指定列列的值必须是唯一的5.INDEX:指定列可以建立索引,以提高检索性能6.PRIMARYKEY:指定某一列作为主键。
7.FOREIGNKEY:指定一个列作为外键链接到其他表中的列。
创建属性设置列。
代码示例:CREATETABLE`example`(`id`INT(10)NOTNULLAUTO_INCREMENT,`name`VARCHAR(255)NOTNULLDEFAULT'unknown',`created_at`TIMESTAMPNOTNULLDEFAULTCURRENT_TIMESTAMP,`eml`VARCHAR(255)UNIQUE,PRIMARYKEY(`id`),INDEX(`created_at`))ENGINE=InnoDBDEFAULTCHARSET=utf8;总结MySQL支持多种数据类型和属性设置可以帮助用户更好地存储和管理数据。
通过选择合适的数据类型和属性设置,用户可以控制数据的输入和输出,提高查询性能。
同时,用户还可以通过适当的属性设置来保证数据的完整性和安全性。
mysql数据库中有哪些数据类型?
MySQL数据类型MySQL中定义的数据字段类型对于数据库优化至关重要。MySQL支持多种类型,主要分为三类:数值、日期/时间、字符串。
数值类型MySQL支持所有标准SQL数值数据类型,包括严格数值数据类型(如INTEGER、SMALLINT、DECIMAL和NUMERIC)和近似数值数据类型(如FLOAT、REAL和DOUBLEPRECISION)。
INT关键字实际上相当于INTEGER,而DEC与DECIMAL类似。
BIT数据类型用于存储位字段值,支持MyISAM、MEMORY、InnoDB和BDB表。
MySQL还扩展了对TINYINT、MEDIUMINT和BIGINT整数类型的支持。
它们的存储范围和大小如下表所示。
日期和时间类型日期和时间类型主要包括DATETIME、DATE、TIMESTAMP、TIME和YEAR。
这些类型中的每一种都有自己的有效值范围和零值,零值用于表示非法值。
特别是TIMESTAMP类型具有自动更新的特性,这将在后面的内容中详细说明。
字符串类型字串类型包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
这些类型在工作流和查询应用程序中具有不同的功能和特性。
注意:在CHAR(n)和VARCHAR(n)中,n表示字符数而不是字节数。
例如,CHAR(30)可以包含30个字符。
CHAR和VARCHAR类型的存储和检索方法存在差异。
它们在最大长度和尾随空格保留方面也有所不同。
查询时请注意大小写转换。
BINARY和VARBINARY类型用于存储二进制字符串,而不是非二进制字符串。
这意味着它们包含字节串而不是字符串,因此没有字符集,并且排序和比较是基于列值字节的数值。
BLOB类型用于存储包含不同数据量的大型二进制对象。
BLOB有四种类型:TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。
区别在于它们可以容纳的存储范围。
TEXT类型包括TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
这四类BLOB的存储范围不同,应根据实际需要进行选择。