SQL中數據的插入、刪除、更新

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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章