數據庫Ⅱ——數據表創建

一、MySQL存儲引擎

1.什麼是存儲引擎?

存儲引擎就是指表的類型。數據庫的存儲類型決定了表在計算機中的存儲方式。用戶可以根據不同的存儲方式、是否進行事務處理等來選擇合適的存儲引擎

2.如何查看MySQL的存儲引擎?

查看MySQL支持的存儲引擎: SHOW ENGINES
查看顯示支持的存儲引擎信息:
SHOW VARIABLES LIKE 'have%'

查看默認的存儲引擎:
SHOW VARIABLES LIKE 'storage_ engine'

3.MySQL常用存儲引擎及特點

(1)InnoDB

①優缺點:
優勢在於提供了良好的事務管理、奔潰修復能力和併發控制。
缺點是讀寫效率稍差,佔用的數據空間相對比較大。
②適用場合:
更新密集的表:InnoDB存儲引擎特別適合處理多重併發的更新請求。
事務:InnoDB存儲引擎是唯一支持事務的標準MySQL存儲引擎,這是管理敏感數據(如金融信息和用戶註冊信息)的必須軟件
自動災難恢復:與其他存儲引擎不一樣,InnoDB表能夠自動從災難中恢復。雖然MyISAM表也能在災難後修復,但其過程要長的多

(2)MyISAM

①優缺點:
MyISAM存儲引擎的優勢在於佔用空間小,處理速度快,缺點是不支持事務和併發性。

(3)Memory

①MEMORY存儲引擎的優缺點:
MEMORY表的大小是受到限制的。表的大小主要取決於兩個參數,分別是max_rows和max_heap_table_size。其中,max_rows可以在創建表時指定:max_heap_table_size的大小默認爲16MB,可以按需要進行擴大。因其存在內存中的特性,這類表的處理速度非常快。但是其數據容易丟失,生命週期短。(注意:mysqld守護進程奔潰時,所有的MEMORY數據都會丟失)
MEMORY表不支持VARCHAR、BLOB、TEXT數據類型,因爲這種表類型按固定長度的記錄格式存儲。此外,如果使用版本4.1.0之前的MySQL,這不支持自動增長列。
②適用場景:
暫時:目標數據只是臨時需要,在其生命週期中必須立即可用。
相對無關:存儲在MEMORY表中的數據如果突然丟失,不會對應用服務產生實質的負面影響,而且不會對數據完整性有長期影響。

二、數據表創建

1.什麼是表?

  • 數據表是數據庫最重要的組成部分之一,是其它對象的基礎
  • 數據表是存儲數據的數據結構
  • 數據表是包含了特定實體類型的數據
  • 數據表由行(row)和列(column)構成的二維網絡
  • 數據表一定先有表結構,再有數據
  • 數據表至少有一列,可以沒有行或者多行
  • 數據表名稱要求唯一,而且不要包含特殊字符

2.如何創建數據表?

(1)代碼實現

CREATE TABLE [IF NOT EXISTS] tbl name( 字段名稱字段類型[完整性約束條件]...)ENGINE=引擎名稱CHARSET=編碼方式;

(2)完整性約束條件

PRIMARY KEY 主鍵
AUTO_INCREMENT 自增長
FOREIGN KEY外鍵
NOT NULL 非空
UNIQUE KEY唯一
DEFAULT默認值

(3)試驗:

提示:

  • 註釋:#或–
  • 需要輸入中文時,需要臨時轉換客戶端的編碼方式:
SET NAMES GBK;
  • 通過COMMENT給字段添加註釋

測試:

mysql> CREATE TABLE IF NOT EXISTS `user`(
    -> id SMALLINT,
    -> username VARCHAR(20),
    -> age TINYINT,
    -> sex ENUM('男','女','保密'),
    -> emali VARCHAR(50)
    -> )ENGINE=INNODB
    -> ;
Query OK, 0 rows affected (0.03 sec)

mysql> SHOW TABLES
    -> ;
+----------------+
| Tables_in_test |
+----------------+
| user           |
+----------------+
1 row in set (0.00 sec)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章