下面关于数据类型的说法错误的是(()是关于数据的数据)

lxf2023-12-13 03:20:02

bitscn.com,S2。mysql的数据类型
MySQL有几种数据类型:
(1)数值
是32或153.4等数值。Mysql支持科学表示法,由整数或浮点数后跟& e 或者& e ,一个符号(& +;或者& -;)和一个整数指数。1.24e+12和23.47e-1都是法定科学表示法表示的数字。而1.24e12是不合法的,因为没有给出指数前的符号。
浮点数由整数部分、小数点和小数部分组成。整数部分和小数部分可以分别是空,但不能都是空。
你可以放一个减号& -;来表示负值。
(2)字符(字符串)类型
字符类型(也叫字符串类型,缩写为string)如& 你好,世界!或者& 馒头引发的血案这个值,或者电话号码87398413。可以用单引号或双引号将字符串值括起来。初学者往往分不清数值87398143和字符串87398143的区别。都是数字。为什么一个要用数值型,一个要用字符型?关键在于:数值87398143是参与计算的,比如在财务上是一个总付;字符87398143不参与计算,只代表不参与计算的电话号码,如街道号、门牌号等。
(3)日期和时间类型
日期和时间是一些类型,如& 2006年7月12日或者& 12:30:43 ;这样的价值观。Mysql也支持日期/时间组合,比如& 2006年7月12日12:30:43 ;。
(4)null值
null表示未知值。例如,如果表单中的邮寄地址不清楚,请将空留空,这是一个空值。
我们使用createtable语句创建一个表(见上一章),其中包含列的定义。比如我们在前面创建了一个笑话表,它有两列:content和writer:create table(content varchar(20)not null,writer varchar (10) null)。

定义列的语法如下:

