タグ

sqlとdatabaseに関するhiro-takのブックマーク (22)

  • 3値論理とNULL

    要するに、データベースにnullが1つでも含まれていれば、クエリから正しくない結果が返される可能性がある。しかも、一般的には、どのクエリから正しくない結果が返されるのかを知る方法はないので、すべての結果があやしく見えてくる。nullが含まれたデータベースから正しい結果が得られることは確信できない。筆者に言わせれば、この状況はまさにお手上げである。 ――――C.J.デイト はじめに 多くのプログラミング言語が、真理値型(BOOL型、BOOLEAN型)というデータ型を持っています。もちろん、SQLにも真理値型が存在します。ユーザーが直接扱えるデータ型として定義されたのはSQL-99ですが、WHERE句などの条件の評価時にも真理値の演算が行なわれています。 ところで、普通のプログラミング言語の真理値型とSQLの真理値型の違いをご存知でしょうか? それは、普通の言語の真理値型が、true、fals

    3値論理とNULL
  • SQL*Loaderメモ(Hishidama's sqlloader for Oracle9i Memo)

    CSVファイルからOracleのテーブルへデータを流し込むツール。 大量のinsert文を発行するよりは、断然高速。 データであるCSVファイルや固定長ファイルと、ロード方法を指定するコントロールファイルを用意 して実行する。 (CSVファイルからのロードはこのSQL*Loaderが使えるが、CSV出力には標準的な方法は無いらしくて、select文で加工する方法がよく使われるらしい。 このSQL文をいちいち書くのは少々面倒なので、SQL生成用Excelマクロを作ってみました) コントロールファイル CSVファイルの各項目とテーブルの項目との関連付け等を指定する。 (コントロールファイルをテキストエディタで書くのはけっこう面倒なので、コントロールファイル作成用Excelマクロを作ってみました(CSVファイル用、固定長ファイル用)) 例)emp.ctl: OPTIONS(LOAD=100,SK

  • データベースパフォーマンスに関する、僕が知りうる限り最高の教科書 - レベルエンター山本大のブログ

    データベースの醍醐味は、パフォーマンスチューニングにあります。 チューニングによっては、同じ処理でも1時間掛かる場合もあれば、 1秒で終わるということもあり得る世界です。 僕はDBの魅力に取り付かれた者の一人です。 DBという技術の奥深さが気に入っています。 DBを極めると、どこの現場に行っても絶対に必要とされます。 また、どこの現場に行っても正解を導く方程式は一緒なので応用が利くのです。 しかし、その基原理を体系的に学べる手段はあまりありません。 OracleMasterやMCDBAといった資格試験でも学べることは限られていて あとはWebで調べるなりマニュアルを読むなりするしかありませんでした。 とくに肝であるパフォーマンスチューニングについては、 経験則でチューニングしている部分も多いです。 OracleSQLServer、MySQLと色々なDBのチューニングをしてきましたが、

    データベースパフォーマンスに関する、僕が知りうる限り最高の教科書 - レベルエンター山本大のブログ
  • SQLで木と階層構造のデータを扱う――入れ子集合モデル

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

  • MSDN ホームページ

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.

    MSDN ホームページ
  • 汎用言語の常識が通用しないSQL---目次

    RDBMSを使ってシステムを構築するには,RDBMSにアクセスするための専用言語「SQL」を習得する必要がある。SQLは,C/C++Java などと同じようなプログラミング言語と考えて扱うと失敗しやすい。 汎用のプログラミング言語の多くは「手続き型」と呼ばれ,処理手順をプログラミングする言語である。一方のSQLは「非手続き型」と呼ばれる言語で,処理手順はプログラミングしない。こうした違いを中心に,SQLを使い始める際に陥りやすい失敗や気をつけるべき点などを解説する。 ・第1回(前半) 条件句の注意点 ・第1回(後半) 演算の優先順位,ソートの注意点 ・第2回(前半) 文字列型の注意点(1) ・第2回(後半) NULL値,複合インデックスの注意点 ・第3回(前半) 日付型の注意点 ・第3回(後半) 集約関数,GROUP BY句,HAVING句の注意点 ・第4回 副問い合わせ,ビューの注意点

    汎用言語の常識が通用しないSQL---目次
  • [ThinkIT] 第5回:高度なインデックスの活用 (1/2)

    ここまでは単一の列に対して作成するインデックスを前提にお話ししてきました。しかし、インデックスは同一テーブルの複数の列に対してまとめて設定することもできます。検索条件に複数列を指定する場合などは、このようなインデックスを使えばさらに効率よく処理を行うことができます。

  • [ソフトウェア] (いまさら)MyISAMのマルチカラムインデックス構造 カイハツニッキ(2008-01-24)

    _ [ソフトウェア] (いまさら)MyISAMのマルチカラムインデックス構造 MyISAM(というかMySQL)といえばマルチカラムインデックスです(インデックス1つしか使えないしー)。マルチカラムインデックスのメリットと制限については複合インデックスに書いてあって、その構造については インデックス化されたカラムの値を連結することによって生成された値が含まれ、ソート化された配列と見なすことができます と書いてあります。となると多分、 mysql> SHOW CREATE TABLE foo\G *************************** 1. row *************************** Table: foo Create Table: CREATE TABLE `foo` ( `a` int(11) default NULL, `b` int(11) def

  • Ruby DBI モジュールを使う

    Original Document revision: 1.02 Original Last update: 2003-05-27 翻訳バージョン: 0.9.5 目次 はじめに 前準備 インストール 単純なDBIスクリプト 問合せ処理 結果セットを返さない問合せ処理 結果セットを返す問合せ処理 クオート、プレースホルダー、パラメータ束縛 メタデータの問い合わせ コードブロックつきのメソッド サーバ接続の補足 エラー処理とデバッグ トランザクションサポート ドライバに特化した機能 その他の便利な機能 参考情報 はじめに Ruby DBI を使うと、いろんな種類のデータベースを同じAPIでもってrubyから アクセスすることができます。これは、Perl DBI と perl の関係と同じです。 この記事では Ruby DBI を使用したRubyスクリプトの書き方を説明します。こ の文書は DB

  • DB Browser for SQLite

    ***** WE'VE MOVED TO GITHUB ***** https://github.com/sqlitebrowser/sqlitebrowser Reason why we moved → http://blog.gluster.org/2013/08/how-far-the-once-mighty-sourceforge-has-fallen/ ***** WE'VE MOVED TO GITHUB ***** DB Browser for SQLite is a light GUI editor for SQLite databases, built on top of Qt. The main goal of the project is to allow non-technical users to create, modify and edit SQLite da

  • SQLServer2005 Express with PHP Driver CTP

    はじめに 別ページでも触れておりますが Microsoft謹製の PHP Driver CTP版が出ておりました。 ニュースソースはこちら。 PHP 5向け、SQL Server との接続ライブラリCTP公開(SQL Server 2005 Native Client前提、Windows 2000 SP4〜Windows Vistaまで) 環境について Microsoft Windows2000 Professional SP4(VirtualPC2004上) Apache2.2.6 php-5.2.4 SQLServer2005 Express SP2 sqlsrv-for-php_1.0.1045_enu.exe Driver組み込み まずは適当なディレクトリで Exeファイルの解凍をします。 ドキュメントファイルと2種類の dllファイルが含まれています。

  • 自己結合の使い方:CodeZine

    はじめに SQLが提供する結合演算には、その特徴に応じて内部結合、外部結合、クロス結合などさまざまな名前が与えられています。普通、これらの結合の多くは、異なるテーブルまたはビューを対象として行われます。しかし、SQLは結合が同一のテーブルまたはビューに適用されることを禁止していません。同一のテーブルを対象に行う結合を「自己結合(self join)」と呼びます。自己結合は、使いこなせば非常に便利な技術ですが、動作がイメージしにくいため敬遠されがちです。そこで稿では、この自己結合の便利さを例題を通して学び、その動作を分かりやすく解説します。 自己結合を理解することは、実務上のテクニックを身につける以外に、もう一つ利点があります。それは、集合指向(set-oriented)というSQLの重要な特徴を理解できることです。オブジェクト指向言語が世界をオブジェクトとして表現するように、SQLは世界

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Microsoft Corporation

    このブラウザーはサポートされなくなりました。 Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

    Microsoft Corporation
  • リレーショナル・データベースの世界

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

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

  • MySQL AB :: Managing Hierarchical Data in MySQL

    "The Documents contained within this site may include statements about Oracle's product development plans. Many factors can materially affect Oracle's product development plans and the nature and timing of future product releases. Accordingly, this Information is provided to you solely for information only, is not a commitment to deliver any material, code, or functionality, and should not be reli

  • mysql:12071 階層化されたデータをMySQLで扱う

    From: zen kishimoto <zen kishimoto <zen@xxxxxxxxxx>> Date: Sat, 03 Sep 2005 09:24:15 -0700 Subject: [mysql 12071] 階層化されたデータをMySQLで扱う (Managing Hierarchical Data in MySQL) http://dev.mysql.com/tech-resources/articles/hierarchical-data.html (図はこのサイトを参照のこと) Mike Hillyer著 初めに 多くのユーザーは一回くらいはSQLデータベース内で、階層化したデータを 扱ったことがあると思います。そのときはリレーショナル データベースは階層化したデータ用に開発されなかったと考えたと思います。 リレーショナルデータベースのテーブルは階層化されておらず

  • SELECT

    この句を使用すれば、階層の別の行に影響を及ぼすことなく、問合せで戻される行を制限することができます。問合せにWHERE句が記述されていれば、Oracle7はWHERE句の条件を満足していない階層からすべての行を削除します。Oracle7は、条件を満足しない行の子すべてを削除するのではなく、各行ごとにこの条件を個別に評価していきます。 ■ 階層問合せを実施するSELECT文は、結合を実施することができません。階層問合せを実施するSELECT文は、問合せで結合を実施するビューからデータを選択することができません。 ■ 階層問合せでORDER BY句を使用すると、Oracle7は、手順5で説明した順序ではなく、そのORDER BY句の順序で行を配置します。 ■親行の子を検出するのに、親行に対してはPRIOR式を、表の各行に対してはそれ以外の式を評価します。その条件が真となる行が、その

  • SQLの抽出結果を階層構造で表示するテクニック

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) これまではSQL文の視認性を向上させるテクニックをご紹介してきましたが、今回は抽出結果の視認性を向上させる階層問い合わせをご紹介します。 階層問い合わせの基 階層問い合わせの一番よい例は実行計画だと思いますが、その前にまず階層問い合わせの基からおさらいしましょう。 SQL> select empno,ename,job,mgr,sal,comm from emp; EMPNO ENAME JOB MGR

    SQLの抽出結果を階層構造で表示するテクニック