中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

在mysql中有幾種數據類型

發布時間:2022-01-14 16:42:27 來源:億速云 閱讀:164 作者:小新 欄目:數據庫

這篇文章主要介紹了在mysql中有幾種數據類型,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。


 
1. mysql的數據類型 
 
在mysql中有如下幾種數據類型: 
 
(1)數值型   www.2cto.com  
數值是諸如32 或153.4 這樣的值。mysql 支持科學表示法,科學表示法由整數或浮點數后跟“e”或“e”、一個符號(“+”或“-”)和一個整數指數來表示。1.24e+12 和23.47e-1 都是合法的科學表示法表示的數。而1.24e12 不是合法的,因為指數前的符號未給出。 
浮點數由整數部分、一個小數點和小數部分組成。整數部分和小數部分可以分別為空,但不能同時為空。 
數值前可放一個負號“-”以表示負值。 
 
(2)字符(串)型 
字符型(也叫字符串型,簡稱串)是諸如“hello, world!”或“一個饅頭引起的血案”這樣的值,或者是電話號碼87398413這樣的值。既可用單引號也可用雙引號將串值括起來。 初學者往往分不清數值87398143和字符串87398143的區別。都是數字啊,怎么一個要用數值型,一個要用字符型呢?關鍵就在于:數值型的87398143是要參與計算的,比如它是金融中的一個貨款總額;而字符型的87398143是不參與計算的,只是表示電話號碼,這樣的還有街道號碼、門牌號碼等等,它們都不參與計算。 
(3)日期和時間型 
日期和時間是一些諸如“2006-07-12”或“12:30:43”這樣的值。mysql還支持日期/時間的組合,如“2006-07-12 12:30:43”。 
 
(4)null值 
null表示未知值。比如填寫表格中通訊地址不清楚留空不填寫,這就是null值。 
我們用createtable語句創建一個表(參看前面的章節),這個表中包含列的定義。例如我們在前面創建了一個joke表,這個表中有content和writer兩個列:
create table ( content varchar(20) not null, writer varchar(10) null )
 
定義一個列的語法如下:
col_name col_typy [col_attributes] [general_attributes]
   www.2cto.com  
其中列名由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數值列類型 有整數和浮點數值的列類型,如表1所示。整數列類型可以有符號也可無符號。有一種特殊的屬性允許整數列值自動生成,這對需要唯一序列或標識號的應用系統來說是非常有用的。  www.2cto.com  
類型
說明
tinyint 非常小的整數
smallint 較小整數
mediumint 中等大小整數
int 標準整數
bigint 較大整數
float 單精度浮點數
double 雙精度浮點數
decimal 一個串的浮點數
表1:數值列類型
每種數值類型的名稱和取值范圍如表2所示。
 
類型說明
取值范圍
tinyint[(m)] 有符號值:-128 到127(- 27 到27 - 1) 無符號值:0到255(0 到28 - 1)
smallint[(m)] 有符號值:-32768 到32767(- 215 到215 - 1) 無符號值:0到65535(0 到21 6 - 1)  www.2cto.com  
mediumint[(m)] 有符號值:-8388608 到8388607(- 22 3 到22 3 - 1 ) 無符號值:0到16777215(0 到22 4 - 1)
int[(m)] 有符號值:-2147683648 到2147683647(- 231 到231- 1) 無符號值:0到4294967295(0 到232 - 1)
 
bigint[(m)] 有符號值:-9223372036854775808 到9223373036854775807(- 263到263-1) 
無符號值:0到18446744073709551615(0到264 – 1)
float[(m, d)] 最小非零值:±1.175494351e - 38
double[(m,d)] 最小非零值:±2.2250738585072014e - 308
decimal (m, d) 可變;其值的范圍依賴于m 和d
表2:數值列類型的取值范圍
各種類型值所需的存儲量如表3所示。
 
類型說明
存儲需求
tinyint[(m)] 1字節
smallint[(m)] 2字節
mediumint[(m)] 3字節
int[(m)] 4字節
bigint[(m)] 8字節
float[(m, d)] 4字節
double[(m, d)] 8字節
decimal (m, d) m字節(mysql < 3.23),m+2字節(mysql > 3.23 )
 
表3:數值列類型的存儲需求  www.2cto.com  
mysql提供了五種整型: tinyint、smallint、mediumint、int和bigint。int為integer的縮寫。這些類型在可表示的取值范圍上是不同的。整數列可定義為unsigned從而禁用負值;這使列的取值范圍為0以上。各種類型的存儲量需求也是不同的。取值范圍較大的類型所需的存儲量較大。 
mysql 提供三種浮點類型: float、double和decimal。與整型不同,浮點類型不能是unsigned的,其取值范圍也與整型不同,這種不同不僅在于這些類型有最大值,而且還有最小非零值。最小值提供了相應類型精度的一種度量,這對于記錄科學數據來說是非常重要的(當然,也有負的最大和最小值)。 
 
