DB

各DBのDELETE文でJOIN句を使ってみた

SQLの構文として、テーブル結合をするためのJOIN句があるが、これはSELECT文やUPDATE文だけでなく、DELETE文でも利用できる。

今回は、Oracle、MySQL、PostgreSQL、SQL Serverの各DB上で、JOIN句を含むDELETE文を実行してみたので、その結果を共有する。

なお、JOIN句を含むUPDATE文については、以下の記事を参照のこと。

各DBのUPDATE文でJOIN句とCASE式を使ってみたSQLの構文として、テーブル結合をするためのJOIN句や、条件分岐を表現するためのCASE式があるが、これらはSELECT文だけでなく、...

前提条件

下記記事のように、A5M2を利用して各DBに接続できていること。

A5M2を利用して各DBに接続してみたA5M2(A5:SQL Mk-2)は、SQL文の入力支援やER図作成などの機能を備えていて、Oracle、MySQL、PostgreSQ...

また、各DB上に、以下のデータが設定されていること。(下図はOracleの例)

前提条件_1

前提条件_2

やってみたこと

  1. Oracleの場合の実行結果
  2. MySQLの場合の実行結果
  3. PostgreSQLの場合の実行結果
  4. SQL Serverの場合の実行結果

Oracleの場合の実行結果

Oracle上でJOIN句を含むDELETE文の実行結果は、以下の通り。

1) 今回の削除対象となるデータは、user_dataテーブルの性別が「その他」であるデータとする。そのデータを抽出するSELECT文を実行した結果は、以下の通り。

Oracle実行結果_1

2) user_dataテーブルの性別が「その他」であるデータを削除するDELETE文を実行した結果は、以下の通り。

Oracle実行結果_2_1 Oracle実行結果_2_2 Oracle実行結果_2_3

3) 2)のDELETE文実行後の、 user_dataテーブルの値は以下の通りで、2)で削除したデータが表示されないことが確認できる。

Oracle実行結果_3_1
削除または保存していないWordドキュメントの復元方法【4DDiG Windowsデータ復元】ワード(Word)データ等のファイルを誤って削除してしまった場合は、通常はデータの復元ができませんが、4DDiGというソフトウェアを利用...

MySQLの場合の実行結果

MySQL上でJOIN句を含むDELETE文の実行結果は、以下の通り。

1) 今回の削除対象となるデータは、user_dataテーブルの性別が「その他」であるデータとする。そのデータを抽出するSELECT文を実行した結果は、以下の通り。

MySQL実行結果_1

2) user_dataテーブルの性別が「その他」であるデータを削除するDELETE文を実行した結果は、以下の通り。

MySQL実行結果_2_1 MySQL実行結果_2_2

3) 2)のDELETE文実行後の、 user_dataテーブルの値は以下の通りで、2)で削除したデータが表示されないことが確認できる。

MySQL実行結果_3



フリエン(furien)は多くの案件を保有しフリーランス向けサービスも充実しているエージェントだったフリエン(furien)は、ITフリーランス(個人事業主)エンジニア専門のエージェントであるアン・コンサルティング株式会社が運営する業界...

PostgreSQLの場合の実行結果

PostgreSQL上でJOIN句を含むDELETE文の実行結果は、以下の通り。

1) 今回の削除対象となるデータは、user_dataテーブルの性別が「その他」であるデータとする。そのデータを抽出するSELECT文を実行した結果は、以下の通り。

PostgreSQL実行結果_1

2) user_dataテーブルの性別が「その他」であるデータを削除するDELETE文を実行した結果は、以下の通り。

PostgreSQL実行結果_2_1 PostgreSQL実行結果_2_2

3) 2)のDELETE文実行後の、 user_dataテーブルの値は以下の通りで、2)で削除したデータが表示されないことが確認できる。

PostgreSQL実行結果_3
「CODE×CODE」は、需要の高い技術(AWS, Python等)を習得できるプログラミングスクールスクールだった近年、さまざまな会社でクラウド(特にIaaSやPaaSのパブリッククラウド)の需要が非常に高まっていて、クラウドサービスによるシステム開...

SQL Serverの場合の実行結果

SQL Server上でJOIN句を含むDELETE文の実行結果は、以下の通り。

1) 今回の削除対象となるデータは、user_dataテーブルの性別が「その他」であるデータとする。そのデータを抽出するSELECT文を実行した結果は、以下の通り。

SQLServer実行結果_1

2) user_dataテーブルの性別が「その他」であるデータを削除するDELETE文を実行した結果は、以下の通り。

SQLServer実行結果_2_1 SQLServer実行結果_2_2

3) 2)のDELETE文実行後の、 user_dataテーブルの値は以下の通りで、2)で削除したデータが表示されないことが確認できる。

SQLServer実行結果_3

要点まとめ

  • SQLの構文として、テーブル結合をするためのJOIN句があるが、これは各DB上で、SELECT文やUPDATE文だけでなく、DELETE文でも利用できる。