數據類型和數據表

數據類型

整形

數據類型 存儲範圍
TINYINT(1個字節) 有符號值:-128到127(-2^7到2^7-1);無符號值:0到255(0到2^8-1)
SMALLINT(2個字節) 有符號值:-32768到32767(-2^15到2^15-1);無符號值:0到65535(0到2^16-1)
MEDIUMINT(3個字節) 有符號值:-8388608到8388607(-2^23到2^23-1);無符號值:0到16777215(0到2^24-1)
INT(4個字節) 有符號值:-2147483648到2147483647(-2^31到2^31-1);無符號值:0到4294967295(0到2^32-1)
BIGINT(8個字節) more large

數據優化時選擇最合理的數據類型

浮點型

數據類型 存儲範圍
FLOAT[(M,D)] -3.4*10(-38)~3.4*10(38),M是數字總位數,D是小數點後面的位數,如果M和D被省略,根據硬件允許的限制來保存值,單精度浮點數精確到大約7位小數位,佔4個字節
DOUBLE[(M,D)] -1.7*10(-308)~1.7*10(308),雙精度,有效位是16位,佔8個字節

日期時間型

日期類型 存儲空間 日期格式 日期範圍
datetime 8 bytes YYYY-MM-DD HH:MM:SS 1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp 4 bytes YYYY-MM-DD HH:MM:SS 1970-01-01 00:00:01 ~ 2038
date 3 bytes YYYY-MM-DD 1000-01-01~ 9999-12-31
year 1 bytes YYYY 1901~ 2155

在 MySQL 中創建表時,對照上面的表格,很容易就能選擇到合適自己的數據類型,不過到底是選擇 datetime 還是 timestamp,可能會有點犯難,這兩個日期時間類型各有優點:
datetime 的日期範圍比較大;,timestamp 所佔存儲空間比較小,只是 datetime 的一半

字符型

|列類型|存儲需求|
|CHAR(M)|M個字節,0<=M<=255|
|VARCHAR(M)|L+1個字節其中L<=M,且0<=M<=65535|
|TINYTEXT|L+1個字節,其中L<2^8|
|TEXT|L+2個字節,其中L<2^16|
|MEDIUMTEXT|L+3個字節,其中L<2^24|
|LONGTEXT|L+4個字節,其中L<2^32|
|ENUM(‘value1’,’value2’,…)|1或2個字節,取決於枚舉值的個數(最多65536個值)|
|SET(‘value1’,’value2’,…)|1,2,3,4或8個字節,取決於set成員的數目(最多64個成員)|

char的長度是固定的,varchar的長度是可變的,因爲char的長度固定,方便查找,所以存取速度char比varchar要高一些,char相當於用空間換效率

數據表

打開數據庫

命令:USE 數據庫名稱

查看當前打開的數據庫:SELECT DATABASE()

創建數據表

命令:

CREATE TABLE [IF NOT EXISTS] table_name(
         column_name data_type,
         ......)

查看數據表列表: SHOW TABLES [FROM db_name] [LIKE 'pattern' | WHERE expr]

查看數據表結構: SHOW COLUMNS FROM db_name

插入記錄

命令: INSERT[INTO] tbl_name[(col_name,...)]VALUES(val,...)

如果沒有選擇列名,插入的值必須要對應,多了或少了都會發生錯誤

記錄查找

命令:SELECT expr,... FROM tbl_name
此處省略了SELECT的部分語句,以後會深入學習SELECT

空值與非空

  • NULL:字段值可以爲空
  • NOT NULL:字段值禁止爲空

自動編號

命令:AUTO_INCREMENT

自動編號,且必須與主鍵組合使用
默認情況下,起始值爲1,每次的增量爲1

約束

主鍵約束(PRIMARY KEY 或 KEY)

  • 每張數據表只能存在一個主鍵
  • 主鍵保證記錄的唯一性
  • 主鍵自動爲NOT NULL

唯一約束(UNIQUE KEY)

  • 唯一約束可以保證記錄的唯一性
  • 唯一約束的字段可以爲空值(NULL)
  • 每張數據表可以存在多個唯一約束

默認約束(DEFAULT)

  • 當插入記錄時,如果沒有明確爲字段賦值,則自動賦予默認值
發佈了34 篇原創文章 · 獲贊 23 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章