• 跳至主要導覽
  • 跳至主要內容
  • 跳至主要資訊欄
Office 指南

Office 指南

辦公室工作實用教學

  • Excel
  • Word
  • PowerPoint
  • Windows
  • PowerShell
  • R

MySQL/MariaDB 資料庫建立、修改、刪除資料表教學與範例

介紹如何在 MySQL/MariaDB 資料庫中,以指令的方式建立、修改或刪除資料表。

建立資料表

在建立資料表之前,建議先檢查一下該資料表是否已經存在,若存在則先將其刪除:

-- 若 persons 資料表存在,則刪除之
DROP TABLE IF EXISTS persons;

接著使用 CREATE TABLE 指令建立新的資料表:

-- 建立 persons 資料表
CREATE TABLE persons (
  id INT NOT NULL AUTO_INCREMENT,              -- 序號,整數、非空、自動遞增
  name VARCHAR(255),                           -- 名字,可變長度的文字
  age INT UNSIGNED,                            -- 年齡,非負整數
  city ENUM('Taipei', 'Hsinchu', 'Kaohsiung'), -- 所在城市,固定選項
  PRIMARY KEY (id)                             -- 主鍵
);

建立好資料表之後,檢查一下資料表的結構:

-- 查看 persons 資料表結構
DESCRIBE persons;
+-------+--------------------------------------+------+-----+---------+----------------+
| Field | Type                                 | Null | Key | Default | Extra          |
+-------+--------------------------------------+------+-----+---------+----------------+
| id    | int(11)                              | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)                         | YES  |     | NULL    |                |
| age   | int(10) unsigned                     | YES  |     | NULL    |                |
| city  | enum('Taipei','Hsinchu','Kaohsiung') | YES  |     | NULL    |                |
+-------+--------------------------------------+------+-----+---------+----------------+

這樣就完成資料表的建立了。

新增欄位

若要在既有的資料表中,新增一個欄位,可以用 ALTER TABLE 指令配合 ADD 處理:

-- 在 persons 資料表中新增 email 欄位,放在 name 欄位後方
ALTER TABLE persons ADD email VARCHAR(50) AFTER name;

檢查一下資料表的結構:

-- 查看 persons 資料表結構
DESCRIBE persons;
+-------+--------------------------------------+------+-----+---------+----------------+
| Field | Type                                 | Null | Key | Default | Extra          |
+-------+--------------------------------------+------+-----+---------+----------------+
| id    | int(11)                              | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)                         | YES  |     | NULL    |                |
| email | varchar(50)                          | YES  |     | NULL    |                |
| age   | int(10) unsigned                     | YES  |     | NULL    |                |
| city  | enum('Taipei','Hsinchu','Kaohsiung') | YES  |     | NULL    |                |
+-------+--------------------------------------+------+-----+---------+----------------+

刪除欄位

若要將資料表中特定的欄位刪除,可以使用 ALTER TABLE 指令配合 DROP 處理:

-- 刪除 persons 資料表中的 email 欄位
ALTER TABLE persons DROP email;

這樣就可以將 email 這個欄位從 persons 資料表中刪除了。

修改欄位資料型態

如果想要修改既有資料表中某個欄位的屬性(例如資料類型、預設值等),可以使用 ALTER TABLE 指令配合 MODIFY 處理,例如將 age 欄位的資料型態改為 TINYINT UNSIGNED:

-- 將 age 欄位的資料型態改為 TINYINT UNSIGNED
ALTER TABLE persons MODIFY age TINYINT UNSIGNED;

檢查一下資料表的結構:

-- 查看 persons 資料表結構
DESCRIBE persons;
+-------+--------------------------------------+------+-----+---------+----------------+
| Field | Type                                 | Null | Key | Default | Extra          |
+-------+--------------------------------------+------+-----+---------+----------------+
| id    | int(11)                              | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)                         | YES  |     | NULL    |                |
| age   | tinyint(3) unsigned                  | YES  |     | NULL    |                |
| city  | enum('Taipei','Hsinchu','Kaohsiung') | YES  |     | NULL    |                |
+-------+--------------------------------------+------+-----+---------+----------------+

修改欄位預設值

若只要修改欄位的預設值,可以改用 ALTER TABLE 指令配合 ALTER 處理:

-- 將 city 欄位的預設值改為 "Taipei"
ALTER TABLE persons ALTER city SET DEFAULT "Taipei";

檢查一下資料表的結構:

-- 查看 persons 資料表結構
DESCRIBE persons;
+-------+--------------------------------------+------+-----+---------+----------------+
| Field | Type                                 | Null | Key | Default | Extra          |
+-------+--------------------------------------+------+-----+---------+----------------+
| id    | int(11)                              | NO   | PRI | NULL    | auto_increment |
| name  | varchar(255)                         | YES  |     | NULL    |                |
| age   | tinyint(3) unsigned                  | YES  |     | NULL    |                |
| city  | enum('Taipei','Hsinchu','Kaohsiung') | YES  |     | Taipei  |                |
+-------+--------------------------------------+------+-----+---------+----------------+

若要刪除預設值,可以使用:

-- 將 city 欄位的預設值刪除
ALTER TABLE persons ALTER city DROP DEFAULT;

刪除資料表

若要刪除資料表,可以使用 DROP TABLE 指令:

-- 刪除資料表
DROP TABLE persons;

若要刪除的資料表本來就不存在,這行指令就會生錯誤,這時候可以加上 IF EXISTS 自動檢查資料表是否存在,若存在則刪除,若不存在也不會產生錯誤:

-- 若資料表存在,則刪除
DROP TABLE IF EXISTS persons;

參考資料:gitbook.net

分類:資料庫 標籤:MySQL/MariaDB

讀者互動方式

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

主要資訊欄

搜尋

近期文章

  • C++ 語言使用 Crypto++ 實作 RSA 數位簽章教學與範例
  • C++ 語言使用 Crypto++ 實作 RSA-OAEP 搭配 SHA256 加密教學與範例
  • C++ 語言使用 Crypto++ 實作 AES 加密、解密、認證加密教學與範例
  • C++ 語言使用 Crypto++ 實作 MD5、SHA1、SHA2、BLAKE2 雜湊教學與範例
  • Ubuntu Linux 安裝、使用 Crypto++ 加密函式庫教學與範例
  • C 語言使用 OpenSSL 實作橢圓曲線 ECDH 金鑰交換教學與範例
  • Python 以 eciespy 實作 ECC 非對稱式加密方法教學與範例
  • C 語言使用 OpenSSL 實作 PBKDF2 教學與範例

推薦網站

  • Udemy 線上教學課程
  • Coursera 線上教學課程

關注本站

  • 電子郵件
  • Facebook

公益

  • 家扶基金會
  • 台灣世界展望會
  • Yahoo 奇摩公益
  • igiving 公益網
  • 兒福聯盟

Copyright © 2021 · Office Guide