在選擇了某種數值類型時,應該考慮所要表示的值的范圍,只需選擇能覆蓋要取值的范圍的最小類型即可。選擇較大類型會對空間造成浪費,使表不必要地增大,處理起來沒有選擇較小類型那樣有效。對于整型值,如果數據取值范圍較小,如人員年齡或兄弟姐妹數,則tinyint最合適。mediumint能夠表示數百萬的值并且可用于更多類型的值,但存儲代價較大。bigint在全部整型中取值范圍最大,而且需要的存儲空間是表示范圍次大的整型int類型的兩倍,因此只在確實需要時才用。對于浮點值,double占用float的兩倍空間。除非特別需要高精度或范圍極大的值,一般應使用只用一半存儲代價的float型來表示數據。 
 
在定義整型列時,可以指定可選的顯示尺寸m。如果這樣,m應該是一個1 到255的整數。它表示用來顯示列中值的字符數。例如,mediumint(4)指定了一個具有4個字符顯示寬度的mediumint列。如果定義了一個沒有明確寬度的整數列,將會自動分配給它一個缺省的寬度。缺省值為每種類型的“最長”值的長度。如果某個特定值的可打印表示需要不止m個字符,則顯示完全的值;不會將值截斷以適合m個字符。   www.2cto.com  
對每種浮點類型,可指定一個最大的顯示尺寸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提供了幾種存放字符數據的串類型,其類型如下:
類型名
說明
char 定長字符串
varchar 可變長字符串
tinyblob 非常小的blob(二進制大對象)
blob 小blob
mediumblob 中等的blob
longblob 大blob
tinytext 非常小的文本串
text 小文本串
mediumtext 中等文本串
longtext 大文本串
enum 枚舉;列可賦予某個枚舉成員
set 集合;列可賦予多個集合成員
表4:字符串列類型
下表給出了mysql 定義串值列的類型,以及每種類型的最大尺寸和存儲需求。對于可變長的列類型,各行的值所占的存儲量是不同的,這取決于實際存放在列中的值的長度。這個長度在表中用l 表示。  www.2cto.com  
 
類型說明
最大尺寸
存儲需求
char( m) m 字節 m 字節
varchar(m) m 字節 l + 1字節
tinyblob, tinytext 28- 1字節 l + 1字節
blob, text 216 - 1 字節 l + 2字節
mediumblob, mediumtext 224- 1字節 l + 3字節
longblob, longtext 232- 1字節 l + 4字節
enum(“value1”, “value2”, ...) 65535 個成員 1 或2字節
set (“value1”, “value2”, ...) 64個成員 1、2、3、4 或8字節
 
表5:串列類型最大尺寸及存儲需求
l 以外所需的額外字節為存放該值的長度所需的字節數。mysql 通過存儲值的內容及其長度來處理可變長度的值。這些額外的字節是無符號整數。請注意,可變長類型的最大長度、此類型所需的額外字節數以及占用相同字節數的無符號整數之間的對應關系。例如,mediumblob 值可能最多224 - 1字節長并需要3 個字節記錄其結果。3 個字節的整數類型mediumint 的最大無符號值為224 - 1。這并非偶然。  www.2cto.com  
2.3日期時間列類型 
mysql 提供了幾種時間值的列類型,它們分別是: date、datetime、time、timestamp和year。下表給出了mysql 為定義存儲日期和時間值所提供的這些類型,并給出了每種類型的合法取值范圍。
 
類型名
說明
date “yyyy-mm-dd”格式表示的日期值
time “hh:mm:ss”格式表示的時間值
datetime “yyyy-mm-dd hh:mm:ss”格式
timestamp “yyyymmddhhmmss”格式表示的時間戳值
year “yyyy”格式的年份值
表6:日期時間列類型
 
類型名
取值范圍
存儲需求
date “1000-01-01”到“9999-12-31” 3字節
time “-838:59:59”到“838:59:59” 3字節
datetime “1000-01-01 00:00:00” 到“9999-12-31 23:59:59” 8字節
timestamp 19700101000000 到2037 年的某個時刻 4字節
year 1901 到2155 1字節  www.2cto.com  
表7: 日前時間列類型的取值范圍和存儲需求
下面舉個例子:
create table student ( name varchar(20) not null, chinese tinyint(3), maths tinyint(3), english tinyint(3), birthday date )
這個例子創建一個student表,這個表中有name字段,字符類型列,不允許null(空值)。有chinese、maths和english三個整數類型列。還有個birthday日期類型列。
 

感謝你能夠認真閱讀完這篇文章,希望小編分享的“在mysql中有幾種數據類型”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高要市| 高陵县| 噶尔县| 公主岭市| 栾川县| 江西省| 怀远县| 海阳市| 阿城市| 仙游县| 城步| 灵川县| 贡觉县| 临海市| 中西区| 南乐县| 彰化市| 紫金县| 罗城| 永嘉县| 韶山市| 镇江市| 汪清县| 枣庄市| 桓台县| 星子县| 赤水市| 建水县| 新郑市| 垦利县| 右玉县| 阜康市| 徐闻县| 准格尔旗| 湖州市| 漾濞| 秦安县| 高要市| 青浦区| 阆中市| 德清县|