- MySQL數據庫應用與管理
- 魯大林主編
- 1190字
- 2020-10-23 14:15:46
3.2 數據類型
為了能方便地管理和使用這些數據,需要對這些數據進行分類,形成各種數據類型。在創建表結構時需要確定表中每列的數據類型,確定了數據類型,系統才會在磁盤上開辟相應的空間,用戶也才能向表中填寫數據。
MySQL的數據類型主要分為以下三大類:數值類型、字符串類型和日期/時間類型。
1.數值類型
MySQL中的數值類型分為整型和浮點型兩種。而整型中又分為TINYINT、SMALLINT、MEDIUMINT、INT和BIGINT五種;浮點型又分為FLOAT、DOUBLE、DECIMAL三種。數值類型及其取值范圍如表3-2所示。
表3-2 數值類型及其取值范圍

說明:
● 在整數類型后面加上UNSIGNED屬性,表示聲明的是無符號數。例如聲明一個INT UNSIGNED的數據列,其取值從0開始。
● 聲明整數類型時,可以為它指定一個顯示寬度(1~255),例如INT(3),指定顯示寬度為3個字符;如果沒有給它指定顯示寬度,MySQL會為它指定一個默認值。顯示寬度只是用于顯示,并不能限制取值范圍,例如可以把12345存入INT(3)數據列中。
● 在整數類型后面加上ZEROFILL屬性,表示在數值之前自動用0補齊不足的位數。例如將5存入一個聲明為INT(3) ZEROFILL的數據列中,查詢輸出時,輸出的數據將會是“005”。當使用ZEROFILL屬性修飾時,則自動應用UNSIGNED屬性。
● 聲明浮點數類型時,可以為它指定一個顯示寬度指示器和一個小數點指示器。例如FLOAT(7,2)表示顯示的值不超過7位數字,小數點后面帶有2位數字,存入的數據會被四舍五入,比如3.1415存入后的結果是3.14。
2.字符串類型
字符串類型可以用來存儲任何一種值,所以它是最基本的數據類型之一。MySQL支持以單引號或雙引號包含字符串,例如"MySQL"、'MySQL',它們表示的是同一個字符串。字符串類型及其取值范圍如表3-3所示。
表3-3 字符串類型及其取值范圍

說明:
● 對于變長字符串類型,其長度取決于實際存放在數據列中的值的長度,該長度在表3-3中使用L來表示,L以外所需要的額外字節為存放L本身的長度所需要的字節數。
● 在使用CHAR和VARCHAR類型時,當傳入的實際值的長度大于指定的長度時,字符串會被截取至指定長度;CHAR(n)和VARCHAR(n)表示可以存儲n個字符(n個中文字符或n個英文字符)。
● 在使用CHAR類型時,如果傳入實際值的長度小于指定長度,會使用空格將其填補至指定長度;而在使用VARCHAR類型時,如果傳入實際值的長度小于指定長度,實際長度即為傳入字符串的長度,不會使用空格填補。
● CHAR類型要比VARCHAR類型效率更高,但占用空間較大。
● BLOB和TEXT類型都可以存放任意大數據的數據類型,但兩者區別是BLOB類型區分大小寫,而TEXT類型不區分大小寫。
3.日期/時間類型
日期/時間類型是用來存儲諸如“2016-9-1”或者“12:30:00”的日期/時間的值。日期/時間類型及其取值范圍如表3-4所示。
表3-4 日期/時間類型及其取值范圍

說明:在存儲日期/時間類型的值時,也可以使用整型來存儲UNIX時間戳,這樣便于進行日期的計算。
4.NULL值
NULL意味著“沒有值”或“未知值”,可以將NULL值插入到數據表中并從表中檢索它們,也可以測試某個值是否為NULL,但能對NULL值進行算術計算。如果對NULL值進行算術運算,其結果還是NULL。在MySQL中,0或NULL都意味著假,而其余值都意味著真。
- Microsoft SQL Server企業級平臺管理實踐
- Python絕技:運用Python成為頂級數據工程師
- 數據庫基礎與應用:Access 2010
- Word 2010中文版完全自學手冊
- Spark快速大數據分析(第2版)
- 數據結構與算法(C語言版)
- 智能數據時代:企業大數據戰略與實戰
- 數據庫設計與應用(SQL Server 2014)(第二版)
- Power BI智能數據分析與可視化從入門到精通
- 大數據數學基礎(Python語言描述)
- 大數據技術原理與應用:概念、存儲、處理、分析與應用
- Oracle 11g+ASP.NET數據庫系統開發案例教程
- 利用Python進行數據分析(原書第2版)
- 大數據測試技術:數據采集、分析與測試實踐(在線實驗+在線自測)
- Oracle 11g數據庫管理與開發基礎教程