SQL基礎 刪除和修改表

2021-04-12 16:25:05 字數 1392 閱讀 9202

你應該在建立表之前仔細設計它們,因為你在改變乙個已經存在的表時會受到很大的限制。例如,一旦已經建立了乙個表,你就不能刪除表中的字段或者改變欄位的資料型別。在這種情況你所能做的是刪除這個表,然後重頭開始(參見第十一章「中級sql」中的「使用sql建立記錄和表」一節)。

要刪除乙個表,你可以使用sql語句drop table。例如,又從資料庫中徹底刪除表mytable,你要使用如下的語句:

drop table mytable

使用drop table命令時一定要小心。一旦乙個表被刪除之後,你將無法恢復它。

當你建設乙個站點時,你很可能需要向資料庫中輸入測試資料。而當你準備向世界提供你的網點時,你會想清空表中的這些測試資訊。如果你想清除表中的所有資料但不刪除這個表,你可以使用truncate table語句。例如,下面的這個sql語句從表mytable中刪除所有資料:

truncate table mytable

快速刪除表中資料

runcate table

刪除表中的所有行,而不記錄單個行刪除操作。

語法truncate table name

引數name

是要截斷的表的名稱或要刪除其全部行的表的名稱。

注釋truncate table 在功能上與不帶 where 子句的 delete 語句相同:二者均刪除表中的全部行。但 truncate table 比 delete 速度快,且使用的系統和事務日誌資源少。

delete 語句每次刪除一行,並在事務日誌中為所刪除的每行記錄一項。truncate table 通過釋放儲存表資料所用的資料頁來刪除資料,並且只在事務日誌中記錄頁的釋放。

truncate table 刪除表中的所有行,但表結構及其列、約束、索引等保持不變。新行標識所用的計數值重置為該列的種子。如果想保留標識計數值,請改用 delete。如果要刪除表定義及其資料,請使用 drop table 語句。

對於由 foreign key 約束引用的表,不能使用 truncate table,而應使用不帶 where 子句的 delete 語句。由於 truncate table 不記錄在日誌中,所以它不能啟用觸發器。

truncate table 不能用於參與了索引檢視的表。

示例下例刪除 authors 表中的所有資料。

truncate table authors

雖然你不能刪除和修改已經存在的字段,但你可以增加新字段。最容易的實現方法是使用sql事務管理器中的manager tables視窗。你也可以使用sql語句alter table。下面是乙個如何使用這種語句的例子:

alter table mytable add mynewcolumn int null

這個語句向表mytable中增加了乙個新字段mynewcolumn。當你增加新字段時,你必須允許它接受空值,因為表中原來可能已經有了許多記錄。  

SQL基礎 刪除和修改表

你應該在建立表之前仔細設計它們,因為你在改變乙個已經存在的表時會受到很大的限制。例如,一旦已經建立了乙個表,你就不能刪除表中的字段或者改變欄位的資料型別。在這種情況你所能做的是刪除這個表,然後重頭開始 參見第十一章 中級sql 中的 使用sql建立記錄和表 一節 要刪除乙個表,你可以使用sql語句d...

SQL 修改和刪除基本表

sql語言用alter table語句修改基本表,其一般格式如下 alter table 表名 add 列名 資料型別 列級完整性約束 drop constraint 完整性約束名 drop column 列名 alter column 列名 資料型別 說明 表名 是要更改的表的名字 add字句用於...

SQL基礎 建立 更改和刪除表

建立表 約束使用default確定預設值 使用primary key指定主鍵 使用foreign key指定外來鍵 使用unique確保值唯一 使用check建立檢查約束 使用create temporary table建立臨時表 使用create table as利用已存在表建立新錶 使用alte...