Mysql数据类型(字段)介绍

MySql数据库的列类型(字段类型)MySQL数据库的表是一个二维表,由一个或多个数据列构成。

每个数据列都有它的特定类型,该类型决定了MySQL如何看待该列数据,我们可以把整型数值存放到字符类型的列中,MySQL则会把它看成字符串来处理。

MySQL中的列类型有三种:数值类、字符串类和日期/时间类。

从大类来看列类型和数值类型一样,都是只有三种。

但每种列类型都还可细分。

下面对各种列类型进行详细介绍。

数值类的数据列类型数值型的列类型包括整型和浮点型两大类。

TINYINT:1字节非常小的正整数,带符号:-128~127,不带符号:0~255 SMALLINT:2字节小整数,带符号:-32768~32767,不带符号:0~65535 MEDIUMINT:3字节中等大小的整数,带符号:-~,不带符号:0~INT:4字节标准整数,带符号:-~,不带符号:0~BIGINT:8字节大整数,带符号:-~,不带符号:0~FLOAT:4字节单精度浮点数,最小非零值:+-1.E-38,最大非零值:+-3.E+38 DOUBLE:8字节双精度浮点数,最小非零值:+-2.72014E-308,最大非零值:+-1.23157E+308 DECIMAL:M+2字节以字符串形式表示的浮点数,它的取值范围可变,由M和D的值决定。

整型数据列类型MySQL有五种整型数据列类型,即TINYINT,SMALLINT,MEDIUMINT,INT和BIGINT。

它们之间的区别是取值范围不同,存储空间也各不相同。

在整型数据列后加上UNSIGNED属性可以禁止负数,取值从0开始。

声明整型数据列时,我们可以为它指定个显示宽度M(1~255),如INT(5),指定显示宽度为5个字符,如果没有给它指定显示宽度,MySQL会为它指定一个默认值。

显示宽度只用于显示,并不能限制取值范围和占用空间,如:INT(3)会占用4个字节的存储空间,并且允许的最大值也不会是999,而是INT整型所允许的最大值。

浮点型数据列类型MySQL有三种浮点型数据列类型,分别是:FLOAT,DOUBLE和DECIMAL。

浮点类数据类型有一个最大可表示值和一个最小非零可表示值,最小非零可表示值决定了该类型的精确度。

MySQL 4.0.2版之后,FLOAT和DOUBLE都可以指定UNSIGNED属性。

当指定该属性时,取值范围不平移到正数区间,而只是简单地把浮点类型的负数部份去掉。

浮点类型也有M(1~255)和D(1~30,且不能大于M-2)。

分别表示显示宽度和小数位数。

M和D在FLOAT和DOUBLE中是可选的,默认,当MySQL版本大于3.23.6时,FLOAT和DOUBLE类型将被保存为硬件所支持的最大精度。

DECIMAL的M和D值在MySQL3.23.6后可选,默认D值为0,M值为10。

如何选择数值类数据列类型?为了节省存储空间和提高数据库处理效率,我们应根据应用数据的取值范围来选择一个最适合的数据列类型。

如果把一个超出数据列取值范围的数存入该列,则MySQL就会截短该值,如:我们把99999存入SMALLINT(3)数据列里,因为SMALLINT(3)的取值范围是-32768~32767,所以就会被截短成32767存储。

显示宽度3不会影响数值的存储。

只影响显示。

对于浮点数据列,存入的数值会被该列定义的小数位进行四舍五入。

如把一个1.234存入FLOAT(6.1)数据列中,结果是1.2。

DECIMAL与FLOAT和DOUBLE的区别是:DECIMAL类型的值是以字符串的形式被储存起来的,它的小数位数是固定的。

它的优点是,不会象FLOAT和DOUBLE类型数据列那样进行四舍五入而产生误差,所以很适合用于财务计算;而它的缺点是:由于它的存储格式不同,CPU不能对它进行直接运算,从而影响运算效率。

DECIMAL(M,D)总共要占用M+2个字节。

数值类数据列的属性ZEROFILL属性适用于所有数值类数据列类型,作用是,如果数值的宽度小于定义的显示宽度,则在数值前填充0。

UNSIGNED属性不允许数据列出现负数。

AUTO_INCREMENT属性可生成独一无二的数字序列。

只对整数类的数据列有效。

NULL和NOT NULL属性设置数据列是否可为空。

