はじめに
Windows7にOracle Database 11g Express Edtion(XE)をインストールして、テーブル作成、ユーザ登録、データの取得までをやってみました。
翔泳社
売り上げランキング: 210964
テーブルの作成
はじめに、サンプルで使用するテーブルを作成します。
1.sysユーザでログインします。
connect / as sysdba
2.create table文を実行して、テーブルを作成します。ここでは3つの情報(主キーであるid、名前、ふりがな)をもつテーブルを作ってみます。
create table table01 ( id number, name varchar(50), furigana varchar(50), primary key( id ) );
3.試しに以下のSQLを実行して、データ件数を取得してみます。まだデータを挿入していないので、件数0が取得できます。
select count(id) from table01; COUNT(ID) ---------- 0
作成したテーブルを操作するためのユーザを作成する
sysユーザでもtable01テーブルを操作できるのですが、通常はテーブルを操作するための専用ユーザを作成し、必要な権限のみを与えます。
1.create user文を実行して、あたらしくユーザを作成します。
-- CREATE USER ユーザ名 IDENTIFIED BY パスワード; CREATE USER hoge IDENTIFIED BY hoge_pwd;
2.作成したhogeユーザは、この状態だとログインすらできないので、ログインする権限を与えます。
GRANT CONNECT TO hoge;
3.hogeユーザにさきほど作成したtable01テーブルへの操作権限を与えます。これでhogeユーザはtable01テーブルに対してデータの検索、挿入、更新、削除ができるようになります。
GRANT select,insert,update,delete ON table01 TO hoge;
hogeユーザでtable01テーブルを操作してみる
1.hogeユーザでログインしなおします。
connect hoge/hoge_pwd
2.table01テーブルの件数を取得してみる
select count(id) from table01; >select count(id) from table01 > * >行1でエラーが発生しました。: >ORA-00942: 表またはビューが存在しません。
table01というテーブルが見つからないため、ORA-00942のエラーになりました。table01はsysユーザで作成したテーブルなので、以下のようにします。
select count(id) from sys.table01; COUNT(ID) ---------- 0
テーブルに別名を与えるシノニム
テーブル名を指定するのに、テーブル作成者を意識しないと使えないのは非常に不便です。そのため、シノニムという機能を使います。シノニムとは、オブジェクトに別の名前を付けて、その名前で使えるようにする機能のことです。
connect / as sysdba create public synonym table01 for sys.table01; >シノニムが作成されました。
この状態で、再度さきほどのSQLを流すとシノニムを介して、目的のテーブルを操作することができます。
SQL> connect hoge/hoge_pwd 接続されました。 SQL> select count(id) from table01; COUNT(ID) ---------- 0