mysql 193 oxcl mysql資料型別

2021-10-18 20:27:00 字數 4570 閱讀 5589

其中的長度以位元組為單位

名稱長度

用法tinyint(m)

bit,bool,boolean

如果為無符號數,可以儲存從0到255的數;

否則可以儲存從-128到127的數。

smallint(m)

如果為無符號數,可以儲存從0到65535的數;

否則可以儲存從-32768到32767的數。

mediumint(m)

如果為無符號數,可以儲存從0到16777215的數;否則可以儲存從-8388608到8388607的數

int(m)

integer(m)

如果為無符號數,可以儲存從0到4294967295的數,否則可以儲存從-2147483648到2147483647的數。

bigint(m)

如果為無符號數,可以儲存從0到18446744073709551615的數,否則可以儲存從-9223372036854775808到9223372036854775807的數。

float(precision)

4或8這裡的precision是可以直達53的整數。如果precision<=24則轉換為float,如果precision>24並且precision<=53則轉換為double。

float(m,d)

單精度浮點數。

double(m,d),

double precision,

real

雙精度浮點。

decimal(m,d),

dec,numeric,fixed

m+1或m+2

未打包的浮點數。

date

以yyyy-mm-dd的格式顯示。

datetime

hh:mm:ss

以yyyy-mm-dd的格式顯示。

timestamp

以yyyy-mm-dd的格式顯示。

time

以hh:mm:ss的格式顯示。

year

以yyyy的格式顯示。

char(m)

m定長字串。

varchar(m)

最大m變長字串。m<=255.

tinyblob,

tinytext

最大255

tinyblob為大小寫敏感,而tinytext不是大小寫敏感的。

blob,

text

最大64k

blob為大小敏感的,而text不是大小寫敏感的。

mediumblob,

mediumtext

最大16m

mediumblob為大小寫敏感的,而mediumtext不是大小敏感的。

longblob,

longtext

最大4g

longblob為大小敏感的,而longtext不是大小敏感的。

enum(value1,….)

1或2最大可達65535個不同的值。

set(value1,….)

可達8最大可達64個不同的值。

1. char和varchar型別

在檢索的時候,char 列刪除了尾部的空格,而varchar則保留這些空格。例,如下:

2.  binary和varbinary類似於char和varchar,不同的是它們包含二進位制字串而不包含非二進位制字串。例子如下:

可以發現,當儲存binary值時,在值的最後通過填充「ox00」(零位元組)以達到指定的字段定義長度。

3.enum中文名稱叫列舉型別,它的值範圍需要在建立表時通過列舉方式顯示指定,對1~255個成員的列舉需要1個位元組儲存;對於255~65535個成員,需要2個位元組儲存。最多允許有65535個成員。

enum 型別因為只允許在集合中取得乙個值,有點類似於單選項。在處理相互排拆的資料時容易讓人理解,比如人類的性別。enum 型別字段可以從集合中取得乙個值或使用 null 值,除此之外的輸入將會使 mysql 在這個欄位中插入乙個空字串。另外如果插入值的大小寫與集合中值的大小寫不匹配,mysql 會自動使用插入值的大小寫轉換成與集合中大小寫一致的值。

enum 型別在系統內部可以儲存為數字,並且從 1 開始用數字做索引。乙個 enum 型別最多可以包含 65536 個元素,其中乙個元素被 mysql 保留,用來儲存錯誤資訊,這個錯誤值用索引 0 或者乙個空字串表示。

mysql 認為 enum 型別集合**現的值是合法輸入,除此之外其它任何輸入都將失敗。這說明通過搜尋包含空字串或對應數字索引為 0 的行就可以很容易地找到錯誤記錄的位置。

舉例如下:

從上面的例子中可以看出enum型別是忽略大小的,對』m』 , 『f』在儲存的時候將它們都轉成了大寫,還可以看出對於插入不在enum指定範圍內的值時,並沒有返回警告,而是插入了enum(『m』 , 『f』)的第一值『m『,這點要特別注意。

另外,enum型別只允許從值集合中選取單個值,而不能一次取多個值。

4.  set型別

set和enum型別非常類似,也是乙個字串物件,裡面可以包含0~64個成員。根據成員的不同,儲存上也有所不同。

1~8成員的集合,佔1個位元組

9~16成員的集合,佔2個位元組

17~24成員的集合,佔3個位元組

25~32成員的集合,佔4個位元組

33~64成員的集合,佔5個位元組

set 型別與 enum 型別相似但不相同。set和enum除了儲存之外,最主要的區別在於set型別一次可以選取多個成員,而enum則只能選擇乙個。