DEFAULT属性可为数据列指定默认值。

//////////////////////////////////////////////////////字符串类数据列类型字符串可以用来表示任何一种值,所以它是最基本的类型之一。

我们可以用字符串类型来存储图象或声音之类的二进制数据,也可存储用gzip压缩的数据。

下表介绍了各种字符串类型:CHAR[(M)] M字节 M字节V ARCHAR[(M)] M字节 L+1字节TINYBLOD,TINYTEXT 2^8-1字节 L+1字节BLOB,TEXT 2^16-1字节 L+2MEDIUMBLOB,MEDIUMTEXT 2^24-1字节 L+3LONGBLOB,LONGTEXT 2^32-1字节 L+4ENUM('value1','value2',...) 65535个成员 1或2字节SET('value1','value2',...) 64个成员 1,2,3,4或8字节L+1、L+2是表示数据列是可变长度的,它占用的空间会根据数据行的增减面则改变。

数据行的总长度取决于存放在这些数据列里的数据值的长度。

L+1或L+2里多出来的字节是用来保存数据值的长度的。

在对长度可变的数据进行处理时,MySQL要把数据内容和数据长度都保存起来。

如果把超出字符串最大长度的数据放到字符类数据列中,MySQL会自动进行截短处理。

ENUM和SET类型的数据列定义里有一个列表,列表里的元素就是该数据列的合法取值。

如果试图把一个没有在列表里的值放到数据列里,它会被转换为空字符串(“”)。

字符串类型的值被保存为一组连续的字节序列,并会根据它们容纳的是二进制字符串还是非二进制字符而被区别对待为字节或者字符:二进制字符串被视为一个连续的字节序列,与字符集无关。

MySQL把BLOB数据列和带BINARY属性的CHAR和V ARCHAR数据列里的数据当作二进制值。

非二进制字符串被视为一个连续排列的字符序列。

与字符集有关。

MySQL把TEXT列与不带BINARY属性的CHAR和V ARCHAR数据列里的数据当作二进制值对待。

在MySQL4.1以后的版本中,不同的数据列可以使用不同的字符集。

在MySQL4.1版本以前,MySQL用服务器的字符集作为默认字符集。

非二进制字符串,即我们通常所说的字符串,是按字符在字符集中先后次序进行比较和排序的。

而二进制字符串因为与字符集无关,所以不以字符顺序排序,而是以字节的二进制值作为比较和排序的依据。

下面介绍两种字符串的比较方式:二进制字符串的比较方式是一个字节一个字节进行的,比较的依据是两个字节的二进制值。

也就是说它是区分大小写的,因为同一个字母的大小写的数值编码是不一样的。

非二进制字符串的比较方式是一个字符一个字符进行的,比较的依据是两个字符在字符集中的先后顺序。

在大多数字符集中,同一个字母的大小写往往有着相同的先后顺序,所以它不区分大小写。

二进制字符串与字符集无关,所以无论按字符计算还是按字节计算,二进制字符串的长度都是一样的。

所以V ARCHAR(20)并不表示它最多能容纳20个字符,而是表示它最多只能容纳可以用20个字节表示出来的字符。

对于单字节字符集,每个字符只占用一个字节,所以这两者的长度是一样的,但对于多字节字符集,它能容纳的字符个数肯定少于20个。

CHAR和V ARCHARCHAR和V ARCHAR是最常用的两种字符串类型,它们之间的区别是:CHAR是固定长度的,每个值占用相同的字节,不够的位数MySQL会在它的右边用空格字符补足。

V ARCHAR是一种可变长度的类型,每个值占用其刚好的字节数再加上一个用来记录其长度的字节即L+1字节。

CHAR(0)和V ARCHAR(0)都是合法的。

V ARCHAR(0)是从MySQL4.0.2版开始的。

它们的作用是作为占位符或用来表示各种on/off开关值。

如何选择CHAR和V ARCHAR,这里给出两个原则:如果数据都有相同的长度,选用VARCHAR会多占用空间,因为有一位用来存储其长度。

如果数据长短不一,选用V ARCHAR能节省存储空间。

而CHAR不论字符长短都需占用相同的空间,即使是空值也不例外。

如果长度出入不大,而且是使用MyISAM或ISAM类型的表,则用CHAR会比V ARCHAR 好,因为MyISAM和ISAM类型的表对处理固定长度的行的效率高。

