SQL update和alter之間的區別
阿新 • • 發佈:2020-12-19
alter用來修改基本表,是對錶的結構進行操作,在已有的表中新增、刪除或修改列
新增列:
ALTER TABLE table_nameADD column_name datatype
刪除列(請注意,某些資料庫系統不允許這種在資料庫表中刪除列的方式):
ALTER TABLE table_nameDROP COLUMN column_name
改變列的資料型別:
SQL Server / MS Access:
ALTER TABLE table_nameALTER COLUMN column_name datatype
My SQL / Oracle:
ALTER TABLE table_nameMODIFY COLUMN column_name datatype
Oracle 10G 之後版本:
ALTER TABLE table_name
MODIFY column_name datatype;
SQL ALTER TABLE 例項
請看 "Persons" 表:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
現在,我們想在 "Persons" 表中新增一個名為 "DateOfBirth" 的列。
我們使用下面的 SQL 語句:
ALTER TABLE PersonsADD DateOfBirth date
請注意,新列 "DateOfBirth" 的型別是 date,可以存放日期。資料型別規定列中可以存放的資料的型別。
現在,"Persons" 表將如下所示:
P_Id | LastName | FirstName | Address | City | DateOfBirth |
---|---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
2 | Svendson | Tove | Borgvn 23 | Sandnes | |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
改變資料型別例項
現在,我們想要改變 "Persons" 表中 "DateOfBirth" 列的資料型別。
我們使用下面的 SQL 語句:
ALTER TABLE PersonsALTER COLUMN DateOfBirth year
請注意,現在 "DateOfBirth" 列的型別是 year,可以存放 2 位或 4 位格式的年份。
DROP COLUMN 例項
接下來,我們想要刪除 "Person" 表中的 "DateOfBirth" 列。
我們使用下面的 SQL 語句:
ALTER TABLE PersonsDROP COLUMN DateOfBirth
現在,"Persons" 表將如下所示:
P_Id | LastName | FirstName | Address | City |
---|---|---|---|---|
1 | Hansen | Ola | Timoteivn 10 | Sandnes |
2 | Svendson | Tove | Borgvn 23 | Sandnes |
3 | Pettersen | Kari | Storgt 20 | Stavanger |
update用來修改表中的資料,是對錶的資料進行更新,修改某一行某一列的值
語法:
UPDATE 表名稱 SET 列名稱 = 新值 WHERE 列名稱 = 某值
Person:
LastName | FirstName | Address | City |
---|---|---|---|
Gates | Bill | Xuanwumen 10 | Beijing |
Wilson | Champs-Elysees |
更新某一行中的一個列
我們為 lastname 是 "Wilson" 的人新增 firstname:
UPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson'
結果:
LastName | FirstName | Address | City |
---|---|---|---|
Gates | Bill | Xuanwumen 10 | Beijing |
Wilson | Fred | Champs-Elysees |
更新某一行中的若干列
我們會修改地址(address),並新增城市名稱(city):
UPDATE Person SET Address = 'Zhongshan 23', City = 'Nanjing' WHERE LastName = 'Wilson'
結果:
LastName | FirstName | Address | City |
---|---|---|---|
Gates | Bill | Xuanwumen 10 | Beijing |
Wilson | Fred | Zhongshan 23 | Nanjing |