數據更新操作有3種:向表中添加數據、修改表中的數據和刪除表中的數據。 用來演示的數據表用student、course、sc三個數據表,數據表具體內容在: PHP和MySql數據庫,如何獲取每個分類的記錄的總數 插入數據 插入元組(一條數據) 式為: INSERT INTO 表名[(
數據更新操作有3種:向表中添加數據、修改表中的數據和刪除表中的數據。
用來演示的數據表用student、course、sc三個數據表,數據表具體內容在:PHP和MySql數據庫,如何獲取每個分類的記錄的總數
格式為:
INSERT INTO <表名>[(<屬性列1>[,<屬性列2>]…)]
VALUES(<常量1>[,<常量2>]…);
INTO子句中沒有出現的屬性列,新元組將取空值
但表定義說明了NOT NULL屬性的列不能取空值,否則會出錯
INTO子句沒有指明任何列名,則新元組必須在每個屬性上均有值
例子1.1
INSERT INTO Student( Sno, Sname, Ssex, Sdept, Sage ) VALUES ( '200215128', '陳東', '男', 18,'IS' )
當插入對應表中所有列的數據時,可以省略列名不寫。
所以插入語句也可以這樣寫:
INSERT INTO Student VALUES ( '200215129', '陳西', '男', 22,'IS' )
插入多行數據時,與插入一條數據類似,不過每一條數據都需要用括號擴起來,并用逗號分隔。
當插入對應數據表中所有列的數據的時候,列名可以省略不寫。
例子1.2
INSERT INTO Student VALUES ( '200215130', '卡卡西', '男', 25,'CS' ), ( '200215131', '琳', '女', 18,'CS' ), ( '200215132', '帶土', '男', 30,'CS' )
子查詢可以嵌套在INSERT語句中,用以生成要插入的批量數據。
格式為:
INSERT
INTO <表名> [(<屬性列1>,<屬性列2>,<屬性列3>)]
子查詢;
例子1.3
要求:對每個系,求學生的平均成績,并把結果存入數據庫中。
首先建立數據庫:
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
例子1.4
要求:統計每個系的人數,并把結果存入數據庫中。
首先建立存放查詢結果的數據表:
CREATE TABLE Sdept_num (Sdept char(15), Snum int);
INSERT INTO sdept_num( Sdept, Snum ) SELECT Sdept, COUNT( Sno ) FROM student GROUP BY Sdept
修改數據又稱為更新操作,其語句的一般格式為:
UPDATE <表名>
SET <列名>=<表達式>[, <列名>=<表達式>]…
[WHERE <條件>];
將學生‘卡卡西’的年齡修改為22歲
UPDATE Student SET Sage =20 WHERE Sname = '卡卡西'
將所有學生的年齡增加1歲
UPDATE Student SET Sage = Sage +1
子查詢也可以嵌套在UPDATE語句中,用以構造修改的條件
將計算機科學系全體學生的成績置零。
UPDATE SC SET Grade =0 WHERE EXISTS ( SELECT * FROM Student WHERE SC.Sno = Student.Sno AND Student.Sdept = 'IS' )
格式:
DELETE
FROM <表名>
[WHERE <條件>];
刪除卡卡西同學的數據
DELETE FROM Student WHERE Sname = '卡卡西'
刪除所有學生的選課記錄(也就是說要清空SC表,但是不刪除)
DELETE FROM SC;
子查詢同樣可以嵌套在DELETE語句中,用以構造執行刪除操作的條件。
刪除計算機科學系所有學生的選課記錄
DELETE FROM SC WHERE EXISTS ( SELECT * FROM Student WHERE SC.Sno = Student.Sno AND Student.Sdept = 'IS' )
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com