1. 程式人生 > >《數據庫系統概論》 -- 3.3 DML之增刪改

《數據庫系統概論》 -- 3.3 DML之增刪改

into ble set 增刪改 from creat 子查詢 col 操作

數據更新操作有三種:添加、修改、刪除

INSERT 格式 INSERT

INTO <表名> [(<屬性列1>[,<屬性列2>...])]

VALUES (<常量1>[,<常量2>...]);

INSERT

INTO <表名> [(<屬性列1>[,<屬性列2>...])]

<select子查詢>;

註意 在INTO子句中沒有出現的屬性列,新元組取空值;

如果某列不允許為空,則會報錯

如果INTO子句只有表名,則數據的順序必須與創建語句的順序一致

舉例

將一個新學生元組(201215128,陳冬,男,IS,18)插入Student表

INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (‘201215128‘,‘陳冬‘,‘男‘,‘IS‘,18);

將學生張成民的信息(201215126,張成民,男,CS,18)插入到Student表中

INSERT INTO Student (Sno,Sname,Ssex,Sdept,Sage) VALUES (‘201215126‘,‘張成民‘,‘男‘,‘CS‘,18);

插入一條選課記錄(‘201215128‘,‘1‘)

INSERT INTO SC (Sno,Cno) VALUES (‘201215128‘,‘1‘);

對每一個系,求學生的平均年齡,並將結果存入數據庫

CREATE TABLE Dept_age (

Sdept CHAR(15),

Avg_age SMALLINT

);

INSERT INTO Dept_age (Sdept,Avg_age)

SELECT Sdept,AVG(Sage) FROM Student GROUP BY Sdept;

UPDATE 格式 UPDATE <表名>

SET <列名>=<表達式>[, <列名>=<表達式>...]

[WHERE <條件表達式>];

舉例

將學生201215121的年齡改為22歲

UPDATE Student SET Sage=22 WHERE Sno=‘201215122‘;

將所有學生年齡增加1歲

UPDATE Student SET Sage=Sage+1;

將計算機科學系全體學生的成績置零

UPDATE SC SET Grade=0 WHERE Sno IN (

SELECT Sno FROM Student WHERE Sdept=‘CS‘

);

DELETE 格式 DELETE FROM <表名>

[WHERE <條件表達式>];

說明 如果沒有WHERE子句,則刪除表中所有數據,該表還在

舉例

刪除學號為201215128的學生記錄

DELETE FROM Student WHERE Sno=‘201215128‘;

刪除所有學生的選課記錄

DELETE FROM SC;

刪除計算機科學系所有學生的選課記錄

DELETE FROM SC WHERE Sno IN (

SELECT Sno FROM Student WHERE Sdept=‘CS‘

);

《數據庫系統概論》 -- 3.3 DML之增刪改