mysql中的數據類型
mysql中的數據類型介紹
我們要把現實世界中的各種信息轉換成計算機能理解的東西,這些轉換后的信息就形成了數據。例如,某人的出生日期是“1987年5月23日”,他的身高是170厘米,等等。數據不僅包括數字、字母、文字和其他特殊字符組成的文本形式的數據,而且還包括圖形、圖像、動畫、影像、聲音等多媒體數據。但使用最多、最基本的仍然是文本數據。
1. mysql的數據類型
在mysql中有如下幾種數據類型:
(1)數值型
數值是諸如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值。
我們用create table語句創建一個表(參看前面的章節),這個表中包含列的定義。例如我們在前面創建了一個joke表,這個表中有content和writer兩個列:
定義一個列的語法如下:
create table
(
content varchar(20) not null,
writer varchar(10) null
)
col_name col_typy [col_attributes] [general_attributes]
其中列名由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數值列類型
mysql有整數和浮點數值的列類型,如表1所示。整數列類型可以有符號也可無符號。有一種特殊的屬性允許整數列值自動生成,這對需要唯一序列或標識號的應用系統來說是非常有用的。
類型
說明
tinyint
非常小的整數
smallint
較小整數
mediumint
中等大小整數
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解