set 型別可以從預定義的集合中取得任意數量的值。並且與 enum 型別相同的是任何試圖在 set 型別欄位中插入非預定義的值都會使 mysql 插入乙個空字串。如果插入乙個即有合法的元素又有非法的元素的記錄,mysql 將會保留合法的元素,除去非法的元素。

乙個 set 型別最多可以包含 64 項元素。在 set 元素中值被儲存為乙個分離的「位」序列,這些「位」表示與它相對應的元素。「位」是建立有序元素集合的一種簡單而有效的方式。並且它還去除了重複的元素,所以 set 型別中不可能包含兩個相同的元素。

希望從 set 型別欄位中找出非法的記錄只需查詢包含空字串或二進位制值為 0 的行。

舉例如下:

set型別可以從允許值集合中選擇任意1個或多個元素進行組合,所以對於輸入的值只要是在允許值的組合範圍內,都可以正確的注入到set型別的列中。對於超出允許值範圍的值例如(』a,v』)將不允許注入到上面例子中設定的set型別列中,而對於(』a,d,a』)這樣包含重複成員的集合將只取一次,寫入後的結果為「a,d」5.   text 和 blob 型別

對於字段長度要求超過 255 個的情況下,mysql 提供了 text 和 blob 兩種型別。根據儲存資料的大小,它們都有不同的子型別。這些大型的資料用於儲存文字塊或影象、聲音檔案等二進位制資料型別。

text 和 blob 型別在分類和比較上存在區別。blob 型別區分大小寫,而 text 不區分大小寫。大小修飾符不用於各種 blob 和 text 子型別。比指定型別支援的最大範圍大的值將被自動截短。

6.    date、time 和 tear 型別

mysql 用 date 和 tear 型別儲存簡單的日期值,使用 time 型別儲存時間值。這些型別可以描述為字串或不帶分隔符的整數序列。如果描述為字串,date 型別的值應該使用連字型大小作為分隔符分開,而 time 型別的值應該使用冒號作為分隔符分開。

需要注意的是,沒有冒號分隔符的 time 型別值,將會被 mysql 理解為持續的時間,而不是時間戳。

mysql 還對日期的年份中的兩個數字的值,或是 sql 語句中為 tear 型別輸入的兩個數字進行最大限度的通譯。因為所有 tear 型別的值必須用 4 個數字儲存。mysql 試圖將 2 個數字的年份轉換為 4 個數字的值。把在 00-69 範圍內的值轉換到 2000-2069 範圍內。把 70-99 範圍內的值轉換到 1970-1979 之內。如果 mysql 自動轉換後的值並不符合我們的需要,請輸入 4 個數字表示的年份。

7   dateyime 和 timestamp 型別

除了日期和時間資料型別,mysql 還支援 dateyime 和 timestamp 這兩種混合型別。它們可以把日期和時間作為單個的值進行儲存。這兩種型別通常用於自動儲存包含當前日期和時間的時間戳,並可在需要執行大量資料庫事務和需要建立乙個除錯和審查用途的審計跟蹤的應用程式中發揮良好作用。

如果我們對 timestamp 型別的字段沒有明確賦值,或是被賦與了 null 值。mysql 會自動使用系統當前的日期和時間來填充它。

8.   復合型別

mysql 還支援兩種復合資料型別 enum 和 set,它們擴充套件了 sql 規範。雖然這些型別在技術上是字串型別,但是可以被視為不同的資料型別。乙個 enum 型別只允許從乙個集合中取得乙個值;而 set 型別允許從乙個集合中取得任意多個值。

mysql 193 oxcl mysql基本語法

連線資料庫 1 遊客登陸 不一定能登入,登入了也啥都不能幹 mysql 2 賬號密碼登入 mysql u root p 再輸入密碼,沒有任何提示,沒有密碼直接回車 3 連線指定伺服器的mysql mysql h ip位址 p 埠號 u 賬號 p 回車後敲入密碼 eg mysql hlocalhost...

mysql數值型資料列舉 MySQL資料型別

資料型別 列型別 1.數值型別 a.整型 型別 位元組 範圍 有符號位 tinyint 1位元組 128 127 無符號位 0 255 smallint 2位元組 32768 32767 mediumint 3位元組 8388608 8388607 int 4位元組 bigint 8位元組 int ...

mysql資料庫類 MySQL資料庫類的定義

俗話說 好的開始是成功的一半 而php mysql專案中資料庫的操作是重點之一,能否簡化資料庫操作程式的編寫,就成了影響工作效率的關鍵之一。所以小陽並不是一開始就做頁面,而是先建立乙個 dbclass.php 檔案,開始編寫操作mysql資料庫的類 dbclass 即在 dbclass.php 中編...