Oracle基本命令


OEM(Oracle Enterprise Manager)は、Javaのフレームワークシステムに基づいて、複数のコンポーネントを統合して、ユーザーに強力なグラフィカルユーザーインターフェースを提供しています。
 
データベースDatabase>テーブル空間Tablespace;データファイルDatafiles。
 
テーブル空間はoracleデータベースの中で最大の論理単位と格納空間単位であり、データベースシステムはテーブル空間を通じてデータベースオブジェクトに空間を割り当てる。テーブル空間は物理的にディスクデータファイルとして具現化されており、各テーブル空間は一つ以上のデータファイルから構成されており、一つのデータファイルは一つのテーブル空間とのみ関連しています。これは論理と物理の統一です。
1.テーブルスペース
1.1テーブル空間の作成
     create tablespace test
     datafile'E:\oracle\product\10.2.0\oradaa\test\test.dbf'
     size 200 M
     autexted on next 10 M
     maxsize unlimited
 
1.2データファイルのサイズを変更する
     alter database datafile'E:\oracle\product\10.2.0\oradaa\test\test.dbf'
     レスレス500 M
 
1.3一時テーブル空間を作成し、一時データの保存に用いる
     create temporary tablespace test utemp
     tempfile'E:\oracle\product\10.2.0\oradaa\test\test_temp 01.dbf
     size 32 M
     autexted on next 32 M
     maxsize 2048 M
     exted management local;
1.4テーブル空間をリードオンリーモードまたは読み書きモードに設定する
     altertable space test read only;
     altertable space test read write;
1.5テーブル空間を削除する
     drop table space test including contens and datafiles;
1.6データファイルをテーブル空間に追加する
     alter tablespace test add datafile'E:\oracle\product\10.2.0\oradaa\test\test 02.dbf'size 1 M;
1.7テーブル空間とデータファイルの情報を表示する
     select*from v$datafile;
     select*from v$tablespace;
2.ユーザーを作成する
2.1新規ユーザの作成
     create user pao
     identifed by pao
     defaultテーブルspace test
     temporaryテーブルspace test_temp
2.2ユーザパスワードの変更
     alter user pao identifed by newpassword;
2.3ユーザの削除
     drop user pao cascade;(ユーザとユーザが所有するオブジェクトを削除)
2.4ユーザーにロックを解除する
      まずDBAで登録します。
     alter user pao account unlock;
3. パーミッション
権限とは、特定のコマンドを実行したり、データベースオブジェクトにアクセスする権利をいう。
権限には、2つのタイプのシステム権限があります。システムは、ユーザがデータベースを使用する権限(システム権限はユーザにとって)オブジェクト権限を規定しています。データベースオブジェクト(テーブル、ビュー、シーケンスなど)に対して、ユーザが特定の操作を実行することを許可します。
キャラクターは関連する権限のグループです。権限を役割に与え、役割をユーザーに与えて権限管理を簡略化します。Oracleは3つの標準的なキャラクターを提供します。
CONNET、Connect権限を持つユーザーはOracleにログインするだけで、エンティティを作成することができません。データベース構造を作成することができません。
RESOURCEは、RESOURCEのキャラクターによって、ユーザーが表、プロセス、トリガー、シーケンスなどの特権を作ることができます。
DBA、DBAキャラは全てのシステム権限を持っています。制限のない空間制限と他のユーザーに様々な権限を与える能力を含みます。
 
3.1権限付与
     grant reource to test;
3.2権限の取消し
     revoke resource from test;
3.3セッションの作成権限
     grant create session to test;
     revoke create session from test;3.4テーブルを作成する権限     grant create table to test;
     revoke create table from test;3.5テーブル空間の使用権限     grant unlimitedテーブルspace to test;
     revoke unlimited tablespace from test;3.6すべてのユーザにセッション作成権限を付与し、すべてのユーザをpublicに代表する。     grant create session to public;
