データベースの研究では、day04ノート

--row_number()(XXXとによって区画上 XXX順) パケットのソート機能の特徴:連続だけのグループ
を選択ENAME、SAL、DEPTNO、ROW_NUMBER EMPから(SALのDESCによってDEPTNO順序によってパーティション)上()rn_num。
--rank()(XXXとによって区画上 XXX順) 別個のパケットのソート機能一意でない特徴セット内の
SELECT ENAME、SAL、EMPから(パーティションDESCによってDEPTNO順序によってSAL)rn_num2上DEPTNO、ランク();
- -dense_rank()(XXXによってパーティション上 XXX順) パケットのソート機能の特徴:しない連続のグループ内で一意
ENAME、SAL、DEPTNO、DENSE_RANK選択 EMPから(SALのDESCによってDEPTNO順序によってパーティション)上の()rn_num3。
-労働組合の組合:重複した部分削除
SELECT ENAME、SAL> 2500 EMPからの仕事、SAL、DEPTNO
連合
= 20 DEPTNOがあるEMPからのSELECT ENAME、仕事、SAL、DEPTNO;
--unionすべて:重複を削除しません一部
SELECT ENAME、SAL> 2500 EMPからの仕事、SAL、DEPTNO
連合のすべて
; DEPTNO 20 =されEMPからSELECT ENAME、仕事、SAL、DEPTNO
交差点が交差-
SAL> 2500 EMPからSELECT ENAME、仕事、SAL、DEPTNOを
INTERSECT
EMPからDEPTNO SELECT ENAME、仕事、SALを、WHERE DEPTNO = 20;
-設定差マイナス:私はあなたが持っていない持っている
DEPTNO WHERE SAL> 2500 EMPから、SELECT ENAME、仕事、SALを
マイナス
からDEPTNO、SELECT ENAME、仕事、SALをEMPここDEPTNO = 20。
-ビュー名の表は、XXX ASを作成します
-セットSELECT文の表ピアのみ結果
ビューの作成をAS emp_10
  選択* EMPからWHERE DEPTNO = 10;
emp_10から*を選択します。
ビューemp_10をドロップ。
- EMP表1500ミラーがするビュー有料emp_10の変更を支払う
EMPセットSALを更新= 1500場所ENAME =「ミラー」; - 1500年のある
コミット;
- emp_10クラークの2500年に給与、賃金のempの変化の表クラーク不在を参照してください
= 2500 ENAME = 'クラークSET SAL emp_10更新;
ENAME =「クラーク」EMPからのSELECT *; - 2500年は、
-ジェームズで6000を表示するために支払う
-ないでビューを変更しない
表示がAS emp_james作成し
  、EMP WHERE ENAME = 'ジェームスから* SELECT
SELECT * emp_jamesから、
アップデートはSET SALを= 6000 ENAME =」emp_jamesジェームズ;
-连接视图
としてビューname_locを作成
  EMPからLOCはEMP.DEPTNO = DEPT.DEPTNOにDEPTを結合する、選択ENAME。
name_locから*を選択します。
-汚染データ:ベーステーブルのビューを介して挿入エフェクト(効果なしを表示しない)
(emp_10値に1000 INSERT、 'トム'、 'プレイヤー'、 '7934'、TO_DATE( '2008-08-08'、「YYYY-MM -DD ')、8000,1,10);  
-このメッセージを表示し、EMP表のビュービューが∧
emp_10値(1001挿入'ジェリー''プレイヤー'' 7934 'TO_DATE(' 2007 -12-31「」YYYY-MM-DD「)、7000,1,20); 
-このビューなし表示が、EMPテーブル、∧汚染されているデータであろう場合-
-データは、汚染を避ける
ドロップビューをemp_10;
ビューemp_10 AS作成
  DEPTNO CHECK OPTION = 10 WITH EMPからSELECT *を;   
  INSERT INTOのemp_10値(1000年、 'トム'、 'プレイヤー'、 '7934'、TO_DATE( '2008-08-08'、「YYYY- DD-MM ')、8000,1,10);
  INSERT INTOのemp_10値(1001'ジェリー''プレイヤー'' 7934 'TO_DATE(' 2007-12-31」、 'YYYY-MM-DD') 、7000,1,20); - (この行が指定されている)、
 
-配列の開始位置が1で作成し、ステップ1は、
-配列NEXTVALを作成した後に実行されなければなりません
-標的配列が減算インクリメント値によって維持、内部データベースである
配列を作成することによって1つのインクリメントで開始EMP_SEQ 1; - 配列EMPを追加するために、
デュアルからemp_seq.nextval SELECT、
デュアルからemp_seq.currval SELECT。
表ASDは、(作成
(ID番号4)。
名VARCHAR2(20)は、
年齢番号(2)、
住所VARCHAR2(100)
);
INSERT INTO ASD値(emp_seq.nextvalは、 'CDD'、20は、ある'#2 101') ;
INSERT INTO ASD値(emp_seq.nextval、「CMM」、20は、「#2 102」);
ASDからSELECT *;
-インデックス効率を改善するために、テーブルの構造とは無関係であるクエリを作成するために、一度によって作成Oracle自動メンテナンス。
EMPインデックスにemp_enameは(ENAME)を作成し、
インデックスemp_enameをドロップ;
EMPからENAMEを選択;
-複合インデックスは、
EMP(ENAME、SAL)のインデックスemp_ename_salを作成し、
インデックスemp_ename_salをドロップ;
ENAMEを選択して、EMPからSAL;
-インデックス再構成
率を変更しますemp_ename_salを再構築;
-非空制約テーブルを作成する
(テーブルemp_nnを作成します
数上述ID(4)nullでない、
名前VARCHAR2(20)UNIQUE、---のみ制約①
TEL VARCHAR2(20)NOT NULL制約NN、
NAME2 VARCHAR2(20)、
UNIQUE(NAME2)emp_nn_name2_uk CONSTRAINT -唯一の制約②
)。
emp_nn値挿入(emp_seq.nextval、 'LufaのSi'、 '13233333333'、 'リー ');
emp_nn値に--insert(emp_seq.nextval、 '馬'、 '13233333333'、 '李 '); エラーの例
* emp_nn SELECTから、
表のemp_nnをドロップします。
-主键
テーブルmainkey(登録
ID番号(2,0)、
名前VARCHAR2(14バイト)、
LOCのVARCHAR2(13)
)。

おすすめ

転載: www.cnblogs.com/cgwjava/p/11431875.html