mysql数字类型mysql 用户名用什么数据类型

mysql数字类型  时间:2021-08-31  阅读:()

mysql有哪些数据类型长度分别是多少

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

int 从 -2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 的整型数据(所有数字)。

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

tinyint 从 0 到 255 的整数数据。

bit bit 1 或 0 的整数数据。

decimal 和 numeric decimal 从 -10^38 +1 到 10^38 –1 的固定精度和小数位的数字数据。

numeric 功能上等同于 decimal。

money 和 smallmoney money 货币数据值介于 -2^63 (-922,337,203,685,477.5808) 与 2^63 - 1 (+922,337,203,685,477.5807) 之间,精确到货币单位的千分之十。

smallmoney 货币数据值介于 -214,748.3648 与 +214,748.3647 之间,精确到货币单位的千分之十。

近似数字 float 从 -1.79E + 308 到 1.79E + 308 的浮点精度数字。

real 从 -3.40E + 38 到 3.40E + 38 的浮点精度数字。

datetime 和 smalldatetime datetime 从 1753 年 1 月 1 日到 9999 年 12 月 31 日的日期和时间数据,精确到百分之三秒(或 3.33 毫秒)。

smalldatetime 从 1900 年 1 月 1 日到 2079 年 6 月 6 日的日期和时间数据,精确到分钟。

字符串 char 固定长度的非 Unicode 字符数据,最大长度为 8,000 个字符。

varchar 可变长度的非 Unicode 数据,最长为 8,000 个字符。

text 可变长度的非 Unicode 数据,最大长度为 2^31 - 1 (2,147,483,647) 个字符。

Unicode 字符串 nchar 固定长度的 Unicode 数据,最大长度为 4,000 个字符。

nvarchar 可变长度 Unicode 数据,其最大长度为 4,000 字符。

sysname 是系统提供用户定义的数据类型,在功能上等同于 nvarchar(128),用于引用数据库对象名。

ntext 可变长度 Unicode 数据,其最大长度为 2^30 - 1 (1,073,741,823) 个字符。

二进制字符串 binary 固定长度的二进制数据,其最大长度为 8,000 个字节。

varbinary 可变长度的二进制数据,其最大长度为 8,000 个字节。

image 可变长度的二进制数据,其最大长度为 2^31 - 1 (2,147,483,647) 个字节。

其它数据类型 cursor 游标的引用。

sql_variant 一种存储 SQL Server 支持的各种数据类型(text、ntext、timestamp 和 sql_variant 除外)值的数据类型。

table 一种特殊的数据类型,存储供以后处理的结果集。

timestamp 数据库范围的唯一数字,每次更新行时也进行更新。

uniqueidentifier 全局唯一标识符 (GUID)。

MYSQL中如何选择合适的数据类型

1.选择数据类型的基本原则 前提: 使用适合存储引擎。

MyISAM数据表,最好使用固定长度的数据列代替可变长度的数据列。

2). MEMORY存储引擎和数据列 MEMORY数据表目前都使用固定长度的数据行存储,因此无论使用CHAR或VARCHAR列都没有关系。

两者都是作为CHAR类型处理的。

3). InnoDB 存储引擎和数据列 建议使用 VARCHAR类型,对于InnoDB数据表,内部的行存储格式没有区分固定长度和可变长度列(所有数据行都使用指向数据列值的头指针),因此在本质上,使用固定长度的 CHAR列不一定比使用可变长度VARCHAR列简单。

因而,主要的性能因素是数据行使用的存储总量。

由于CHAR平均占用的空间多于VARCHAR,因 此使用VARCHAR来最小化需要处理的数据行的存储总量和磁盘I/O是比较好的。

2. 固定长度数据列与可变长度的数据列1).char与varchar l CHAR和VARCHAR类型类似,但它们保存和检索的方式不同。

它们的最大长度和是否尾部空格被保留等方面也不同。

在存储或检索过程中不进行大小写转换。

