SQL*PLUS(エスキューエルプラス)という言葉自体を聞いたことがあるプログラマーの方は多いかと思いますが、実際に利用したことの無い人もいらっしゃるかと思います。
本記事では、SQL*PLUSの基本情報から接続方法やコマンドを含めた基本的な使い方についてご紹介していきます。
目次
SQL*PLUS(エスキューエルプラス)とは
SQL*PLUSは、人気データベース「Oracle」のクライアントツールです。
データベース「Oracle」の開発元であるOracle社が提供するクライアントツールですので、信頼感が高いことから、多くのユーザーが利用しています。
何が出来る?
SQL*PLUSでは、データベース管理者(DBA)や開発者がコマンドライン・ユーザー・インターフェース(CUI)で、データベースに指示を与え、即座に実行させることが可能です。
データベースの起動や停止から、テーブル操作・データベースの構造設定・変更まで、様々なデータベースに関する処理を命令することが出来ます。
Oracle SQL Developerなどのグラフィカル・ユーザー・インターフェース(GUI)でデータベースを管理出来るツールもたくさん登場していますが、データベース操作に慣れたエンジニアであればSQL*PLUSのようなCUIで指示を与える方が、柔軟な操作が可能で開発効率も上がります。
SQL*PLUSの主な機能
SQL*PLUSの主な機能は下記の通りです。
- SQL コマンドおよび PL/SQL ブロックの入力、編集、格納、取出しおよび実行
- 問合せ結果の書式設定、計算の実行、格納、スプール、印刷 およびWeb への表示
- 表の列定義のリスト表示
- データベース間でのデータへのアクセスおよびデータのコピー
- データベースの管理(起動、停止、各種DDLの実行)
- キャラクタベースの簡単なレポート作成機能
引用元:SQL*PLUSとは
SQL*PLUSの対象ユーザー
SQL*PLUSでは、初心者にも分かりやすい設計になっている一方、データベース操作経験の豊富な中~上級者のニーズにも十分に答えることが可能な機能を備えています。
Oracleデータベースを利用するエンジニアであれば、スキルレベルに関係なく対象ユーザーとなります。
SQL*PLUS(エスキューエルプラス)の接続方法
SQL*PLUSへの接続方法にはいくつかの種類があります。
対話形式で接続
sqlplus
上記のように「sqlplus」だけ入力すると対話モードとなり、まず「user-name」の入力が求められ、次に「passward」の入力が求められます。
双方ともにデータベースに設定された情報を入力することで、接続が完了となります。
起動と同時に接続する
sqlplus [ユーザー名]/[パスワード]@[接続文字列]
[接続文字列]は「tnsnames.ora」ファイルに指定された名称です。
システム管理者として接続
sqlplus [ユーザー名]/[パスワード]@[接続文字列] as sysdba
起動と同時に接続するコマンドに「as sysdba」を加えて実行します。
データベースの起動や停止を行うようなSYSユーザーで接続する場合に「as sysdba」の入力が必要になります。
接続時にファイル実行
sqlplus [ユーザー名]/[パスワード]@[接続文字列] @[ファイル名]
接続ユーザーを指定して起動する場合、さらに「@[ファイル名]」と入力することで、指定したSQLファイルを実行することが可能です。
sql*plus内部ログイン
ちなみにユーザー名やパスワードがなくても「/nolog」でsql*plus内部からログインすることが可能です。
sqlplus /nolog
ただし「/nolog」でログインした場合、接続先情報をログイン後に設定しないとデータベースを操作することは出来ません。
接続の解除
SQL*PLUSの接続を解除したい場合には、「ext」と入力するだけです。
exit
SQL*PLUS(エスキューエルプラス)でSQL文を実行
SQL*PLUSでのSQL文を実行する方法は、他のSQLクライアントと基本的に変わりません。
一部のSQLクライアントでは、SQL文の末尾に「;」を付けず「Enter」ボタンで実行出来るようですが、SQL*PLUSでは必ず末尾に「;」を付ける必要があります。
SELECT * FROM sample_table
上記でEnterボタンを押すと改行されるだけでSQL文は実行されていません。
SELECT * FROM sample_table;
上記サンプルのように末尾に「;」を付けることでSQL文が実行されます。
SQL*PLUS(エスキューエルプラス)の独自コマンド例
次にSQL*PLUSで一般的に利用される独自コマンド例をいくつかご紹介しておきます。
- @[ファイル名]:指定したスクリプトのSQL文を実施
- /(スラッシュ):最後に実行されたSQLバッファ内のSQLまたはPL/SQLの実行
- APPEND [text]: 指定したtextを行末に追加
- CLEAR [option]: 指定したoptionの現行値・設定をリセットまたは消去
- CONNECT [接続情報]: 接続情報に指定したユーザーでデータベースに接続
- DEFINE [変数名=代入値]: ユーザー定義変数の設定・表示
- EXECUTE [PL/SQL]: 指定したPL/SQL文を実行
- HELP [topic]: topicに指定したコマンドのヘルプ情報を表示
- HOST [command]: SQL*PLUSを終了せずにOSコマンドを実行
- PRINT [バインド変数]: バインド変数の値を表示
- RUN: SQLバッファ内のSQL文またはPL/SQLの実行
- SAVE [ファイル名]: バッファの内容を指定したOSのファイルに保存
- SET [システム変数]: 現行セッションのシステム変数を設定
- SHOW USER: ログインしているユーザー名を表示
- STARTUP: オラクルデータベースインスタンスの起動
- TIMING [option]: タイマーの設定・表示
- WHENEVER OSERROR[option]: OSのエラーが発生した場合の例外処理
- WHENEVER SQLERROR[option]: SQLまたはPL/SQLのエラーが発生した場合の例外処理
今回ご紹介したSQL*PLUSのコマンドは一部であり、Oracleの公式ページには、より多くのコマンドが掲載されています。
さいごに:SQL*PLUS(エスキューエルプラス)でOracleのCUI操作にチャレンジしよう
本記事では、SQL*PLUSの基本情報から基本的な使い方についてご紹介してきました。
SQL*PLUSには多くのコマンドが提供されており、中にはほとんど使わないコマンドというのも存在します。
コマンドを全て覚える必要はなく、頻出コマンドのいくつかは利用していれば勝手に覚えていくものですし、その他コマンドは都度調べて実行出来れば問題ありません。
オラクルデータベース管理ツールはSQL*PLUS以外にも様々な便利ツールが登場していますが、従来から提供されている基盤ツールとして、CUIの操作に慣れる意味でも一度利用してみることをおすすめします。
SQL文の末尾には「;」を付与するのが基本です。
「;」を付与せずに実行出来るクライアントでも、あくまで例外と捉えてSQL文の末尾には常に「;」を付与しておくことをおすすめします。