はじめに
SQL学習中です。
SQLをIBM i で利用すると、便利なことはロチェで学んだのですがVS codeのDb2 for iで使いこなせないかと思い、、初心者向けお勉強記事です。
SQLとは
リレーショナル・データベースのデータを定義したり、操作したりするための言語です。
SQL ステートメントを直接使用して、スキーマ、テーブル、 およびビューの作成と処理を行うことができます。
SQLの用語:DDLとDMLとDCL
SQLで使用される3つの主要なカテゴリのことを指す言葉です。
-
DDL(データ定義言語)
データベースの構造を定義または変更するためのコマンド。
テーブルの作成や変更、削除などを行う時に使う。
例:CREATE, ALTER, DROP -
DML(データ操作言語)
データベース内のデータを操作するためのコマンド。
データの追加、更新、削除、検索をする時に使う。
例:SELECT, INSERT, UPDATE, DELETE -
DCL(データ制御言語)
データベースのアクセス制御を管理するためのコマンド。
ユーザーの権限を付与したり、取り消したりします。
例:GRANT, REVOKE
これらのコマンドを使用することで、データベースの設計からデータの操作、アクセス権限の管理まで一貫した操作が可能になります。
SQL用語とIBM i 用語の対比
SQL用語 | IBM i 用語 |
---|---|
スキーマ | ライブラリ |
テーブル | 物理ファイル(PF) |
ビュー | 論理ファイル(LF) |
SQLが実行できるIBM i 環境
選択肢は3つあると思っていて、
・ACS
・VS codeのDb2 for i
・5250画面
5250画面でもSTRSQL
コマンドでSQL実行できます。
ただSQLの醍醐味はコピーアンドペーストだと思っているので、コピペがしやすい上2つを個人的には推します。
今回はVS codeのDb2 for iを使ってSQL実行していきます!
VS codeの拡張機能であるDb2 for iの概要とセットアップについてはこちらの記事を参照ください。
SQLでライブラリ(スキーマ)を作ってみる
VS codeのDb2 for i を開きます。
テキストエディタの適当な部分を右クリックすると、新しいテキストファイルの作成ができます。
新しいテキストファイルを開いて、実行したいSQLを入力していきます。
SQL文を実行するためにスキーマ(ライブラリ)を作ります。
CREATE SCHEMA KOGASCH
スキーマブラウザー確認してみます、作成できていることがわかります。
SQLで物理ファイル(テーブル)を作ってみる
IBM i Serviceを使う
サイドバーの下の方にExamplesがあります。その中のDDL一覧の中になんとテーブル作成のSQLが、、、!
原型はこれ。
原型を生成AIの力を借りてもじって以下を作りました。
CREATE TABLE KOGASCH.KOGATAB (
TKBANG INT NOT NULL,
TKNAKN VARCHAR(50),
UPDATE_TIMESTAMP TIMESTAMP,
TKGURT INT,
TKGURIT VARCHAR(50)
);
実行して、SCHEMA BROWSERから結果を見ると、KOGATABがいる。
こんな感じで例からもじってSQL実行すると楽ちんですね。
実行したSQLはCommand+Sでローカルに保存することもできます。
保存すれば使いまわせる、人にも配れるで便利ですね。
以下実行していったSQLと結果です。
プライマリキーの指定
ALTER TABLE KOGASCH.KOGATAB
ADD PRIMARY KEY (TKBANG);
結果はTKBANGをプライマリーキーにしただけなので見た目的な変化はないので割愛。
エラーが出てなければ基本実行できています。
データの追加
INSERT INTO KOGASCH.KOGATAB (TKBANG, TKNAKN)
VALUES ('1000', '相沢書店');
複数データの追加
INSERT INTO KOGASCH.KOGATAB (TKBANG, TKNAKN, UPDATE_TIMESTAMP, TKGURT, TKGURIT)
VALUES
(2000, '山田商事', CURRENT_TIMESTAMP, 1000, '詳細B'),
(3000, '川崎不動産', CURRENT_TIMESTAMP, 2000, '詳細C'),
(4000, '東京書店', CURRENT_TIMESTAMP, NULL, NULL);
データの更新
東京書店の当月売上高を300000に更新
UPDATE KOGASCH.KOGATAB
SET TKGURT = 300000
WHERE TKBANG = '4000';
データの削除
山田商事を削除します
DELETE FROM KOGASCH.KOGATAB
WHERE TKBANG = '2000';
SQLの活用場面
データベース操作でこのようにDb2 for i のデータを操作できます。
IBM i 初心者がデータベース操作を行ってみるのに関してはSQLを使ってみるのもいいのかなと思います。
データベース操作以外に実行管理もSQLで実行できますので、今度紹介したいです。