1. 插入操作
1.1 命令
(1)插入一條指定好值的元組
insert into table_name (column1, column2, column3, ...)
values (value1, value2, value3, ...);
如果要爲表中的所有列添加值,則不需要在SQL查詢中指定列名稱。但是,請確保值的順序與表中的列順序相同。
(2)插入子查詢結果中的若干條元組
insert into table_name (column1, column2, column3, ...)
子查詢;
1.2 例子
- 例1
insert into PROF
values("P123","王明",35,"D08",498)
insert into PROF(PNO,PNAME,DNO)
values("P123","王明","D08")
- 例2
將平均成績大於90的學生加入到EXCELLENT中
insert into EXCELLENT(SNO,GRADE)
select SNO,avg(GRADE)
from SC
group by(SNO)
having avg(GRADE)>90
2. 刪除操作
2.1 命令
delete from table_name
WHERE 條件表達式;
2.2 例子
- 例1
刪除王明老師所有任課記錄
delete from PC
where PNO in
(select PNO
from PROF
where PNAME = "王明")
- 例2
刪除低於平均工資的老師記錄
delete from PROF
where SAL <
(select avg(SAL)
from PROF)
3. 更新操作
3.1 命令
update table_name
set column1 = value1/表達式1, column2 = value2/表達式2, ...
where 條件表達式;
3.2 例子
- 例1
老師工資上調5%。
update PROF
set SAL = SAL*1.05
- 例2
將D01繫系主任的工資改爲該系的平均工資
update PROF
set SAL = (select avg(SAL)
from PROF
where DNO = D01)
where PNO = (select DEAN
from DEPT
where DNO = D01)
- 例3
當C1課程的成績小於該課程的平均成績時,將該成績提高5%。
update SC
set GRADE = GRADE*1.05
where CNO = C1
and GRADE < (select avg(GRADE)
from SC
where CNO = C1)