タグ

sqlに関するdh_SPQRのブックマーク (16)

  • Oracle 11g R1新機能のPivotとUnPivot

    はじめに Oracle 11g R1新機能のPivotとUnPivotについて、基事項から使用例まで、SQLのイメージを交えて解説します。 対象読者 OracleのPivotとUnPivotを使いたい方 OracleSQLの理解を深めたい方 必要な環境 稿で扱うSQLは、Oracle 11.1.0.6.0で動作確認しました。SQL Server 2005以降でも応用が可能です。 1. PivotとUnPivotとは PivotとUnPivotはOracle 11g R1の新機能で、select文での行列変換を容易に行うことができます。ちなみにPivotとUnPivotは、SQL Server 2005以降でも使用できます。英和辞典によるとPivotの意味は、動詞では「旋回する」、名詞では「中心,軸,旋回軸,かなめ」です。 下記のOracleのselect文の評価順序において、Pivo

    Oracle 11g R1新機能のPivotとUnPivot
    dh_SPQR
    dh_SPQR 2012/03/12
    SQLでこんなこともできるのね( ・ิω・ิ)
  • [SQL] 10. データベースの管理

    10.1. ユーザとアクセス権限 一般に、構築したデータベースには多くのユーザがアクセスします。 必要なデータを取り出す、登録されたデータをさまざまな角度から分析する、新しいデータを追加する、古いデータを削除する、変更の必要があるデータを修正するなど、いろんな利用形態があります。しかし、誰もがこのようなことができる状態では、データベースが壊されてしまったり、外には見せたくないデータが流出してしまうということが起こりえます。 各 RDBMS はデータベースを利用できるユーザを限定することにより、データベースを保護しています。ユーザを限定すると同時に、参照はできるがデータの追加はできない、データの追加はできるが削除はできないなど、ユーザがデータベースにアクセスできる方法に対しても制限を与えています。 ここでは、構築したデータベースの信頼性と機密性を守るための、ユーザとアクセス権限について説明し

    dh_SPQR
    dh_SPQR 2011/08/23
    WITH GRANT OPTION
  • オラクルから最新の製品技術情報を入手できます

    オラクルから最新の製品技術情報を入手できます
  • OracleのSQLのアンチパターンの問題集2

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    OracleのSQLのアンチパターンの問題集2
    dh_SPQR
    dh_SPQR 2010/08/20
  • OracleのSQLのアンチパターンの問題集1

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    OracleのSQLのアンチパターンの問題集1
    dh_SPQR
    dh_SPQR 2010/06/18
  • SQLで集合演算

    SQLは集合論をその基礎の一つとする言語ですが、これまで、SQLが集合演算の整備を怠ってきたことも手伝って、その機能は十分に活用されてきませんでした。しかし近年、ようやくSQLにおいても基的な集合演算の機能が出揃い、格的な応用が可能になってきました。稿では、SQLの集合演算を利用したSQLを紹介し、その背景にある考え方を解説します。 はじめに SQLが集合論に立脚する言語であるということは、この連載で一貫して強調してきたテーマの一つです。その特性のゆえに、SQLは「集合指向言語」と呼ばれていますし、実際、集合的な観点から見たときに初めて、その強力さが理解できると私は考えています。しかし現実には、SQLのこの側面は長らく無視されてきました。 その背景には、SQLにも責任の一端があります。というのも、SQLはちょっと前まで、高校で習う程度の基的な集合演算子すら持っていなかったからです。

    SQLで集合演算
    dh_SPQR
    dh_SPQR 2010/04/30
  • Oracleの階層問い合わせ(6) (枝切りの入門事項)

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    Oracleの階層問い合わせ(6) (枝切りの入門事項)
  • Oracleの階層問い合わせ(5) (ListAgg関数を模倣)

    はじめに Oracleの階層問い合わせについて、基事項から使用例まで、SQLのイメージを交えて解説します。稿ではsys_connect_by_path関数の応用例として、Oracle 11g R2の新機能のListAgg関数を模倣する方法と、all_dependenciesデータディクショナリビューに対する階層問い合わせを扱います。 対象読者 Oracleの階層問い合わせを使いたい方 OracleSQLの理解を深めたい方 必要な環境 稿で扱うSQLは、Oracle 11.1.0.6.0で動作確認しました。 1. ListAgg関数を模倣 MySQLのGroup_Concat関数のように文字列を連結する関数として、Oracleでは、wmsys.wm_concat関数というマニュアルにのってない隠し関数がありますが、同等の機能を持つListAgg関数がOracle 11g R2で正式に

    Oracleの階層問い合わせ(5) (ListAgg関数を模倣)
  • Oracleの階層問い合わせ(4) (connect by nocycle)

    はじめに Oracleの階層問い合わせについて、基事項から使用例まで、SQLのイメージを交えて解説します。稿では、connect by nocycle、connect_by_IsCycle疑似列を扱います。 対象読者 Oracleの階層問い合わせを使いたい方 OracleSQLの理解を深めたい方 connect by nocycleを使用する階層問い合わせは、有向グラフや無向グラフなどのグラフ構造の知識を必要としますので、『グラフ理論 - Wikipedia』などを読まれてからの方が理解しやすいと思います。 必要な環境 稿で扱うSQLは、Oracle 10.2.0.1.0で動作確認しました。 1. connect by nocycle cycleという英単語は名詞で、意味は「ひと巡り、一巡、周期」です。connect by nocycleを使うと、経路上で訪問済であるノードへの再訪

    Oracleの階層問い合わせ(4) (connect by nocycle)
  • 特集:基礎から理解するデータベースのしくみ - 特集:基礎から理解するデータベースのしくみ:ITpro

    「データベースはブラックボックス。どんなSQL文を投げたらどんな結果が返ってくるかさえ知っていればよい」---そう思っている人も多いかもしれません。 しかし,物のソフトウエア・エンジニアを目指すのであれば,データベースが動く仕組みを学ぶことは避けて通れません。パフォーマンスなどに問題が生じたときどこから手を付けていいのか皆目見当がつかない,といった事態に陥りかねません。 市販のRDBMSの内部はかなり複雑ですが,基的な部分を理解するのはそれほど難しくありません。この特集でデータベースの動く仕組みを理解してください。 イントロ ●ブラックボックスのままでいいの? 基礎から理解するデータベースのしくみ(1) Part1 ●SQL文はどのように実行されるのか 基礎から理解するデータベースのしくみ(2) 基礎から理解するデータベースのしくみ(3) 基礎から理解するデータベースのしくみ(4) 基

    特集:基礎から理解するデータベースのしくみ - 特集:基礎から理解するデータベースのしくみ:ITpro
  • SQL文をきれいにフォーマットしてくれる『SQL in Form』 | POP*POP

    長~いSQL文を見ているとどこがどういう構造になっているのかがわからなくなってきますよね。 そうしたときに使えそうなのが「SQL in Form」です。 一般向けのサービスではないですが、関係ある方には便利なのでは。 以下に簡単にご紹介。 ↑ たとえばこのようなSQL文。コメント分やインデントがわかりにくくなっています。 ↑ SQL in Formを通せばこの通り。構造がすっきりして見やすいですね。 変換する際には改行やインデント、空白の扱いなどの設定をすることもできます。またデスクトップ用のアプリもあるみたいですね。 ご利用は以下からどうぞ。無料で使えます。 » SQL Formatter / SQLFormatter formats SQL Statements

  • 相関サブクエリで行と行を比較する:CodeZine

    はじめに SQLでは、同じ行内の列同士を比較することは簡単にできます。普通にWHERE句に「col_1 = col_2」のように書けばよいだけですから。一方、異なる行の間で列同士を比較することは、それほど簡単ではありません。ですがそれは、SQLで行間比較ができないということではありません。手続き型言語とはかなり異なる発想に基づいていますが、SQLでもそうした処理を記述することが可能です。 SQLで行間比較をする際に威力を発揮するのが相関サブクエリ、特に自己結合と組み合わせた「自己相関サブクエリ」です。稿では、この技術を使った行間比較の応用方法を、具体例を通して解説します。稼働環境OracleSQL ServerDB2PostgreSQLMySQL(バージョン4.1以上) 対象読者 相関サブクエリの基的な使い方を知っている方。CASE式、自己結合、スカラ・サブクエリについての知識があると

    dh_SPQR
    dh_SPQR 2007/02/08
  • 1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ

    1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT
  • リレーショナル・データベースの世界

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 基礎から理解するデータベースのしくみ(5):ITpro

    SQL文を実行する際のパフォーマンスに大きな影響を及ぼすものとして,もう一つ,インデックスがあります。インデックスについては,どう定義すべきかというデータベース設計上の問題と,インデックスを有効に使うためのSQL文をどう書くべきかというコーディング上の問題があります。 ここではテーブル設計上の問題を主に取り上げます。SQL文のコーディングについては囲み記事「SQL文を最速にする11のポイント」を参照してください。 インデックスは,テーブルの検索速度を向上させるためのものです。それぞれのSQL文に対して最適なインデックスを定義するのが理想的ですが,実際にはある程度限られたインデックスで,必要なパフォーマンス要件を満たすようにインデックスを定義する必要があります。加えて,どんなSQL文が実際に発行されるのかがあらかじめわかっていない場合は,適当な想定に基づいてインデックスを定義しておかなくては

    基礎から理解するデータベースのしくみ(5):ITpro
    dh_SPQR
    dh_SPQR 2006/01/23
  • IF文のネスト地獄から抜け出せるMERGE文

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) IF ... THEN IF ... THEN IF ... THEN IF ... THEN IF ... というように、IF文がネストし過ぎていて「もし?で、もし?で、もし?で、もし?だったら、こうする」なんていう、メルヘンチックなプロシージャがたまにあります。ELSE文でも入ろうものなら、不思議な国に突入することもシバシバ……。 そんな条件分岐を少しでも減らせるかもしれない、Oracle9iから追加され

    IF文のネスト地獄から抜け出せるMERGE文
  • 1