Oracle Database

Oracle Databaseのインストール

ダウンロード

研修ではOracle Databaseの中でも無償版のExpress Editionを使用します。

下記のリンクにアクセスします。
Oracle Database Express Edition | Oracle 日本

「Oracle Database XEをダウンロード」をクリック

Windows用をクリック(OSが異なる場合は環境に合うOSのものを選択)

zipファイルを解凍します。
ダウンロードされたzipファイルを選択し、右クリック>すべて展開>「展開する」をクリック

☆zipファイルが分からない場合は以下の参考サイトを読んでください。IT基礎知識です!
Zipファイルとはどんな意味?

セットアップ

展開で生成されたフォルダを開き、setup.exeを実行(選択してEnter)

「このアプリがデバイスに変更を加えることを許可しますか」と出たら「はい」をクリック

下記の画面が立ち上がるので「次へ」で進めていきます
・使用許諾条項は受け入れますを選択して「次へ」

インストール用の宛先フォルダを変更するので「変更」をクリック

エクスプローラーを開いて、Cドライブ配下に「oracle_db」フォルダを作成する
「oracle_db」フォルダを開いてアドレスバーをクリックし(またはAlt+D)、アドレスをコピーする

コピーしたアドレスを貼り付けて「OK」

任意のパスワードを入力します。パスワードは忘れないように管理してください。
研修中ローカルで使用するだけなので、迷ったら「root1234」などで良いです。
(※Web上にデプロイする場合にはもちろん予測されにくいパスワード適切に設定します)

「インストール」をクリック

☆インストールは数分~数十分程度の時間がかかります。
その間は、次のDB(データベース)の単元を読み進めたり、このページの「表領域、スキーマ」に関する参考サイトを読んで理解を深めたりしてください。

接続の確認

インストールが完了したら、接続の確認をします。

エクスプローラーのアドレスバー、または「Windows+R」で「ファイル名を指定して実行」を開き、
「cmd」を入力してEnterを押して、コマンドプロンプトを開きます。

下記のコマンドを入力して実行し、

sqlplus / as sysdba

下記画像のように表示されれば問題ありません。

SQL*Plusとは、Oracle Database標準装備の、Oracle Databaseに対してSQLを実行するためのツールです。
上記のようにsqlplusコマンドでログインすることで使用することができます。ここではsysdbaという管理用権限でログインしています。

表領域、スキーマ、テーブル作成

この章では表領域~テーブルの作成を行います。テーブルの作成をするにはスキーマが、スキーマの作成をするには表領域の作成が必要、といった関係になります。
表領域やスキーマはマニュアル上では同じものを使っていくことで問題ありませんので、初回だけの実行になります。

詳しく知りたい方は以下の参考リンクを読んでみましょう。
【図解】『データベースの基礎』RDBMS(リレーショナルデータベース)の構造
Oracle『表領域とスキーマの作成』データベースを使う準備をする
いまさら遅い?Oracle Databaseのコンテナ技術

表領域(テーブルスペース)の作成

Oracle DatabaseではCDBPDBという概念があり、簡単に説明するとPDBが実際にデータベースを作成していく場所です。
そのため、まずは接続をPDBに切り替えていきます。Oracle Database XEではデフォルトのPDB名は「XEPDB1」なので、以下のコマンドを実行します。

先ほどのSQL*Plusの入力状態で実行してください。

alter session set container = XEPDB1;

なお、show con_nameコマンドを実行すると接続先を確認できます。

下記のコマンドを実行して表領域を作成します。
(後半のAUTOEXTEND ON NEXT 500K MAXSIZE 1024Mはデータファイルの自動拡張機能のオプションです。)

CREATE TABLESPACE TESTSPACE 
DATAFILE 'C:\oracle_db\oradata\XE\TEST.dbf' SIZE 100M 
AUTOEXTEND ON NEXT 500K MAXSIZE 1024M;

スキーマの作成(ユーザー)

続いて、作成した表領域に対してスキーマを作成します。
下記のコマンドでは「CREATE USER」と書いてありますが、
ユーザースキーマは1対1の関係であり、Oracle Databaseではユーザーを作成すると同名のスキーマを同時に作成を行ってくれます。そのためユーザー≒スキーマととらえて問題ありません。

コマンドを実行しましょう。
ここでは「sample」がユーザー名、「sample123」がパスワードと指定しています。

CREATE USER sample
IDENTIFIED BY sample123
DEFAULT TABLESPACE TESTSPACE
TEMPORARY TABLESPACE TEMP;


ユーザーに権限を与えるコマンドを実行します。
今後の作業を行っていくにあたり必要な権限です。

grant connect to sample; 
grant resource to sample; 
grant dba to sample;

上記の通りユーザー(スキーマ)作成まで完了すると、以降作成したユーザーでログインができるようになります。

一度exitでSQL*Plusを終了させ、下記のコマンドを実行します。

sqlplus sample/sample123@//localhost:1521/XEPDB1

※sample/sample123の部分はスキーマ作成で設定した ユーザー名/パスワード

今後の研修では今回作成したスキーマを使用していきますので、SQL*Plusにアクセスする際はこのコマンドを使用するようにしましょう。

テーブルの作成

今後、テーブル作成は頻繁に行うこととなりますが、サンプルデータの登録を試します。

以下のSQL文を実行していきましょう。
SQL文の詳細な内容は次の単元以降で解説しますが、ここではidとvalというカラムを持つテーブルを作成しています。

