DB

A5M2でSQL自動作成やSQL整形をしてみた

A5M2(A5:SQL Mk-2)には、選択したテーブルに関するSQLを自動作成したり、指定したSQLを整形する機能がある。

今回は、A5M2でSQL自動作成やSQL整形を行ってみたので、その手順を共有する。

前提条件

下記記事に記載した方法で、A5M2を利用してOracleに接続できていること。

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

やってみたこと

  1. CREATE TABLE文の自動作成
  2. SELECT/INSERT/UPDATE/DELETE文の自動作成
  3. SQL文の整形

CREATE TABLE文の自動作成

A5M2では、選択したテーブルに関するCREATE TABLE文を自動作成できる。その手順は、以下の通り。

1) A5M2に接続し、CREATE TABLE文を自動生成したいテーブルを選択し右クリックし、「ソースをSQLエディタで開く」を選択する。
CREATE TABLE文の自動作成_1

2) 以下のように、別タブが開き、CREATE TABLE文が出力されることが確認できる。
CREATE TABLE文の自動作成_2

CREATE TABLE "USER01"."USER_DATA" 
   (    "ID" NUMBER(6,0) NOT NULL ENABLE, 
        "NAME" VARCHAR2(40) NOT NULL ENABLE, 
        "BIRTH_YEAR" NUMBER(4,0) NOT NULL ENABLE, 
        "BIRTH_MONTH" NUMBER(2,0) NOT NULL ENABLE, 
        "BIRTH_DAY" NUMBER(2,0) NOT NULL ENABLE, 
        "SEX" CHAR(1) NOT NULL ENABLE, 
        "MEMO" VARCHAR2(1024), 
         PRIMARY KEY ("ID")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS 
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS01"  ENABLE
   ) SEGMENT CREATION IMMEDIATE 
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS01"



株式会社ベアフォスターホールディングスでスキルチェンジできました私はこれまで、Javaを中心としたシステム開発を行ってきましたが、将来的には、Pythonを利用したAI(人工知能)開発を行いたいと思う...

SELECT/INSERT/UPDATE/DELETE文の自動作成

A5M2では、選択したテーブルに関するSELECT/INSERT/UPDATE/DELETE文を自動作成できる。その手順は、以下の通り。

1) A5M2に接続し、SQL文を自動生成したいテーブルを選択し右クリックし、「SQLの生成…」を選択する。
SELECT/INSERT/UPDATE/DELETE文の自動作成_1

2) 作成したいSQLを指定し、「OK」ボタンを押下する。以下は、絞り込み条件・並べ替え項目を指定したSELECT文の作成例となる。
SELECT/INSERT/UPDATE/DELETE文の自動作成_2_1

SELECT/INSERT/UPDATE/DELETE文の自動作成_2_2
--*DataTitle 'USER01.USER_DATA'
--*CaptionFromComment
SELECT
    ID                                          -- ID
    , NAME                                      -- NAME
    , BIRTH_YEAR                                -- BIRTH_YEAR
    , BIRTH_MONTH                               -- BIRTH_MONTH
    , BIRTH_DAY                                 -- BIRTH_DAY
    , SEX                                       -- SEX
    , MEMO                                      -- MEMO
FROM
    USER01.USER_DATA 
WHERE
    ID = :ID 
    and NAME = :NAME 
ORDER BY
    ID

3) INSERT文の作成例は、以下の通り。
SELECT/INSERT/UPDATE/DELETE文の自動作成_3_1

SELECT/INSERT/UPDATE/DELETE文の自動作成_3_2
INSERT 
INTO USER01.USER_DATA( 
    ID
    , NAME
    , BIRTH_YEAR
    , BIRTH_MONTH
    , BIRTH_DAY
    , SEX
    , MEMO
) 
VALUES ( 
    :ID
    , :NAME
    , :BIRTH_YEAR
    , :BIRTH_MONTH
    , :BIRTH_DAY
    , :SEX
    , :MEMO
)

4) UPDATE文の作成例は、以下の通り。
SELECT/INSERT/UPDATE/DELETE文の自動作成_4_1

SELECT/INSERT/UPDATE/DELETE文の自動作成_4_2
UPDATE USER01.USER_DATA 
SET
    NAME = :NAME
    , BIRTH_YEAR = :BIRTH_YEAR
    , BIRTH_MONTH = :BIRTH_MONTH
    , BIRTH_DAY = :BIRTH_DAY
    , SEX = :SEX
    , MEMO = :MEMO 
WHERE
    ID = :ID

5) DELETE文の作成例は、以下の通り。
SELECT/INSERT/UPDATE/DELETE文の自動作成_5_1

SELECT/INSERT/UPDATE/DELETE文の自動作成_5_2
DELETE 
FROM
    USER01.USER_DATA 
WHERE
    ID = :ID

6) 作成されたSQLの整形ルールは、以下のように、「設定」ー「オプション」メニューから「SQL整形」タブを表示することで、確認できる。
SELECT/INSERT/UPDATE/DELETE文の自動作成_6_1

SELECT/INSERT/UPDATE/DELETE文の自動作成_6_2



「Envader」はLinuxコマンドやDatabase SQL等のスキルを、環境構築不要で習得できる学習サイトだった「Envader」は、ITエンジニアとしてよく使うLinuxコマンドやDatabase SQL等のスキルを、解説を読んだ上で、問題を解き...

SQL文の整形

A5M2では、記載したSQL文を簡単に整形することができる。その手順は、以下の通り。なお、整形ルールは、前述の「設定」ー「オプション」メニューの「SQL整形」タブで確認できる。

1) A5M2に接続し、クエリー上でSQL文を記載し右クリックし、「SQLの整形」メニューを選択する。
SQL文の整形_1

2) 以下のように、入力したSELECT文が整形されたことが確認できる。
SQL文の整形_2

SELECT
    ID
    , NAME
    , BIRTH_YEAR
    , BIRTH_MONTH
    , BIRTH_DAY
    , SEX
    , MEMO 
FROM
    USER_DATA 
WHERE
    ID IN (1, 2) 
ORDER BY
    ID ASC

3) SELECT文以外でも、同様にSQL整形が行える。以下はINSERT文の例となる。
SQL文の整形_3_1

SQL文の整形_3_2
INSERT 
INTO USER_DATA( 
    ID
    , NAME
    , BIRTH_YEAR
    , BIRTH_MONTH
    , BIRTH_DAY
    , SEX
    , MEMO
) 
VALUES (3, 'テスト プリン3', 2014, 3, 12, '1', 'テスト3')

要点まとめ

  • A5M2(A5:SQL Mk-2)では、選択したテーブルに関するSQLを自動作成したり、指定したSQLを整形する機能を利用することができる。