タグ

SQLに関するuronim1のブックマーク (11)

  • SQL Code Formatter

    Click HERE to view desktop version/add-in version for ssms/vs of SQL Pretty Printer. Click HERE to try FREE ONLINE SQL beautifier, also known as Instant SQL Formatter. Instant SQL Formatter is a free online sql tidy tool, actually, it not only can beautify your sql but also can turn your formatted sql into html code, so you can post coloured sql code in your blog, forum,wiki and any website easily

    uronim1
    uronim1 2007/10/31
    フォー待った
  • 帰ってきたHAVING句:CodeZine

    はじめに SQLのクラスを教えるとき、最大の課題の一つが、生徒たちがそれまでに手続き型言語から身に付けたことを、一度「頭から追い出す(unlearn)」ことだ。私がそのとき採る一つの方法は、処理を「レコード単位」ではなく、集合という観点から考えるよう強調することである。 ――――J.セルコ  SQLの考え方を習得するときに最大の障壁となるのが、私たちの多くが慣れ親しんだ手続き型言語の考え方(ソート、ループ、分岐、代入、等々)です。SQL質を理解するには、私たちの心に強固に貼り付いてしまった思考パターンを、一度ベリベリと引き剥がし、更地に戻してやる必要があります。それが、セルコが「unlearn」という言葉に込めたニュアンスです。セルコ自身、Fortranからプログラマとしてのキャリアを開始し、C、Algol、Pascalと手続き型言語を渡り歩いた後にSQLを身に付けた人物だけに、言葉に

    uronim1
    uronim1 2007/07/15
  • P6Spy Open Source Software

    Download version 1.3. Released November 30, 2003. Alan Arvesen fixed the "String Index Out Of Bounds" error (bug 238, 239, 246, etc.) Alan Arvesen added a major new feature: a solution to DataSources. The biggest problem with DataSources is that, unlike plain Drivers, they are not managed by the DriverManager but rather something else. "Something Else" usually means "your app server." The app ser

  • 自己結合の使い方:CodeZine

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

    uronim1
    uronim1 2006/08/24
  • CASE式のススメ(前編):CodeZine

    こんなとき、皆さんならどうしますか? 「地方コード」という列を持つビューを定義する、というのも一つの方法です。しかしそれだと、集計に使いたいコード体系の数だけ列を追加しなければなりませんし、動的な変更も困難です。 CASE式を使うと次のような一つのSQLで取出しが可能です。ここでは分かりやすくするために、コードの代わりに県名(pref_name)をGROUP BYのキーに使います。 SELECT SUM(population), CASE pref_name WHEN '徳島県' THEN '四国' WHEN '香川県' THEN '四国' WHEN '愛媛県' THEN '四国' WHEN '高知県' THEN '四国' WHEN '福岡県' THEN '九州' WHEN '佐賀県' THEN '九州' WHEN '長崎県' THEN '九州' ELSE 'その他' E

    uronim1
    uronim1 2006/08/08
  • 6月のはぶにっき

    not found

  • [ThinkIT] 第3回:SQLインジェクションの注意点 (1/3)

    データベースを扱う時に考慮しなければならない最後の問題は、おそらくアプリケーションのデータベースに対する認証情報、つまりデータベースアクセスを許可するログイン情報やパスワードをどうやって保持するのか、ということではないでしょうか。ほとんどのアプリケーションではPHPの小さな設定スクリプトを使ってログイン名やパスワードを変数に割り当てています。 このような設定ファイルが、サーバ利用者が自由にアクセスして読めるような状態になっていることが(専用ホストでないなら)よくあります。しかし誰にでも読めるということは、同じシステム上の誰でも、または悪質なスクリプトがそのファイルを読み、データベースログインに必要な情報を盗めてしまうということです。 さらに悪いことに、多くのアプリケーションではこのファイルはウェブ上から閲覧可能なディレクトリに置かれており、.incのようなPHPファイルと認識されない拡張子

    uronim1
    uronim1 2006/01/31
  • [ThinkIT] 第2回:クエリを使用したSQLインジェクション (1/3)

    しかし、エスケープ関数を使えばいつでもデータの安全性が保障されるわけではありません。あるクエリに対しては、エスケープを適用した後でもSQLインジェクションを許してしまいます。Int型の値をとることを想定した次の場合について考えてみましょう。 $id = "0; DELETE FROM users"; $id = mysql_real_escape_string($id); // 0; DELETE FROM users mysql_query("SELECT * FROM users WHERE id={$id}"); Int型の時は、値をシングルクォートで囲う必要がありません。そのため、セミコロンでクエリが分割され、SQL文を不正に入れることができます。セミコロンには'特別'な意味はないため、データベースのエスケープ関数にもaddslashes()にもスルーされてしまいます。 この問題に

  • [ThinkIT] 第1回:SQLインジェクションによるデータベース操作 (1/3)

    SQLインジェクションでは、クエリなどの任意データを、データベースが実行するSQL文に挿入します。挿入されたクエリは、意図しないデータを検索したり、データベースの情報を変更したり削除したりするというように、様々な操作をデータベースに行います。問題を実証するために次の例を見てみましょう。 // 問題を実証するための入力 $name = "ilia'; DELETE FROM users;"; mysql_query("SELECT * FROM users WHERE name='{$name}'"); 上記の関数内では、ユーザが指定した名前とnameカラムの値が一致したデータをusersテーブルから取り出すことを想定しています。普通、$nameには、iliaといった文字列のように、アルファベットとスペースからできた文字列が格納されています。 しかしここでは、$nameにまったく新しいクエリ

  • WWW SQL Designer

    What's new? 25.9.2008 Version 2.2 SQLite storage New datatypes New translations 18.7.2008 Version 2.1.1 Fixes in MySQL XSLT Minor improvements 28.6.2008 Version 2.1 New languages Dynamic window title "note" datatype attribute 1.4.2008 Version 2.0.1 Fixed AUTOINCREMENT for Foreign Keys Minimap visual aesthetic changes 28.3.2008 Version 2.0 ! Thanks to Mirko Buffoni for numerous consultations and su

  • PreparedStatementAndNull

    312 :1/3:05/03/12 03:17:26 ID:??? 突然ですが,面白い SQL を思いついたので,ご意見を頂きたいです.興味を持たれた方は使ってみてくだちい。 一般的に,SQL の発行は,プリペアドステートメントを使う方がよいとされている.その理由は, DBMS のキャッシュが良く効く. SQL インジェクション等の危険が避けられる,等. しかし,webアプリの検索フォームなどでは,プリペアドステートメントは使えない場合が多かった.検索条件項目が複数存在していて,いずれの項目も必須で無い場合,項目が入力されているかどうかをチェックし,それに合わせてSQL 文の WHERE 句の内容をツギハギしなければならないからだ. SQL文そのものも,そしてそれにセットする引数の個数も可変なので,プリペアドステートメントを使うのは無理だったのである. 今回思いついたのは,このような条件で

  • 1