基礎篇 - 數據庫及表的修改和刪除
修改和刪除
一、實驗簡介
本節實驗中,我們將學習並實踐如何對數據庫的內容做修改,刪除,重命名等操作。
二、實驗准備
在正式開始本實驗內容之前,需要先下載相關代碼。
該代碼可以新建兩個數據庫,分別名為 test_01
和mysql_shiyan
,並在 mysql_shiyan
數據庫中建 4 個表(department,employee,project,table_1),然后向其中插入數據。
具體操作如下,首先輸入命令進入 /home/shiyanlou/Desktop
目錄:
cd /home/shiyanlou/Desktop
然后再輸入命令,下載代碼:
git clone http://git.shiyanlou.com/shiyanlou/SQL5
下載完成后,輸入命令開啟 MySQL 服務並使用 root 用戶登錄:
#打開 MySQL 服務 sudo service mysql start #使用 root 用戶登錄 mysql -u root
下載的 SQL5 目錄下,有 1 個文件 MySQL-05.sql
(SQL5 目錄在桌面上,你可以用 Gedit 查看、編輯里面的文件。)
加載文件中的數據,需要在 MySQL 控制台中輸入命令,完成實驗准備:
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的數據刪除:
四、總結
本節實驗中我們學習了對數據庫、數據庫表、數據庫表項及記錄的修改和刪除方法。
五、作業
- 按照實驗過程完整操作一遍:先用下載的代碼建立數據庫並插入數據,然后試用各種修改語句。實驗過程截圖。
- 使用沒有 WHERE 條件的 UPDATE 語句,查看有什么不良后果(截圖並說明)。