欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
CH 11 列的類(lèi)型
 

Chapter 11. Column Types

Table of Contents

11.1. Column Type Overview

11.1.1. Overview of Numeric Types

11.1.2. Overview of Date and Time Types

11.1.3. Overview of String Types

11.2. Numeric Types

11.3. Date and Time Types

11.3.1. The DATETIME, DATE, and TIMESTAMP Types

11.3.2. The TIME Type

11.3.3. The YEAR Type

11.3.4. Y2K Issues and Date Types

11.4. String Types

11.4.1. The CHAR and VARCHAR Types

11.4.2. The BINARY and VARBINARY Types

11.4.3. The BLOB and TEXT Types

11.4.4. The ENUM Type

11.4.5. The SET Type

11.5. Column Type Storage Requirements

11.6. Choosing the Right Type for a Column

11.7. Using Column Types from Other Database Engines

MySQL支持幾種類(lèi)類(lèi)型,每種類(lèi)型里又有若干種類(lèi)別:numeric types, date and time types, and string (character) types. 本章首先概覽這些列類(lèi)型,然后給出詳細的介紹。

MySQL 5.0 支持處理空間數據的擴展。有關(guān)空間類(lèi)型見(jiàn): Chapter 17, Spatial Extensions in MySQL.

一些列類(lèi)型描述使用如下約定:

 M

表示最大長(cháng)度。最大的合法的顯示長(cháng)度是255。

D

用于浮點(diǎn)類(lèi)型和定點(diǎn)類(lèi)型,表示小數點(diǎn)之后的數字位數。最大可能值是30,但是最好不要超過(guò)M-2.

  • 方括號 (‘[’ and ‘]’) 表示類(lèi)型指示器的可選部分。

11.1. Column Type Overview

11.1.1. Overview of Numeric Types

下面是數字類(lèi)型的總結。詳細信息見(jiàn): Section 11.2, “Numeric Types”. 列的存儲要求見(jiàn): Section 11.5, “Column Type Storage Requirements”.

 

如果你給數字列指定了 ZEROFILL, MySQL會(huì )自動(dòng)給這個(gè)列賦屬性值為UNSIGNED.

SERIAL BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE的別名。

整數列的定義中SERIAL DEFAULT VALUE NOT NULL AUTO_INCREMENT UNIQUE的別名.

警告: 當你在兩個(gè)整數值之間使用減法運算時(shí),如果一個(gè)是UNSIGNED類(lèi)型,那么結果是UNSIGNED類(lèi)型。見(jiàn):Section 12.8, “Cast Functions and Operators”.

  • BIT[(M)]

A bit-field type. M 表示每個(gè)值的bit數,從164。默認是1。

這個(gè)數值類(lèi)型在 MySQL 5.0.3 中出項,屬于 MyISAM, 5.0.5 中擴展到了 MEMORY, InnoDB, and BDB. 5.0.3之前, BIT is TINYINT(1)的同義詞。

  • TINYINT[(M)] [UNSIGNED] [ZEROFILL]

一個(gè)很小的整數。其有符號值的范圍是 -128 127. 無(wú)符號值的范圍是 0 255.

  • BOOL, BOOLEAN

他們是 TINYINT(1)的同義詞。0值認為是false。非0值認為是true.

In the future, full boolean type handling will be introduced in accordance with standard SQL.

  • SMALLINT[(M)] [UNSIGNED] [ZEROFILL]

小整數。有符號值的范圍是-32768 to 3276.。無(wú)符號值的范圍是0 to 65535。

  • MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL]

中等大?。?span>medium-size)的整數。有符號值的范圍是-8388608 to 8388607。無(wú)符號值的范圍是0 to 16777215。

  • INT[(M)] [UNSIGNED] [ZEROFILL]

一般大?。?span>normal-size)的整數. The signed range is -2147483648 to 2147483647. The unsigned range is 0 to 4294967295.

  • INTEGER[(M)] [UNSIGNED] [ZEROFILL]

INT的同義詞。

  • BIGINT[(M)] [UNSIGNED] [ZEROFILL]

