當前位置:首頁 » 編程語言 » sql刪除表約束
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql刪除表約束

發布時間: 2023-03-17 11:57:53

sql中的幾種約束的創建與刪除

約束的目的就是確保表中的數據的完整性。
常用的約束類型如下:
主鍵約束:(Primary Key constraint) 要求主鍵列唯一,並且不允許為空
唯一約束:(Unique Constraint) 要求該列唯一,允許為空,但只能出現一個空值
檢查約束:(Check Constraint) 某列取值范圍限制、格式限制等。如有關年齡的限制
默認約束:(Default Constraint) 某列的默認值,如我們的男性學員比較多,性別默認為男
外鍵約束:(Foreign Key Constraint) 用於在兩表之間建立關系,需要指定引用主表的哪一列
一、添加約束
在創建表時,我們可以在欄位後添加各種約束,但一般不這樣混用,推薦將添加約束和建表的語句分開編寫。
添加約束的語法如下:
Code:
Alter Table 表名
Add Constraint 約束名 約束類型 具體的約束類型
上述語法標識修改某個表,添加某個約束,其中約束名的命名規則推薦採用"約束類型_約束欄位"這樣的形式。
Code:
---添加主鍵約束
Alter Table stuInfo
Add Constraint PK_stuNO primary Key(stuNo)
---添加唯一約束
Alter Table stuInfo
Add Constraint UQ_stuID unique(stuID)
---添加默認約束
Alter Table stuInfo
Add Constraint DF_stuAddress default('地址不詳') for stuAddress
---添加檢查約束
Alter Table stuInfo
Add Constraint CK_stuAge check(stuAge between 15 and 40)
---添加外鍵約束
Alter Table stuMarks
Add Constraint FK_stuNo foreign key(stuNo) references stuInfo(stuNo)
二、刪除約束
如果錯誤的添加了約束,則可以刪除約束
刪除約束的語法如下:
Code:
Alter Table 表名
Drop Constraint 約束名
附加:在創建表的時候同時添加約束的寫法:
Code:
use stuDB
go
if exists(select * from Sysobjects where name = 'stuInfo')
drop table stuInfo
go
create table stuInfo
(
stuName varchar(20) not null primary key(stuName)
,stuID int not null unique(stuID)
,stuAddress varchar(20) not null default('地址不詳')
,stuAge int not null check(stuAge between 15 and 40)
)

② 在SQL中刪除表的內容和刪除表的結構有什麼不同各自用什麼命令語言

區別有以下兩點:

1、定義不同。

刪除表的內容是指刪除表的數據。表的結構還在。

刪除表的結構是指刪除整個表,包括結構和數據。

2、命令不同。

刪除表的內容:

truncate table表名稱;

或者

delete from 表名稱;

刪除表結構:

drop table 表名稱;

(2)sql刪除表約束擴展閱讀:

truncate:刪除內容、釋放空間但不刪除定義(保留表的數據結構)。truncate 不能刪除行數據,要刪就要把表清空。

delete:delete 語句用於刪除表中的行。delete語句執行刪除的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存,以便進行進行回滾操作。

truncate與不帶where的delete :只刪除數據,而不刪除表的結構(定義)。

如果想保留標識計數值,請改用delete。 如果要刪除表定義及其數據,請使用drop table 語句。

drop:刪除內容和定義,釋放空間。簡單來說就是把整個表去掉。以後是不能新增數據,除非新增一個表。

drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger),索引(index);依賴於該表的存儲過程/函數將被保留,但其狀態會變為:invalid。

③ 用SQL語句怎麼刪除表中的所有數據

從一個表中刪除數據,使用DELETE語句。從表中刪除所有行

DELETE FROMtable_name;

或DELETE * FROMtable_name;

或DELETE FROM Customers

WHERE cust_id = '10000006';

DELETE不需要列名和通配符,它是刪除整行而不是刪除列,要刪除指定的列,請使用update語句;並且DELETE語句從表中刪除行,甚至是刪除表中所有行,而不是刪除表本身。

如果想刪除表中的所有行,可以使用TRUNCATE TABLE語句,完成相同的工作,而速度更快。

(3)sql刪除表約束擴展閱讀

drop直接刪掉表。

truncate刪除的是表中的數據,再插入數據時自增長的數據id又重新從1開始。

delete刪除表中數據,可以在後面添加where字句

(1)DELETE語句執行刪除操作的過程是每次從表中刪除一行,並且同時將該行的刪除操作作為事務記錄在日誌中保存以便進行進行回滾操作。TRUNCATE TABLE 則一次性地從表中刪除所有的數據並不把單獨的刪除操作記錄記入日誌保存,刪除行是不能恢復的。並且在刪除的過程中不會激活與表有關的刪除觸發器。執行速度快。

(2) 表和索引所佔空間。當表被TRUNCATE 後,這個表和索引所佔用的空間會恢復到初始大小,而DELETE操作不會減少表或索引所佔用的空間。drop語句將表所佔用的空間全釋放掉。

(3) 一般而言,drop > truncate > delete

(4) 應用范圍。TRUNCATE 只能對TABLE;DELETE可以是table和view

(5) TRUNCATE 和DELETE只刪除數據,而DROP則刪除整個表(結構和數據)。

(6) truncate與不帶where的delete :只刪除數據,而不刪除表的結構(定義)drop語句將刪除表的結構被依賴的約束(constrain),觸發器(trigger)索引(index);依賴於該表的存儲過程/函數將被保留,但其狀態會變為:invalid。

④ 如何用sql語句刪除外鍵約束

用sql語句刪除外鍵約束的具體步驟如下:

我們需要准備的材料分別是:電腦、SQL SERVER 2008。

1、首先我們用SQL SERVER 2008打開需要刪除外鍵約束的表,滑鼠右鍵點擊左側的「dbo」選項選擇「設擊」。

⑤ sql server怎樣刪除外鍵約束

1.首先,我們使用SQLSERVER2008打開需要刪除外鍵約束的表,點擊左側的「dbo」通道項,選擇「setclick」。

注意事項:

可以雙擊鍵約束來添加外鍵約束,它有四個不同的選項:CASCADE、SETNULL、NOACTION、restricted。

1.級聯:刪除或更新父表中相應的行,並自動刪除或更新表中匹配的行。[在刪除CANSCADE和更新CANSCADE都支持InnoDB。

2.SETNULL:刪除或更新父表中對應的行,並將子表中的外鍵列設置為空。注意,這些外鍵列沒有設置為NOTNULL。InnoDB支持刪除集空值和更新集空值。

3.無操作:InnoDB拒絕刪除或更新父表。

4.限制:拒絕刪除或更新父表。