SQLにおけるデータの挿入、削除、更新

7706 ワード

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
  • D 01学部の主任の給料をこの学部の平均給料に変えます。
    update PROF
    set SAL = (select avg(SAL)
    		from PROF
    		where DNO = D01)
    where PNO = (select DEAN 
    			from DEPT
    			where DNO = D01)
    
  • 例3
  • C 1コースの成績がこのコースの平均成績より小さい場合、この成績を5%上げます。
    update SC
    set GRADE = GRADE*1.05
    where CNO = C1
    and GRADE < (select avg(GRADE)
    			from SC
    			where CNO = C1)