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