Oracle Database 12c 実は個人で無償の学習環境が構築できる!データベース作成手順まとめ

サーバ・ミドルウェア
スポンサーリンク

今回はインストールしたOracle Databaseにデータベースを作成し、データベースをSQLで操作します。

Oracle Database 12cのインストールはこちらの記事で解説しています。

Oracle Databaseを起動しデータベースを作成

所要時間は1時間です。といいつつ30分以上はデータベースが作成されるのを待つ時間になります。。。データベース作成の設定自体は20分前後で完了し、設定後は待機という流れになります。

データベースを作成するためにOracle Databaseの中のDatabase Configuration Assistant(称DBCA)というものを起動します。Oracle Databaseを別の場所にインストールした場合は適宜、パスを読み替えて実行してください。

$ /u01/app/oracle/product/12.2.0/dbhome_1/bin/dbca

少し時間をおいて「Database Configuration Assistant – application – step 1/14」と書かれた画面が立ち上がります。

Step 1は一番上の選択肢「Create a database」を選び「次へ」をクリックします。

Step2は一番下「Advanced configuration」を選び次へ。

Step3、データベース・デプロイメント・タイプの選択ではデータベース・テンプレート(画面下部3つの選択肢)で真ん中のの「General Purpose or Transaction Processing」を選び次へ進みます。

Step4、データベースIDの詳細指定は「Number of PDBs」だけ「2」に変更します。他はデフォルトのまま利用します。この画面一番最初の項目で設定されてるのGlobal database nameがデータベースの名称になります。(デフォルトは「orcl」)

Step5、データベースの作成される場所の設定です。デフォルトのままで利用します。

Step6、高速リカバリ・オプションの選択です。今回はいずれもデフォルトで無効のまま利用しましょう。

Step7、ネットワーク構成詳細の指定です。「Create a new listener」にチェックを付けてリスナー名は「LISTENER」、リスナー・ポートは「1521」と設定します。リスナーとはOracle Databaseの窓口のようなものです。リスナーがいなければデータベースを見ることができなくなってしまうほど重要な設定です。慎重に。

Step8、Oracle Data Vaultはアクセス制限をかけセキュリティを高める設定です。今回はあまり意識する必要はありません。デフォルトの無効のまま進みます。

Step9、構成オプションも今回はデフォルトで構いません。

Step10、管理オプションは「Enterprise Manager (EM) Database Express の構成」にチェック付けて次へ進みます。

Step11、データベース・ユーザー資格証明の指定は「全てのアカウントに同じ管理パスワードを使用」にチェックを付けて、任意のパスワードを入力します。データベースへの接続をはじめ、様々な場面で使います。

Step12、データベース作成オプションは「データベースの作成」にチェックが入っていることを確認し次へ進みます。

Step13、サマリー画面で構成を表示しています。Finishをクリックするとデータベースの作成が開始されます。

ここまで終わったら、しばらくの間待機です。途中で動いているか心配になるくらいゆっくりですが、確実に作成は進んでいるので気長にお待ちください。

Oracle Databaseのリスナーとインスタンス起動

ここで一度サーバを再起動します。コマンドは下記の通りです。再起動後はGUIは使用せず、CUIでコマンドを使い進めていきます。

$ reboot

再起動後はインストールも行ったOracleユーザでログインしましょう。早速データベースに接続、と行きたいところですが接続する前に2つ「リスナーの起動」と「インスタンスの起動」が必要になります。

リスナーは先程のデータベース作成ステップでも触れましたが、データベースを見るための窓口になる機能です。

リスナーに対してインスタンスとは、まさに「データベース本体」とも言うべき機能です。厳密にはデータベースとは別の「データベースを管理する機能」ですが、その働きは「Oracle Database の心臓」とも呼べる重要な機能です。

まずはリスナーを起動します。コマンドは下記のとおりです。

$ lsnrctl start LISTENER

リスナー起動後は接続できるようになるまで時間がかかることがあります。1分程度空けてから次へ進みましょう。

続いてインスタンスの起動です。コマンドは下記の通り。SQL*Plusの起動、アイドルインスタンスへの接続、インスタンスの起動という3段階です。

$ sqlplus /nolog

SQL> CONN / AS SYSDBA
SQL> STARTUP

コマンドの入力が完了したら一度SQL*Plusをexitもしくはquitで終了します。これでリスナーとインスタンスの起動が終わり準備完了です。

Oracle DatabaseのデータベースをSQLで操作する

