SQL Plusを使用してDBを操作するには、Oracle Net8 assistant(プログラム名)で適切な設定をする必要があります。 (Oracle 8i
8.1.7.0.1)
Oracle Net8 assistantでの設定手順
サービス名 | 編集 | 作成....
起動
sqlplusSQL Plusの終了
SQL> exit外部エディタを使用してSQLファイルの作成
SQL> ed FileName
通常の保存先:c:\orant\bin\FileName.sql
ファイルに保存したSQL文を実行
SQL> @FileName作成した表の確認
SQL> describe TableName作成した表を削除
SQL> drop table TableName入力したSQL文をファイルに保存
SQL> save FileName実行結果(log)をファイルに保存開始/終了
SQL> spool FileName
SQL> spool off直前に入力/実行したSQL文を実行
SQL> /現在ログイン中のユーザーの表示
SQL> show user読み込まれているSQL文の表示
SQL> list接続/切断
SQL> connect UserName/Password@InstanceName
SQL> disconnect一行表示/消去
SQL> l LineNumber
SQL> del LineNumber文字列の置き換え
SQL> c/wrong_word/right_word編集行の移動
行番号を入力しリターン
Server Manager の操作
起動/終了
SVRMGR30
EXITデータベースの起動/停止
SVRMGR> connect internal/oracle
SVRMGR> startup
SVRMGR> shutdown
LSNRCTL の操作
起動/終了
LSNRCTL80
EXIT状況/起動/停止
LSNRCTL> status
LSNRCTL> start
LSNRCTL> stop
SQL文
データディクショナリの表示
select * from dict
where table_name like 'USER%'; (そのユーザに関する情報)
where table_name like 'ALL%'; (そのユーザがアクセス可能なすべての情報)
where table_name like 'DBA%'; (データベース全体に関する情報)ユーザの作成/変更/削除/確認
create user UserName
identified by Password
default tablespace AREA1
temporary tablespace TEMP
quota unlimited on AREA1
quota 2M on AREA2;
alter user UserName
identified by Password1
default tablespace AREA2
temporary tablespace TEMP2
quota unlimited on AREA2;
drop user UserName cascade;
select username,default_tablespace,temporary_tablespace from user_users;
select * from user_ts_quotas;
select USERNAME,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACE from dba_users;
システム権限の付与/取り消し/確認
grant create session,create user
to UserName;
revoke create user
from UserName;
select * from session_privs;オブジェクト権限の付与/取り消し/確認
grant select,alter,delete,index,insert,references,update,execute
on ObjectName
to UserName;
all, grant update(name,id)...
revoke select
on ObjectName
from UserName;
select * from user_tab_privs_made;
select * from user_tab_privs_recd;ロールの付与/取り消し/確認
grant connect,resource,dba to UserName;
revoke dba from UserName;
select * from session_roles;表の作成
create table TableName
( a number(4) constraint a_pk
primary key
, b varchar2(30)
, c number(7.2) constraint c_check
check( c >= 0 and c <200 )
, d number(3) constraint d_fk
references TabeleName(ID)
, e number(3) constraint E_NN not null
, f number(3) constraint F_U unique
, g number(4) default 230
);
create table TableName
( a number(4)
, b varchar2(30)
, c number(7.2)
, d number(3)
, e number(3) constraint E_NN not null
, f number(3)
, g number(4) default 230
, constraint a_pk primary key (a)
, constraint c_check check( c >= 0 and c <200 )
, constraint d_fk (d) references TabeleName(ID)
, constraint F_U unique(f)
);制約の確認
select owner,constraint_name,constraint_type,table_name,
search_condition,r_constraint_name,status
from user_constraints;
select owner,constraint_name,table_name,column_name
from user_cons_columns;
select data_default
from user_tab_columns;表の削除
drop table TableName cascade constraints;
truncate table TableName;
delete from TableName;表名の変更
rename TableName to TableName2;列の追加/変更
alter table TableName
add ( ii number(3)
constraint ii_nn not null
constraint ii_u unique
);
alter table TableName
modify (name constraint name_nn not null);制約の追加/削除
alter table TableName add
constraint NUM_check
check( NUM >0 );
alter table TableName drop constraint NUM_check;既存の表から新しい表を作成
create table TableName as
select a,b from TableName2
where c=10;
create table CopyTable as
select * from OriginalTable
where 1=2;ビューの作成/削除/確認
create or replace view ViewName as
select a,b from TableName
where c=10;
drop view ViewName;
set long 800
set arraysize 1
select view_name,text from user_views;索引の作成/削除/確認
create index IndexName
on TableName(row1,row2)
tablespace TableSpaceName;
drop index IndexName;
select index_name,table_name,uniqueness from user_indexes;
select index_name,table_name,column_name from user_ind_columns;シノニムの作成/削除/確認
create public synonym SynonymName
for Skima.Object;
drop public synonym SynonymName;
select * from user_synonyms; (private)
select * from all_synonyms; (public)順序の作成/削除/キャッシュの変更
create sequence SequenceName
start with 5
increment by 2
nomaxvalue
nominvalue
nocycle
nocache;
drop sequence SequenceName;
alter sequence SequenceName cache 3;検索/追加/更新/削除
select distinct a, b from TableName order by a desc(asc)
select sum(SAL) from emp min,max,avg,
select ename,job from emp where job like '%A%'
select ename from emp where sal in (150,200,300)
select ename from emp where mgr in not null
insert into TableName (Col1,Col2) values (12,'aa');
insert into emp2
select * from emp
where job='manager';
insert into emp2(empno,ename,job)
select empno,ename,job from emp;
insert into emp
(empno,ename)
values(41,null)
update TableName set Col1=15, Col2='bbb' where Col0=8;
delete from TableName where Col0=8;
管理用SQL文
データベースファイルの情報を見る
select * from sys.dba_data_files ;
表領域情報の確認
select * from sys.dba_tablespaces ;
select tablespace_name, file_id,
count(*) "PIECES",
max(blocks) "MAXMUM",
min(blocks) "MINIMUN",
avr(blocks) "AVERAGE",
sum(blocks) "TOTAL"
from sys.dba_free_space
group by tablespace_name, file_id ;
ユーザオブジェクトのリスト
select * from user_objects ;
現在どのユーザがどのマシンでアクセスしているか確認
select username, program, terminal, osuser, status
from v$session where user# != 0 ;
REDOログの状態を確認
select * from v$log ;
REDOログファイルの確認
select * from v$logfile ;
REDOログファイルの削除/作成
alter database drop logfile group 1 ;
alter database add logfile group 1 '/ora/data/log1.log' size 50K ;
パフォーマンスチューニング
ライブラリキャッシュのチェック
select sum(pins),sum(reloads),
sum(reloads)/(sum(pins)+sum(reloads))* 100
from v$librarycache ;
ディクショナリキャッシュのチェック(5~10%を越えないように)
select sum(getmisses)/(sum(gets)+sum(getmisses))*100
from v$rowcache;
ソート領域のチューニング(この値が高いとメモリの使用効率が悪い。initxxx.ora の SORTB_AREA_SIZE を調整)
select v2.value/(v1.value+v2.value)*100
from v$sysstat v1, v$sysstat v2
where v1.statistic# = 161
and v2.statistic# = 162;
インデックスの拡張回数の上限に達した時の対処
select count(*) from DWC207T;
select count(*),sum(bytes) from user_extents
where segment_name='PK_DWC207T';
alter table DWC208T drop primary key;
alter table DWC208T add constraint PK_DWC208T
prinmary key ( P_N,REV_NO,COOC,TRN_DATE)
using index pctfree 5 tablespace JEIS_INDEX
storage ( initial 40M next 1M );
最終更新:2008年11月15日 22:20