CREATE TABLE samples (
id INT NOT NULL, 
val VARCHAR(100) NOT NULL, 
PRIMARY KEY (id) 
);

データを登録するSQL文と、変更を確定するSQL文です。

INSERT INTO samples (id, val) VALUES (1, '登録テスト'); 
INSERT INTO samples (id, val) VALUES (2, 'サンプルデータ2');
COMMIT;

テーブルの内容を取得する(確認できる)SQL文です。

SELECT * FROM samples;


出力結果です。

上記のように表示されれば、サンプルデータの登録まで問題なく実行できています!

SQL Developerのインストール

SQL Developerのダウンロード

これまでやってきた通り、Oracle Databaseの標準機能はCUI(コマンド操作)のみで、GUI(マウスなど視覚的な操作)はありません。
GUIで視覚的に確認できた方が、作業性・初心者のやりやすさは高いので、別途GUIツールを導入します。
GUI操作のできるツールは様々にありますが、ここではOracle社のSQL Developerを導入していきます。

Oracle SQL Developer Downloads | Oracle 日本
上記のリンクからWindows 32-bit/64-bitをダウンロードしていきます。

ダウンロードにはOracleアカウントの作成が求められますので、事前に作成しておいてください。


アカウントを作成後、ダウンロードリンクをクリック

☆1段上にあるリンクはJDKを含むものであり、マニュアルでは既にEclipseの導入時にJDKをインストールしてありますので、今回はJDKを含まないタイプをインストールしています。

SQL Developerは、ダウンロードしたzipファイルを展開するだけで使用可能になります。
展開後の「sqldeveloper」フォルダは、配置場所が分かりやすいようにCドライブ直下に配置しましょう。

「sqldeveloper」フォルダ内のsqldeveloper.exeを実行します。

「Please specify the Java JDK home・・・」といったポップアップが出ますので、JDKのフォルダを指定します。
「Browse」ボタンから直接探すか、エクスプローラーからコピーしてきて入力欄に入れます。マニュアルの環境構築と同様に導入していれば、下記のようなパスになります。

インポート・リファレンスの確認 が出た場合は「いいえ」を選択します。

スキーマへの接続(OracleDBとの接続)

下記のようにSQL Developerの「ようこそページ」が表示されたら、
「接続を手動で作成します」をクリック(または、左上の緑のプラスマークでもOK)

下記のように必要情報を入力し、「接続」をクリック

  • Name … 接続の名前。任意の名前を指定(スキーマ名と同一にすると分かりやすい)
  • ユーザー名、パスワード … 「スキーマの作成」で指定したものを記載
  • パスワードの保存 … チェックを入れる。都度の入力を省略できます
  • ホスト名 … 変更不要。同一端末にインストールしているため(=localhost)
  • ポート … 変更不要。Oracle Databaseのデフォルトのポート番号は1521のため
  • サービス名 … ラジオボタンにチェックを入れ、「XEPDB1」を入力

接続後、左側の接続タブから下記のように+を開いていくと(矢印キーでも開閉可能)、
先ほどコマンドで作成したsamplesテーブルが確認できます。

SQL Developerの基本的な使い方

・テーブル内のタブ
列タブ…カラムの内容が確認できます。


データタブ…登録データが確認できます。

・SQLワークシート

SQLワークシートにSQL文を書き、実行したいSQL文にカーソルを合わせて
・実行ボタンをクリック または
・右クリックから「文の実行」を選択
すると、SQL DeveloperからSQL文を実行できます。

SELECT文(テーブルの内容を取得する)の場合、下記のように画面下部の「問い合わせ結果」タブに実行結果が出力されます。

*SQLワークシートタブが開かれていない場合
接続ナビゲーターにてスキーマ名を 右クリック>「SQLワークシートを開く」をクリック で開けます。

Oracle Databaseの特徴(トランザクション)

Oracle Databaseの特徴の1つとして、「常にトランザクション状態」ということがあります。

トランザクションを簡単に説明すると、複数の SQL 文によるデータ更新を保留状態にし、COMMIT(確定)でまとめてデータベースに反映させることです。

例えば、口座Aから口座Bに1万円を移動する場合
(1) 口座A:1万円 残高が減る
(2) 口座B:1万円 残高が増える
これらの処理の片方だけが実行されてもう片方が失敗したら、困ったことになってしまいます。
こういった不整合を防ぐために「まとめて処理を反映」させたいのです。

Oracle Databaseのデフォルトでは、コミット(処理の反映)が実行されるのは下記の場合です。
COMMIT; コマンドを実行する
Exit; コマンドで終了(暗黙のCOMMIT;が実行される)
・データ定義言語(CREATE TABLE文など)を実行する
コミットされると、また新しくトランザクションが開始されます。

ここで今後の学習として押さえて置きたいポイントは、
データ操作言語(データの新規編集削除など)のSQL文の後は COMMIT; を実行 (SQL Developerではチェックマークのコミットボタンでも可能)
を癖付けることです。

なお、反対に失敗したときにはROLLBACK; を実行することでそれまでの処理をなかったことにできます。

他のRDBMS の種類によっては、BEGIN あるいは START TRANSACTION といったコマンドを実行して初めてトランザクションを開始することができます。トランザクションはRDBMSごとに仕様が異なるということを覚えておきましょう。

タイトルとURLをコピーしました