MySQL基本指令-建立Database和Table

MySQL將指令分成三大項

DDL ( Data Definition Languages ) : 建立資料庫、Table和格式、索引等指令。常用的有CREATE、DROP、ALTER

DML ( Data Manipulation Languages ) : 用於新增、刪除、修改、搜索資料庫內的Data,並檢查資料的完整性。常用的有 INSERT、DELETE、UPDATE、SELECT

DCL ( Data Control Languages ) : 控制資料庫的存取權限。常用的有GRANT、REVOKE

指令符號解釋
[ ] : 代表可有可無,[ ] 內的指令可能是一次大量執行或是某個特殊功能
大寫英文 : MySQL內定的指令文字。(紫色粗體字)
小寫英文 : 由使用者自行定義的文字,如名稱等



DDL的指令

主要是操控DB和Table的指令


Database類


新增Database

CREATE DATABASE 資料庫名稱;

(指令最後面的 ; 符號代表這是指令的最末端,如果沒有輸入這個符號MySQL會認為指令還沒輸入完畢)

例子:
建立一個HappyCompany的Database
CREATE DATABASE HappyCompany;



顯示全部的Database

SHOW DATABASES;

root可以看到全部資料庫,其他使用者如果權限不足會看不到某些資料庫



使用(進入)Database

USE 資料庫名稱

(USE指令最後面不用加 ; 符號)
要進到某個Database內才能對內部的Table或資料執行修改或查詢等動作

例子:
進入HappyCompany的Database
USE HappyCompany



刪除Database

DROP DATABASE 資料庫名稱;

刪除Database會連帶刪掉內部的全部資料

例子:
刪除HappyCompany的Database
DROP DATABASE HappyCompany;





Table類


新增Table

CREATE TABLE [IF NOT EXISTS] Table名稱 ( filed_1 type_1 , filed_2 type_2,....);

進行任何Table的操作前,一定要先用USE指令進入DB
IF NOT EXISTS : 要建立的Table名稱如果不存在,才會建立Table,這是一種比較保險的做法,可以不輸入。
欄位類別 : 欄位類別有很多種,像是 int、varchar等

例子 :
建立Table,employee,並新增多個欄位
CREATE TABLE employee (name varchar(15), EmpNumber int(8), hire date);


顯示DB內的所有Table

SHOW TABLES;


顯示特定Table的格式

DESC Table名稱;


顯示較完整的Table格式

SHOW CREATE TABLE Table名稱 \G;


刪除Table
DROP TABLE Table名稱;

Table名稱修改
改名的錯誤檢察先檢查新的Table名稱是否有被使用再檢查舊的Table是否存在
改名的執行順序是由左向右,因此可以在一行指令內將兩個Table的名稱互換
如果兩個DB都是在相同的檔案系統(File system)可以使用此指令搬移Table
在名稱修改的過程中將會暫時無法存取資料

RENAME TABLE 舊Table名稱_1 TO 新Table名稱_1 [ , 舊Table名稱_2 TO 新Table名稱_2,...]
也可以用
ALTER TABLE 舊Table名稱 RENAME 新Table名稱;

例子:
將employee改成emp
RENAME TABLE employee TO emp;

例子-兩個Table名稱互換:
將employee和user兩個Table名稱互換
RENAME TABLE employee TO temp , user TO employee , temp TO user;

例子-將employee搬移到SadCom的DB:
RENAME TABLE HappyCompany.employee TO SadCom.employee;


新稱欄位
ALTER TABLE Table名稱 ADD 欄位名稱 欄位類別 [FIRST/AFTER 欄位名稱];

如不輸入[FIRST/AFTER 欄位名稱],預設是加到最後一個欄位
FIRST,將新增欄位加入到第一個欄位
AFTER,將欄位插入到指定欄位的後面

例子:
新增pay欄位並設定類別為int(20)
ALTER TABLE employee ADD pay int(20);


刪除欄未

ALTER TABLE Table名稱 DROP 欄位名稱;


修改欄位的格式

ALTER TABLE Table名稱 MODIFY 欄位名稱 欄位類別 [FIRST/AFTER 欄位名稱];

如不輸入[FIRST/AFTER 欄位名稱],預設不變動欄位順序

例子:
修改employee的name欄位,改成varchar(20)
ALTER TABLE employee MODIFY name varchar(20);


修改欄位並修改欄位名稱

ALTER TABLE Table名稱 CHANGE 舊欄位名稱 新欄位名稱 欄位類別 [FIRST/AFTER 欄位名稱];

如不輸入[FIRST/AFTER 欄位名稱],預設不變動欄位順序
modify和change功能類似,change多了修改欄位名稱的功能
如果新舊欄位名稱一樣其功能類似modify

例子:
修改name的名稱,改為username
ALTER TABLE employee CHANGE name username varchar(15);




留言

此網誌的熱門文章

WPA_supplicant的設定方式

DOS指令 -- SET和變數

Nginx server 和 location 優先順序