2023年7月13日发(作者:)
mysql表字段详解 我们知道MySQL⽀持⼤量的列类型,每种类型都有特定的⽤处,擅长⽤各种贴合实际的类型不仅能⼤量节省数据库占⽤的空间,对于后续的查询、储存、维护都会带来极⼤的便利。因此,本次会对mysql中可⽤类型的作⼀个概述,并且总结每个列类型的存储需求,然后提供每个类中的类型性质的更详细的描述。1、bit bit属于位字段类型,其范围是1~64,如果不指定值默认为1,当bit(1)时其值只能是0、1或空值。这种数据类型⽤于存储只有两种可能值的数据,如yes/no、true/false 、on/off。当bit(value)的value值⼤于1时则以⼆进制存储,存储时如下:注意:bit是⼀种很省空间的数据类型,如果能够满⾜需求应该尽量多⽤。另外在插⼊时,如果是true/false会被⾃动转换成1/0,查询时会返回1/0。2、tinyint整型 tinyint数据类型能存储从0~255 之间的整数,如果tinyint添加了⽆符号(unsigned)属性,则范围变成-128~+127。如果你只打算存储有限数⽬的数值时建议使⽤tinyint,这种数据类型在数据库中占⽤1 个字节.注意:tinyint相对是⽐较安全的,不接受恶意脚本内容的嵌⼊。3、smallint整型 smallint 数据类型带符号的范围是-32768到32767,⽆符号的范围是0到65535。这种数据类型对存储⼀些常限定在特定范围内的数值型数据⾮常有⽤。这种数据类型在数据库⾥占⽤2 字节空间.注意:smallint型相对也是⽐较安全的,不接受恶意脚本内容的嵌⼊。4、int整型 int 数据类型带符号的范围是-2147483648到2147483647,⽆符号的范围是0到4294967295。存储到数据库的⼏乎所有数值型的数据都可以⽤这种数据类型。这种数据类型在数据库⾥占⽤4个字节。注意:int是数据库常⽤的字段。推荐使⽤5、decimal精确数值 decimal[(M,[D])] 或者数据类型能⽤来存储从-10的38次幂-1到10的38次幂-1的固定精度和范围的数值型数据。使⽤这种数据类型时,必须指定范围和精度。 由M(整个数字的长度,包括⼩数点,⼩数点左边的位数,⼩数点右边的位数,但不包括负号)和D(⼩数点右边的位数)来决定,M缺省为10,D缺省为0。6、numeric精确数值 numeric(M,D)数据类型与decimal 相似。7、smallmoney货币型 smallmoney 数据类型⽤来表⽰钱和货币值。这种数据类型能存储从-214748.3648 到214748.3647 之间的数据,精确到货币单位的万分之⼀。8、money货币型 money数据类型⽤来表⽰钱和货币值。这种数据类型能存储从-9220亿到9220 亿之间的数据,精确到货币单位的万分之⼀ 。9、float近似数值型 float 数据类型是⼀种近似数值类型,供浮点数使⽤。说浮点数是近似的,是因为在其范围内不是所有的数都能精确表⽰。浮点数可以是从-1.79E+308到1.79E+308 之间的任意数。10、real近似数值型
real 数据类型像浮点数⼀样,是近似数值类型。它可以表⽰数值在-3.40E+38到3.40E+38之间的浮点数。11、date时间类型 date时间数据类型来表⽰⽇期和时间。这种数据类型存储数据格式为:YYYY-MM-DD,它⽀持的范围为'1000-01-01'到'9999-12-31',并且允许使⽤字符串或数字为此列复制。12、datetime⽇期时间类型 datetime数据类型⽤来表⽰⽇期和时间。它的存储格式为:YYYY-MM-DD HH:MM:SS,它⽀持的范围为'1000-01-0100:00:00'到'9999-12-31 23:59:59',并且允许使⽤字符串或数字进⾏分配值, 精确到三百分之⼀秒或3.33毫秒 。13、timestamp特殊数据类型 timestamp 数据类型是⼀种特殊的数据类型,他是⼀个时间戳,⽤来创建⼀个数据库范围内的唯⼀数码。 它⽀持的范围是1970-01-01 00:00:00到2037年,⼀个表中只能有⼀个timestamp列。每次插⼊或修改⼀⾏时,timestamp列的值都会改变。尽管它的名字中有“time”, 但timestamp列不是⼈们可识别的⽇期。在⼀个数据库⾥,timestamp值是唯⼀的。注意: 如果插⼊的时间⼩于1970-01-01 00:00:00即197,会抛出[Error Code: 1292, SQL State: 22001] Datatruncation: Incorrect datetime value: '12' for column 'crt_date' at row 1。 如果插⼊的时间⼤于2037年,则会抛出 [Error Code: 1292, SQL State: 22001] Data truncation: Incorrect datetime value:'22' for column 'crt_date' at row 1。14、time时间类型 time数据类型⽤来表⽰⽇期和时间,他以'HH:MM:SS'格式检索和显⽰TIME值(或对于⼤的⼩时值采⽤'HHH:MM:SS'格式)。TIME值的范围可以从'-838:59:59'到'838:59:59'。⼩时部分会因为⼤的原因是TIME类型不仅可以⽤于表⽰⼀天的时间(必须⼩于24⼩时),还可能为某个事件过去的时间或两个事件之间的时间间隔(可以⼤于24⼩时,或者甚⾄为负)。15、year年类型 year⽤来表⽰年,他以YYYY格式检索和显⽰year值,范围是1901到2155,⽀持2/4位标准值year在不同类型中的值不同:1. 四位字符串,范围为'1901'到'2155'。2. 四位数字,范围为1901到2155。3. 两位字符串,范围为'00'到'99'。'00'到'69'和'70'到'99'范围的值被转换为2000到2069和1970到1999范围的year值。4. 两位整数,范围为1到99。1到69和70到99范围的值被转换为2001到2069和1970到1999范围的year值。请注意两位整数范围与两位字符串范围稍有不同,因为你不能直接将零指定为数字并将它解释为2000。你必须将它指定为⼀个字符串'0'或'00'或它被解释为0000。注意:函数返回的结果,其值适合year上下⽂,例如now()。 ⾮法year值被转换为0000。16、smalldatetime⽇期时间类型 smalldatetime 数据类型⽤来表⽰从1900年1⽉1⽇到2079年6⽉6⽇间的⽇期和时间,精确到⼀分钟 。17、cursor特殊数据类型 cursor 数据类型是⼀种特殊的数据类型,它包含⼀个对游标的引⽤。这种数据类型⽤在存储过程中,⽽且创建表时不能⽤。18、Uniqueidentifier特殊数据类型 Uniqueidentifier数据类型⽤来存储⼀个全局唯⼀标识符,即GUID。GUID确实是全局唯⼀的。这个数⼏乎没有机会在另⼀个系统中被重建。可以使⽤NEWID 函数或转换⼀个字符串为唯⼀标识符来初始化具有唯⼀标识符的列 。19、char字符型 char数据类型⽤来存储指定长度的定长⾮统⼀编码型的数据。当定义⼀列为此类型时,你必须指定列长。当你总能知道要存储的数据的长度时,此数据类型很有⽤。例如,当你按邮政编码加4个字符格式来存储数据时,你知道总要⽤到10个字符。此数据类型的列宽最⼤为8000 个字符。20、varchar字符型 varchar数据类型,同char类型⼀样,⽤来存储⾮统⼀编码型字符数据。与char 型不⼀样,此数据类型为变长。当定义⼀列为该数据类型时,你要指定该列的最⼤长度。 它与char数据类型最⼤的区别是,存储的长度不是列长,⽽是数据的长度。21、text字符型 text 数据类型⽤来存储⼤量的⾮统⼀编码型字符数据。这种数据类型最多可以有231-1或20亿个字符。22、字符数据类型Char,Varchar 和 Text⽐较 字符数据的类型包括 Char,Varchar 和 Text。 字符数据是由任何字母、符号和数字任意组合⽽成的数据。 Varchar 是变长字符数据,其长度不超过 8KB。Char是定长字符数据,其长度最多为 8KB。超过 8KB 的ASCII 数据可以使⽤Text数据类型存储。例如,因为 Html ⽂档全部都是 ASCII 字符,并且在⼀般情况下长度超过 8KB,所以这些⽂档可以 Text 数据类型存储在SQL Server 中。23、nchar统⼀编码字符型 nchar 数据类型⽤来存储定长统⼀编码字符型数据。统⼀编码⽤双字节结构来存储每个字符,⽽不是⽤单字节(普通⽂本中的情况)。它允许⼤量的扩展字符。此数据类型能存储4000种字符,使⽤的字节空间上增加了⼀倍。24、nvarchar统⼀编码字符型 nvarchar 数据类型⽤作变长的统⼀编码字符型数据。此数据类型能存储4000种字符,使⽤的字节空间增加了⼀倍。25、ntext 统⼀编码字符型 ntext 数据类型⽤来存储⼤量的统⼀编码字符型数据。这种数据类型能存储230 -1或将近10亿个字符,且使⽤的字节空间增加了⼀倍。26、binary ⼆进制数据类型 binary数据类型⽤来存储可达8000 字节长的定长的⼆进制数据。当输⼊表的内容接近相同的长度时,你应该使⽤这种数据类型。27、varbinary⼆进制数据类型 varbinary数据类型⽤来存储可达8000 字节长的变长的⼆进制数据。当输⼊表的内容⼤⼩可变时,你应该使⽤这种数据类型。28、image⼆进制数据类型 image数据类型⽤来存储变长的⼆进制数据,最⼤可达231-1或⼤约20亿字节。29、⼆进制数据类型binary、varbinary、image⽐较 ⼆进制数据包括 binary、varbinary和 image binary数据类型既可以是固定长度的(Binary),也可以是变长度的。 Binary[(n)] 是 n 位固定的⼆进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的⼤⼩是 n + 4 个字节。 varbinary[(n)] 是 n 位变长度的⼆进制数据。其中,n 的取值范围是从 1 到 8000。其存储窨的⼤⼩是 n + 4个字节,不是n 个字节。 在 image数据类型中存储的数据是以位字符串存储的,不是由 SQL Server 解释的,必须由应⽤程序来解释。例如,应⽤程序可以使⽤BMP、TIEF、GIF 和 JPEG 格式把数据存储在 Image 数据类型中。30、enum枚举数据类型enum,实现将所有可能出现的结果都设计好,实际上存储的数据必须是规定好的数据中的⼀个。枚举的使⽤⽅式定义:enum(可能出现的元素列表); //如enum(‘男’,‘⼥’)使⽤:存储数据,只能存储上⾯定义好的数据意义在于:1, 限定值的可能性!2, 速度快,⽐普通的字符串速度快!原因是枚举型 是利⽤ 整数进⾏管理的,能够2个字节进⾏管理!每个值,都是⼀个整数标识,从第⼀个选项开始为1,逐⼀递增!管理时整数的形式,速度⽐字符串快!⼀共有2 个字节,0-65535,因此可以有 65535个选项可以使⽤!创建⽰例:create table my_enum( gender enum('男','⼥','保密'))charset utf8;作⽤之⼀:规范数据格式,数据只能是规定的数据中的其中⼀个作⽤之⼆:节省存储空间(枚举通常有⼀个别名:单选框),枚举实际存储的是数值,⽽不是字符串本⾝在mysql中,系统也是⾃动转换格式的,⽽且基本与PHP⼀样(尤其是字符串转数字)插⼊⽅式:insert into my_enum values('男'),('保密');insert into my_enum values (‘1’),(‘2’),(‘3’),(‘1’+’2’);注意:插⼊为数字时索引从1开始,不是0枚举原理:枚举在进⾏数据规范的时候(定义的时候),系统会⾃动建⽴⼀个数字与枚举元素的对应关系(关系放到⽇志中);然后在进⾏数据插⼊的时候,系统⾃动将字符转换成对应的数字存储,然后在进⾏数据提取的时候,系统就⾃动将数字转换成字符串显⽰。31、Unicode数据类型Char,Varchar 和 Text⽐较 Unicode 数据类型包括 Nchar,Nvarchar 和Ntext。 在 Microsoft SQL Server 中,传统的⾮ Unicode 数据类型允许使⽤由特定字符集定义的字符。在 SQL Server安装过程中,允许选择⼀种字符集。使⽤ Unicode 数据类型,列中可以存储任何由Unicode 标准定义的字符。在 Unicode 标准中,包括了以各种字符集定义的全部字符。使⽤Unicode数据类型,所战胜的窨是使⽤⾮ Unicode 数据类型所占⽤的窨⼤⼩的两倍。 在 SQL Server 中,Unicode 数据以 Nchar、Nvarchar 和 Ntext 数据类型存储。使⽤这种字符类型存储的列可以存储多个字符集中的字符。当列的长度变化时,应该使⽤Nvarchar 字符类型,这时最多可以存储 4000 个字符。当列的长度固定不变时,应该使⽤ Nchar字符类型,同样,这时最多可以存储4000 个字符。当使⽤ Ntext 数据类型时,该列可以存储多于 4000 个字符。32、⽇期和时间数据类型Datetime、Smalldatetime⽐较 ⽇期和时间数据类型包括 Datetime 和 Smalldatetime两种类型 ⽇期和时间数据类型由有效的⽇期和时间组成。例如,有效的⽇期和时间数据包括“4/01/98 12:15:00:00:00PM”和“1:28:29:15:01AM 8/17/98”。前⼀个数据类型是⽇期在前,时间在后⼀个数据类型是时间在前,⽇期在后。在 MicrosoftSQL Server中,⽇期和时间数据类型包括Datetime 和 Smalldatetime 两种类型时,所存储的⽇期范围是从 1753 年 1 ⽉ 1 ⽇开始,到9999 年12 ⽉ 31 ⽇结束(每⼀个值要求 8 个存储字节)。使⽤ Smalldatetime 数据类型时,所存储的⽇期范围是 1900年 1 ⽉ 1⽇ 开始,到 2079 年 12 ⽉ 31 ⽇结束(每⼀个值要求 4 个存储字节)。 ⽇期的格式可以设定。设置⽇期格式的命令如下: Set DateFormat {format | @format _var| 其中,format | @format_var 是⽇期的顺序。有效的参数包括 MDY、DMY、YMD、YDM、MYD 和 DYM。在默认情况下,⽇期格式为MDY。 例如,当执⾏ Set DateFormat YMD 之后,⽇期的格式为年 ⽉ ⽇ 形式;当执⾏ Set DateFormat DMY 之后,⽇期的格式为⽇ ⽉年形式。
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689248698a225710.html
评论列表(0条)