1. 程式人生 > 實用技巧 >SQL update和alter之間的區別

SQL update和alter之間的區別

alter用來修改基本表,是對錶的結構進行操作,在已有的表中新增、刪除或修改列

新增列:

ALTER TABLE table_name
ADD column_name datatype

刪除列(請注意,某些資料庫系統不允許這種在資料庫表中刪除列的方式):

ALTER TABLE table_name
DROP COLUMN column_name

改變列的資料型別:

SQL Server / MS Access:

ALTER TABLE table_name
ALTER COLUMN column_name datatype

My SQL / Oracle:

ALTER TABLE table_name
MODIFY COLUMN column_name datatype

Oracle 10G 之後版本:

ALTER TABLE table_name
MODIFY column_name datatype;


SQL ALTER TABLE 例項

請看 "Persons" 表:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

現在,我們想在 "Persons" 表中新增一個名為 "DateOfBirth" 的列。

我們使用下面的 SQL 語句:

ALTER TABLE Persons
ADD DateOfBirth date

請注意,新列 "DateOfBirth" 的型別是 date,可以存放日期。資料型別規定列中可以存放的資料的型別。

現在,"Persons" 表將如下所示:

P_IdLastNameFirstNameAddressCityDateOfBirth
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger


改變資料型別例項

現在,我們想要改變 "Persons" 表中 "DateOfBirth" 列的資料型別。

我們使用下面的 SQL 語句:

ALTER TABLE Persons
ALTER COLUMN DateOfBirth year

請注意,現在 "DateOfBirth" 列的型別是 year,可以存放 2 位或 4 位格式的年份。


DROP COLUMN 例項

接下來,我們想要刪除 "Person" 表中的 "DateOfBirth" 列。

我們使用下面的 SQL 語句:

ALTER TABLE Persons
DROP COLUMN DateOfBirth

現在,"Persons" 表將如下所示:

P_IdLastNameFirstNameAddressCity
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

update用來修改表中的資料,是對錶的資料進行更新,修改某一行某一列的值

語法:

UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值

Person:

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson Champs-Elysees

更新某一行中的一個列

我們為 lastname 是 "Wilson" 的人新增 firstname:

UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' 

結果:

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Champs-Elysees

更新某一行中的若干列

我們會修改地址(address),並新增城市名稱(city):

UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing'
WHERE LastName = 'Wilson'

結果:

LastNameFirstNameAddressCity
Gates Bill Xuanwumen 10 Beijing
Wilson Fred Zhongshan 23 Nanjing