MySQL 常用数据类型
MySQL(二)数据库数据类型详解
MySQL(⼆)数据库数据类型详解 序⾔ 今天去健⾝了,感觉把⾝体练好还是不错的,闲话不多说,把这个数据库所遇到的数据类型今天统统在这⾥讲清楚了,以后在看到什么数据类型,咱度应该认识,下⾯就跟着我的节奏去把这个拿下吧。
---WZY⼀、数据类型 MySQL的数据类型有⼤概可以分为5种,分别是整数类型、浮点数类型和定点数类型、⽇期和时间类型、字符串类型、⼆进制类型。
现在可以来看看你对这5种类型的熟悉程度,哪个看起来懵逼了,那就说明⾃⼰哪个不熟悉,不理解。
注意:整数类型和浮点数类型可以统称为数值数据类型,这不难理解。
数值数据类型 整数类型:TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT 浮点数类型:FLOAT、DOUBLE 定点⼩数:DECIMAL ⽇期/时间类型 YEAR、TIME、DATE、DATETIME、TIMESTAMP 字符串类型 CHAR、VARCHAR、TEXT、ENUM、SET等 ⼆进制类型 BIT、BINARY、VARBINARY、BLOB 1、整数类型 不管你学什么语⾔,在基础⽅⾯,都应该知道 1个字节= 8位⼆进制数。
每个类型的取值范围也就能够知道,⽐如TINYINT占⽤1个字节,也就是8位,2的8次⽅减1等于255,也就是说如果代表没符号的整数,该取值范围为0~255,如果是有符号的,最⾼位为符号号位,也就是2的7次⽅减1,也就是127,取值范围为-128~127,为什么需要减1,这个问题就需要考虑临界值的问题了。
⽽考虑临界值问题⼜有需要讨论原码补码反码的知识,这些度不是我们讨论的重点,所以在这就⾃⾏百度。
给出⼀张范围表,给⼤家做参考。
不同整数类型的取值范围 根据⾃⼰所需去选取不同的类型名称, 例如: CREATE TABLE aaa( id INT(10) PRIMARY KEY, age INT(6) ); 这个例⼦中INT(10)、INT(6) 括号中的数字表⽰的是该数据类型指定的显⽰宽度,指定能够显⽰的数值中数字的个数。
MYSQL数据类型——字符串类型
MYSQL数据类型——字符串类型⼀、字符串类型在SQL中,将字符串类型分成了6类:char,varchar,text,blob,enum和set。
1.1 定长字符串定义:char,磁盘(⼆维表)在定义结构的时候,就以及确定了最终数据的存储长度。
Char(L): L代表length,可以存储的长度,单位为字符,最⼤长度值可以为255.Char(4):在UTF8环境下,需要4*3=12个字节。
1.2 变长字符串定义:varchar,在分配空间的时候,按照最⼤的空间分配,但是实际上最终⽤了多少,是根据具体的数据来确定。
Varchar(L): L表⽰字符长度,理论长度是65536个字符,但是会多出1到2个字节来确定存储的实际长度Varchar(10): 的确存了10个汉字,UTF8环境,10*3+1=31存储了3个汉字,UTF8环境,3*3+1=10(bytes)定长与变长的存储实际空间(UTF8)存储实际空间Char(4)Varchar(4)Char占⽤字节Varchar占⽤字节ABCD ABCD ABCD4*3=124*3+1=13A A A4*3=121*3+1=4ABCDE××数据超过长度数据超过长度如何选择定长或者是变长字符串呢?定长的磁盘空间⽐较浪费,但是效率⾼:如果数据基本上确定长度都⼀样,就是使⽤定长,如:⾝份证,电话号码,⼿机号码等变长的磁盘空间⽐较节省,但是效率低:如果数据不能确定长度(不同数据有变化),如姓名、地址等。
1.3 ⽂本字符串如果数据量⾮常⼤,通常说超过255个字符就会使⽤⽂本字符串⽂本字符串根据存储的格式进⾏分类:text和blobText: 存储⽂字(⼆进制数据实际上都是存储路径)Blob: 存储⼆进制数据(通常不⽤)1.4 枚举字符串枚举定义:enum,事先将所有可能出现的结果都设计好,实际上存储的数据都必须是规定好的数据中的⼀个。
枚举的使⽤⽅式定义:enum(可能出现的元素列表); //如 enum(‘男’,‘⼥’,‘不男不⼥’,‘妖’,‘保密’);使⽤:存储数据,只能存储上⾯定义好的数据(a) 创建枚举表1CREATE TABLE my_enum(gender enum('男','⼥','保密')) charset utf8;(b)加⼊数据作⽤之⼀:规范数据格式;数据只能是规定的数据的其中⼀个1insert into my_enum values('男'),('保密'); --有效数据2insert into my_enum values('male'); --错误数据(没有male元素)(b)作⽤之⼆:节省存储空间(枚举通常有⼀个别名:单选框):枚举实际存储的是数值⽽不是字符串本⾝。
Mysql数据类型(字段)介绍
MySql数据库的列类型(字段类型)MySQL数据库的表是一个二维表,由一个或多个数据列构成。
每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。
MySQL中的列类型有三种:数值类、字符串类和日期/时间类。
从大类来看列类型和数值类型一样,都是只有三种。
但每种列类型都还可细分。
下面对各种列类型进行详细介绍。
数值类的数据列类型数值型的列类型包括整型和浮点型两大类。
TINYINT:1字节非常小的正整数,带符号:-128~127,不带符号:0~255SMALLINT:2字节小整数,带符号:-32768~32767,不带符号:0~65535MEDIUMINT:3字节中等大小的整数,带符号:-8388608~8388607,不带符号:0~16777215INT:4字节标准整数,带符号:-2147483648~2147483647,不带符号:0~4294967295BIGINT:8字节大整数,带符号:-9223372036854775808~9233372036854775807,不带符号:0~18446744073709551615FLOAT:4字节单精度浮点数,最小非零值:+-1.175494351E-38,最大非零值:+-3.402823466E+38 DOUBLE:8字节双精度浮点数,最小非零值:+-2.2250738585072014E-308,最大非零值:+-1.7976931348623157E+308DECIMAL:M+2字节以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。
整型数据列类型MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。
它们之间的区别是取值范围不同,存储空间也各不相同。
在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。
mysql数据库的number类型
mysql数据库的number类型全文共四篇示例,供读者参考第一篇示例:MySQL数据库的Number类型是一种非常常用的数据类型,它用来存储数值型数据,包括整数和小数。
在实际的数据库设计和开发中,我们经常会用到Number类型来存储各种数字数据,比如订单金额、产品价格、数量等等。
在本文中,我们将详细介绍MySQL数据库中的Number类型,包括其各种子类型和用法。
MySQL数据库中的Number类型主要包括两种子类型,即整数型和浮点型。
整数型包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,分别用来存储不同范围的整数数据。
浮点型包括FLOAT和DOUBLE,用来存储小数数据。
下面我们将分别介绍这些Number类型的特点和用法。
1. TINYINTTINYINT类型用来存储小范围的整数数据,取值范围为-128到127。
TINYINT类型占用1个字节的存储空间,适用于存储性别、状态等只有两个取值的数据。
6. FLOATFLOAT类型用来存储单精度浮点数,即小数数据。
FLOAT类型占用4个字节的存储空间,可以存储6-7位的有效数字,适用于存储科学计算、工程测量等领域的数据。
第二篇示例:MySQL数据库中的number类型主要用于存储数值型数据,包括整型和浮点型两种。
整型数据包括TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT,而浮点型数据包括FLOAT和DOUBLE。
在数据库表的设计中,合理地选择number类型可以提高数据库的性能和数据存储效率。
让我们来了解一下MySQL数据库中number类型的具体描述和用法。
1. TINYINT:TINYINT类型用于存储非常小的整数数据,范围在-128到127之间。
它占用1个字节的存储空间,适用于存储布尔类型数据或者只需要记录小整数的场景。
6. FLOAT:FLOAT类型用于存储单精度浮点数数据,范围在-3.402823466E+38到-1.175494351E-38、0和1.175494351E-38到3.402823466E+38之间。
Mysql中的数据类型
ENUM(x,y,z,etc.) 允许你输入可能值的列表。可以在ENUM列表中列出最大65535个值。如果列表中不存在插入的值,则插入空值。注释:这些值是按照你输入的顺序存储的。可以按照此格式输入可能的值:ENUM('X','Y','Z')
TINYTEXT 存放最大长度为255个字符的字符串。
TEXT 存放最大长度为65,535个字符的字符串。
BLOB 用于BLOBs (Binary Large OBjects) 。存放最多65,535 字节的数据。
数据类型 描述
TINYINT(size) -128 到127 常规。0到255 无符号*。在括号中规定最大位数。
SMALLINT(size) -32768 到32767 常规。0 到65535 无符号*。在括号中规定最大位数。
DOUBLE(size,d) 带有浮动小数点的大数字。在括号中规定最大位数。在d参数中规定小数点右侧的最大位数。
DECIMAL(size,d) 作为字符串存储的DOUBLE类型,允许固定的小数点。
Date 类型: (*即便 DATETIME 和 TIMESTAMP 返回相同的格式,它们的工作方式很不同。在INSERT 或 UPDATE 查询中,TIMESTAMP 自动把自身设置为当前的日期和时间。TIMESTAMP 也接受不同的格式,比如YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD 或 YYMMDD 。)
MEDIUMINT(size) -8388608 到8388607 普通。0 to 16777215 无符号*。在括号中规定最大位 数。
MySQL中常见的数据类型及其用途
MySQL中常见的数据类型及其用途MySQL是一种常用的关系型数据库管理系统,被广泛应用于Web开发和其他领域。
在MySQL中,数据类型是数据表中各列的属性之一,它定义了数据的存储格式、占用空间和操作行为。
不同的数据类型适用于不同的数据存储需求和数据操作操作。
本文将介绍MySQL中常见的数据类型及其用途。
1. 整型数据类型整型数据类型用于存储整数值,常见的有以下几种:- TINYINT:存储范围为-128到127的整数。
通常用于存储布尔值,0表示假,1表示真。
- SMALLINT:存储范围为-32768到32767的整数。
适用于存储较小的整数值。
- MEDIUMINT:存储范围为-8388608到8388607的整数。
适用于存储中等大小的整数值。
- INT:存储范围为-2147483648到2147483647的整数。
适用于存储一般大小的整数值。
- BIGINT:存储范围为-9223372036854775808到9223372036854775807的整数。
适用于存储较大的整数值。
整型数据类型用于存储整数,经常用于记录索引、主键或表示计数值。
2. 浮点型数据类型浮点型数据类型用于存储浮点数值,即带有小数点的数值。
常见的有以下几种:- FLOAT:单精度浮点数,占用4字节。
通常用于存储较小范围的浮点数。
- DOUBLE:双精度浮点数,占用8字节。
适用于存储较大范围的浮点数。
浮点型数据类型用于存储需要保留小数位的数值,如货币金额、科学计数法表示的数值等。
3. 定点型数据类型定点型数据类型用于存储固定精度的数值,适用于需要精确计算的场景。
常见的有以下几种:- DECIMAL:用于存储固定精度的十进制数值。
可以指定精度和小数位数。
定点型数据类型适用于要求高精度计算的场景,如财务计算、精确测量等。
4. 字符串型数据类型字符串型数据类型用于存储文本数据,常见的有以下几种:- CHAR:固定长度字符串,最多可以存储255个字符。
四、MySQL数据类型和运算符
四、MySQL数据类型和运算符 数据库表由多列字段构成,每⼀个字段指定了不同的数据类型。
指定字段的数据类型之后,也就决定了向字段插⼊的数据内容。
不同的数据类型也决定了MySQL在存储它们的时候使⽤的⽅式,以及在使⽤它们的时候选择什么运算符号进⾏运算。
⼀、MySQL数据类型介绍 MySQL⽀持多种数据类型,主要有数值类型、⽇期/时间类型和字符串类型。
(1)数值数据类型:包括整数类型TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT,浮点⼩数数据类型FLOAT和DOUBLE,定点⼩数类型DECIMAL。
(2)⽇期/时间类型:包括YEAR、TIME、DATE、DATETIME和TIMESTAMP。
(3)字符串类型:包括CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET等。
字符串类型⼜分为⽂本字符串和⼆进制字符串。
1.1 整数类型 数值型数据类型主要⽤来存储数字,MySQL提供了多种数值数据类型,不同的数据类型提供不同的取值范围,可以存储的值范围越⼤,其所需的存储空间也会越⼤。
MySQL主要提供的整数类型有:TINYINT、SMALLINT、MEDIUMINT、INT(INTEGER)、BIGINT。
整数类型的属性字段可以添加AUTO_INCREMENT⾃增约束条件。
下表列出了MySQL中的数值类型:MySQL中的整数型数据类型数据名称说明存储需求默认宽度值TINYINT很⼩的整数1个字节4SMALLINT⼩的整数2个字节6MEDIUMINT中等⼤⼩的整数3个字节9INT(INTEGER)普通⼤⼩的整数4个字节11BIGINT⼤整数8个字节20 根据占⽤字节数可以求出每⼀种数据类型的取值范围,例如TINYINT需要1个字节(8bits)来存储,那么TINYINT⽆符号数的最⼤值为28-1,即255;TINYINT有符号数的最⼤值为27-1,即127。
MySQL的数据类型
MySQL的数据类型⽬录MySQL的数据类型数据库中的每个列都应该有适当的数据类型,⽤于限制或允许该列中存储的数据。
例如,列中存储的为数字,则相应的数据类型应该为数值类型。
如果使⽤错误的数据类型可能会严重影响应⽤程序的功能和性能,所以在设计表时,应该特别重视数据列所⽤的数据类型。
更改包含数据的列不是⼀件⼩事,这样做可能会导致数据丢失。
因此,在创建表时必须为每个列设置正确的数据类型和长度。
MySQL中定义数据字段的类型对你数据库的优化是⾮常重要的。
MySQL⽀持所有标准SQL数值数据类型。
MySQL⽀持多种类型,⼤致可以分为三类:数值⽇期/时间字符(串)类型。
数据类型分类1. 数值类型(整数类型和⼩数类型)整数类型:包括 TINYINT、SMALLINT、MEDIUMINT、INT、BIGINT。
⼩数类型:浮点数类型包括 FLOAT 和 DOUBLE。
定点数类型为 DECIMAL。
2. ⽇期/时间类型包括 YEAR、TIME、DATE、DATETIME 和 TIMESTAMP。
3. 字符类型(⽂本字符串和⼆进制字符串)字符串类型:包括 CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM 和 SET 等。
⼆进制类型:包括 BIT、BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
数值类型MySQL⽀持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLEPRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且⽀持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也⽀持整数类型TINYINT、MEDIUMINT和BIGINT。
mysql和Oracle数据类型对照
mysql和Oracle数据类型对照MySQL与Oracle两种数据库在⼯作中,都是⽤的⽐较多的数据库,由于MySQL与Oracle在数据类型上有部分差异,在我们迁移数据库时,会遇上⼀定的⿇烦,下⾯介绍MySQL与Oracle数据库数据类型的对应关系。
⼀、常见数据类型在MySQL与Oracle数据库中的表现形式说明mysql oracle变长字符串VARCHAR[0-65535]定义长度默认按字符长度计算,如果是GBK编码的汉字将占⽤2个字节VARCHAR2[1-4000]VARCHAR是VARCHAR2的同义词定义默认按字节长度计算整数TINYINT(-128-127)SMALLINT(-32768-32767)MEDIUMINT(-8388608-8388607)INT(-2147483648-2147483647)BIGINT(-9223372036854775808-9223372036854775807)⽆专⽤类型,TINYINT可以⽤NUMBER(3,0)代替SMALLINT可以⽤NUMBER(5,0)代替MEDUIMINT可以⽤NUMBER(7,0)代替INT可以⽤NUMBER(10,0)代替BIGINT可以⽤NUMBER(20,0)代替ORACLE中有SMALLINT,INT,INTEGER类型,不过这是NUMBER(38,0)的同义词数值类型DECIMAL[1-65[,0-30]]NUMERIC是DECIMAL的同义词NUMBER 可表⽰数范围: 1*10^-130⾄1*10^126NUMBER([1-38][,-84-127])DECIMAL、NUMERIC、DEC是NUMBER的同义词浮点型FLOAT(D,M)oracle10g开始增加BINARY_FLOAT类型10g以前⽆专⽤类型,可以⽤NUMBER代替ORACLE中有FLOAT和REAL类型,不过这是NUMBER的同义词双精度浮点型DOUBLE(D,M)oracle10g开始增加BINARY_DOUBLE类型10g以前⽆专⽤类型,可以⽤NUMBER代替ORACLE中有DOUBLE PRECISION类型,不过这是NUMBER的同义词位类型BIT(1-64)⽆DATE,3字节存储,只存储⽇期,没有时间,⽀持范围是[1000-01-01]⾄[9999-12-31]TIME,3字节存储,只存储时⽇期类型TIME,3字节存储,只存储时间,没有⽇期,⽀持范围是[-838:59:59]⾄[838:59:59]DATETIME,占8字节存储,可表⽰⽇期和时间,⽀持范围是[1000-01-01 00:00:00]⾄[9999-12-31 23:59:59]TIMESTAMP,占4字节存储,可表⽰⽇期和时间,范围是[1970-01-01 00:00:00]⾄[2038-01-19 03:14:07]DATE类型7字节存储,可表⽰⽇期和时间,⽀持范围是[-4712-01-01 00:00:00]⾄[9999-12-31 23:59:59]⾼精度⽇期5.6.4以前不⽀持⼩数秒精度5.6.4开始TIME,DATETIME,TIMESTAMP⽀持,最多可以6位⼩数秒,也就是微秒级别TIMESTAMP[0-9]占⽤空间7-11个字节,当⼩数秒精度为0时与DATE类型相同,⼩数秒最⾼精度可达9位,也就是纳精度年份份,⽀持范围是[1901]⾄[2155]⽆对应类型,可以⽤NUMBER(3,0)代替定长字符串CHAR[0-255],定义长度默认按字符长度计算,最⼤保存255字符CHAR[1-2000]定义默认按字节长度计算⽆符号说明⽀持,⽤于数值类型不⽀持⼤字符串,⼀般⽤于存储⽂本⽂件或超⼤描述及备注类信息TINYTEXT 最⼤⽀持255个字节TEXT最⼤⽀持65535个字节MEDIUMTEXT最⼤⽀持16MB个字节LONGTEXT最⼤⽀持4GB字节字段不⽀持默认值⽀持(CLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4GB个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONG类型,是早期的存储⼤字符串类型,最⼤⽀持2GB字节,现已不推荐使⽤⼆进制对象,⼀般⽤于存储⽂件或图⽚数据TINYBLOB 最⼤⽀持255个字节BLOB最⼤⽀持65535个字节MEDIUMBLOB最⼤⽀持16MB个字节LONGBLOB最⼤⽀持4GB字节字段不⽀持默认值⽀持(BLOB)oracle10g以前最⼤⽀持4GB个字节oracle10g开始最⼤⽀持4G个数据块,数据块⼤⼩为2KB-32KBoracle还有⼀个LONGRAW类型,是早期的存储⼆进制类型,最⼤⽀持2GB字节,现已不推荐使⽤⼆进制信息BINARY(0-255),定长VARBINARY(0-65535),变长RAW(1-2000)枚举类型ENUM(v1,v2,v3,...),最多65535个元素不⽀持集合类型SET(v1,v2,v3,...),最多64个元素不⽀持国际化字符集类型,较少使⽤⽆,MYSQL可以对每个字段指定字符编码⽀持NCHAR(1-2000) NVARCHAR(1-4000)外部⽂件指针类型不⽀持⽀持⽂件⼤⼩最⼤4GB⽂件名称最长255字符不⽀持⽀持⾃动增长类型⽀持使⽤简单不⽀持⼀般使⽤SEQUENCE解决,⽤法与⾃增类型差别较⼤,使⽤较复杂,但能实现⾮常灵活的应⽤,包括字符⾃增主键、全局主括字符⾃增主键、全局主键等等不⽀持函数和表达式TEXT和BLOB字段类型不⽀持默认值⽀持函数和表达式⽀持,例如,把emp表的id字段顺序放在name字段后⾯:alter table emp modify column id varchar(20) after name;不⽀持,只能重建表或字段虚拟字段是⼀个逻辑字段定义,其结果值通常是⼀个表达式,并在表中存储物理值,不占⽤空间,主要⽤于简化查询逻辑。
Mysql字段数据类型长度及表类型详细说明
mysql字段数据类型、长度及表类型说明一、MySQL 字段数据类型/长度1、数值类型列类型需要的存储量TINYINT 1 字节SMALLINT 2 个字节MEDIUMINT 3 个字节INT 4 个字节INTEGER 4 个字节BIGINT 8 个字节FLOAT(X) 4 如果X < = 24 或8 如果25 < = X < = 53FLOAT 4 个字节DOUBLE 8 个字节DOUBLE PRECISION 8 个字节REAL 8 个字节DECIMAL(M,D) M字节(D+2 , 如果M < D)NUMERIC(M,D) M字节(D+2 , 如果M < D)MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。
许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。
INT 类型在MySQL 中支持的5 个主要整数类型是TINYINT,SMALLINT,MEDIUMINT,INT 和BIGINT。
这些类型在很大程度上是相同的,只有它们存储的值的大小是不相同的。
MySQL 以一个可选的显示宽度指示器的形式对SQL 标准进行扩展,这样当从数据库检索一个值时,可以把这个值加长到指定的长度。
例如,指定一个字段的类型为INT(6),就可以保证所包含数字少于 6 个的值从数据库中检索出来时能够自动地用空格填充。
需要注意的是,使用一个宽度指示器不会影响字段的大小和它可以存储的值的范围。
万一我们需要对一个字段存储一个超出许可范围的数字,MySQL 会根据允许范围最接近它的一端截短后再进行存储。
还有一个比较特别的地方是,MySQL 会在不合规定的值插入表前自动修改为0。
UNSIGNED(未签署)修饰符规定字段只保存正值。
因为不需要保存数字的正、负符号,可以在储时节约一个“位”的空间。
mysql float详解
mysql float详解MySQL是一种流行的关系型数据库管理系统,而float是MySQL 中的一种数值数据类型。
本文将详细介绍MySQL中的float类型及其相关内容。
在MySQL中,float表示一个单精度浮点数,它可以存储大约7位有效数字,并且占用4个字节的存储空间。
float类型的数据范围是从-3.402823466E+38到-1.175494351E-38、0和从1.175494351E-38到3.402823466E+38。
使用float类型存储小数时需要注意,由于浮点数的特殊性,会存在一定的精度问题。
例如,当使用float类型存储小数时,可能会出现精度丢失的情况。
因此,在需要精确计算小数的场景下,建议使用decimal类型而不是float类型。
在MySQL中,可以通过以下方式定义float类型的列:CREATE TABLE table_name (column_name FLOAT(size, d));其中,size表示数值的总位数,d表示小数的位数。
如果不指定size和d,则默认为FLOAT(10,2)。
例如,可以使用以下语句创建一个名为table_name的表,其中包含一个名为column_name的float类型列:CREATE TABLE table_name (column_name FLOAT(10,2));在实际使用中,float类型可以存储各种数值,例如存储货币金额、温度、体重等。
由于float类型的存储空间相对较小,因此适合存储范围较大但精度要求不高的数值。
在查询和操作float类型的数据时,可以使用各种MySQL内置的数学函数和运算符。
例如,可以使用ROUND函数对float类型的数据进行四舍五入。
另外,可以使用加号、减号、乘号、除号等运算符对float类型的数据进行基本的数学运算。
除了基本的数学运算外,MySQL还提供了一些特殊的函数,例如CEILING、FLOOR、ABS等,可以对float类型的数据进行上取整、下取整、绝对值等操作。
MySQL的数据模型
MySQL的数据模型MySQL的数据类型主要分为三⼤类:1. 数值型(Numeric Type)2. ⽇期与时间型(Date and Time Type)3. 字符串类型(String Type )1. 数值MySQL的数值类型按照精确程度,⼤致可以分为两类:精确数值(Exact Value),包括INTEGER、DECIMAL、NUMERIC等;近似数值(Approximate Value),包括FLOAT、REAL、DOUBLE PRECISION等。
若按类型簇划分,则可分为三簇:Integer类型,包括INTEGER, INT, SMALLINT, TINYINT, MEDIUMINT, BIGINT;Fixed-Point类型,包括DECIMAL, NUMERIC;Floating-Point类型,包括FLOAT, DOUBLE。
⼀般地,关键字INT代指INTEGER,关键字DEC(desc只降序)代指DECIMAL, DOUBLE代指DOUBLE PRECISION(a nonstandard extension)。
BIT类型保存位字段值,并且⽀持MyISAM、MEMORY、InnoDB和BDB表。
数值类型的存储、范围及⽤途如下表:类型⼤⼩(字节)范围(有符号)范围(⽆符号)⽤途TINYINT1(-128,127)(0,255)⼩整数值SMALLINT2(-32 768,32 767)(0,65 535)⼤整数值MEDIUMINT3(-8 388 608,8 388 607)(0,16 777 215)⼤整数值INT4(-2 147 483 648,2 147 483 647)(0,4 294 967 295)⼤整数值BIGINT8(-9 233 372 036 854 775 808,9 223 372 036854 775 807)(0,18 446 744 073 709551 615)极⼤整数值FLOAT4(-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466351 E+38)0,(1.175 494 351 E-38,3.402 823 466E+38)单精度浮点数值DOUBLE8(1.797 693 134 862 315 7 E+308,2.225 073858 507 201 4 E-308),0,(2.225 073 858 507201 4 E-308,1.797 693 134 862 315 7 E+308)0,(2.225 073 858 507201 4 E-308,1.797693 134 862 315 7E+308)双精度浮点数值DECIMAL对于DECIMAL(M,D),为M+2依赖于M和D的值依赖于M和D的值⼩数值DECIMAL类型常被声明为DECIMAL(M,D),其中M为precision,指允许的最多数字位数(the maximum number of digits);D为scale,指⼩数点后的⼩数位数(the number of digits to the right of the decimal point);⼀般D不⼤于M。
数据库字段类型
数据库字段类型MySQL 数据(字段)类型⼀、数据类型(data_type)规定了列可容纳何种数据类型。
下⾯的表格包含了SQL中最常⽤的数据类型:数据类型描述integer(size)int(size)smallint(size)tinyint(size)仅容纳整数。
在括号内规定数字的最⼤位数。
decimal(size,d) numeric(size,d)容纳带有⼩数的数字。
"size" 规定数字的最⼤位数。
"d" 规定⼩数点右侧的最⼤位数。
char(size)容纳固定长度的字符串(可容纳字母、数字以及特殊字符)。
在括号中规定字符串的长度。
varchar(size)容纳可变长度的字符串(可容纳字母、数字以及特殊的字符)。
在括号中规定字符串的最⼤长度。
date(yyyymmdd)容纳⽇期。
⼆、MySQL 数据(字段)类型在创建表的时候,要明确定义字段对应的数据类型。
MySQL 主要的数据类型分为数值类型、字符串(⽂本)类型、时间⽇期类型和其他类型⼏类。
数值类型数值类型说明:类型说明例⼦tinyint存储范围:-128⾄127或0⾄255tinyint(1)smallint存储范围:-32768⾄32767或0⾄65535smallint(3) mediumint存储范围:- 8388608⾄8388607或0⾄16777215mediumint(5)int存储范围:- 2147483648⾄2147483647或0⾄4294967295int(10)bigint存储范围:- 9223372036854775808⾄9223372036854775807或0⾄18446744073709551615bigint(10)float最⼩⾮零值:±1.175494351E – 38,同double⼀样适⽤于精度要求⾼的场合float(3,1)double最⼩⾮零值:±2.2250738585072014E - 308double(10,5)decimal取值范围可变,以来括号内的显⽰尺⼨和⼩数点位数⽽定,适⽤于对精度要求不⾼但准确度要求⾮常⾼的场合decimal(10,2)补充说明1. 在 int(integer)系列中,只能存储整型值,且可以在后⾯⽤括号指定显⽰的尺⼨(M),如果不指定则会默认分配。
mysql数据类型
mysql 数据类型2009年07月18日星期六15:57在计算机中数据有两种特征:类型和长度。
所谓数据类型就是以数据的表现方式和存储方式来划分的数据的种类。
在SQL Server 中每个变量、参数、表达式等都有数据类型。
系统提供的数据类型分为几大类,。
其中,BIGINT、SQL_V ARIANT 和TABLE 是SQL Server 2000 中新增加的3 种数据类型。
下面分类讲述各种数据类型。
4.3.1 整数数据类型整数数据类型是最常用的数据类型之一。
1、INT (INTEGER)INT (或INTEGER)数据类型存储从-2的31次方(-2 ,147 ,483 ,648)到2的31次方-1 (2 ,147 ,483,647)之间的所有正负整数。
每个INT 类型的数据按4 个字节存储,其中1 位表示整数值的正负号,其它31 位表示整数值的长度和大小。
2、SMALLINTSMALLINT 数据类型存储从-2的15次方(-32,768)到2的15次方-1(32 ,767 )之间的所有正负整数。
每个SMALLINT 类型的数据占用2 个字节的存储空间,其中1 位表示整数值的正负号,其它15 位表示整数值的长度和大小。
3、TINYINTTINYINT数据类型存储从0 到255 之间的所有正整数。
每个TINYINT类型的数据占用1 个字节的存储空间。
4、BIGINTBIGINT 数据类型存储从-2^63 (-9 ,223,372,036,854,775,807)到2^63-1(9,223,372,036 ,854 ,775,807)之间的所有正负整数。
每个BIGINT 类型的数据占用8个字节的存储空间。
4.3.2 浮点数据类型浮点数据类型用于存储十进制小数。
浮点数值的数据在SQL Server 中采用上舍入(Round up 或称为只入不舍)方式进行存储。
所谓上舍入是指,当(且仅当)要舍入的数是一个非零数时,对其保留数字部分的最低有效位上的数值加1 ,并进行必要的进位。
Mysql各数据类型以及取值范围和适用场合
Mysql各数据类型以及取值范围和适⽤场合编号数据类型⼤⼩有符值域⽆符值域适⽤场合1Bit1~64 Bit0~1位标⽰2TinyInt 1 Byte-128~1270~255⼩整数值3SmallInt 2 Byte -32768~32767 0~65535中整数值4MediumInt 3 Byte -8388608~8388607 0~16777215⼤整数值5Int 4 Byte -2147483648~2147483647 0~4294967295整数值6BigInt8 Byte -9223372036854775808~92233720368547758070~18446744073709551615极⼤整数值7Float 4 Byte单精浮点数值8Double8 Byte双精浮点数值9Deciaml依赖于M和D的值依赖于M和D的值10Date 3 Byte格式 : YYYY-MM-DD1000-01-01~9999-12-31⽇期值11DateTime8 Byte格式 : YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00~9999-12-31 23:59:59⽇期和时间值12Timestamp8 Byte格式 : YYYYMMDDHHMMSS 1970-01-01 00:00:00~2037年某时时间戳13Time 3 Byte格式 : HH:MM:SS-838:59:59~838:59:59时间值14Year 1 Byte格式 : YYYY1901/2155年份值15Char0~255 Byte定长字符串16VarChar0~255 Byte变长字符串17Binary18VarBinary19TinyText0~255 Byte短⽂本字符串20MediumText 0~16777215Byte中长⽂本21LongText 0~4294967295Byte极⼤⽂本22Text0~65535 Byte长⽂本23TinyBlob0~255 Byte不超过255个字符的⼆进制字符串24Blob0~65535 Byte⼆进制形式的长⽂本数据25MediumBlob 0~16777215Byte⼆进制形式的中等长⽂本数据26LongBlob 0~4294967295Byte⼆进制形式的极⼤长⽂本数据27Enum28Set29Geometry30Point31MultiPoint32Polygon33MultiPolygon34LineString35MultiLineString36GeometryCollection数据尚未填写完成,跟进中。
数据库学习
1.2. 列类型(column type)
MySQL数据库的表是一个二维表,由一个或多个数据列构成。每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。MySQL中的列类型有三种:数值类、字符串类和日期/时间类。从大类来看列类型和数值类型一样,都是只有三种。但每种列类型都还可细分。下面对各种列类型进行详细介绍。
MySQL能识别字符串中的转义序列,转义序列用反斜杠(\)表示。下面是一个转义序列列表。
Table 1.1. 转义序列
转义序列 含义
\0 NUL(ASCII的0值)
\‘ 单引号
\" 双引号
\b 后退符
\n 换行符
\r 回车符
\t 制表符
\\ 反斜杠
\Z Ctrl+Z
ENUM(‘value1‘,‘value2‘,...) 65535个成员 1或2字节
SET(‘value1‘,‘value2‘,...) 64个成员 1,2,3,4或8字节
L+1、L+2是表示数据列是可变长度的,它占用的空间会根据数据行的增减面则改变。数据行的总长度取决于存放在这些数据列里的数据值的长度。L+1或L+2里多出来的字节是用来保存数据值的长度的。在对长度可变的数据进行处理时,MySQL要把数据内容和数据长度都保存起来。
1.3. 唯一编号
1.4. 字符集支持
1.4.1. MySQL4.1以前版本
1.4.2. MySQL4.1以后版本
1.4.3. 各级字符集的查询方法
1.4.4. Unicode支持
mysqlbinary介绍_MySQL数据类型介绍
mysqlbinary介绍_MySQL数据类型介绍MySQL是一个广泛使用的开源关系型数据库管理系统,被广泛应用于Web应用程序开发中。
在MySQL中,数据类型是用来定义列或变量的属性,以确定存储的数据的种类和范围。
MySQL提供了多种数据类型,包括整数、浮点数、日期和时间、字符串和二进制数据类型等。
其中,二进制数据类型是用于存储二进制数据的类型,可以存储任意字节的数据。
MySQL提供了多种二进制数据类型,包括BINARY、VARBINARY、TINYBLOB、BLOB、MEDIUMBLOB和LONGBLOB。
二进制数据类型可以用于存储图片、音频、视频等二进制文件。
在数据库中存储二进制数据的好处是可以保留数据的完整性和一致性,同时也可以提高数据的读取和写入效率。
例如,在一个电子商务网站中,可以将商品的图片存储为二进制数据类型,以便在网页中显示商品图片。
在使用二进制数据类型时,需要注意以下几点:1.存储空间:不同的二进制数据类型有不同的存储空间限制,需要根据实际需求选择合适的类型。
2.读写效率:二进制数据类型的读写效率通常比文本数据类型要高,但是在进行查询操作时可能会降低数据库的性能。
3.编码方式:二进制数据类型存储的是原始字节数据,不会进行编码转换,因此在进行数据操作时需要注意编码方式的一致性。
4.安全性:二进制数据类型的存储方式可以提高数据的安全性,但是同时也增加了数据的复杂性和处理难度。
总之,MySQL提供了丰富的二进制数据类型,可以满足不同场景下的需求。
在使用二进制数据类型时,需要根据实际需求选择合适的类型,并注意存储空间、读写效率、编码方式和安全性等方面的问题。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
MySQL 三种常用的数据类型
MySQL中定义数据字段的类型对你数据库的优化是非常重要的。
MySQL支持多种类型,大致可以分为三类:数值、日期/时间和字符串(字符)类型。
1.数值类型
MySQL支持所有标准SQL数值数据类型。
这些类型包括严格数值数据类型(INTEGER、SMALLINT、DECIMAL和NUMERIC),以及近似数值数据类型(FLOAT、REAL和DOUBLE PRECISION)。
关键字INT是INTEGER的同义词,关键字DEC是DECIMAL的同义词。
BIT数据类型保存位字段值,并且支持MyISAM、MEMORY、InnoDB和BDB表。
作为SQL标准的扩展,MySQL也支持整数类型TINYINT、MEDIUMINT和BIGINT。
下面的表显示了需要的每个整数类型的存储和范围。
2.日期和时间类型
表示时间值的日期和时间类型为DATETIME、DATE、TIMESTAMP、TIME和YEAR。
每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使用"零"值。
TIMESTAMP类型有专有的自动更新特性,将在后面描述。
3.字符串类型
字符串类型指CHAR、VARCHAR、BINARY、VARBINARY、BLOB、TEXT、ENUM和SET。
该节描述了这些类型如何工作以及如何在查询中使用这些类型。
注意:
char(n) 和 varchar(n) 中括号中 n 代表字符的个数,并不代表字节个数,比如 CHAR(30) 就可以存储 30 个字符。
CHAR 和 VARCHAR 类型类似,但它们保存和检索的方式不同。
它们的最大长度和是否尾部空格被保留等方面也不同。
在存储或检索过程中不进行大小写转换。
BINARY 和 VARBINARY 类似于 CHAR 和 VARCHAR,不同的是它们包含二进制字符串而不要非二进制字符串。
也就是说,它们包含字节字符串而不是字符字符串。
这说明它们没有字符集,并且排序和比较基于列值字节的数值值。
BLOB 是一个二进制大对象,可以容纳可变数量的数据。
有 4 种 BLOB 类型:TINYBLOB、BLOB、MEDIUMBLOB 和 LONGBLOB。
它们区别在于可容纳存储范围不同。
有 4 种 TEXT 类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。
对应的这 4 种 BLOB 类型,可存储的最大长度不同,可根据实际情况选择。
以上就是三种常用的MySQL 数据类型的详细内容。