一個(gè)大整數。有符號值的范圍是-9223372036854775808 to 9223372036854775807。無(wú)符號值的范圍是0 to 18446744073709551615。.

對于BIGINT列,你應該注意以下問(wèn)題:

    • 所有算術(shù)使用 BIGINT DOUBLE , 所以你不能使用大于9223372036854775807 (63 bits)的無(wú)符號值,除非使用bit函數/功能(function)。如果你那樣做了,結果中的最后幾位數字可能會(huì )是錯的。因為當把BIGINT值轉換為DOUBLE值時(shí)出現的取正錯誤。

MySQL 5.0 在下列情況下可以處理BIGINT 

      • 當使用整數在BIGINT列存儲大的無(wú)符號值時(shí)。
      • MIN(col_name) MAX(col_name), 如果col_name涉及到一個(gè)BIGINT .
      • 當使用操作符 (+, -, *, and so on)時(shí),而且兩個(gè)操作數都是整數。  
    • 你總是通過(guò)存儲一個(gè)字符串存儲一個(gè)精確的整數值到BIGINT列中。這樣, MySQL 執行一個(gè)字符串到數值的轉換。這不涉及到雙精確度的表示。(that involves no intermediate double-precision representation.
    • 當兩個(gè)操作數都是整數值時(shí),-, +, * 操作符使用BIGINT進(jìn)行算術(shù)。這表示如果你對兩個(gè)大整數相乘,當結果大于9223372036854775807時(shí),你會(huì )得到一個(gè)預想不到的結果。
  • FLOAT[(M,D)] [UNSIGNED] [ZEROFILL]

小的(單精度)的數字。范圍是-3.402823466E+38 -1.175494351E-38, 0, 1.175494351E-38 3.402823466E+38.這些是基于IEEE標準的理論上的限制。實(shí)際的范圍可能稍微小些,這取決于你的硬件和操作系統。  

M 是小說(shuō)的總位數。 D是小數點(diǎn)之后的數字位數。如果MD漏寫(xiě)了,那么缺省的限制是你的硬件決定的。單精度的浮點(diǎn)數精確到大約小數點(diǎn)后7位。

如果指定UNSIGNED ,是不允許有負值的。

使用 FLOAT可能會(huì )產(chǎn)生預想不到的結果,因為所有MySQL中的計算都是按照雙精度計算的。見(jiàn): Section A.5.7, “Solving Problems with No Matching Rows”.

  • DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL]

一般大大?。p精度)的浮點(diǎn)數。范圍是-1.7976931348623157E+308 -2.2250738585072014E-308, 0, 2.2250738585072014E-308 1.7976931348623157E+308.這些是理論上的限制。實(shí)際情況取決于你的硬件和操作系統。

M 是小數的總位數。D是小數點(diǎn)后的數字位數。 如果MD漏寫(xiě)了,那么這個(gè)限制由你的硬件決定。一個(gè)雙精度的浮點(diǎn)數精確到小數點(diǎn)后15位。  

如果指定 UNSIGNED 則不允許有負值。

  • DOUBLE PRECISION[(M,D)] [UNSIGNED] [ZEROFILL], REAL[(M,D)] [UNSIGNED] [ZEROFILL]

DOUBLE的同意詞。異常:如果服務(wù)器的SQL模式包括 REAL_AS_FLOAT 選項, REAL FLOAT 而非 DOUBLE的同義詞。

  • FLOAT(p) [UNSIGNED] [ZEROFILL]

浮點(diǎn)數。p 表示bit的精確位。但是 MySQL 只是使用這個(gè)值來(lái)確定是否給結果列一個(gè)FLOATDOUBLE值。如果 p 024,數值類(lèi)型成為FLOAT,沒(méi)有DD值。如果p 2553,則數值類(lèi)型為DOUBLE,沒(méi)有MD。

FLOAT(p) 語(yǔ)法是用來(lái)解決ODBC兼容的。

  • DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL]

MySQL 5.0.3 及其以上版本:

