1. 程式人生 > >SQL Server插入資料和刪除資料

SQL Server插入資料和刪除資料

首先在我的Student表中插入幾條資料,由於我的表已經建立完成了,所以就沒有建立表的 sql 語句了,不過可以看我的上一篇文章:

http://www.cnblogs.com/Brambling/p/6649350.html

插入資料sql語句:

1  insert into Student(S_StuNo,S_Name,S_Sex,S_Height)
2   select '001','項羽','男','190' union 
3   select '002','劉邦','男','170' union 
4   select '003','貂蟬','女','180' union 
5   select '004','天明','男','155' union 
6   select '005','少司命','女','175' 

當然,也可以像下面這樣寫,不過我個人習慣用上面這種方法。

1   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('001','項羽','男','190')
2   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('002','劉邦','男','170')
3   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('003','貂蟬','女','180')
4   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('004','天明','男','155')
5   insert into Student(S_StuNo,S_Name,S_Sex,S_Height) values ('005','少司命','女','175')

SQL Server語句把一個表的資料插入到另一個表,有以下兩種方法:

第一種,當要插入的表(Student_back)不存在時

1  --把表 Student 中性別為 '男' 的學生資訊 插入到表 Student_back(不存在) 中
2   select * into Student_back from Student where S_Sex='男'

未指定具體列,就會自動建立一個跟(Student)一樣的表並把資料插入

指定具體要插入的列就會根據指定的列建立一個表,並把資料插入

第二種,當要插入的表本身便存在時

1 --把表 Student 中性別為 '女' 的學生資訊 插入到表 Student_back(存在)中
2   insert into Student_back(S_StuNo,S_Name,S_Sex,S_Height)
3   select S_StuNo,S_Name,S_Sex,S_Height  from Student
4   where S_Sex='女'

因為欄位 S_Id 是標識列,不能有顯示插入的值,所以這裡必須指定要插入的列。

前面說了建立表的sql語句,下面說說刪除表的sql語句:

確切的說刪除表的方式有 drop:

1 drop table Student_back

這樣就刪除表了,這樣的刪除不僅會刪除表中的資料,還包括表結構、欄位、檢視、索引、觸發器和依賴的約束等等。此方法慎用!!!

truncate:

1 truncate table Student_back

這樣只是刪除表中的所有資料,會保留表結構、欄位、約束、索引等等,但是不能加 where 條件限制。

如果表存在 FOREIGN   KEY (外來鍵約束),則不能使用此方法,應使用不帶 where 條件的 delete 語句,但 truncate 語句比 delete 語句執行要快。

delete:

1 delete from Student_back where S_StuNo='001'

這樣的刪除同樣是刪除表中的資料,並且可以新增 where 條件限制,還可以啟用 trigger (觸發器)。