【精选资料】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。
- 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日期类型列。