【精选资料】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燕十八学习笔记
Mysql 三大列类型1. 数值型整型Tinyint 、Smallint、Mediumint 、Int、Bigint小数型Float(D,M),Decimal(D,M)2. 字符串型Char(M)Varchar(M)Text 文本类型3. 日期时间类型Date 日期Time 时间Datetime 时间类型Year年类型一.整型列的字节与存储范围从数学上讨论tinyint ,建表时既能足够存放,又不浪费空间。
即:(1). 占据空间(2). 存储范围通过占用字节和所存范围分关系合理的选择类型例:Tinyint经测试,Tinyint 的默认为有符号-128~127之间,当越界时自动取相应 的边界值。
若要存0~255无符号时:列的可选属性:Tinyin t (M ) un sig ned zerofill.M :宽度(在0填充的时候才有意义)Un sig ned:无符号类型(非负),影响存储范围 Zerofill :0填充(默认无符号)1> insert into test-> (name,age3)-> ualu&s->「赵六'/S');u QIC, 1 row aff©et&d (0.00 soc)箕from t&st;I id I name I age I agel I age2 I age3 I卜--------- + ------------- + --------------- + -------------- + --------------- + ----------------- +rows in at (0.07 SEC)列可以声明默认值,而且推荐声明默认值not null default 0; ysql> alter table test add tinyint(3j not null default 0;uery 0IC, 9 rows affected (0.13 $ec)ecords: 9 Duplicates: 0 Uarnings: O小数型/浮点型、定点型Float(M,D):M代表总位数,D代表小数位(6,2)为例:-9999.99 ->9999.99 12345G789一一一一张张张张李张李王制LLuNi NULLLLuNLLJNI NULL NULLLLuN三四三四五六6NULL NULL I NULL ILLuNNULL | 2G0 | NULL | NULL !NULL I 0 I NULL I NULL |NULL I NULL I 127 I NULL Iy$ql> t M from 七。
mysql 的数组格式
mysql 的数组格式在 MySQL 中,可以使用数组数据类型来存储多个值在一个字段中。
MySQL 数组是一种特殊的数据类型,用于存储一个值的列表。
每个数组元素都可以单独访问,并且可以使用索引来访问特定的元素。
在 MySQL 中,可以使用以下语法定义一个数组字段:column_name data_type(array_size)其中,column_name 是字段的名称,data_type 是该字段的数据类型,array_size 是数组的大小。
例如,如果要定义一个名为students 的表,其中包含一个整数类型的 age 数组字段,可以使用以下 SQL 语句:CREATE TABLE students (id INT,age INT ARRAY(3));在这个例子中,age 字段是一个整数类型的数组,大小为 3。
这意味着它可以存储最多3 个整数。
要插入数据到数组字段中,可以使用以下语法:INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);例如,如果要向 students 表插入一条记录,其中 age 字段包含三个整数值 10、15 和 20,可以使用以下 SQL 语句:INSERT INTO students (id, age) VALUES (1, ARRAY[10, 15, 20]);要查询数组字段中的值,可以使用以下语法:SELECT column_name[index] FROM table_name WHERE condition;例如,如果要查询 students 表中的第一个学生的年龄,可以使用以下 SQL 语句:SELECT age[0] FROM students WHERE id = 1;这将返回值为 10,即 age 数组的第一个元素。
可以通过改变索引来访问数组中的其他元素。
MySQL数据库的数据类型和字段属性详解
MySQL数据库的数据类型和字段属性详解引言MySQL是一种非常流行和常用的关系型数据库管理系统,广泛应用于各种网站和应用程序中。
在使用MySQL进行数据库设计和开发时,数据类型和字段属性的选择非常重要,它们直接影响着数据库的性能和数据的完整性。
本文将详细介绍MySQL数据库中常用的数据类型和字段属性,以便读者能够更好地理解和应用它们。
一、数值类型1. 整型(INT)整型是MySQL中最基本和常用的数据类型之一。
在MySQL中,整型包括int、tinyint、smallint、mediumint和bigint五种。
它们的区别在于存储范围和占用空间的大小。
例如,int类型的范围是-2147483648到2147483647,占用空间为4字节。
2. 浮点型(FLOAT和DOUBLE)浮点型用于存储小数,包括单精度浮点类型(FLOAT)和双精度浮点类型(DOUBLE)。
FLOAT类型占用4字节,DOUBLE类型占用8字节。
浮点型能够存储非常大和非常小的数字,但是在精度上有一定的限制。
3. 定点类型(DECIMAL)定点类型用于存储精确的小数,其精度和范围可以由用户自定义。
DECIMAL类型在数据库中的存储是以字符串形式存储的,它具有较高的精度和较小的存储空间。
二、字符串类型1. 字符型(CHAR和VARCHAR)字符型用于存储字符串,包括固定长度的字符类型(CHAR)和可变长度的字符类型(VARCHAR)。
CHAR类型在数据库中占用固定的空间,而VARCHAR 类型根据存储的内容变化而变化。
CHAR类型在存储短字符串时效率较高,而VARCHAR类型适用于存储可变长度的内容。
2. 文本型(TEXT)文本型用于存储较长的字符串,其分为四种类型:TINYTEXT、TEXT、MEDIUMTEXT和LONGTEXT。
它们分别用于存储不同长度的文本内容,MEDIUMTEXT类型可以存储最大长度为16MB的文本。
三、日期和时间类型1. 日期类型(DATE)日期类型用于存储日期,包括年、月、日。
四、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数据库中,逻辑类型(Logical Type)是指用于表示非数值性数据的数据类型。
与数值类型不同,逻辑类型的取值只有两个状态:真或假。
逻辑类型在数据库中的应用非常广泛,例如用于表示开关状态、判断条件、存储布尔数据等。
二、MySQL的逻辑类型MySQL提供了多种逻辑类型,用于满足不同的需求。
下面是MySQL中常用的逻辑类型:1. TINYINTTINYINT类型用于表示一个字节范围内的整数,可以用于存储逻辑类型数据。
其取值范围是-128到127,其中0表示假,非0表示真。
在MySQL中,TINYINT类型通常用于存储布尔值。
2. BOOLEANBOOLEAN类型也用于存储逻辑类型数据,其取值范围是0和1,其中0表示假,1表示真。
在MySQL中,BOOLEAN类型实际上是TINYINT(1)的别名,可以将其视为TINYINT类型的一种特殊用法。
3. BITBIT类型用于存储位数据,其中每个位可以表示一个逻辑类型的取值。
BIT类型可以存储0至64位之间的数据,其中0表示假,1表示真。
在MySQL中,BIT类型通常用于存储多个逻辑类型字段的组合,例如存储开关状态的多个标志位。
三、使用逻辑类型使用逻辑类型非常简单,可以直接将逻辑值赋给对应的列或变量。
下面是一些常见的用法:1. 创建表时使用逻辑类型在创建表时,可以指定逻辑类型的列。
例如,创建一个存储开关状态的表:CREATE TABLE switch (id INT PRIMARY KEY,is_on BOOLEAN);2. 插入逻辑类型数据插入逻辑类型数据时,可以直接使用逻辑值。
例如,将开关状态插入到switch表中:INSERT INTO switch (id, is_on) VALUES (1, TRUE);3. 查询逻辑类型数据查询逻辑类型数据时,可以根据逻辑值进行过滤。
例如,查询开关状态为开启的记录:SELECT * FROM switch WHERE is_on = TRUE;4. 更新逻辑类型数据更新逻辑类型数据时,可以直接使用新的逻辑值。
mysql基本数据类型
mysql基本数据类型MySQL是一种关系型数据库管理系统,它支持多种数据类型。
MySQL的数据类型分为数值类型、日期和时间类型、字符串类型、二进制类型。
以下是MySQL基本数据类型(注意:各类型数据的存储要占用的字节数,不同的数据库系统、不同的编译选项这些大小限制和取值范围有所不同):1. 数值类型MySQL数值类型有整数类型和小数类型两种:1.1 整数类型- TINYINT:有符号范围为-128~127,无符号范围0~255。
占用1个字节。
- SMALLINT:有符号范围为-32768~32767,无符号范围0~65535。
占用2个字节。
- MEDIUMINT:有符号范围为-8388608~8388607,无符号范围0~16777215。
占用3个字节。
- INT:有符号范围为-2147483648~2147483647,无符号范围0~4294967295。
占用4个字节。
- BIGINT:有符号范围为-9223372036854775808~9223372036854775807,无符号范围0~18446744073709551615。
占用8个字节。
1.2 小数类型- FLOAT:单精度浮点数,占用4个字节。
- DOUBLE:双精度浮点数,占用8个字节。
- DECIMAL:高精度浮点数,依赖于实际存储的数字大小而变化。
2. 日期和时间类型MySQL日期和时间类型包括DATE、TIME、DATETIME、YEAR和TIMESTAMP:- DATE:日期,存储的范围为'1000-01-01'到'9999-12-31'。
占用3个字节。
- TIME:时间,存储的范围为 '-838:59:59'到 '838:59:59'。
占用3个字节。
- DATETIME:日期时间,存储范围为 '1000-01-01 00:00:00'到 '9999-12-31 23:59:59'。
mysql数据类型使用注意事项
mysql数据类型使用注意事项
1.选取正确的数据类型
需要根据数据的实际情况选择合适的数据类型,例如数字类型可选用Int、Float、Decimal等,字符类型可选用Char、Varchar等。
选择正确数据类型可以提高存储空间的利用率,减少空间浪费。
2.避免使用TEXT、BLOB类型
虽然TEXT、BLOB类型可以存储大量的数据,但是在查询和排序等操作时会对系统性能造成影响。
因此,如果不是必要情况下,应尽量避免使用这两种数据类型。
3.存储日期时间建议使用DateTime类型
在存储日期时间时要注意,建议使用DateTime类型,因为查询效率高,占用空间也较小。
4.避免在联合索引中使用较长的数据类型
如果需要建立联合索引,应尽量避免在索引中使用较长的数据类型,因为较长的数据类型会增加查询的时间和空间,降低数据库的效率。
5.创建索引的字段应尽可能短
在创建索引时,应尽可能选择短的字段,这样可以提高查询效率,并减少空间浪费。
如果需要建立复合索引,首先考虑使用最重要的字段建立索引。
MySQL数据类型之集合类型
MySQL数据类型之集合类型• Set集合类型是字符类型,可以含有0个或多个值,其中的每个值都需要是在创建字段时指定的集合中• ⽐如⼀个字段被指定为SET(‘one’, ‘two’) not null可以含有以下四种值 • '' • 'one' • 'two' • 'one,two‘• Set集合最⼤可以有255个值• MySQL在存储set集合时,同样也是存储为数字类型mysql> CREATE TABLE myset (col SET('a', 'b', 'c', 'd'));Query OK, 0 rows affected (0.12 sec)mysql> insert into myset values('a');Query OK, 1 row affected (0.10 sec)mysql> insert into myset values('a,b');Query OK, 1 row affected (0.03 sec)mysql> insert into myset values('a,d');Query OK, 1 row affected (0.01 sec)mysql> insert into myset values('a,bd');ERROR 1265 (01000): Data truncated for column 'col' at row 1mysql> insert into myset values('a,b,d');Query OK, 1 row affected (0.05 sec)mysql> insert into myset values('a,e');ERROR 1265 (01000): Data truncated for column 'col' at row 1mysql> select * from myset;+-------+| col |+-------+| a || a,b || a,d || a,b,d |+-------+4 rows in set (0.00 sec)mysql> insert into myset values('d,a');Query OK, 1 row affected (0.08 sec)mysql> select * from myset;+-------+| col |+-------+| a || a,b || a,d || a,b,d || a,d |+-------+5 rows in set (0.00 sec)。
mysql 列类型
MySQL 列类型概述MySQL支持多种列类型:数值类型、日期/时间类型和字符串(字符)类型。
几种列类型描述使用了下述惯例:M 表示最大显示宽度,最大有效显示宽度是255;D 适用于浮点和定点类型,并表示小数点后面的位数。
最大可能的值是30,但不应大于M-2。
方括号([])表示可选部分。
1、数值类型概述如果为一个数值列指定ZEROFILL,MySQL自动为该列添加UNSIGNED属性。
SERIAL是BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的一个别名。
在整数列定义中,SERIAL DEFAULT VALUE是NOT NULL AUTO_INCREMENT UNIQUE的一个别名。
类型范围说明:类型字节最小值最大值TINYINT 1 带符号的 -128 127无符号0 255SMALLINT 2 带符号的 -32768 32767无符号0 65535MEDIUMINT 3 带符号的-8388608 8388607无符号0 16777215INT 4 带符号的-2147483648 2147483647无符号0 4294967295BIGINT 8 带符号的-92233720368547758089223372036854775807 无符号0 184467440737095516151.1、BITBIT[(M)]位字段类型。
M表示每个值的位数,范围为从1到64。
如果M被省略,默认为1。
1.2、INYINTINYINT[(M)] [UNSIGNED] [ZEROFILL]很小的整数。
带符号的范围是-128到127。
无符号的范围是0到255。
1.3、BOOLBOOL,BOOLEAN是TINYINT(1)的同义词。
zero值被视为假。
非zero值视为真。
在将来,将根据标准SQL引入完全布尔类型的处理。
1.4、SMALLINTSMALLINT[(M)] [UNSIGNED] [ZEROFILL]小的整数。
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 字段小数类型
mysql 字段小数类型MySQL是一种常用的关系型数据库管理系统,通过定义表结构和字段类型来存储和管理数据。
在MySQL中,字段的小数类型是一种用于存储浮点数的数据类型。
本文将从多个方面介绍MySQL字段小数类型的相关知识。
一、什么是字段小数类型字段小数类型是一种用于存储小数的数据类型,它可以存储指定精度和范围内的小数值。
在MySQL中,常用的字段小数类型有DECIMAL、FLOAT和DOUBLE。
1. DECIMAL类型:DECIMAL是一种精确的小数类型,它可以存储指定精度和范围内的小数值。
DECIMAL类型的精度可以在创建表时指定,例如DECIMAL(5,2)表示总共可存储5位数,其中2位是小数部分。
2. FLOAT类型:FLOAT是一种近似的小数类型,它可以存储单精度浮点数,即4个字节的浮点数。
FLOAT类型适用于存储范围较大的小数值,但它的精度会受到一定的限制。
3. DOUBLE类型:DOUBLE是一种近似的小数类型,它可以存储双精度浮点数,即8个字节的浮点数。
DOUBLE类型适用于存储范围较大且需要更高精度的小数值。
二、字段小数类型的使用场景字段小数类型在实际应用中有着广泛的使用场景,下面列举几个常见的应用场景。
1. 财务系统:财务系统中的金额、利率等数据通常需要保持较高的精度,因此可以使用DECIMAL类型来存储这些数据。
2. 科学计算:科学计算中需要处理大量的实验数据,这些数据可能包含小数部分,因此可以使用FLOAT或DOUBLE类型来存储这些数据。
3. 地理位置信息:地理位置信息中的经纬度数据通常是小数形式的,可以使用FLOAT 或DOUBLE类型来存储这些数据。
三、字段小数类型的注意事项在使用字段小数类型时,需要注意以下几点。
1. 精度和范围:在定义DECIMAL类型时,需要考虑所需的精度和范围,确保能够满足实际需求。
过大的精度和范围可能会浪费存储空间,而过小的精度和范围可能会导致数据丢失。
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数据尚未填写完成,跟进中。
mysql数据类型转换规则
mysql数据类型转换规则
MySQL支持的数据类型转换规则如下:
1. 自动转换数据类型:当MySQL执行一个操作时,如果操作数的数据类型不同,MySQL会自动进行数据类型转换。
2. 显式转换数据类型:用户可以通过使用MySQL的转换函数来显式地转换数据类型。
3. 数据类型优先级:当MySQL执行一个操作时,会按照数据类型的优先级来进行数据类型转换。
优先级从高到低依次为:BINARY、VARBINARY、BLOB、CHAR、VARCHAR和TEXT,INT、INTEGER、MEDIUMINT、SMALLINT、TINYINT、FLOAT、DOUBLE和DECIMAL。
4. 隐式转换的规则:当MySQL执行一个操作时,如果两个操作数的数据类型不同,则从较低优先级向较高优先级进行强制转换。
例如,如果一个操作数是INT 类型,另一个操作数是FLOAT类型,则FLOAT类型会被自动转换为INT类型。
5. 转换顺序:当MySQL执行一个操作时,如果需要进行多个数据类型转换,则执行顺序和MySQL函数执行顺序一样,即先执行内层函数,再执行外层函数的转换操作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
查看文章mysql数据类型2007-01-27 20:341. mysql的数据类型在mysql中有如下几种数据类型:(1)数值型数值是诸如32 或153.4 这样的值。
mysql 支持科学表示法,科学表示法由整数或浮点数后跟“e”或“e”、一个符号(“+”或“-”)和一个整数指数来表示。
1.24e+12 和23.47e-1 都是合法的科学表示法表示的数。
而1.24e12 不是合法的,因为指数前的符号未给出。
浮点数由整数部分、一个小数点和小数部分组成。
整数部分和小数部分可以分别为空,但不能同时为空。
数值前可放一个负号“-”以表示负值。
(2)字符(串)型字符型(也叫字符串型,简称串)是诸如“hello,world!”或“一个馒头引起的血案”这样的值,或者是电话号码87398413这样的值。
既可用单引号也可用双引号将串值括起来。
初学者往往分不清数值87398143和字符串87398143的区别。
都是数字啊,怎么一个要用数值型,一个要用字符型呢?关键就在于:数值型的87398143是要参与计算的,比如它是金融中的一个货款总额;而字符型的87398143是不参与计算的,只是表示电话号码,这样的还有街道号码、门牌号码等等,它们都不参与计算。
(3)日期和时间型日期和时间是一些诸如“2006-07-12”或“12:30:43”这样的值。
mysql 还支持日期/时间的组合,如“2006-07-12 12:30:43”。
(4)null值null表示未知值。
比如填写表格中通讯地址不清楚留空不填写,这就是null值。
我们用create table语句创建一个表(参看前面的章节),这个表中包含列的定义。
例如我们在前面创建了一个joke表,这个表中有content和writer 两个列:create table(content varchar(20) not null,writer varchar(10) null)定义一个列的语法如下:col_name col_typy [col_attributes] [general_attributes]其中列名由col_name 给出。
列名可最多包含64个字符,字符包括字母、数字、下划线及美元符号。
列名可以名字中合法的任何符号(包括数字)开头。
但列名不能完全由数字组成,因为那样可能使其与数据分不开。
mysql保留诸如select、delete和create这样的词,这些词不能用做列名,但是函数名(如pos 和min)是可以使用的。
列类型col_type表示列可存储的特定值。
列类型说明符还能表示存放在列中的值的最大长度。
对于某些类型,可用一个数值明确地说明其长度。
而另外一些值,其长度由类型名蕴含。
例如,char(10) 明确指定了10个字符的长度,而tinyblob值隐含最大长度为255个字符。
有的类型说明符允许指定最大的显示宽度(即显示值时使用多少个字符)。
浮点类型允许指定小数位数,所以能控制浮点数的精度值为多少。
可以在列类型之后指定可选的类型说明属性,以及指定更多的常见属性。
属性起修饰类型的作用,并更改其处理列值的方式,属性有以下类型:(1)专用属性用于指定列。
例如,unsigned 属性只针对整型,而binary属性只用于char 和varchar。
(2)通用属性除少数列之外可用于任意列。
可以指定null 或not null 以表示某个列是否能够存放null。
还可以用default,def_value 来表示在创建一个新行但未明确给出该列的值时,该列可赋予值def_value。
def_value 必须为一个常量;它不能是表达式,也不能引用其他列。
不能对blob 或text 列指定缺省值。
如果想给出多个列的专用属性,可按任意顺序指定它们,只要它们跟在列类型之后、通用属性之前即可。
类似地,如果需要给出多个通用属性,也可按任意顺序给出它们,只要将它们放在列类型和可能给出的列专用属性之后即可。
2. mysql的列(字段)类型数据库中的每个表都是由一个或多个列(字段)构成的。
在用create table语句创建一个表时,要为每列(字段)指定一个类型。
列(字段)的类型比数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。
2.1数值列类型mysql有整数和浮点数值的列类型,如表1所示。
整数列类型可以有符号也可无符号。
有一种特殊的属性允许整数列值自动生成,这对需要唯一序列或标识号的应用系统来说是非常有用的。
表1:数值列类型每种数值类型的名称和取值范围如表2所示。
表2:数值列类型的取值范围各种类型值所需的存储量如表3所示。
表3:数值列类型的存储需求mysql提供了五种整型:tinyint、smallint、mediumint、int和bigint。
int为integer的缩写。
这些类型在可表示的取值范围上是不同的。
整数列可定义为unsigned从而禁用负值;这使列的取值范围为0以上。
各种类型的存储量需求也是不同的。
取值范围较大的类型所需的存储量较大。
mysql 提供三种浮点类型:float、double和decimal。
与整型不同,浮点类型不能是unsigned的,其取值范围也与整型不同,这种不同不仅在于这些类型有最大值,而且还有最小非零值。
最小值提供了相应类型精度的一种度量,这对于记录科学数据来说是非常重要的(当然,也有负的最大和最小值)。
在选择了某种数值类型时,应该考虑所要表示的值的范围,只需选择能覆盖要取值的范围的最小类型即可。
选择较大类型会对空间造成浪费,使表不必要地增大,处理起来没有选择较小类型那样有效。
对于整型值,如果数据取值范围较小,如人员年龄或兄弟姐妹数,则tinyint最合适。
mediumint能够表示数百万的值并且可用于更多类型的值,但存储代价较大。
bigint在全部整型中取值范围最大,而且需要的存储空间是表示范围次大的整型int类型的两倍,因此只在确实需要时才用。
对于浮点值,double占用float的两倍空间。
除非特别需要高精度或范围极大的值,一般应使用只用一半存储代价的float型来表示数据。
在定义整型列时,可以指定可选的显示尺寸m。
如果这样,m应该是一个1 到255的整数。
它表示用来显示列中值的字符数。
例如,mediumint(4)指定了一个具有4个字符显示宽度的mediumint列。
如果定义了一个没有明确宽度的整数列,将会自动分配给它一个缺省的宽度。
缺省值为每种类型的“最长”值的长度。
如果某个特定值的可打印表示需要不止m个字符,则显示完全的值;不会将值截断以适合m个字符。
对每种浮点类型,可指定一个最大的显示尺寸m 和小数位数d。
m 的值应该取1 到255。
d的值可为0 到3 0,但是不应大于m - 2(如果熟悉odbc 术语,就会知道m 和d 对应于odbc 概念的“精度”和“小数点位数”)。
m和d对float和double 都是可选的,但对于decimal是必须的。
在选项m 和d时,如果省略了它们,则使用缺省值。
2.2字符串列类型mysql提供了几种存放字符数据的串类型,其类型如下:表4:字符串列类型下表给出了mysql 定义串值列的类型,以及每种类型的最大尺寸和存储需求。
对于可变长的列类型,各行的值所占的存储量是不同的,这取决于实际存放在列中的值的长度。
这个长度在表中用l 表示。
表5:串列类型最大尺寸及存储需求l 以外所需的额外字节为存放该值的长度所需的字节数。
mysql 通过存储值的内容及其长度来处理可变长度的值。
这些额外的字节是无符号整数。
请注意,可变长类型的最大长度、此类型所需的额外字节数以及占用相同字节数的无符号整数之间的对应关系。
例如,mediumblob 值可能最多224 - 1字节长并需要3 个字节记录其结果。
3 个字节的整数类型mediumint 的最大无符号值为224 - 1。
这并非偶然。
2.3日期时间列类型mysql 提供了几种时间值的列类型,它们分别是:date、datetime、time、timestamp和year。
下表给出了mysql 为定义存储日期和时间值所提供的这些类型,并给出了每种类型的合法取值范围。
表6:日期时间列类型表7:日前时间列类型的取值范围和存储需求下面举个例子:create table student(name varchar(20) not null,chinese tinyint(3),maths tinyint(3),english tinyint(3),birthday date)这个例子创建一个student表,这个表中有name字段,字符类型列,不允许null(空值)。
有chinese、maths和english三个整数类型列。
还有个birthday日期类型列。