標籤:
一、準備
在正式開始本內容之前,需要先從github下載相關代碼。該代碼可以建立兩個資料庫,分別名為test_01和mysql_shiyan ,並在mysql_shiyan資料庫中建4個表(department,employee,project,table_1),然後向其中插入資料。
具體操作如下,首先輸入命令進入Desktop:
cd Desktop
然後再輸入命令,下載代碼:
git clone http://git.shiyanlou.com/shiyanlou/SQL5
下載完成後,輸入“cd ~”(注意有空格)退回到原先目錄,然後輸入命令開啟MySQL服務並使用root使用者登入:
sudo service mysql start #開啟MySQL服務mysql -u root #使用root使用者登入
剛才從github下載的SQL5目錄下,有1個檔案MySQL-05.sql (SQL5目錄在案頭上,你可以用Gedit查看、編輯裡面的檔案。)
輸入命令運行這個檔案,完成實驗準備:
source /home/shiyanlou/Desktop/SQL5/MySQL-05.sql
二、內容1、對資料庫的修改
使用命令 SHOW DATABASES; 可以看到剛才運行MySQL-05.sql檔案產生的兩個資料庫:
現在我們運行命令刪除名為test_01的資料庫:
DROP DATABASE test_01;
現在再次使用命令 SHOW DATABASES; 可以發現,test_01資料庫已經被成功刪除:
2、對一張表的修改(1)重新命名一張表
重新命名一張表的語句有多種形式,以下3種格式效果是一樣的:
RENAME TABLE 原名 TO 新名字;ALTER TABLE 原名 RENAME 新名;ALTER TABLE 原名 RENAME TO 新名;
使用命令嘗試修改 table_1 的名字為 table_2 :
(2)刪除一張表
刪除一張表的語句,類似於剛才用過的刪除資料庫的語句,格式是這樣的:
DROP TABLE 表名字;
比如我們把 table_2 表刪除:
3、對一列的修改(即對錶結構的修改)
對錶結構的修改,是本節實驗的痛點,有時候一些小的錯誤會造成不可挽回的後果,所以請細心操作。
(1)增加一列
在表中增加一列的語句格式為:
ALTER TABLE 表名字 ADD COLUMN 列名字 資料類型 約束;或: ALTER TABLE 表名字 ADD 列名字 資料類型 約束;
現在employee表中有id、name、age、salary、phone、in_dpt這6個列,我們嘗試加入 height (身高)一個列並指定DEFAULT約束:
可以發現:新增加的列,被預設放置在這張表的最右邊。如果要把增加的列插入在指定位置,則需要在語句的最後使用AFTER關鍵詞(“AFTER 列1” 表示新增的列被放置在 “列1” 的後面)。
比如我們新增一列 weight (體重)放置在 age (年齡)的後面:
上面的效果是把新增的列加在某位置的後面,如果想放在第一列的位置,則使用 FIRST 關鍵詞,如語句:
ALTER TABLE employee ADD test INT(10) DEFAULT 11 FIRST;
效果如下:
(2)刪除一列
刪除表中的一列和剛才使用的新增一列的語句格式十分相似,只是把關鍵詞ADD 改為 DROP ,語句後面不需要有資料類型、約束或位置資訊。具體語句格式:
ALTER TABLE 表名字 DROP COLUMN 列名字;或: ALTER TABLE 表名字 DROP 列名字;
我們把剛才新增的 test 刪除:
(3)重新命名一列
這條語句其實不只可用於重新命名一列,準確地說,它是對一個列做修改(CHANGE) :
ALTER TABLE 表名字 CHANGE 原列名 新列名 資料類型 約束;
注意:這條重新命名語句後面的 “資料類型” 不能省略,否則重新命名失敗。
當原列名和新列名相同的時候,指定新的資料類型或約束,就可以用於修改資料類型或約束。需要注意的是,修改資料類型可能會導致資料丟失,所以要謹慎使用。
我們用這條語句將 “height” 一列重新命名為漢語拼音 “shengao” ,效果如下:
(4)改變資料類型
要修改一列的資料類型,除了使用剛才的CHANGE語句外,還可以用這樣的MODIFY語句:
ALTER TABLE 表名字 MODIFY 列名字 新資料類型;
再次提醒,修改資料類型必須小心,因為這可能會導致資料丟失。在嘗試修改資料類型之前,請謹慎考慮。
4、對錶的內容修改(1)修改表中某個值
大多數時候我們需要做修改的不會是整個資料庫或整張表,而是表中的某一個或幾個資料,這就需要我們用下面這條命令達到精確的修改:
UPDATE 表名字 SET 列1=值1,列2=值2 WHERE 條件;
比如,我們要把Tom的age改為21,salary改為3000:
注意:一定要有WHERE條件,否則會出現你不想看到的後果
(2)刪除一行記錄
刪除表中的一行資料,也必須加上WHERE條件,否則整列的資料都會被刪除。刪除語句:
DELETE FROM 表名字 WHERE 條件;
我們嘗試把Tom的資料刪除:
(大資料工程師學習路徑)第四步 SQL基礎課程----修改和刪除