今回はテーブルの作成、データの追加/参照/変更/削除、といった基本操作を実際に行います。

まずはSQL*Plusを使ってデータベースへアクセスします。コマンドは下記のとおりです。

$ sqlplus system/oracle@localhost:1521/orcl

アクセスが出来たら早速テーブルの作成に取り掛かります。

テーブルとはデータを取り溜めていく箱を指します。それはデータベースでは?と思うかもしれませんが、データベースはテーブルの集合を指します。

データの集合 = テーブル
テーブルの集合 = データベース

ざっくりですが上記のとおりです。似て非なるものです。注意しましょう。

今回はテーブルとして「商品データ」を例に挙げて進めていきます。コンビニの商品をいくつか思い浮かべてみましょう。例えば「おにぎり」はこんなデータで構成されています。

  • 商品名「おにぎり」
  • 価格「100円」
  • 在庫「5個」

こんな感じでしょうか?テーブルの作成ではこういった商品の構成情報を取り決めします。今回の例で行くと、商品名、価格、在庫、が商品の構成情報です。この構成情報のことを「カラム」と呼びます。

実際に使う際には「商品コード」というものも合わせて登録されます。今回は4つのカラムを取り扱うテーブルを作成します。テーブルの作成コマンドは下記の通りです。

SQL> CREATE TABLE SYOUHIN (
     SYOUHINCODE varchar(3),
     SYOUHINMEI varchar(30),
     KAKAKU int,
     ZAIKO int
);

CREATE TABLE の後の SYOUHIN がテーブルの名称です。かっこ内はカラムの名前と型を示します。

例えばSYOUHINCODE というカラムの名前の後に 「varchar(3)」と書いてあります。「varchar」とは文字を保存しますという宣言で、「(3)」は3文字まで保存しますという宣言になります。

KAKAKUやZAIKOは文字ではなく数字が入る想定なので、数字を保存する型である「int」を使用しています。

作成が完了したら次へ進みます。エラーが発生した場合はコマンドに誤りがないか見直し、再度実行しましょう。

SQL> INSERT INTO SYOUHIN VALUES ('A01','ONIGIRI',100,5);

次は今作成したテーブルに情報を登録します。先程例に挙げたおにぎりの情報をテーブルに登録しましょう。コマンドは下記の通りです。

テーブルへの登録にはINSERT INTOというコマンドを使います。テーブル名を指定し、VALUES後のかっこ内で登録する情報を順に記述します。


今登録した情報を参照しましょう。下記のコマンドです。

SQL> SELECT * FROM SYOUHIN;

参照にはSELECTを使います。*は全ての項目を表示させる時に使います。項目名を入力することで、表示項目を絞ることも可能です。


続いてデータを修正します。ONIGIRIの在庫を5個から10個に増やしてみましょう。下記の通りです。

SQL> UPDATE SYOUHIN SET ZAIKO = 10 WHERE SYOUHINCODE = 'A01';

修正(更新)はUPDATEを使用します。SETからはどのカラムをどんな情報に更新するか、を示しています。

また、WHERE 以降の文では対象の絞り込みを行っています。今回は1つしかデータが存在しませんが、例えばおにぎり以外にもパンやお弁当、パスタなども登録されていた場合に、WHEREで絞り込みをしていないと全データの在庫が10に更新されていまいます。


このWHEREはSELECT文にも応用が可能です。今度は下記の文を使って修正された結果を参照してみましょう。

SQL> SELECT * FROM SYOUHIN WHERE SYOUHINMEI = 'ONIGIRI';

このようにWHEREを使い、ONIGIRIだけの結果を見ることもできます。(今回は1つしかデータがないため意味はありません。。。気になる方はINSERTで別の情報を登録してみると、動きがわかりやすいと思います。)

では最後にデータの削除を行います。下記のコマンドです。

SQL> DELETE SYOUHIN WHERE KAKAKU = 100;

DELETEというコマンドでデータを削除できます。今回はWHEREでKAKAKUが100のものを指定しました。SELECTを実行してみるとKAKAKUが100だったonigiriは削除され、データが表示されなくなります。

 

Oracle Database 12cの構築と超基礎的なSQLについて解説致しました。以上で本記事は終了となります。

読む前は超初心者エンジニアだったあなたもOracle Databaseというものを感じることができたと思います。

構築した環境はもちろんその後も利用可能なので、ぜひ個人での学習に活用してください。

 

コメント

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