タグ

SQLに関するmoon_croixのブックマーク (18)

  • マルチテーブル・インサートで同一テーブルに複数データ挿入してみる - kagamihogeの日記

    Oracleには、マルチテーブル・インサートという単一のINSERT文で複数のテーブルに挿入できる機能がある。 参考: INSERT - Oracle Database SQL言語リファレンス 11gリリース2(11.2) SQLクリニック(12):1つのSQL文で複数の表にINSERTする絶品テクニック (1/2) - @IT 名称の通り、SELECTで受けた結果を複数のテーブルに振り分けるのが主要な用途であるが、下記のように単一のテーブルに対するINSERTをただ単にたばねるという操作も可能である。 INSERT ALL INTO A(COLUMN1) VALUES(?) INTO A(COLUMN1) VALUES(?) INTO A(COLUMN1) VALUES(?) SELECT 1 FROM DUAL; 今回は、このマルチ数(このエントリ内でのみ使用する独自の用語。上記のSQ

    マルチテーブル・インサートで同一テーブルに複数データ挿入してみる - kagamihogeの日記
  • Oracle

    フォーブス社が毎年発表している「World’s Best Employers」ランキングで、オラクルが上位にランクインしました。人材開発、職場の多様性などのカテゴリでオラクルが高く評価された理由をご覧ください。

  • 表ロックの種類と相互関係 - オラクル・Oracleをマスターするための基本と仕組み

    ● ロックを取得可能 × ロックの取得は不可能 ▲ ロックを取得可能であるが別セッションからの同一行へのアクセスは待機させられる(TX待機) ▼ ロックを取得可能であるが別セッションからの プライマリキー制約、ユニーク制約 に該当する行の INSERT は待機させられる(TX待機) ▲ ▼ に関して:トランザクションが分散トランザクションの場合には初期化パラメータによってタイムアウトが発生する。 参考 ⇒ ORA-02049: タイムアウト: 分散トランザクションがロックを待機しています。 共有ロックと排他ロック 共有ロック 共有ロックとは主に参照を行う際に掛けるロックであり複数設定することも可能。しかし SELECT の度にロックを掛けているわけではなく、データや表定義が変更されると困る操作のときにだけ掛けられる。 例: 更新予定の行を宣言して SELECT する(RSロック)、インデッ

  • SELECT FOR UPDATE - オラクル・Oracle SQL 入門

    SELECT 時に明示的な行ロックを行なう方法 SELECT 〜 FOR UPDATE は行レベルでロックをするための SQL 文である。そのために FOR UPDATE で SELECT した後のプロシージャ処理で処理中のレコードが更新されたり、削除されたりすることを防ぐことが可能である。 しかし、一度に大量のレコードをロックしたり、表全体をロックするような大規模のロックは 同時操作性にも問題が生ずるので極力控えるように設計したい。要件上、どうしても必要な場合には LOCK TABLE などの表ロックを検討する。 SELECT 〜 FOR UPDATE [WAIT | NOWAIT] Oracle 9i から FOR UPDATE の WAIT に待機秒数が指定できる。(※1) SELECT 〜 WHERE ... FOR UPDATE [OF [table_name.]column_n

  • テーブルを手っ取り早くCSV形式で出力する(SQL*Plus)

    テキストデータを取り込むには、SQL*Loaderというユーティリティが用意されていますが、 逆のSQL*Saverなどというものは用意されていません。 CSV形式のテキストファイルにデータを出力したい場合は、PL/SQLで外部ファイルに書き出す方法や MicroSoft ACCESS などのソフトからリンクし取り出す方法が考えられます。 MicroSoft ACCESSからリンクする方法は、少量のデータの場合はお手軽で良いのですが、 数万件オーダのデータを扱う場合、テーブルを表示するだけで時間が掛かったりと 一長一短であったりします。 今回は、SQL*PlusのSPOOL機能を使ってCSV形式のテキストファイルに出力する方法 でやって見ましょう。

  • Oracle エクスポート/インポート

    エクスポート/インポートとは異なるハードウェア構成およびソフトウェア構成のプラットフォーム上にあるOracle データベース間で、データオブジェクトの転送を行うためのオラクル標準ツール。 「エクスポート」にてDB情報(オブジェクト定義や表データなど)をダンプファイルに抽出し、 「インポート」にてダンプファイルの情報を利用してDB情報を出力する。 実行方法各ユーティリティはOSコマンド「exp」「imp」とパラメータオプションを指定して実行する。 エクスポート実行方法には以下の3種類がある(インポートの場合はexp部分がimpに変わるだけ)。 ■コマンドライン $ exp [パラメータ]... コマンドの後ろにパラメータを列記して実行する。 ■対話方式 $ exp プロンプトにパラメータが表示されるので、随時入力して実行する(基的なパラメータしか指定できない)。 ■パラメータファイ

  • BYPASS_UJVC - niwanosの日記

    仕事でselectupdateをすることがあって、 副問い合わせに対してUPDATE出来たら楽だなと思ってたら ORA-01779が出てしまったので調べてたら http://emboss.blog28.fc2.com/blog-entry-13.html みたいにヒント句で回避できるらしい ってことで出来ることはわかったのだけど そもそも 更新対象テーブル:更新データテーブル が 1:N の場合にどういう動きをするかよく分からなかったので試して見た ・更新するテーブル CREATE TABLE UP_TABLE ( ID NUMBER NOT NULL, NAME VARCHAR2(10), CONSTRAINT UP_TABLE_PK PRIMARY KEY (ID) USING INDEX ) ・更新データが入ってるテーブル CREATE TABLE DATA_TABLE ( UP_I

    BYPASS_UJVC - niwanosの日記
  • サービス終了のお知らせ

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

  • 駆け足で見るGoogle Cloud SQLでできること(1/3) - @IT

    連載:使ってみました! Google Cloud SQL 第1回 駆け足で見るGoogle Cloud SQLでできること クラスメソッド 中村修太(なかむら しゅうた) 2012/2/22 アマゾンやマイクロソフトに続いて、ついにグーグルRDBMSのサービスを提供し始めました。今回は、あえて詳細な解説は避けて、このサービスでどんなことができるのかを駆け足でお見せします(編集部) GoogleがついにRDBMSサービスの提供を開始! 2011年11月、Googleは「Google Cloud SQL」というサービスの提供を始めました。リレーショナルデータベース管理システム(RDBMS)の機能をインターネットを通して提供するサービスです。はやりの言葉で言えば、「クラウド環境で動作するRDBMS」ということです。 稿執筆時点では、このような形でRDBMSのサービスを提供している例は少なく、

  • セキュアアプリ開発ガイドを公開、SQL AzureのDBは5倍に拡大

    セキュアアプリ開発ガイドを公開、SQL AzureのDBは5倍に拡大 2010年6月第3~4週の更新情報 新連載の第2回目は、マイクロソフトのWindows Azure Platformに関する6月後半にあたる第3週以降に提供された内容をお伝えします。Azure上でセキュアなアプリケーションを開発するためのホワイトペーパー日語版のほか、最新版のGuest OSも公開されています。また、SQL Azureのデータベースについては最大容量が5倍と大幅に拡大されました。 Windows Azureのセキュリティホワイトペーパーを公開 Windows Azureプラットフォーム上でセキュアなアプリケーションを開発するために、マイクロソフトが推奨する方法を説明したホワイトペーパー「Windows Azureアプリケーション開発におけるセキュリティのベスト プラクティス」が公開されました。まず英語

    セキュアアプリ開発ガイドを公開、SQL AzureのDBは5倍に拡大
  • INとEXISTSの違い - SQLer 生島勘富 のブログ

    INとEXISTSは違います。 BETWEENと、不等号の組合わせなど、等価になる記述法はあるのですけれど、INとEXISTSは基的に同じ結果を返すことが可能ですが、意味は違います。 この違いが分かるにはインデックスを理解する必要がありますので、まずは、インデックスのイメージをつけてください。 まずはイメージ ここでも、まずはイメージで考えましょうね。 あなたは先輩の結婚式の司会を頼まれましたとします。イロイロと準備がありますが、余興で歌を歌う人がいるとき、予めカラオケの番号を調べておくでしょう。 事の間のBGMについては、ラブソングの入ったiPodをつないでランダムで流すことにしましょう。しかし、新郎新婦にとって(過去の恋愛経験上)都合の悪い曲があり、チェックしてはじいておくことにしました(なかなか、そつがない司会ですな)。 これらの処理をSQLにするならば……。 ■カラオケの番号を

    INとEXISTSの違い - SQLer 生島勘富 のブログ
  • 今夜こそわかる安全なSQLの呼び出し方 ~ 高木浩光氏に聞いてみた

    「安全なSQLの呼び出し方」というSQLセキュリティに焦点を当てたドキュメントが、2010年3月にIPA(独立行政法人情報処理推進機構)から公開された。 これは2006年1月から提供されている、Webサイト開発者や運営者向けのセキュアWebサイト構築のための資料「安全なウェブサイトの作り方」の別冊として書かれたものである。「安全なウェブサイトの作り方」が92ページなのに対して、SQLインジェクションについてだけで40ページもの分量がある。なぜこんなに分厚いのだろうか。 このドキュメント作成に協力したという、独立行政法人産業技術総合研究所 情報セキュリティ研究センターの高木浩光氏にお話を伺うことができた。高木氏は個人ブログ「高木浩光@自宅の日記」で、セキュリティ関連の問題を追求する論客としても知られている。筆者も以前、この連載の「今夜わかるSQLインジェクション対策」の回(2006年11月

    今夜こそわかる安全なSQLの呼び出し方 ~ 高木浩光氏に聞いてみた
  • まだまだ広がる“SQL”の世界 (1/2)- @IT

    寒い春が続いたかと思いきや、連休に入ると一気に初夏のように暑くなりましたね。連休はいかがお過ごしでしたか。データベースの世界ではマイクロソフトのSQL Server 2008 R2がリリースされ、Firebirdも久々のバージョンアップを目前にしています。 レポート機能強化、SQL Server 2008 R2 いよいよ出ました。5月1日にマイクロソフトはSQL Server 2008 R2のボリュームライセンスを発売しました。パッケージ製品は6月18日に発売します。 この製品については2009年8月号の「Tech・Ed Japan 2009」レポートなど、これまで何度か話題にしてきました。2008 R2のポイントは、 信頼性と拡張性など性能面の強化 IT部門や開発者の生産性向上 セルフサービスBI などが挙げられます。 発売開始をうけ、オフィシャルサイトの製品紹介コンテンツも充実してきま

  • 第10回 結合大全 (3)外部結合 | gihyo.jp

    外部結合~何の「外部」なのか~ 外部結合とは 外部結合(outer join)は、内部結合の次によく使われるタイプの結合です。「⁠内部」と「外部」という名称が示唆するように、これは内部結合と対になる演算です。「⁠内部」が「直積の部分集合」という含意を持っていたことからもある程度、類推がつくと思いますが、「⁠外部」とはどういう意味でしょう。 そう、おわかりですね。答えは「直積の部分集合にならない」です。誤解しないでもらいたいのは、常に部分集合にならないわけではなく、「⁠データの状態によってそういうこともある」という点です。実際にコードを実行して、結果を確認してみましょう。 外部結合には、次の3種類があります。 左外部結合 右外部結合 完全外部結合 このうち左外部結合と右外部結合は実質的には同じ機能を持っています。ただ、マスタとなるテーブルを左に書くなら左外部結合、右に書くなら右外部結合、とい

    第10回 結合大全 (3)外部結合 | gihyo.jp
  • 第10回 結合大全 (2)内部結合:SQLアタマアカデミー|gihyo.jp … 技術評論社

    内部結合~何の「内部」なのか~ 内部結合とは 内部結合(inner join)は、一番よく使われる結合の種類です。ほとんどのSQLの参考書では、結合といえば最初に内部結合から話を始めるものです。構文についてはすでにご存じの方も多いでしょうが、一応ここで紹介しておきましょう。 今、図1の社員テーブルだけ見ると、社員の部署名はわかりません(わかるのは部署IDだけ⁠)⁠。部署名を知るためには、部署テーブルの部署名(dept_name)列の情報を持ってこなくてはなりません。このときの結合キーはもちろん、どちらのテーブルにも存在している部署ID(dept_id)列になります(リスト2、図3⁠)⁠。 リスト2 内部結合を実行 SELECT E.emp_id, E.emp_name, E.dept_id, D.dept_name FROM Employees E INNER JOIN Departmen

    第10回 結合大全 (2)内部結合:SQLアタマアカデミー|gihyo.jp … 技術評論社
  • 情報処理推進機構:情報セキュリティ:脆弱性対策 :「安全なSQLの呼び出し方」を公開

    IPA(独立行政法人情報処理推進機構、理事長:西垣 浩司)は、ウェブサイトを狙ったSQL(*1)インジェクション攻撃(*2)が継続していることから、ウェブアプリケーション(*3)の安全な実装方法を解説した資料「安全なSQLの呼び出し方」を2010年3月18日(木)からIPAのウェブサイトで公開しました。 URL:http://www.ipa.go.jp/security/vuln/websecurity.html 近年、ウェブサイトを狙った攻撃が継続しています。攻撃の実例として、IPAが無償で公開している「SQLインジェクション検出ツールiLogScanner(*4)」で、「脆弱性対策情報データベースJVN iPedia(*5)」のアクセスログを解析した事例を図1に示します。 図1を見ると、2008年頃から急増しているSQLインジェクション攻撃が全体の45%、ウェブサーバのパスワードファイ

  • SQLさん、ごめんなさい:プログラマで、生きている:エンジニアライフ

    わたしはプログラマ歴は長いんですけど、SQL歴は短いです。 別に避けていたわけではなく、データベース(以降DBと略)を扱うプロジェクトに放り込まれたことがほとんどありませんでした。DBを扱うシステムに関わった時も、そこにはDBのマイスターと呼ばれる方々がいらっしゃって、全部をお膳立てしてくださっていたので、を読んで文法を覚えただけの状態でもなんとかなっちゃったものだから、それ以上のことを追求する気がおきなかったんですね。 一度、SQL Server 2000のインストール、テーブル設計、SQLおよびJavaのコーディングをすべて1人きりでやる機会があったんですが、その時は速度性能をまったく要求されなかったので(←動く様子がわかる程度のものを短期間で作ってくれ、というオーダーだった)、これまたを読んだだけの知識でなんとか乗り切れてしまいました。 とにかくわたしはSQLにまったく興味があり

    SQLさん、ごめんなさい:プログラマで、生きている:エンジニアライフ
  • Sudoku solving with one SQL statement using Recursive Subquery Factoring - AMIS Technology Blog | Oracle - Microsoft Azure

    Sudoku solving with one SQL statement using Recursive Subquery Factoring - AMIS Technology Blog | Oracle - Microsoft Azure
  • 1