A packed “exact” fixed-point number. M 是小數的總位數(the precision) , D 是小數點(diǎn)之后的數字位數。小數點(diǎn)和負號 ‘-’ 不包括在 M.中。如果 D 0, 值沒(méi)有小說(shuō)點(diǎn)或小說(shuō)部分。DECIMAL中最大的(M) 65 (64 from 5.0.3 to 5.0.5). 最大的 (D) 30.如果省略D ,默認值是 is 0. 如果省略M,默認是10。  

如果指定UNSIGNED 就不允許有負值。

DECIMAL列的所有基本的計算 (+, -, *, /) 都是65位精度的。  

 MySQL 5.0.3之前:

An unpacked fixed-point number. Behaves like a CHAR column; “unpacked” means the number is stored as a string, using one character for each digit of the value. M is the total number of digits and D is the number of digits after the decimal point. The decimal point and (for negative numbers) the ‘-’ sign are not counted in M, although space for them is reserved. If D is 0, values have no decimal point or fractional part. The maximum range of DECIMAL values is the same as for DOUBLE, but the actual range for a given DECIMAL column may be constrained by the choice of M and D. If D is omitted, the default is 0. If M is omitted, the default is 10.

If UNSIGNED is specified, negative values are disallowed.

  • DEC[(M[,D])] [UNSIGNED] [ZEROFILL], NUMERIC[(M[,D])] [UNSIGNED] [ZEROFILL], FIXED[(M[,D])] [UNSIGNED] [ZEROFILL]

都是DECIMAL的同義詞。 The FIXED synonym is available for compatibility with other servers.

11.1.2Overview of Date and Time Types

時(shí)間類(lèi)型如下。詳見(jiàn): Section 11.3, “Date and Time Types”. 存儲要求見(jiàn): Section 11.5, “Column Type Storage Requirements”.

  • DATE

日期. 范圍是1000-01-019999-12-31‘. MySQL 用格式‘YYYY-MM-DD‘表示DATE 但是允許你使用數字或字符串給日期賦值。

  • DATETIME

日期和時(shí)間的結合. 范圍是 ‘1000-01-01 00:00:00‘ ‘9999-12-31 23:59:59‘. MySQL 用格式‘YYYY-MM-DD HH:MM:SS‘表示DATETIME, 但是允許你使用數值或字符串給DATETIME賦值。

  • TIMESTAMP[(M)]

A timestamp. 范圍是 ‘1970-01-01 00:00:00‘ partway through the year 2037.

TIMESTAMP 列對于記錄INSERTUPDATE操作的時(shí)間和日期的記錄是很有用的。如果你沒(méi)有指定值,那么表格中的第一個(gè) TIMESTAMP 列制動(dòng)設置為最近操作過(guò)的日期和時(shí)間。你也可以通過(guò)給它指定一個(gè)NULL值來(lái)為TIMESTAMP列設置一個(gè)當前日期和時(shí)間。 .

MySQL 5.0中, TIMESTAMP作為一個(gè)格式為‘YYYY-MM-DD HH:MM:SS‘的字符串返回。 其顯示寬度為19個(gè)字符。如果你想要取得其數字值,你應該加+0timestamp列上。

  • TIME

A time. 范圍是 ‘-838:59:59‘ ‘838:59:59‘. MySQL 以格式‘HH:MM:SS‘顯示TIME ,但是允許你使用字符串或數字來(lái)給TIME指定值。

  • YEAR[(2|4)]

格式為2個(gè)或4個(gè)數字的年。默認是4個(gè)數字格式。在4個(gè)數字的格式中,其范圍是190121550000。2個(gè)數字的格式的范圍是7069,表示19702069年。MySQL 以格式YYYY表示年,但是允許使用字符串或數字來(lái)指定年值。

11.1.3. Overview of String Types

字符串列的類(lèi)型如下。詳細信息見(jiàn): Section 11.4, “String Types”. 存儲要求見(jiàn) in Section 11.5, “Column Type Storage Requirements”.

I有時(shí),MySQL可以把一個(gè)string列轉換為不同的類(lèi)型。詳見(jiàn): Section 13.1.5.1, “Silent Column Specification Changes”.

