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

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文の末尾には「;」を付与するのが基本です。
「;」を付与せずに実行出来るクライアントでも、あくまで例外と捉えて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の操作に慣れる意味でも一度利用してみることをおすすめします。

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

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

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

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

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

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

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

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

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

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

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