4.インポートエクスポート
4.1データベースtestを完全に導出し、ユーザー名system、パスワードsystemをd:\test.dmp中•exp system/system@testfile=d:\test.dmp full=yに導出する。
4.2 d:\test.dmpのデータをoradbデータベースに導入する•imp system/system@oradbfile=d:\test.dmp full=y
4.3データベースtest中のsystemユーザとsysユーザのテーブルをエクスポート•exp system/system@testfile=d:\sysser.dmp owner=(system.syss)
4.4 d:\user.dmpのデータをoradbデータベースに導入する•imp system/manager@oradbfile=d:\sysser.dmp from=(system,syss)ignore=y
4.5 testデータベース中のユーザscott中のテーブルemp中のフィールドenameを「J」ヘッドのデータでエクスポート•exp scott/scott@testfile=d:\tbfiled.dmp tables=empquery=\"where enamelike'J%\"
4.6.d:\tbfiled.dmpのデータをoradbデータベースのyqqユーザの中•imp yqq/yqq@oradbfile=d:\tbfiled.dmp full=y•imp system/system@oradbfile=d:\tbfiled.dmp from user=scotttouser=yqignore=y
5.テーブルの作成、変更、削除
5.1新規作成表
CREATE TABLE emp (
    empno NUMBER(5) PRIMARY KEY USING INDEX,
    ename VARCHAR2(10) NOT NULL,
    job VARCHAR2(9),
    mgr NUMBER(4,0),
    hiredate DATE DEFAULT SYSDATE,
    sal NUMBER(7,2) CHECK(sal>100),
    comm NUMBER(7,2) DEFAULT 0.0,
    deptno NUMBER(2,0) NOT NULL
    );
create table wh_user(
  id number(10) primary key,
  username varchar2(10) unique,
  password varchar2(10),
  gender varchar2(2) check (gender in (' ',' ')),
  address varchar2(20),
  phone varchar2(20) not null
  );
 
5.2列を増やす
ALTER TABLE[USER.]テーブル_name ADD column_definition;
ALTER TABLE orders ADD order_date DATE;
5.3制約を増やす
ALTER TABLE[USER.]テーブル_name ADD talbe_コンストラクション
 
5.4プライマリキー制約を追加
ALTER TABLE student ADD PRIMARY KEY(stuno);
ALTER TABLE student ADD CONSTRAINT stu_prim PRIMARY KEY(stuno);
5.5非空制約を追加する
alter table Customer modify status not null;  
 
5.6一意制約を追加
alter table Customer add constraint un_email unique(Email_address);
5.7列の変更
alter table table2 rename column result to result2;
Alter table student modify age number(10);
5.8制約の変更
ALTER TABLEテーブルname ADD[CONSTRAINT制約名]制約条件(column)
 
5.9外部キー制約を増加する
alter table Orders 
	add constraint Orders_Customer_fk  foreign key(Order_Customer_id) references Customer(Customer_id); 
5.10外キー制約の削除
alter table Orders drop constraint "ORDERS_CUSTOMER_FK"; 
5.11列を削除する
ALTER TABLE[USER.]テーブル_name DROP COLUMN column_names[CASCADE constrants]
 
5.12制約の削除
 ALTER TABLE[user.]テーブル_name DROPコンストラクションイベントuname
ALTER TABLE student DROP primary key(sno);
ALTER TABLE student DROP constraint stu_prim;
5.13テーブルの削除
DROP TABLE[user.]テーブル_name[CASCADE CONSTRAINTS]
drop table Customer;  
5.14表の名前変更
alter table Customer rename to Customer_Change;   
5.15デフォルトの制約を変更する
alter table Customer modify Status default('1');
5.16検査の制約を追加する
alter table Customer add constraint ck_status check(Status in ('1','0'));
5.17検査禁止制約
alter table Customer disable constraint ck_status;
5.18検査制約をアクティブにする
alter table Customer enable constraint ck_status; 
5.19チェック制約の削除
alter table Customer drop constraint ck_status;
5.20データの挿入
INSERT INTO dept VALUES(50, 'PRODUCTION', 'San Francisco');
INSERT INTO emp(empno, ename, job, sal, comm, deptno) VALUES (7890, 'LINKS','CLERK',1200,NULL,40);
INSERT INTO emp_house_fund(name,account_no,tran_date,tran_val) VALUES('Alice', '1256', to_date('02/04/2010','dd/mm/yyyy'),99.9);
 
INSERT INTO bonus(ename,job)
SELECT ename, job FROM emp;
 5.21データの更新
UPDATE accounts SET balance=balance+50
WHERE acc_no='5003';
 
UPDATE emp
SET deptno=(SELECT deptno FROM dept WHERE loc='boston')
WHERE deptno IN (SELECT deptno FROM dept WHERE
loc='DALLAS');
 5.22データの削除
DELETE FROM emp
WHERE job = 'salesman' AND comm < 50;
    すべてのレコードを削除
DELETE FROM emp;
 6.クエリ文
6.1照会表のすべての情報
           empテーブルの従業員情報を調べてください。
           select*from emp;
 
6.2クエリー指定列
           emp表の全従業員の部門番号と給料を調べてください。
           select deptno,sal from emp;
 
6.3重複行を取り除く
           クエリーempテーブルの部門番号:
           select distinct deptのfrom emp;
 
6.4