MySQL 5.0 中的string數據類(lèi)型有以前的4.1版本不同的性質(zhì):

許多字符串數據類(lèi)型的列定義包括指定字符集的屬性CHARACTER SET ,可選,校驗. (CHARSET CHARACTER SET的同義詞。) 這些屬性也適用于 CHAR, VARCHAR, the TEXT types, ENUM, and SET. :

·                CREATE TABLE t

·                (

·                    c1 CHAR(20) CHARACTER SET utf8,

·                    c2 CHAR(20) CHARACTER SET latin1 COLLATE latin1_bin

·                );

這個(gè)表定義了一個(gè)字符集為utf8的名為c1的列,一個(gè)字符集為latin1且二進(jìn)制校驗該集合的名為c2的列。二進(jìn)制校驗大小寫(xiě)敏感。

  • MySQL 5.0 用字符單位來(lái)解釋字符列定義的長(cháng)度。(以前的 MySQL 版本用byte定義。)
  • 對于 CHAR, VARCHAR, TEXT 類(lèi)型, BINARY 屬性使得列可以指定字符集合中的二進(jìn)制校驗。
  • 字符列的排序和比較是基于指定的字符集合的。對于較早的版本,排序和比較是基于服務(wù)其的字符集合校驗的。對于 CHAR VARCHAR , 你可以使用BINARY屬性來(lái)使得列的排序和比較是使用固有的字符碼的,而非詞匯順序。

更多有關(guān)MySQL 5.0字符集合的信息見(jiàn): Chapter 10, Character Set Support.

  • [NATIONAL] CHAR(M) [BINARY | ASCII | UNICODE]

固定長(cháng)度的字符串,存儲時(shí)通常是右填充的。M 表示列的長(cháng)度。MySQL 5.0中范圍是0255。

注意: 當讀取CHAR值時(shí),末尾的空格被移除。

Before MySQL 5.0.3, a CHAR column with a length specification greater than 255 is converted to the smallest TEXT type that can hold values of the given length. For example, CHAR(500) is converted to TEXT, and CHAR(200000) is converted to MEDIUMTEXT. This is a compatibility feature. However, this conversion causes the column to become a variable-length column, and also affects trailing-space removal.

MySQL 5.0.3 及其以后版本中,如果想指定CHAR的長(cháng)度大于255,將會(huì )出錯。

mysql> CREATE TABLE c1 (col1 INT, col2 CHAR(500));

ERROR 1074 (42000): Column length too big for column ‘col‘ (max = 255); use BLOB or TEXT instead

mysql> SHOW CREATE TABLE c1;

ERROR 1146 (42S02): Table ‘test.c1‘ doesn‘t exist

CHAR CHARACTER的縮寫(xiě)。 NATIONAL CHAR (或其等價(jià)形式 NCHAR) 是標準的定義CHAR 列的SQL 方式,且應使用默認字符集。. This is the default in MySQL.

BINARY 屬性是attribute is shorthand for specifying the binary collation of the column character set. Sorting and comparison is based on numeric character values.

列類(lèi)型 CHAR BYTE CHAR BINARY的別名. This is a compatibility feature.

ASCII 屬性可以指定給CHAR。它指定latin1字符集。

 MySQL 5.0UNICODE屬性可以指定給CHAR。 它指定了ucs2字符集。  

MySQL 允許創(chuàng )建一個(gè)類(lèi)型為CHAR(0)的列。This is mainly useful when you have to be compliant with some old applications that depend on the existence of a column but that do not actually use the value. This is also quite nice when you need a column that can take only two values: 一個(gè)不被指定為NULL CHAR(0) 列只占有一個(gè)bit,并且只可以賦值為NULL’’。.

  • CHAR

等價(jià)于CHAR(1).

  • [NATIONAL] VARCHAR(M) [BINARY]

可變長(cháng)度的字符串。M 表示列的最大長(cháng)度。. MySQL 5.0.3之前,M 的范圍是 0 255 。之后版本中M 0 65,535。 (VARCHAR的實(shí)際長(cháng)度是取決于你使用的行數的最大值和字符集的。MySQL 5.0.3中最大有效長(cháng)度是65,532 bytes.)

