アットウィキロゴ

sql*plus

「sql*plus」の編集履歴(バックアップ)一覧はこちら

sql*plus - (2009/12/10 (木) 17:25:32) の1つ前との変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[バッファ関連]] [[表の結合]] [[表の作成/削除]] [[シノニムの作成]] [[権限]] [[ビュー関連]] [[トランザクション関連]] [[関数]] [[お役立ち情報]] *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のインストール方法は[[ここ>http://billyboy.blog81.fc2.com/blog-entry-164.html]]を参考にしてください。 ***OracleInstantClientからのログイン手順 1.[Windows+R]でコマンドラインを起動しcmdとタイプします。 2.以下コマンドを入力しログインします。 書式 | sqlplus system/passwd@oracleサーバーのURL:ポート番号/Oracle_SID 例) sqlplus system/[email protected]: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;
[[バッファ関連]] [[表の結合]] [[表の作成/削除]] [[シノニムの作成]] [[権限]] [[ビュー関連]] [[トランザクション関連]] [[関数]] [[索引]] [[お役立ち情報]] *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のインストール方法は[[ここ>http://billyboy.blog81.fc2.com/blog-entry-164.html]]を参考にしてください。 ***OracleInstantClientからのログイン手順 1.[Windows+R]でコマンドラインを起動しcmdとタイプします。 2.以下コマンドを入力しログインします。 書式 | sqlplus system/passwd@oracleサーバーのURL:ポート番号/Oracle_SID 例) sqlplus system/[email protected]: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;

表示オプション

横に並べて表示:
変化行の前後のみ表示:
ツールボックス

下から選んでください:

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