col _ name col _ typy[col _ 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所示。整数列类型可以是有符号的,也可以是无符号的。有一个特殊的属性允许自动生成整数列值,这对于需要唯一序列或标识号的应用系统非常有用。

类型

描述

tinyintsmallint培养基(同Internationalorganizations)国际组织bigint漂浮物两倍小数
非常小的整数
较小的整数
中等大小整数
标准整数
较大整数
单精度浮点数
双精度浮点数
一串浮点数

表1:数字列类型

每个数值类型的名称和范围如表2所示。

类型描述

值范围

tinyint[(m)]smallint[(m)]介质[(m)]int[(m)]bigint[(m)]float[(m,d)]double[(m,d)]十进制
有符号值:-128到127(- 27到27-1)无符号值:0到255(0到28-1)
有符号值:-32768到32767(- 215到215-1)无符号值:0到65535(0到21 6-1)。
有符号值:-8388608到8388607(-22 ^ 3到22 ^ 3-1)无符号值:0到16777215(0到22 ^ 4-1)。
有符号值:-2147683648到2147683647(- 231到231- 1)无符号值:0到4294967295(0到232-1)。
有符号值:-9223372036854775808到9223373036854775807(- 263到263-1)
无符号值:0到1844674073709551615 (0到264 & ndash1)
非零最小值:& plusmn1.175494351e - 38
非零最小值:& plusmn2.220738585072014 e-308
可变;其值的范围取决于m和d。

表2:数字列类型的取值范围

各种类型的值所需的存储量如表3所示。

类型描述

存储要求

tinyint[(m)]smallint[(m)]介质[(m)]int[(m)]bigint[(m)]float[(m,d)]double[(m,d)]十进制
1字节
2字节
3字节
4字节
8字节
4字节
8字节
m字节(mysql < 3.23),m+2字节(mysql > 3.23)

表3:数字列类型的存储要求

Mysql提供了五种类型的整数:tinyint、smallint、mediumint、int和bigint。Int是integer的简称。这些类型在可表示值的范围上是不同的。整数列可以定义为无符号的,以禁用负值;这使得该列的值范围大于0。各种类型的存储要求也不同。具有大范围值的类型需要更多的存储空间。
mysql提供了三种浮点类型:float、double和decimal。与整数不同,浮点类型不能是无符号的,其取值范围也不同于整数。不同的是,这些类型不仅有最大值,还有最小非零值。最小值提供了相应类型的准确性的度量,这对于记录科学数据非常重要(当然也有负的最大值和最小值)。
在选择某个值类型时,要考虑要表示的值的范围,只需选择能够覆盖要取值的范围的最小类型即可。选择较大的类型会浪费空之间的空间,使表格变得不必要的大,不如选择较小的类型有效。对于整数值,如果数据值的范围比较小,比如人的年龄或者兄弟姐妹的数量,那么tinyint是最适合的。Mediumint可以表示数百万个值,可以用于更多类型的值,但存储成本较高。Bigint是所有整数中取值范围最大的,它需要的内存空是范围第二大的integer int类型的两倍,所以只在真正需要的时候使用。对于浮点值,double占用的空间是float 空的两倍。除非特别需要高精度或极宽范围的值,数据一般应该用float类型表示,存储成本只有一半。
定义整数列时,可以指定可选的显示大小m..如果是这样,m应该是从1到255的整数。它表示用于显示列中的值的字符数。例如,mediumint(4)指定显示宽度为4个字符的列。如果定义了没有净宽度的整数列,它将被自动分配一个默认宽度。默认值是& 每种类型的。最长值的长度。如果特定值的可打印表示需要多于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提供了几种用于存储字符数据的字符串类型,具体如下:

键入名称

描述

可变长字符串tinyblob一滴mediumblob长球小文本文本媒体文本长文本列举型别设置
性格;角色;字母
可变长度字符串
非常小的斑点(二进制大对象)
小斑点
中等斑点
大斑点
非常小的文本字符串
小文本字符串
中等文本字符串
大型文本字符串
枚举;可以将列分配给枚举成员。
组装;可以将列分配给多个集合成员。

表4:字符串列类型

下表显示了mysql定义的字符串值列的类型,以及每种类型的最大大小和存储要求。对于可变长度的列类型,每行中值的存储容量是不同的,这取决于实际存储在列中的值的长度。这个长度在表中用l表示。

类型描述

最大大小

存储要求

char( m)可变字符(米)tinyblob,tinytext斑点,文本中文本longblob,longtext枚举(& value1 ,& value2 ,...)设置(& value1 ,& value2 ,...)
m字节m字节
m字节L+1字节
28- 1字节L+1字节
216-1字节L+2字节
224- 1字节L+3字节
232- 1字节L+4字节
65 535名成员1或2字节
64名成员1、2、3、4或8个字节

表5:串行类型的最大大小和存储要求

除l以外所需的额外字节数是存储值的长度所需的字节数。Mysql通过存储值的内容及其长度来处理可变长度的值。这些额外的字节是无符号整数。请注意可变长度类型的最大长度、该类型所需的额外字节数以及占用相同字节数的无符号整数之间的对应关系。例如,mediumblob值可能长达224-1字节,需要3个字节来记录其结果。3字节整数类型mediumint的最大无符号值是224-1。这不是偶然的。

2.3日期时间列类型
mysql提供了几种时间值的列类型,即:日期、日期时间、时间、时间戳和年份。下表显示了mysql提供的用于定义存储日期和时间值的这些类型,并给出了每种类型的合法取值范围。

键入名称

描述

日期时间日期时间时间戳
& yyyy-mm-DD ;格式的日期值。
& hh:mm:ss ;以格式表示的时间值
& yyyy-mm-DD hh:mm:ss ;格式
& yyyymmddhhmmss 格式的时间戳值。
& yyyy 格式的年值

表6:日期和时间列类型

键入名称

值范围

存储要求

日期时间日期时间时间戳年
& 1000-01-01 ;To & 9999-12-31 ;3字节
& -838:59:59 ;To & 838:59:59 ;3字节
& 1000-01-01 00:00:00 ;To & 9999-12-31 23:59:59 ;8字节
从1970010100000年到2037年的某个时候。4字节
1901年至2155年1字节

表7:日期前天数的时间列类型的取值范围和存储要求

这里有一个例子:

创建学生表(姓名varchar(20)不为空,中文tinyint(3),数学tinyint(3),英文tinyint(3),生日)

此示例创建一个学生表,该表包含一个名称字段和一个字符类型列,并且不允许使用null值(空)。有三个整数栏:语文、数学和英语。还有一个生日日期类型列。

bitsCN.com adminjs.cn是一个以CSS、JavaScript、Vue、HTML为核心的前端开发技术网站。我们致力于为广大前端开发者提供专业、全面、实用的前端开发知识和技术支持。 在本网站中,您可以学习到最新的前端开发技术,了解前端开发的最新趋势和最佳实践。我们提供丰富的教程和案例,让您可以快速掌握前端开发的核心技术和流程。 Adminjs.cn还提供一系列实用的工具和插件,帮助您更加高效地进行前端开发工作。我们提供的工具和插件都经过精心设计和优化,可以帮助您节省时间和精力,提升开发效率。 在Adminjs.cn中,您可以找到您需要的一切前端开发资源,让您成为一名更加优秀的前端开发者。欢迎您加入我们的大家庭,一起探索前端开发的无限可能!