下面的表显示了将各种字符串值保存到CHAR(4)和VARCHAR(4)列后的结果,说明了CHAR和VARCHAR之间的差别:值CHAR(4)存储需求VARCHAR(4)存储需求''' '4个字节''1个字节'ab''ab '4个字节'ab '3个字节'abcd''abcd'4个字节'abcd'5个字节'abcdefgh''abcd'4个字节'abcd'5个字节 请注意上表中最后一行的值只适用不使用严格模式时;如果MySQL运行在严格模式,超过列长度不的值不保存,并且会出现错误。

从CHAR(4)和VARCHAR(4)列检索的值并不总是相同,因为检索时从CHAR列删除了尾部的空格。

通过下面的例子说明该差别: mysql> CREATE TABLE vc (v VARCHAR(4), c CHAR(4)); Query OK, 0 rows affected (0.02 sec) mysql> INSERT INTO vc VALUES ('ab ', 'ab '); Query OK, 1 row affected (0.00 sec) mysql> SELECT CONCAT(v, '+'), CONCAT(c, '+') FROM vc; +----------------+----------------+ | CONCAT(v, '+') | CONCAT(c, '+') | +----------------+----------------+ | ab + | ab+ | +----------------+----------------+ 1 row in set (0.00 sec)2). text和blob 在使用text和blob字段类型时要注意以下几点,以便更好的发挥数据库的性能. (1). BLOB和TEXT值也会引起自己的一些问题,特别是执行了大量的删除或更新操作的时候。

删除这种值会在数据表中留下很大的"空洞",以后填入这些"空洞"的记录可能长度不同,为了提高性能,建议定期使用 OPTIMIZE TABLE 功能对这类表进行碎片整理. (2). 使用合成的(synthetic)索引。

合成的索引列在某些时候是有用的。

一种办法是根据其它的列的内容建立一个散列值,并把这个值存储在单独的数据列中。

接下来你就可以通过检索散列值找到数据行了。

但是,我们要注意这种技术只能用于精确匹配的查询(散列值对于类似<或>=等范围搜索操作符 是没有用处的)。

我们可以使用MD5()函数生成散列值,也可以使用SHA1()或CRC32(),或者使用自己的应用程序逻辑来计算散列值。

请记住数值型散列值可以很高效率地存储。

同样,如果散列算法生成的字符串带有尾部空格,就不要把它们存储在CHAR或VARCHAR列中,它们会受到尾部空格去除的影响。

合成的散列索引对于那些BLOB或TEXT数据列特别有用。

用散列标识符值查找的速度比搜索BLOB列本身的速度快很多。

(3). 在不必要的时候避免检索大型的BLOB或TEXT值。

例如,SELECT *查询就不是很好的想法,除非你能够确定作为约束条件的WHERE子句只会找到所需要的数据行。

否则,你可能毫无目的地在网络上传输大量的值。

这也是 BLOB或TEXT标识符信息存储在合成的索引列中对我们有所帮助的例子。

你可以搜索索引列,决定那些需要的数据行,然后从合格的数据行中检索BLOB或 TEXT值。

(4). 把BLOB或TEXT列分离到单独的表中。

在某些环境中,如果把这些数据列移动到第二张数据表中,可以让你把原数据表中 的数据列转换为固定长度的数据行格式,那么它就是有意义的。

这会减少主表中的碎片,使你得到固定长度数据行的性能优势。

它还使你在主数据表上运行 SELECT *查询的时候不会通过网络传输大量的BLOB或TEXT值。

3. 浮点数与定点数为了能够引起大家的重视,在介绍浮点数与定点数以前先让大家看一个例子: mysql> CREATE TABLE test (c1 float(10,2),c2 decimal(10,2)); Query OK, 0 rows affected (0.29 sec) mysql> insert into test values(131072.32,131072.32); Query OK, 1 row affected (0.07 sec) mysql> select * from test; +-----------+-----------+ | c1 | c2 | +-----------+-----------+ | 131072.31 | 131072.32 | +-----------+-----------+ 1 row in set (0.00 sec) 从上面的例子中我们看到c1列的值由131072.32变成了131072.31,这就是浮点数的不精确性造成的。

在mysql中float、double(或real)是浮点数,decimal(或numberic)是定点数。

浮点数相对于定点数的优点是在长度一定的情况下,浮点数能够表示更大的数据范围;它的缺点是会引起精度问题。

数据库的类型有哪些?本人在学mysql.

MySQL数据类型主要可以分成四种其中包括数值型、字符(串)型与日期和时间型与NULL值。

1.?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两个列: 定义一个列的语法如下: 其中列名由col_name?给出。

列名可最多包含64个字符,字符包括字母、数字、下划线及美元符号。

列名可以名字中合法的任何符号(包括数字)开头。

但列名不能完全由数字组成,因?为那样可能使其与MySQL数据类型分不开。

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语句创建一个表时,要为每列(字段)指定一个类型。

列(字段)的类型比MySQL数据类型更为细化,它精确地描述了给定表列(字段)可能包含的值的种类,如是否带小数、是否文字很多。

mysql 用户名用什么数据类型

值类型   MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。

许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。

  表列出了各种数值类型以及它们的允许范围和占用的内存空间。

类型 大小 范围(有符号) 范围(无符号) 用途 TINYINT 1 字节 (-128,127) (0,255) 小整数值 SMALLINT 2 字节 (-32 768,32 767) (0,65 535) 大整数值 MEDIUMINT 3 字节 (-8 388 608,8 388 607) (0,16 777 215) 大整数值 INT或INTEGER 4 字节 (-2 147 483 648,2 147 483 647) (0,4 294 967 295) 大整数值 BIGINT 8 字节 (-9 233 372 036 854 775 808,9 223 372 036 854 775 807) (0,18 446 744 073 709 551 615) 极大整数值 FLOAT 4 字节 (-3.402 823 466 E+38,1.175 494 351 E-38),0,(1.175 494 351 E-38,3.402 823 466 351 E+38) 0,(1.175 494 351 E-38,3.402 823 466 E+38) 单精度 浮点数值 DOUBLE 8 字节 (1.797 693 134 862 315 7 E+308,2.225 073 858 507 201 4 E-308),0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 0,(2.225 073 858 507 201 4 E-308,1.797 693 134 862 315 7 E+308) 双精度 浮点数值 DECIMAL 对DECIMAL(M,D) ,如果M>D,为M+2否则为D+2 依赖于M和D的值 依赖于M和D的值 小数值

iON Cloud:新加坡cn2 gia vps/1核/2G内存/25G SSD/250G流量/10M带宽,$35/月

iON Cloud怎么样?iON Cloud升级了新加坡CN2 VPS的带宽和流量最低配的原先带宽5M现在升级为10M,流量也从原先的150G升级为250G。注意,流量也仅计算出站方向。iON Cloud是Krypt旗下的云服务器品牌,成立于2019年,是美国老牌机房(1998~)krypt旗下的VPS云服务器品牌,主打国外VPS云服务器业务,均采用KVM架构,整体性能配置较高,云服务器产品质量靠...

tmhhost:暑假快乐,全高端线路,VPS直接8折,200G高防,美国gia日本软银韩国cn2香港cn2大带宽

tmhhost为2021年暑假开启了全场大促销,全部都是高端线路的VPS,速度快有保障。美国洛杉矶CN2 GIA+200G高防、洛杉矶三网CN2 GIA、洛杉矶CERA机房CN2 GIA,日本软银(100M带宽)、香港BGP直连200M带宽、香港三网CN2 GIA、韩国双向CN2。本次活动结束于8月31日。官方网站:https://www.tmhhost.com8折优惠码:TMH-SUMMER日本...

rfchost:洛杉矶vps/双向CN2 GIA,1核/1G/10G SSD/500G流量/100Mbps/季付$23.9

rfchost怎么样?rfchost是一家开办了近六年的国人主机商,一般能挺过三年的国人商家,还是值得入手的,商家主要销售VPS,机房有美国洛杉矶/堪萨斯、中国香港,三年前本站分享过他家堪萨斯机房的套餐。目前rfchost商家的洛杉矶机房还是非常不错的,采用CN2优化线路,电信双程CN2 GIA,联通去程CN2 GIA,回程AS4837,移动走自己的直连线路,目前季付套餐还是比较划算的,有需要的可...

mysql数字类型为你推荐
增值税专用发票和增值税普通发票的区别普通增值税发票和专用增值税发票有区别吗?提升网站排名如何提升网站排名?安卓开发环境搭建最新电脑安卓开发环境的搭建方法?u盾证书“U盾”和“数字证书”有什么区别?360网络收藏夹360浏览器的网络收藏夹怎么导出啊?混乱模式拳皇2002李梅的混乱模式出招网络营销讲师哪位网络营销讲师培训师的上课风格最好?2g内存条2G内存是什么概念解码器有什么用摩托车解码有什么用物联网公司排名求消防物联网公司排名?榜单出来了吗
yuming 老域名 vps推荐 瓦工 GGC vpsio 老左博客 evssl证书 个人域名 谁的qq空间最好看 最好的免费空间 阿里校园 cn3 云营销系统 阿里云手机官网 双十二促销 锐速 zcloud symantec alertpay 更多