在一个数据表里,只要有一个数据列的长度是可变的,则所有数据列的长度将是可变的。

MySQL会进行自动地转换。

一个例外,CHAR长度小于4的不会进行自动转换,因为MySQL 会认为这样做没必要,节省不了多少空间。

反而MySQL会把大量长度小的V ARCHAR转换成CHAR,以减少空间占用量。

BLOB和TEXTBLOB是二进制字符串,TEXT是非二进制字符串。

两者都可存放大容量的信息。

有关BLOB和TEXT索引的建立:BDB表类型和MySQL3.23.2以上版本的MyISAM表类型允许在BLOB和TEXT数据列上建立索引。

ISAM、HEAP和InnoDB表不支持大对象列的索引。

使用BLOB和TEXT应注意的问题:由于这两个列类型所存储的数据量大,所以删除和修改操作容易在数据表里产生大量的碎片,需定期运行OPTIMIZE TABLE以减少碎片和提高性能。

如果使用的值非常巨大,就需对服务器进行相应的优化调整,增加max_allowed_packet参数的值。

对那些可会用到变些巨大数据的客户程序,也需加大它们的数据包大小。

ENUM和SETENUM和SET都是比较特殊的字符串数据列类型,它们的取值范围是一个预先定义好的列表。

ENUM或SET数据列的取值只能从这个列表中进行选择。

ENUM和SET的主要区别是:ENUM只能取单值,它的数据列表是一个枚举集合。

它的合法取值列表最多允许有65535个成员。

例如:ENUM("N","Y")表示,该数据列的取值要么是"Y",要么就是"N"。

SET可取多值。

它的合法取值列表最多允许有64个成员。

空字符串也是一个合法的SET值。

ENUM和SET的值是以字符串形式出现的,但在内部,MySQL以数值的形式存储它们。

ENUM的合法取值列表中的字符串被按声明定义的顺序被编号,从1开始。

SET的编号不是按顺序进行编号的,SET中每一个合法取值都对应着SET值里的一个位。

合集下载

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数据类型——字符串类型

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中int、bigint、smallint和tinyint的区别详细介绍

mysql中int、bigint、smallint和tinyint的区别详细介绍

mysql中int、bigint、smallint和tinyint的区别详细介绍最近使⽤mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。

其中⽐较迷惑的是int和smallint的差别。

今天就在⽹上仔细找了找,找到如下内容,留档做个总结:使⽤整数数据的精确数字数据类型。

bigint从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。

存储⼤⼩为 8 个字节。

P.S. bigint已经有长度了,在mysql建表中的length,只是⽤于显⽰的位数int从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2,147,483,647) 的整型数据(所有数字)。

存储⼤⼩为 4 个字节。

int 的 SQL-92 同义字为 integer。

smallint从 -2^15 (-32,768) 到 2^15 – 1 (32,767) 的整型数据。

存储⼤⼩为 2 个字节。

tinyint从 0 到 255 的整型数据。

存储⼤⼩为 1 字节。

注释在⽀持整数值的地⽅⽀持 bigint 数据类型。

但是,bigint ⽤于某些特殊的情况,当整数值超过 int 数据类型⽀持的范围时,就可以采⽤ bigint。

在 SQL Server 中,int 数据类型是主要的整数数据类型。

在数据类型优先次序表中,bigint 位于 smallmoney 和 int 之间。

只有当参数表达式是 bigint 数据类型时,函数才返回 bigint。

SQL Server 不会⾃动将其它整数数据类型(tinyint、smallint 和int)提升为 bigint。

int(M) 在 integer 数据类型中,M 表⽰最⼤显⽰宽度。

在 int(M) 中,M 的值跟 int(M) 所占多少存储空间并⽆任何关系。

Mysql数据类型(字段)介绍

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燕十八学习笔记

完整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进行数据库设计和开发时,数据类型和字段属性的选择非常重要,它们直接影响着数据库的性能和数据的完整性。

本文将详细介绍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字段类型详解

一个参数表示一个单精密浮点数字。

DOUBLE[(M,D)] [ZEROFILL]一个正常大小(双精密)浮点数字。

不能无符号。

允许的值是-1.7976931348623157E+308到-2.2250738585072014E-308、 0和2.2250738585072014E-308到1.7976931348623157E+308。

M是显示宽度而D是小数位数。

