Oracle
ローカル管理方式とディクショナリー管理方式とは 表領域のエクステントを管理するための方法 → どのエクステントが空いているのか → どの領域に割り当てるのか ローカル管理方式 基本的にこちらが使われる。 下記を行うことができる。 ・エクステントの割当…
一つのトランザクションはUNDOセグメントをまたがらない
データベースリンクの仕組み 図解 クライアントからdb2にアクセスするためにはDB1からLINKを通してアクセスする。 リンクを貼る場合 CREATE DATABASE LINK L2 USING DB2; DB2からSELECTしたい場合、 SELECT * FROM X, Y@L2 WHERE ... こんな感じ。 リンクはD…
経緯 Silverの勉強をしているとdualテーブルについての問題が出てくるので、実際に確かめてみる。 SELECT * FROM DUAL; Result Set 1 DUMMY X DUMMY(VARCHAR2)の列ができている。中身には「X」が入っているのだ。 なんでXなんだろうXD
経緯 セグメントやエクステント等の関係性がこんがらがるので、図にしてみた。 表領域は複数の「データファイル(物理ファイル)・エクステント(論理領域)」からなる。 つまり、表領域はエクステントを通してデータファイル にアクセスする。 セグメント・エク…
列名は同じじゃなくても良い select 学生番号 as "01", 性別 as "02"from TT01_学生union allselect 学生番号 as "03", 部活動コード as "04"from TT02_所属部活動 結果: 01 02 2010B0162 1 2010B0163 1 2010B0164 2 データの型とカラム数が一緒の必要がある…
Natural JOIN 自然結合 普段使わないが、知識として知っておきたい。 空気を読んで結合してくれる。(列名と型が一緒の場合に結合してくれる。) でも、シンプルに書けるだけに、コードとしての可読性が落ちそう。
LEADING 先頭の指定した文字列を削除する TRIMとセットで書く。 SELECT TRIM(LEADING 'x' FROM 'xxxy') FROM DUAL; 結果:y TRAILING 先頭の指定した文字列を削除する TRIMとセットで書く。 SELECT TRIM(TRAILING 'x' FROM 'xxyx') FROM DUAL; 結果:xxy ※下記…
MONTHS_BETWEEN 何ヶ月の差があるかの計算 select MONTHS_BETWEEN('11-DEC-20','11-OCT-20') from dual; 結果: 2 12月- 10月 = 2 ちなみに select MONTHS_BETWEEN('11-DEC-20','10-OCT-20') from dual; 2ヶ月と1日の場合 結果: 2.03225806451612903225806451…
経緯 Oracle Master Silverの勉強をしていると普段使わない、置換変数というものが出てきた。 でも使い方をイメージしていると、これ、めっちゃ便利なときあるやん。いつも、自分ができないと思っていたことがこれでできるやんと思うようになったので、wiki…
経緯 曖昧検索といえば%を使うが_をあまり業務で使うことなく、頭になかったので、ここに記しておきたい。 _の使い方 like '_x%' 1文字目にxがある2文字目以降は何でも良い like '_ _ _ _%r_ _'; 前に4文字以上がある。後ろから3文字目がr like '_ _ %r%_ _'…
経緯 絶対、この先使わないであろう、ORACLEでのシングルクォテーションの役割を果たす機能、書き方を見つけた。 q'[xxx]' 代替引用メカニズムではリテラルを扱うときに、シングルクォテーションで描くのではなく、q' + 任意の文字 で始め、任意の文字 + ' …
■NVL(A,B) AがnullならBを ■NVL2(A,B,C) Aがnullではない場合、Bを、nullならCを ■COALEACE(A,B,C,D,E) AがnullではないならAを、そうでなければBを、BがnullならCを... ■NULLIF(A,B) A == BならNULLを、そうでなければAを
経緯 集計関数の問合せできるできないルールがちょっと混乱することがあるので、解いて行きたい。 1,集計関数でネストしている場合 SELECT MIN(AVG(sal)) FROM emp; employees の salary の 平均avg の 最小値min が欲しい。一見良さそうであるが、group by…
ANY ANYはなかなか使わないけど、selectしたもののうち一つでも条件に合えば返す X > ANY(select Y from Z) → ZのYのうちのひとつを上回ればtrue → X > select MIN(Y) from Z で良さそう 速さはANYの方が速そう ALL select したもののうち全ての条件に合えば…
CTAS CTAS create tabls as select selectを使い他のテーブルからデータと構造をコピーしてテーブルを作ることができる。 移される制約はnot nullだけである。 where句を指定することでコピーしたいデータや、件数を0にするような条件句でテーブルだけ作ると…
知らなかったシーケンスの使い方 シーケンスなんてORACLEを使ってる人からすれば、なんてことはない、連番を採番するオブジェクトだ。SQL SERVERのidentityのような動きをする。 しかし、別々のテーブルの主キーに使い、IDを被らせないという方法ができるの…
制約 alter table [table name] disable constraint [constraint name] cascade; → 特定の制約をdisableにする場合、その制約に関連する他の制約も外す on delete cascade →削除された行を参照している子表の行も併せて削除する on delete set null →削除さ…
WITH CHECK OPTION ・UPDATEとINSERTの時にVIEWのselect文のwhere句の条件を満たしていない場合、エラーとなる。 ・DELETEはエラーにならない。(DELETE後にデータは残らないからチェックできない) FORCE ・参照するオブジェクトがない場合でもとにかくVIEWを…
リスナーが起動していない場合 リスナーが起動後 LSNRCTL> status Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=xxx)(PORT=1521))) STATUS of the LISTENER ------------------------ Alias LISTENER Version TNSLSNR for 64-bit Windows: Vers…
抽出結果を見やすくする ツール > プリファレンス データベース > ユーティリティ > ワークシート 「市松模様またはしま模様のグリッド」にチェックをする。 すると問合せ結果がシマシマになって、見やすくなる。
非等価結合とは SQLにおいてテーブルをjoinする際の結合条件が等価ではないことである。 on句でbetweenや不等号が使われる。 勘違いしやすいところ これは非等価式 SELECT e.employee_id,h.employee_id, e.first_name, e.last_name, e.hire_date,h.start_dat…
勉強用に無料で使用したい そんな願望は多い。 ということでORACLEさんが無料で用意してくれている。 Database Software Downloads | Oracle 日本 サーバーはAzureで Dockerに入れて行う方法やvirtualboxを使った方法など、先人たちが紹介してくれている。 …
フラッシュバックドロップとは DROPテーブルしてしまった後に、テーブルを元に戻したい場合に使用する。 ゴミ箱に同じ名前の表がある場合 では、DROPテーブルで同じ名前のテーブルを複数回行った場合、フラッシュバックドロップを行った時、どのテーブルが戻…
経緯 ORACLEマスターの勉強をしているとたまに出てくる単語。そのほかではあまり見かけない。この横文字が突然出てくると、最初は「うへ」ってなった。 うへってならないように、留めておく。 意味 余計なこと・もの。冗長。 使われ方 本番環境の調査のため…
フラッシュバックドロップ DROPしたテーブルを戻す ∟FLASHBACK TABLE <表名> TO BEFORE DROP; 仕様 ・DROPしたテーブルは同じ表領域で論理削除されているので、元に戻す ・索引も元に戻る ・PURGEオプションで DROPしている場合は元に戻すことはできない ・C…
ACHIVELOGモード 直前までのデータをメディアリカバリできる。 why →オープンの状態でREDOログをアーカイブしているから。 how →ARCnプロセスがログスイッチのタイミングでREDOログファイルの新たなグループを上書きする前に、アーカイブログファイルとして…
AWR(Automatic Workload Repository) 自動ワークロードリポジトリ ADDR(分析)のための統計情報とワークロード(処理負荷)情報を自動的に収集してくれる。 仕様 ・デフォルトで60分間隔でAWRスナップショットが実行される ・MMONによって実行される ・SYSAUX表…
3つの結合方法 ORACLEには結合方法が3つあるので軽く説明できるようになりたい。 ネスティッドループ結合 索引を使用するときはこれ。 索引を使用しているということはB+Treeのデータ構造となるため、二分探索になるから速い。O(logn)??いや、索引がきちんと…
ORACLEデータベースで初期化パラメータを変更したい!っていう時、そのパラメータが動的か静的かによって変更の仕方が異なりますよね。 例えば、動的初期化パラメータの場合、単純に下記のようにSQLを叩くと変更が即座に適用されます。 ALTER SYSTEM SET PGA_…