Note: Before 5.0.3, trailing spaces were removed when VARCHAR values were stored, which differs from the standard SQL specification.

Previus to MySQL 5.0.3, a VARCHAR column with a length specification greater than 255 was converted to the smallest TEXT type that could hold values of the given length. For example, VARCHAR(500) was converted to TEXT, and VARCHAR(200000) was converted to MEDIUMTEXT. This was a compatibility feature. However, this conversion affected trailing-space removal.

VARCHAR CHARACTER VARYING 的縮寫(xiě)。

In MySQL 5.0, the BINARY attribute is shorthand for specifying the binary collation of the column character set. Sorting and comparison is based on numeric character values.

Starting from MySQL 5.0.3, VARCHAR is stored with a one-byte or two-byte length prefix + data. The length prefix is two bytes if the VARCHAR column is declared with a length greater than 255.

  • BINARY(M)

BINARY 類(lèi)似于CHAR ,單存儲的是byte字符串而不是非byte字符串。

  • VARBINARY(M)

The VARBINARY 類(lèi)似于 VARCHAR ,但是存儲的是byte字符串,而不是非byte字符串。  

  • TINYBLOB

BLOB列的最大長(cháng)度是255 (28 – 1) bytes.

  • TINYTEXT

TEXT 列的最大長(cháng)度是255 (28 – 1) characters.

  • BLOB[(M)]

 BLOB 最大長(cháng)度是 65,535 (216 – 1) bytes.

MySQL 5.0中可選長(cháng)度 M 也可以這種類(lèi)型給出。 如果這樣做了,那么 MySQL將創(chuàng )建最小的BLOG類(lèi)型來(lái)存儲M byte值。

TEXT[(M)]

TEXT 最大長(cháng)度 65,535 (216 – 1) characters.

In MySQL 5.0, an optional length M can be given. Then MySQL will create the column as the smallest TEXT type large enough to hold values M characters long.

  • MEDIUMBLOB

BLOB列最大長(cháng)度 16,777,215 (224 – 1) bytes.

  • MEDIUMTEXT

TEXT 列最大長(cháng)度16,777,215 (224 – 1) characters.

  • LONGBLOB

BLOB 列最大長(cháng)度 4,294,967,295 or 4GB (232 – 1) bytes. LONGBLOG的最大有效長(cháng)度取決于客戶(hù)/服務(wù)器協(xié)議和可用的寄存器的最大包的大小。 effective (permitted) length of LONGBLOB columns depends on the configured maximum packet size in the client/server protocol and available memory.

  • LONGTEXT

TEXT 列的最大長(cháng)度是 4,294,967,295 or 4GB (232 – 1) characters. 最大有效長(cháng)度取決于客戶(hù)/服務(wù)器協(xié)議和可用的寄存器的最大包的大小。effective (permitted) length of LONGTEXT columns depends on the configured maximum packet size in the client/server protocol and available memory.

  • ENUM(‘value1‘,‘value2‘,...)

枚舉類(lèi)型。一個(gè)字符串對象只能右一個(gè)值,且必須是value1‘, ‘value2‘, ...其中的一個(gè)。NULL 或專(zhuān)用的 ‘‘ 錯誤值。 ENUM 列可以右最多65,535 個(gè)互斥值。 ENUM 值是用內部的整數表示的。

  • SET(‘value1‘,‘value2‘,...)

集合。一個(gè)字符串對象有一個(gè)或多個(gè)值。每一必須從value1‘, ‘value2‘, ...中選擇。SET 列最多有64個(gè)元素。SET 值在內部是用整數表示的。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
MySQL 從零開(kāi)始:05 數據類(lèi)型
MySQL數據類(lèi)型
Mysql 的ERROR 1005 (HY000): Can't create table 'xxx' (errno: 150)
字段類(lèi)型與合理的選擇字段類(lèi)型
MySQL數據類(lèi)型和常用字段屬性總結
mysql 字段類(lèi)型說(shuō)明
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久