三、SQLPLUS
SQLPlusを、あなたもSQLPのLUのことでSQL文を実行することができ、すべてのOracleデータベースを管理し、SQLPLUSコマンドでの経由でデータベースを管理することができますsqlplusと使用して専門的なデータベース管理タスクを提供するために、Oracleデータベース用のインタラクティブなツールです。
3.1、SQLPlusをセット
データの問題:あなたはSQLPLUSコマンドを知りたい場合は、まず新しい問題を解決しなければなりません。
データについては、以下のことは最初の回復を行わなければならないように、Oracle 12cに起因するCDBおよびPDBの概念が存在するために、いわゆるテストデータは、デフォルトでは、見つかりませんでした。
Dでは:\アプリ\ Oracleuser \製品\ 12.1.0 \ dbhome_1 \ RDBMS ADMINディレクトリはスクリプトを作成scott.sqlを提供しますが、スクリプトは、後に完成を学ぶために、特定の変更するために修正する必要がある、とされている\高度なコンテンツ、名前をc ##スコット、自然やスコットですが、学習を容易にするために、C ## scott.sqlファイルが提供されるようにします。
C ## scott.sqlスクリプトファイルのコード:
-- 使用超级管理员登录
CONN sys/change_on_install AS SYSDBA ;
-- 创建c##scott用户
CREATE USER c##scott IDENTIFIED BY tiger ;
-- 为用户授权
GRANT CONNECT,RESOURCE,UNLIMITED TABLESPACE TO c##scott CONTAINER=ALL ;
-- 设置用户使用的表空间
ALTER USER c##scott DEFAULT TABLESPACE USERS;
ALTER USER c##scott TEMPORARY TABLESPACE TEMP;
-- 使用c##scott用户登录
CONNECT c##scott/tiger
-- 删除数据表
DROP TABLE emp PURGE ;
DROP TABLE dept PURGE ;
DROP TABLE bonus PURGE ;
DROP TABLE salgrade PURGE ;
-- 创建数据表
CREATE TABLE dept (
deptno NUMBER(2) CONSTRAINT PK_DEPT PRIMARY KEY,
dname VARCHAR2(14) ,
loc VARCHAR2(13) ) ;
CREATE TABLE emp (
empno NUMBER(4) CONSTRAINT PK_EMP PRIMARY KEY,
ename VARCHAR2(10),
job VARCHAR2(9),
mgr NUMBER(4),
hiredate DATE,
sal NUMBER(7,2),
comm NUMBER(7,2),
deptno NUMBER(2) CONSTRAINT FK_DEPTNO REFERENCES DEPT );
CREATE TABLE bonus (
enamE VARCHAR2(10) ,
job VARCHAR2(9) ,
sal NUMBER,
comm NUMBER ) ;
CREATE TABLE salgrade (
grade NUMBER,
losal NUMBER,
hisal NUMBER );
-- 插入测试数据 —— dept
INSERT INTO dept VALUES (10,'ACCOUNTING','NEW YORK');
INSERT INTO dept VALUES (20,'RESEARCH','DALLAS');
INSERT INTO dept VALUES (30,'SALES','CHICAGO');
INSERT INTO dept VALUES (40,'OPERATIONS','BOSTON');
-- 插入测试数据 —— emp
INSERT INTO emp VALUES (7369,'SMITH','CLERK',7902,to_date('17-12-1980','dd-mm-yyyy'),800,NULL,20);
INSERT INTO emp VALUES (7499,'ALLEN','SALESMAN',7698,to_date('20-2-1981','dd-mm-yyyy'),1600,300,30);
INSERT INTO emp VALUES (7521,'WARD','SALESMAN',7698,to_date('22-2-1981','dd-mm-yyyy'),1250,500,30);
INSERT INTO emp VALUES (7566,'JONES','MANAGER',7839,to_date('2-4-1981','dd-mm-yyyy'),2975,NULL,20);
INSERT INTO emp VALUES (7654,'MARTIN','SALESMAN',7698,to_date('28-9-1981','dd-mm-yyyy'),1250,1400,30);
INSERT INTO emp VALUES (7698,'BLAKE','MANAGER',7839,to_date('1-5-1981','dd-mm-yyyy'),2850,NULL,30);
INSERT INTO emp VALUES (7782,'CLARK','MANAGER',7839,to_date('9-6-1981','dd-mm-yyyy'),2450,NULL,10);
INSERT INTO emp VALUES (7788,'SCOTT','ANALYST',7566,to_date('19-04-1987','dd-mm-yyyy')-85,3000,NULL,20);
INSERT INTO emp VALUES (7839,'KING','PRESIDENT',NULL,to_date('17-11-1981','dd-mm-yyyy'),5000,NULL,10);
INSERT INTO emp VALUES (7844,'TURNER','SALESMAN',7698,to_date('8-9-1981','dd-mm-yyyy'),1500,0,30);
INSERT INTO emp VALUES (7876,'ADAMS','CLERK',7788,to_date('23-05-1987','dd-mm-yyyy')-51,1100,NULL,20);
INSERT INTO emp VALUES (7900,'JAMES','CLERK',7698,to_date('3-12-1981','dd-mm-yyyy'),950,NULL,30);
INSERT INTO emp VALUES (7902,'FORD','ANALYST',7566,to_date('3-12-1981','dd-mm-yyyy'),3000,NULL,20);
INSERT INTO emp VALUES (7934,'MILLER','CLERK',7782,to_date('23-1-1982','dd-mm-yyyy'),1300,NULL,10);
-- 插入测试数据 —— salgrade
INSERT INTO salgrade VALUES (1,700,1200);
INSERT INTO salgrade VALUES (2,1201,1400);
INSERT INTO salgrade VALUES (3,1401,2000);
INSERT INTO salgrade VALUES (4,2001,3000);
INSERT INTO salgrade VALUES (5,3001,9999);
-- 事务提交
COMMIT;
次のように順に構成データ場合、実行の順序は次のとおりです。
1、最初のオープンはsqlplus.exe:
実行 - >タイプします。sqlplus / nologを
2、(実行の期間)C ## scott.sqlファイルを実行
オープンウィンドウ - プロパティ - [オプション]ページ素早く編集モードを確認するには - ページの背景色と文字色を変更することができます。
次いでSQLPLUS期間にコピーC ## scott.sqlファイルのコードを実行することができます。
上記の手順の実施後、説明コマンドの後ろに行うことができます。
3.2、SQLPlusをよく使用するコマンド
行当たりの記録長設定:SET LINESIZE 300。
ページ当たりの記録長さの設定:PAGESIZE 30のSETを。
ユーザーがデータベースに接続:[SYSDBA AS] CONNのユーザー名/パスワード;
すべての現在のユーザーデータオブジェクトを取得します。SELECT * FROM]タブ。
ビューのテーブル構造:DESCテーブル名;
マシンのオペレーティング・システムのコマンドを使用します。HOSTコマンドを...。
上記を考えると以下に詳細に説明する、いくつかの一般的な操作コマンドの最も基本的です。
3.2.1書式設定コマンド
今、C ##スコットのユーザーが既に対応するデータの中に存在する、クエリコマンドを実行し始めます。
SELECT * FROM emp;
これは、クエリのすべてのデータのemp表ことを示しています。
ウィンドウ設定 - プロパティ:ページング、問題の折り線があることを示していますが、データが良く見えるようにしたい場合は、データが画面幅の問題を解決するために、すべての最初の、また、問題となっているデータの、この時点で見つけることができます。または:
長さの行ごとにデータを設定します:
SET LINESIZE 300;
ページ表示データ長を設定します:
SET PAGESIZE 30;
3.2.2編集操作
利用者の利便性が長いSQLステートメントを記述するだけでなく、特にネイティブメモ帳を呼び出すためのコマンドを提供するためにSQLPLUSの中で、あなたは直接、端末での動作を完了するために、edコマンドを使用することができます。
ed mldn
この時点で、直接、あなたは、以前のテキストクエリデータに直接書かれた新しいmldn.sqlファイル、開いたメモ帳を作成、保存して終了したい場合は、その後、あなたがプログラムの実施、マーク「@」を使用することができます尋ねます「@mldn」と入力します
3.2.3接続操作
Oracleでは、多くのユーザーの間で、これらのユーザーは、お互いにお互いの間で切り替えることができた、と次のように基本的な構文を切り替えるためのものです:
CONN 用户名/密码 [AS SYSDBA];
あなたはSYSユーザーを使用している場合はログインし、プラスSYSDBAオプションAS
例:sysユーザーのログインを使用します
CONN sys change_on_install AS SYSDBA;
それは、現在のユーザーであるかを知るのであれば、接続した後、次のように入力します。「SHOW USERを、」
SHOW USER;
SYSでのユーザーによる研究C ## Scottのemp表場合はその後、その後、確かにクエリは、ユーザー名、すなわち、テーブルの前に追加する必要がありません:C ## SCOTT.EMP。
SELECT * FROM c##scott.emp;
データベースの原則のうち、ユーザ名は、単にモデル名と呼ぶことができる、すべてのテーブル、すなわち、モード名を有するものである:表スキーマ名の名前を
あなたは今、通常のユーザーログインを使用する場合は、コマンドを入力するとき、あなたはSYSDBAを書き込むことはできません。
CONN c##scott tiger;
SELECT * FROM emp;
そして、確かに、次のコマンドで見ることができ、ユーザデータで複数のテーブルがあります:
SELECT * FROM tab;
テーブルのフォーマットが標準化されていないでしょう、次のコマンドは、ローカルでフォーマットされました
COL tname FOR A20;
COL tabtype FOR A20;
COL clusterid FOR A20;
SELECT * FROM tab;
いくつかは、今のテーブル構造データテーブルを知りたい場合は、同じトークンが、あなたはDESCコマンドを使用することができます。これは、開発中の最も使用されています。
例:ビューのempテーブル構造
DESC emp;
- タイプの欄にはいくつかの主要な種類があります。
- NUMBER(4)、4の長さを数を表します。
- VARCHAR2(10):10のみを収容することができる文字列の長さを表します。
- DATE:日付を表示します
- NUMBER(7,2)は5ビットの整数を表す2つの小数点以下を占め番号、、、7の合計を表します。
- SQLPLUSで「/」の操作が繰り返し文で行われていることを示しを入力することができます。
外、独自のコマンドSQLPLUSを実行することに加えて、あなたはまた、ネイティブのオペレーティングシステムのコマンドを呼び出すことができ、その後、前にのみ関連するコマンドにHOSTコマンドを追加する必要があります。
HOST dir;
HOST copy d:\mldn.jpg d:\hello.jpg;
3.3、元のデータの問題について(理解)
選択されたサンプルデータが作成されるが、今のOracle 12cは、残念ながら、単純にスコットとshのユーザーが表示されないことがわかった:常に強調しました。
スコットと今も、データベース内の実SHユーザー、が、デフォルトでは、ユーザデータのすべての操作は、CDBに保存され、そのように、ユーザー名が## Cで始まる必要がありますがありますされているC:##スコット。
- 最初のステップ:sysは、ログインに使用する必要性
CONN sys change_on_install AS SYSDBA;
- ステップ2:現在のコンテナの名前を確認してください
SHOW con_name;
明らかに今「CDB $ ROOT」への復帰であることを見つけることができ、それはCDBコンテナを表します。
- 第三段階:容器はPDB変更されます
ALTER SESSION SET CONTAINER=pdbmldn;
SHOW con_name;
- ステップ4:データベースをオープンしていない場合は、開くようにコマンドを実行
ALTER DATABASE pdbmldn OPEN;
あなたはPDBコンテナに含まれていない場合は、コマンドにプラグ接続を追加する必要があります。
ALTER PLUGGABLE DATABASE pdbmldn OPEN;
クエリを再度、あなたはユーザーscottと二つの実のshが存在していたでしょう。
- 第五ステップ3:ユーザーの確認
SELECT username FROM dba_users WHERE username='scott' OR username='sh';
ステップ6:CBDに切り替え
あなたが戻ってCDBに切り替えたい場合は、あなただけが直接切り替える再度ログイン、またはコマンドを入力する必要があります。
ALTER SESSION SET CONTAINER=cdb$root;
3.4、SQL Developerの設定
Oracleの学習の中で、SQL Developerは、今注目する必要があります。そして、このツールは、Oracle 11ユーザの後に開始することです。
1、最初のSQL Developerを開きます
[スタート - すべてのプログラム - オラクル - アプリケーション開発ツール - SQL Developerの
ツールは、Java環境に依存しているので、あなたは、Java関連のコマンドを設定する必要があります。
2、ポップアップウィンドウには、[参照]をクリックし、次のパスを探します。
D;\app\oracleuser\produce\12.1.0\dbhome_1\jdk\bin
3. 1パス以上を入力した後、[OK]をクリックし、待ちます
4、ポップアップ「コンフィギュレーションファイルタイプの関連付け」ファイルの関連付けを行う必要がある場合には、ユーザーを求めるウィンドウが、それは(つまり、チェックされていない)やってないことをお勧めし、[OK]をクリックし、SQL Developerインタフェース。
5それは、このツールを使用する場合、あなたは新しい接続を確立しなければならない、とフォローアップ調査を容易にするために、ここでは2つの接続の確立をお勧めします:
普通のユーザー(C ##スコット/虎)
管理者(SYS / change_on_installを)
6 [接続]をクリックします - 新しい接続は、ポップには、次のように入力します。
接続名:SCOTT_Connection
ユーザー名:C ##スコット
パスワード:虎
SID:mldn
次のパスワード「パスワードの保存」をチェックし、[テスト]をクリックします - 保存 - 接続は、[ツール]ページ「接続が」次「SCOTT_Connectionを」と表示され、入力した右の入力ボックスをクリックしてください:
SELECT * FROM emp;
次に、[実行]ボタン(緑色の三角形)をクリックし、以下の結果が表形式で表示されます。
図7は、別の新しいは、次のように入力します。
接続名:DBA_Connection
ユーザー名:SYS
パスワード:change_on_installを
SID:mldn
保存 - - 接続、[ツール]ページ「接続」とは、この時点で「DBA_Connectionを」と表示され、管理者は以下のパスワードは、「パスワードを保存」「SYSDBA」を選択し、接続タイプ「基本的な」役割を選択し、テストをクリックしてくださいをチェック接続が成功を作成します。
なお、表示形式でSQL Developerで見つけることができるので、SQLPLUSでの書式化コマンドのいくつかの重要性はあまりありません
3.5、C ##スコットユーザーテーブル(バック)
説明するために、知識の後のデータベースの中で、C ##スコット・ユーザーは、その後、いくつかのテーブルの存在下でのユーザデータが(バックダウン最高)それを明確にするために、主要なユーザー操作です。
従業員表(EMP)
NO。 | フィールド | タイプ | 説明 |
---|---|---|---|
1 | EMPNO | NUMBER(4)<PK> | これは、従業員番号、一意の番号を表し、 |
2 | ENAME | VARCHAR2(10) | これは、従業員の名前を表します |
3 | ジョブ | VARCHAR2(9) | 職場表現 |
4 | MGR | NUMBER(4) | これは、従業員の主要な数を表し、 |
5 | HIREDATE | 日付 | 雇用の日付を示しています |
6 | WILL | NUMBER(7,2) | これは、毎月の給料、賃金を表し、 |
7 | COMM | NUMBER(7,2) | これはと呼ばれるボーナスやコミッションを表し、 |
8 | DEPTNO | NUMBER(2)<FK> | 部門番号 |
EMP 表:
EMPNO NUMBER(4) <pk>
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
MGR NUMBER(4)
HIREDATE DATE
SAL NUMBER(7,2)
COMM NUMBER(7,2)
DEPTNO NUMBER(2) <fk>
Departmentテーブル(DEPT)
NO。 | フィールド | タイプ | 説明 |
---|---|---|---|
1 | DEPTNO | NUMBER(2)<FK> | 部門番号は一意の番号です |
2 | DNAME | VARCHAR2(14) | 部門名 |
3 | LOC | VARCHAR2(13) | 部署場所 |
DEPT 表:
DEPTNO NUMBER(2) <fk>
DNAME VARCHAR2(14)
LOC VARCHAR2(13)
賞テーブル(BONUS)
NO。 | フィールド | タイプ | 説明 |
---|---|---|---|
1 | ENAME | VARCHAR2(10) | |
2 | ジョブ | VARCHAR2(9) | |
3 | WILL | 数 | |
4 | COMM | 数 |
BONUS 表:
ENAME VARCHAR2(10)
JOB VARCHAR2(9)
SAL NUMBER
COMM NUMBER
賃金スケール(SALGRADE)
NO。 | フィールド | タイプ | 説明 |
---|---|---|---|
1 | グレード | 数 | レベル名 |
2 | LOSAL | 数 | 最低賃金のこのレベル |
3 | HISAL | 数 | これは賃金の最高レベルであります |
SALGRADE 表:
GRADE NUMBER
LOSAL NUMBER
HISAL NUMBER
説明:学習教材は、戦闘古典的な仕上げのOracle開発LiXingHuaに基づいています