Last Updated on 2021-05-15 by Clay
一個資料庫,裡面通常都存在著複數的 Table ,裡面存放著各式各樣的資料。除了怎麼進行資料的『查詢』外,若我們是資料庫的管理員,我們也需要知道怎麼『 新增 』、『 修改 』、『 刪除 』 Table 以及 Table 裡面的欄位、資料。
今天就來紀錄關於這方面的指令吧。
資料的資料型態 (Data Type)
在進行資料的新增之前,我們需要對 SQL 的資料型態有一些了解。
- char(n): 固定長度字串資料,n 為字串長度 (位元組)上限,只能為 1-8000。
- varchar(n): 可變長度資料,n 同樣為字串長度 (位元組) 上限,只能為 1-8000。
[註:當資料項目大小教固定適於於 char,若長度變化大適用於 varchar]
Data Type | Range | Memory |
bigint | -2^63 - 2^63-1 | 8 bytes |
int | -2^31 - 2^31-1 | 4 bytes |
smallint | -2^15 - 2^15-1 | 2 bytes |
tinyint | 0 - 255 | 1 bytes |
以上為相當基本的字元以及數值的資料型態, SQL 的資料型態不只如此,不過今天筆記不會用到太多種類。
創造 Table
一開始我創造了個叫『test』的資料庫才實驗,一開始剛創造的時候,要使用以下指令來使用資料庫、並顯示 Table。
use test; show tables;
一開始我們什麼表格都看不到,我們需要先創造一個 Table。
create table Students( SID int, Name varchar(10), Grade int, primary key (SID) ); show tables
Tables_in_test |
students |
現在就可以看到我們 test 的資料庫裡面有著 students 這個 Table 了。
刪除 Table
如果要刪除 Table,可以使用以下這個指令:
drop table "Your_Table_Name";
像是我若要刪除剛剛建立的 students 這個 Table,我會使用以下指令刪除。
drop table students;
新增資料
我們可以使用以下指令新增 Table 的資料。
insert into students values (1, 'Clay', 100);
基本上插入的資料要符合我們一開始設定的 (int, varchar, int)
除了一次插入一筆資料外,我們也可以一次插入多筆資料。
insert into students values (2, 'Akito', 80), (3, 'ccs96307', 90);
然後我們看看現在 Table 的狀態:
SID | Name | Grade |
1 | Clay | 100 |
2 | Akito | 80 |
3 | ccs96307 | 90 |
三筆資料已經依序存入了。
刪除資料
delete from "Your_Table_Name" where "Condition";
例如我可以這樣刪掉 SID 為 2 的資料:
delete from students where SID = 2; select * from students;
Output:
SID | Name | Grade |
1 | Clay | 100 |
3 | ccs96307 | 90 |
新增欄位
如果我們臨時又要新增資料欄位,我們可以使用以下指令來新增欄位:
alter table "Your table name" add "Column name" "Data type"
比如說:
alter table students add home varchar(20); select * from students;
Output:
SID | Name | Grade | Home |
1 | Clay | 100 | NULL |
3 | ccs96307 | 90 | NULL |
這樣我們就可以新增新的資料欄位了。
修改資料
那假設我們新增了一個新的欄位 "home" ,我們該怎麼該新欄位下現有的資料呢?
update "Your_Table_Name" set "Column" = "New value" where "condition";
比如說可以這樣更新我的資料:
update students set home = "Taipei" where SID = 1; select * from students;
Output:
SID | Name | Grade | Home |
1 | Clay | 100 | Taipei |
3 | ccs96307 | 90 | NULL |
可以看到,我把 SID 為 1 的資料中 Home 欄位設定為 "Taipei" 了。
刪除欄位
如果一個欄位已經不再使用了,我們可以使用以下指令將其刪除:
alter table "Your_Table_Name" drop "Column";
比如我把剛剛新增的 "home" 欄位刪除:
alter table students drop home; select * from students;
Output:
SID | Name | Grade |
1 | Clay | 100 |
3 | ccs96307 | 90 |
刪除 Table
如果想要刪除整張 Table 的話,可以使用以下指令:
drop table "Your_Table_Name";
像我若想要刪除掉 students 這個 Table:
drop table students;
這樣一來,就可以把 Table 刪除掉了。