sql*plus


SQL分の基礎


まずログインします。
solaris(SPARC)にインストールされたoracle10g(ver.10.2.0.1)に対して
クライアント側からOracleInstantClientでログインします。
http://www24.atwiki.jp/adsl243/editx/13.html
今回はoracle10g(R10.2)がトライアル版の為OracleInstantClientを使用しています。
ダウンロードはOTNのtopページから
「ダウンロード⇒ページ上のDatabaseの中にあるInstant Client」で
該当のOSを選んでダウンロードして下さい。

OracleInstantClientのインストール方法はここを参考にしてください。

OracleInstantClientからのログイン手順

1.[Windows+R]でコマンドラインを起動しcmdとタイプします。

2.以下コマンドを入力しログインします。
書式 | sqlplus system/passwd@oracleサーバーのURL:ポート番号/Oracle_SID

例)
sqlplus system/passwd@192.168.150.42:1521/orcl

正常にログインされればプロンプトの表示が

SQL>

になります。
必ずsystemユーザーでログインしてください。
一般ユーザーはデフォルトだとロックが掛かっている可能性が高いです。

ログインできない場合のエラーに対しての対処

①リスナーが起動しているか下記コマンドで確認する。

lsnrctl status

ステータスが停止だった場合は下記コマンドでリスナーを起動してください。

lsnrctl start

②$ORACLE_HOME/network/admin/tnsnames.oraの記述が間違っていないか確認する

select文

表から列を選択するのに使います。
if.EMP表を全て出力したい場合。

例)
select * from emp;
書式 | select <列名> from <表名>

  • *は全ての列を指定しています。
  • 式の終わりには「;」セミコロンが必要です。

ユーザーの作成

書式 | create user <ユーザー名> idetified by <password>
例)create user hanako identified by neko

  • デフォルト表領域と一時表領域を追加
書式 | create user <ユーザー名> idetified by <password>
書式 | default tablespace <デフォルト表領域> temporary tablespace <一時表領域>;

例)
create user yamada identified by taro
default tablespace users temporary tablespace temp;

  • 割り当て制限の設定
書式 | quota <割り当てサイズ> on <表領域>

例)
quota 10m on users;

※割り当てサイズを無制限にする場合はunlimitedを指定する。
例)
quota unlimited on users;



  • ユーザー設定の変更
書式 | ater user <作成するユーザー名> identyfied by <新しいパスワード> default_tablespace <新しいデフォルト表領域> temporary_tablespace <一時表領域> quota <割当て制限のサイズ> on <割り当てを与える表領域>

例) 山田のパスワードをtigerに変更
alter user yamada identified by tiger

例) 山田のデフォルト表領域を20mに変更
alter user yamada quota 20m on users

表の作成

書式 | create table <表名>(<列の名前> <列のデータ型> <列の制約>,<列の名前> <列のデータ型> <列の制約 constraint <表の制約>);

例)
create table department(
deptno NUMBER(2) NOT NULL, dname VARCHAR2(14), loc VARCHAR2(13),
constraint dept_primary_key primary key (deptno)
);

データの入力

insert into department(<入力する列名>) values(入力するデータ);

例)
insert into department(deptno, dname, loc) values(10, '開発', '赤坂');

※すべての列に値を入れる場合。
insert into <表名> values(入力するデータ);

例)
insedrt into department values(70, '開発', '池袋');

データの修正

update <変更する表> set <変更する列> = <変更する値> where <変更する行の条件>
※whereを省略すると表の全体を表示する。

例)
update department set loc = '上野' where dname = '開発'
※開発部の場所が上野に変更になった。

すべての列を削除
truncate table <削除する表名>

truncate table department

deleteとの主な違いは列を切り捨てた後に自動でコミットされる。
よって文字通り元に戻せない。

  • 対象の行にロックをかける
書式 | select * from <検索する表名> where <対象の列名> = <列の値> for update;

例)
select * from department where deptno = 20 for update

ロックをかけられなかった場合エラーを返す。

書式 | select * from <検索する表名> where <対象の列名> = <列の値> for update nowait;
例)
select * from department where deptno = 30 for update nowait

※エラーの出力例
行1でエラーが発生しました。:
ORA-00054: リソース・ビジー、NOWAITが指定されていました。

ユーザー削除(DROP USER権限が必要)

  • systemユーザーでログインする。
  • 他のユーザーが削除するユーザーでログインしている場合削除できない。
drop user <ユーザー名> cascade

例)
drop user yamada cascade

誰がデータベースにアクセスしているか確認


select sid, serial#, username, machine, program from v$session;

データベースの停止/開始

shutdown immediate
※強制停止(DBに接続しているユーザーがいても有無を言わさず停止)

shutdown normal
※通常停止(DBに接続しているユーザが接続を切るまで待機し切ったら停止)

  • データベースの起動
startup

データディクショナリのリストを取得

select table_name from dict where table_name like '%TABLE%'

  • データディクショナリuser_tablesの簡単な説明
select * from dict where table_name='USER_TABLES'

ユーザー山田の表領域確認


select username, default_tablespace, temporary_tablespace
from dba_users where username = 'YAMADA'

  • 表割り当て領域確認

select username, tablespace_name, max_bytes from dba_ts_quotas where username = 'YAMADA'

ユーザーの権限確認


select * from user_sys_privs;

一度与えたユーザー権限の取り消し

書式 | revoke <システム権限の名前> from <ユーザーの名前>

例) ユーザー山田のCREATE USER権限取り消し
revoke create user from yamada

例)全てのユーザーでscottのemp表を検索されないようにする。
revoke all on scott.emp from public;

ロールの作成


例)
create role ap1_user

  • ロールの削除
書式 | drop role <削除するロールの名前>

例)
drop role ap1_user

表の追加

書式 | alter table <表の名前> add ( <名前> <データ型>);

例)
alter table del_me add ( col timestamp(3) with time zone );

  • 列の削除
書式 | alter table dell_me drop (削除対象名) CASCADE CONSTRAINTS;
例)
alter table dell_me drop (id) CASCADE CONSTRAINTS;

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2009年12月10日 17:25
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。