Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

SQL Developerとは

SQL Developerは、Oracle社が提供している、Oracle Datbase向けのデータベース開発ツールです。

GUIベースのツールで、テーブルの作成などのデータベース管理をGUI画面で行なったり、SQLの実行、データのインポート/エクスポートやPL/SQLの開発をしたりできます。

「SQL Developer」は、SQL*Plusのような「コマンドラインベース」のツールが苦手な人に向いており、Oracleデータベースの学習にも役立つツールで、世界中で150万人以上の人が利用するツールです。

整形(フォーマット)とは?

SQLを実行できるようなツールには、SQL文の整形機能が付いていることがあります。
整形機能は、ツールによってはフォーマットと呼ばれることもあり、SQL文に改行やインデントを適切に挿入し、人に見やすくしてくれる機能です。

例えば、以下のSQLを整形(フォーマット)すると、次のように見やすく編集してくれます。

--【整形前】
SELECT USER_ID, USER_NAME, AGE FROM USERS WHERE AGE > 20

--【整形後】
SELECT 
 USER_ID
 , USER_NAME
 , AGE 
FROM USERS 
WHERE AGE > 20

このように、SELECT句、FROM句、WHERE句などの区切りで適切に改行してSQLを見やすく編集し、サブクエリなどでは、インデントを挿入し階層を見やすく編集します。

Oracle社が提供するSQL Developerにも、SQLの整形機能があります。以降は、SQL DeveloperでSQLを整形する方法を解説していきます。

SQL DeveloperでSQLを整形する

今回は「Oracle SQL Developer 19c」の画面でSQLを整形する方法を解説していきます。(以前のバージョンのOracle SQL Developerでも基本的に手順は同じです)

SQLを整形する手順

まず、左側の「接続」メニューより、接続ユーザー名を選択し、[右クリック]→「SQLワークシートを開く」を選択し、右側のエリアにSQLを表示します。

SQLの整形を試す為にエディタにSQLを入力します。まずは以下のような簡単なSQLをエディタに入力しましょう。

SELECT USER_ID, USER_NAME, AGE FROM USERS WHERE AGE > 20

SQLを入力したら、実際に整形してみましょう。SQLエディタの上で[右クリック]→「書式」を選択します。

SQLの整形が実行され、整形後のSQLがエディタに反映されます。

複雑なSQLの整形

簡単なSQLは綺麗に整形されました。では、サブクエリやCASE文などの複数なSQLの場合、SQL Developerではどのように整形されるのか見ていきましょう。

まず、サブクエリ含むSQLを整形すると、次のような結果になります。

【整形前】

SELECT * FROM Users LEFT OUTER JOIN 
(SELECT SUM(Scores.score), Scores.user_id FROM Scores WHERE Scores.user_id = Users.id)
WHERE Age >= 20

【整形後】

SELECT
    *
FROM
    users
    LEFT OUTER JOIN (
        SELECT
            SUM(scores.score),
            scores.user_id
        FROM
            scores
        WHERE
            scores.user_id = users.id
    )
WHERE
    age >= 20

CASE文のような、少し複雑な制御構文は、次のように整形されます。

【整形前】

SELECT CASE WHEN Age >= 20 THEN '成人' ELSE '未成年' END FROM Users

【整形後】

SELECT
    CASE
        WHEN age >= 20 THEN
            '成人'
        ELSE
            '未成年'
    END
FROM
    users

Javaなどのコード用にSQLを整形する

SQL Developerは、SQLを見やすく整形する以外に、作成したSQLをJavaなどのプログラムに埋め込むためのコードに整形する機能まで備わっています。

例えば、Javaコード向けにSQLをフォーマットをかけると、次のようにString型の変数にSQL文を入れるためのコードが自動生成されます。

【フォーマットでJavaコードに変換】

String sql = "SELECT USER_ID\n"+
"    , USER_NAME\n"+
"    , AGE \n"+
"FROM USERS \n"+
"WHERE AGE > 20";

プログラム言語用にフォーマットする手順

では、SQL DeveloperでJavaなどのプログラム言語用にフォーマットする手順を見ていきましょう。

まず、左側の「接続」メニューより、接続ユーザー名を選択し、[右クリック]→「SQLワークシートを開く」を選択し、右側のエリアにSQLを表示します。

フォーマットを試すために、簡単なSQLをエディタに入力しましょう。

SELECT USER_ID, USER_NAME, AGE FROM USERS WHERE AGE > 20

SQLエディタの上でCtrl + Shift + F7キーを同時に押すと、次のような「SQLコードの埋込/公開」画面が表示されます。
今回は、Javaコード用にSQLをフォーマットするため、出力タイプに「Java」を選択し、OKボタンをクリックします。

SQLのフォーマットが実行され、JavaのString型の変数にSQLを埋め込むためのコードが生成されているのが、わかります。

String sql = "SELECT USER_ID, USER_NAME, AGE FROM USERS WHERE AGE > 20";

Java以外の出力タイプも選択できる

上の手順では、Javaコード用にSQLをフォーマットしましたが、SQL DeveloperではJava以外の出力タイプでもコードを生成できます。

出力タイプごとのSQLフォーマット内容は、次のようになります。

【Python】

var sql = "SELECT USER_ID\n"+
"    , USER_NAME\n"+
"    , AGE \n"+
"FROM USERS \n"+
"WHERE AGE > 20";

【PL/SQL】

sql varchar2(4000) := 'SELECT USER_ID '|| chr(10)  || 
'    , USER_NAME '|| chr(10)  || 
'    , AGE  '|| chr(10)  || 
'FROM USERS  '|| chr(10)  || 
'WHERE AGE > 20';

整形したSQLをクリップボードにコピー

通常、SQL DeveloperでSQLの整形を行うと、ワークシート上のSQLが直接変更されます。
ワークシート上のSQLを変更したくない場合は、フォーマットの出力先をクリップボードに変更することもできます。

クリップボードに出力すると、ワークシート上のSQLはそのままに、クリップボードにフォーマットされたSQLがコピーされます。

まとめ

Oracle社が提供しているSQL Developerで、SQLを整形する方法や、Javaをはじめとするプログラム言語用にSQLをフォーマットする方法について解説してきました。

ログファイルなどに出力されるSQLは、基本的に改行などがなく、1行にSQL文が出力されていることが多い為、そう言った時にSQL DeveloperのSQLの整形機能は非常に役にたちます。

便利なSQL Developerを使いこなして、効率的なプログラム開発をしていきましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。