没有一个参数的 DOUBLE或FLOAT(X)(25 < = X < = 53)代表一个双精密浮点数字。

DOUBLE PRECISION[(M,D)] [ZEROFILL]REAL[(M,D)] [ZEROFILL]这些是DOUBLE同义词。

DECIMAL[(M[,D])] [ZEROFILL]一个未压缩(unpack)的浮点数字。

不能无符号。

行为如同一个CHAR列:“未压缩”意味着数字作为一个字符串被存储,值的每一位使用一个字符。

小数点,并且对于负数,“-”符号不在M中计算。

如果D是0,值将没有小数点或小数部分。

DECIMAL值的最大范围与DOUBLE相同,但是对一个给定的 DECIMAL列,实际的范围可以通过M和D的选择被限制。

如果D被省略,它被设置为0。

如果M被省掉,它被设置为10。

注意,在MySQL3.22 里,M参数包括符号和小数点。

NUMERIC(M,D) [ZEROFILL]这是DECIMAL的一个同义词。

DATE一个日期。

支持的范围是'1000-01-01'到'9999-12-31'。

MySQL以'YYYY-MM-DD'格式来显示DATE值,但是允许你使用字符串或数字把值赋给DATE列。

DATETIME一个日期和时间组合。

支持的范围是'1000-01-01 00:00:00'到'9999-12-31 23:59:59'。

MySQL以'YYYY-MM-DD HH:MM:SS'格式来显示DATETIME值,但是允许你使用字符串或数字把值赋给DATETIME的列。

四、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. 约束:字段可以具有各种约束,可以限制字段的取值范围、唯一性、非空性等。

常见的约束包括主键约束、外键约束、唯一约束、非空约束等。

通过设置约束,可以确保数据的完整性和一致性。

4. 索引:字段可以被索引,以提高数据库的查询性能。

索引是一种特殊的数据结构,用于加快查询和排序操作的速度。

可以通过在字段上创建索引,使得数据库可以更快地检索和访问字段的数据。

5. 默认值:字段可以有默认值,当插入新记录时如果未指定该字段的值,则会自动使用默认值。

默认值可以是一个固定的值,也可以是一个函数或表达式。

6. 可空性:字段可以设置为可空或不可空。

如果字段设置为不可空,则必须在插入新记录时指定该字段的值;如果字段设置为可空,则可以在插入新记录时选择是否指定该字段的值。

可空性的设置可以根据实际需求灵活控制数据的完整性。

7. 大小和精度:某些数据类型的字段可以设置大小和精度,以限制数据的长度或精度。

例如,可以指定一个字符串字段的最大长度,或者指定一个浮点数字段的小数位数。

字段是数据库中存储数据的基本单元,它的定义和使用对于数据库的设计和使用具有重要的影响。

通过优化字段的定义和使用,可以提高数据库的性能、安全性和可维护性,从而更好地支持数据的存储和访问。

mysql创建表字段说明

mysql创建表字段说明
MySQL是一种开源的关系型数据库管理系统,拥有各种不同的数据类型和命令。

在使用MySQL创建表时,要考虑以下几个方面来创建表字段。

1. 数据类型
MySQL支持多种不同的数据类型,包括整数、浮点数、日期、字符串和二进制数据等。

不同的数据类型拥有不同的存储需求和范围限制,因此我们需要根据表的需求来选择合适的数据类型。

2. 字段名称和限制
在创建表字段时,必须为每个字段指定一个名称,并且可以添加其他限制来管理该字段中允许存储的数据。

例如,我们可以指定字段必须包含值(NOT NULL)或长度限制等。

3. 索引和关键字
索引和关键字用于加速数据访问和查询。

我们可以为表的字段创建索引,以便通过字段值来查找表中的记录。

关键字是一些保留的单词,它们有不同的含义和用途,例如,PRIMARY KEY、FOREIGN KEY、UNIQUE KEY等。

4. 主键和外键
主键是表中唯一标识记录的字段,每个表都必须包含一个主键。

外键是指向其他表中的主键的字段,用于在表之间建立关系。

5. 默认值
可以为表的字段指定一个默认值,以便在添加新记录时,如果该字段没有提供值,则自动填充默认值。

总之,创建MySQL表时,需要考虑以上多个方面相关的细节。

注意这些细节可以确保表的正确性和稳定性,有效的提高表的存储效率和查询速度。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档