MySQL数据表中的数据类型,它可以被分为3类:数字类型、日期和时光类型、字符串(字符)类型。
由MySQL支撑的列类型列鄙人面。下列代码字母用于描述中:?
M?:指出最大年夜的显示尺寸。最大年夜的合法的显示尺寸是?255?。?
D?:实用于浮点类型并且指出跟随在十进制小数点后的数码的数量。最大年夜可能的值是30,?
留意,假如你指定一个了为ZEROFILL,MySQL将为该列主动地增长UNSIGNED属性。?
TINYINT[(M)]?[UNSIGNED]?[ZEROFILL]?:
一个很小的整数。有符号的范围是-128到127,无符号的范围是0到255。?
SMALLINT[(M)]?[UNSIGNED]?[ZEROFILL]?:
一个小整数。有符号的范围是-32768到32767,无符号的范围是0到65535。?
MEDIUMINT[(M)]?[UNSIGNED]?[ZEROFILL]?:
一个中等大年夜小整数。有符号的范围是-8388608到8388607,无符号的范围是0到16777215。?
INT[(M)]?[UNSIGNED]?[ZEROFILL]
一个正常大年夜小整数。有符号的范围是-2147483648到2147483647,无符号的范围是0到4294967295。?
INTEGER[(M)]?[UNSIGNED]?[ZEROFILL]
这是INT的一个同义词。?
BIGINT[(M)]?[UNSIGNED]?[ZEROFILL]
一个大年夜整数。有符号的范围是-9223372036854775808到9223372036854775807,无符号的范围是0到
18446744073709551615。留意,所有算术运算用有符号的BIGINT或DOUBLE值完成,是以你不该该应用大年夜于?9223372036854775807(63位)的有符号大年夜整数,除了位函数!留意,当两个参数是INTEGER值时,-、+和*将应用BIGINT运?算!这意味着假如你乘2个大年夜整数(或来自于返回整数的函数),假如成果大年夜于9223372036854775807,你可以获自得外的成果。一个浮点数?字,不克不及是无符号的,对一个单精度浮点数,其精度可所以<=24,对一个双精度浮点数,是在25?和53之间,这些类型如FLOAT和DOUBLE类型立时鄙人面描述。FLOAT(X)有对应的FLOAT和DOUBLE雷同的范围,然则显示尺寸和小数?位数是不决义的。在MySQL3.23中,这是一个真正的浮点值。在更早的MySQL版本中,FLOAT(precision)老是有2位小数。该句法为?了ODBC兼容性而供给。?
FLOAT[(M,D)]?[ZEROFILL]?:一个小(单周详)浮点数字。不克不及无符号。许可的值是-3.402823466E+38到-1.175494351E-38,0?和1.175494351E-38到3.402823466E+38。M是显示宽度而D是小数的位数。没有参数的FLOAT或有<24?的一个参数表示一个单周详浮点数字。?
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的列。?
TIMESTAMP[(M)]
一个时光戳记。范围是'1970-01-01?00:00:00'到2037年的某时。MySQL以YYYYMMDDHHMMSS、YYMMDDHHMMSS、YYYYMMDD或YYMMDD格局来显?示TIMESTAMP值,取决于是否M是14(或省略)、12、8或6,然则许可你应用字符串或数字把值赋给TIMESTAMP列。一个?TIMESTAMP列对于记录一个INSERT或UPDATE操作的日期和时光是有效的,因为假如你不本身给它赋值,它主动地被设置为比来操作的日期和时?间。你以可以经由过程赋给它一个NULL值设置它为当前的日期和时光。?
TIME
一个时光。范围是'-838:59:59'到'838:59:59'。MySQL以'HH:MM:SS'格局来显示TIME值,然则许可你应用字符串或数字把值赋给TIME列。?
YEAR[(2|4)]
一个2或4位数字格局的年(缺省是4位)。许可的值是1901到2155,和0000(4位年格局),假如你应用2位,1970-2069(?70-69)。MySQL以YYYY格局来显示YEAR值,然则许可你把应用字符串或数字值赋给YEAR列。(YEAR类型在MySQL3.22中是新类?型。)?
CHAR(M)?[BINARY]
一个定长字符串,当存储时,老是是用空格填满右边到指定的长度。M的范围是1?~?255个字符。当值被检索时,空格尾部被删除。CHAR值根据缺省字符集以大年夜小写不区分的方法排序和比较,除非给出BINARY关键词。NATIONAL?CHAR(短情势NCHAR)是ANSI?SQL的方法来定义CHAR列应当应用缺省字符集。这是MySQL的缺省。CHAR是CHARACTER的一个缩写。?
[NATIONAL]?VARCHAR(M)?[BINARY]
一个变长字符串。留意:当值被存储时,尾部的空格被删除(这不合于ANSI?SQL规范)。M的范围是1?~?255个字符。?VARCHAR值根据缺省字符集以大年夜小写不区分的方法排序和比较,除非给出BINARY关键词值。?VARCHAR是CHARACTER?VARYING一个缩写。?
TINYBLOB
TINYTEXT
一个BLOB或TEXT列,最大年夜长度为255(2^8-1)个字符。?
BLOB
TEXT
文本:一个BLOB或TEXT列,最大年夜长度为65535(2^16-1)个字符。?
MEDIUMBLOB
MEDIUMTEXT
一个BLOB或TEXT列,最大年夜长度为16777215(2^24-1)个字符。?
LONGBLOB
LONGTEXT
一个BLOB或TEXT列,最大年夜长度为4294967295(2^32-1)个字符。?
ENUM('value1','value2',...)
列举。一个仅有一个值的字符串对象,这个值式选自与值列表'value1'、'value2',?...,或NULL。一个ENUM最多能有65535不合的值。?
SET('value1','value2',...)
一个集合。能有零个或多个值的一个字符串对象,个中每一个必须从值列表'value1',?'value2',?...选出。一个SET最多能有64个成员