学習用環境の構築
前回はSQLDeveloperのダウンロード・インストールを行いました。
今回は学習に必要は表やデータ・ユーザーの作成を行っていきたいと思います。
ユーザーの作成
前回は「system」ユーザーでSQLDeveloperへの接続を作成しましたね。
しかし、この「system」ユーザーはデータベースの操作に関するあらゆる権限を持っており、
基本的にはデータベースを管理する時に使用するユーザーになります。
そのため、今回はSQL学習のために新規でユーザーを作成しそのユーザー
を使っていきましょう。
まずはSQLDeveloperを起動し、前回作成した接続からデータベースに接続します。
そうすると「SQLワークシート」と言うものが表示されます。
ここにSQLを入力し実行することで、SQLを動かすことができます。
まずはユーザーを作成します。
下のSQLをコピーしSQLワークシートに張り付けて、実行しましょう。
CREATE USER test IDENTIFIED BY "test"; |
「User TESTは作成されました。」と表示されれば成功です。
すこしSQLの解説も行っておきましょう。
CREATE USER文
英語のままですが「CREATE USER」はユーザーを作成するためのSQL文です。
「CREATE USER」の後に作成するユーザーの名前、「IDENTIFIED BY 」の後にパスワード
を設定し、使用します。
今回はユーザー名・パスワードを「test」で作成しましたが、自由につけてもらっても
構いません。
権限の付与
作成したユーザーに権限を付与します。
作成されたばかりのユーザーは何も権限を持っていません。
そのため、SQLを実行してデータを見ることはおろかデータベースに接続すことも
できないのです。
下のSQLを実行し、権限の付与を行いましょう
今回はSQLが複数存在しているため、「実行」ではなく「スクリプトの実行」でSQLを
実行します。
GRANT CONNECT TO test; GRANT SELECT ANY TABLE TO test; GRANT INSERT ANY TABLE TO test; GRANT UPDATE ANY TABLE TO test; GRANT DELETE ANY TABLE TO test; GRANT CREATE TABLE TO TEST; GRANT ALTER ANY TABLE TO TEST; GRANT DELETE ANY TABLE TO TEST; ALTER USER test QUOTA 100M ON USERS; |
「Grantが正常に実行されました。」と表示されれば成功です。
GRANT文
ユーザーに権限を与えるSQL文です。
GRANT文に関して、詳しくは別途記事にするつもりなので今回はあまり解説を行いませんが
- CONNECT:データベースへの接続権限
- SELECT:データの取得権限
- INSERT:データの追加権限
- UPDATE:データの更新権限
- DELETE:データの削除権限
- CREATE TABLE:表の作成
- ALTER ANY TABLE:表の変更
- DELETE ANY TABLE:表の削除
- ALTER USER QUOTA 100M ON USERS:表領域を使用するための権限
を与えたと思ってください。
※今後学習を行う上で必要な権限が出てきた場合は別途紹介します。
接続の作成
今回作成したユーザーでSQLDeveloperへの接続を作成しましょう。
作成方法は以下の記事を参考にしてください。
今後の学習では基本的にこちらの接続を行い、データベースの操作・権限の付与を行う際は
「system」ユーザーでの接続を行うようにしましょう。
表・データの作成
下のSQLを実行し、学生表と部活表・データの作成を行いましょう。
CREATE TABLE "TEST"."部活" ( "部活ID" VARCHAR2(20 BYTE) NOT NULL ENABLE, "部活名" VARCHAR2(20 BYTE), CONSTRAINT "部活_PK" PRIMARY KEY ("部活ID") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ; CREATE TABLE "TEST"."学生" ( "学生番号" VARCHAR2(20 BYTE) NOT NULL ENABLE, "年" NUMBER, "組" VARCHAR2(20 BYTE), "学籍番号" VARCHAR2(20 BYTE), "氏名" VARCHAR2(20 BYTE), "性別" VARCHAR2(20 BYTE), "生年月日" DATE, "部活ID" VARCHAR2(20 BYTE), CONSTRAINT "SEITO_PK" PRIMARY KEY ("学生番号") USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ENABLE ) SEGMENT CREATION IMMEDIATE PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645 PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT) TABLESPACE "USERS" ;
↑のSQLは表の作成・データの追加を行っています。
SQLDeveloperの表項目を見てみてください。
表が作られていることが分かります。
これで、学習用環境の構築は完了です。
表のデータに関しては、自由に格納してください。
今後SQLを紹介していく中で、必要なデータを都度作って格納すると良いでしょう。
※データの格納方法は別途SQLDeveloperの基本操作解説でご紹介します。
お疲れさまでした!!!