タグ

SQLに関するSprewellのブックマーク (26)

  • 開発者のためのSQLパフォーマンスの全て

    前書き - インデックスの作成はなぜ開発者のタスクなのか インデックスの 内部構造 - インデックスは何に似ているか インデックス リーフノード - 二重連結リスト 検索 ツリー(Bツリー) - バランス木 遅いインデックス パートI - インデックスを遅くする2つの原因 where 句 - 検索のパフォーマンスを改善するためにインデックスを作成 等価 演算子 - 一致するキーの検索 プライマリキー - インデックスの使い方を確認 複合インデックス - 複数列に対するインデックス 遅いインデックス パートII - 前の問題点が再び 関数 - where句の 中での関数 大文字・小文字を区別する 検索 - UPPERと LOWER ユーザ定義 関数 - 関数インデックスの制限 インデックスの作り過ぎ - 冗長性の排除法 パラメータ化 クエリ - セキュリティとパフォーマンスのために 範囲 検

    開発者のためのSQLパフォーマンスの全て
  • 初級〜中級者のためのSQL特訓 - 忘れないようにメモっとく

    ほぼほぼ初心者でSQLの練習がしたいっていう人、知識の再確認をしたい人にオススメのサイト。 SQLZOO ブラウザ上で動作するので、めんどくさい環境設定もなし。 データベースも、MySQLOracleSQL Server、Postgre、Ingres、DB2から選べる。 簡単なSELECT文から始まって、SUMやCOUNTみたいな基的な関数の問題や、JOINを使ったちょっと難しめの構文もある。 実行環境付きのリファレンスもあるのがよい!(超便利!)

    初級〜中級者のためのSQL特訓 - 忘れないようにメモっとく
    Sprewell
    Sprewell 2014/02/26
  • Wizard Bible

    Wizard Bibleは2018年4月22日24時に閉鎖しました。 投稿者や読者の皆様、これまでの間当にありがとうございました。 【2021年6月27日更新】 Wizard Bibleの設立から閉鎖までに至る過程を詳細に述べたが出ることになりました。 『Wizard Bible事件から考えるサイバーセキュリティ』執筆プロジェクト 興味のある方は是非読んでみてください。 Security Akademeiaに戻る

  • Oracleの階層問い合わせ一覧

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

    Oracleの階層問い合わせ一覧
  • なぜMySQLのサブクエリは遅いのか。

    よくMySQLはサブクエリが弱いと言われるが、これは当だろうか?半分は当で半分は嘘である。MySQLのサブクエリだってなんでもかんでも遅いわけではない。落とし穴をしっかり避け、使いどころを間違えなければサブクエリも高速に実行できるのである。今日はMySQLがどんな風にサブクエリを実行し、どのような場合に遅いのかということについて説明しよう。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリのカラムを参照しているサブクエリのことである。そし

    なぜMySQLのサブクエリは遅いのか。
  • 分析関数の衝撃(前編)

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

    分析関数の衝撃(前編)
    Sprewell
    Sprewell 2009/03/19
    Oracle9i/DB2/SQL Server 2005
  • 【YQL 速攻レビュー】米 Yahoo! が SQL っぽく色んなデータを取ってこれるAPIを出した - てっく煮ブログ

    Yahoo!Yahoo! Pipes みたいに自由度が高くて、またちょっと毛色が違うサービスが出てきた。題して、Yahoo! Query Language。YQL と呼ぶようだ。SQL 風の言語を REST で投げて、結果を XML や JSON で受け取ることができる。具体的にやってみないと分かりにくいので、とりあえず試してみた。RSS からデータ取得YQL を使って RSS から最新のタイトル10個を取ってきてみる。こんな YQL になるらしい。 select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss' rss テーブルに対して select を発行している。実際にこの YQL を試すには YQL 用の console を利用するとよい。(※要ログイン)console の左上に YQL を入力して

  • MySQLで分析関数を模倣2(中編)

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

    MySQLで分析関数を模倣2(中編)
    Sprewell
    Sprewell 2008/11/18
  • SQL Injectionツール - teracc’s blog

    ここのところ、いくつかのSQL Injectionツールについて調べていました。今日はその結果を日記に書いてみようと思います。 はじめに SQL Injectionツールとは SQL Injection脆弱性の発見と、発見した脆弱性を突いてのDB内情報の取得を行なうためのツールです。 ただし、多くのツールでは「脆弱性の発見」はおまけで、後者のDB内情報の取得に主眼を置いています。一般的には、汎用のWeb脆弱性スキャナなどで脆弱性を見つけて、その脆弱性に対してこの日記に書いているようなツールを使って情報を取得するという使い方をすることが多いでしょう。 SQL Injectionツールは、いわゆるHackingツールです。脆弱性検査を行なう者か、さもなければCrackingを行なう犯罪者が使うくらいで、一般のWeb開発者やユーザの人が使う必要に迫られることは無いでしょう。 ツールの使用に際して

    SQL Injectionツール - teracc’s blog
  • htmlSQL - a PHP class to query the web by an SQL like language

    This is a archive of older and discontinued projects and experiments I worked on. Test Everything (2007 — 2020) A meta testing tool for your website. My blog (2006 — 2011) From 2006 till 2008 I wrote articles in my german blog named “Lost in programming”. In 2011 I removed the remaining old articles from my homepage. Free icon set (2007) Years ago I made a free icon set from freely available stock

  • 最短かつ最速にアクセスする「DB高速化技術」(前編):ITpro

    ポイント ・高度なインデックスやジョインを利用し,最短経路でデータにアクセス ・メモリー不足を自律的に解消し,キャッシュのヒット率を高める ・インメモリーDBは全データをメモリーで処理し,高速化を図る 目的地に早く到着したいなら,最短の経路を最速で行けばよい。これはデータベース(DB)でも同様だ(図1)。インデックスなどを使ってデータへの最短経路を見つけ,メモリー・アクセスを増やして,最速でたどり着く。DBにはそんな技術が詰まっている。 図1●データベース高速化技術のポイント ビットマップ・インデックスなどを使い、データにたどり着く最短の道を選ぶ。また、できるだけメモリーにデータをキャッシュさせておくことで、アクセスのスピードを上げる、という二つのポイントがある [画像のクリックで拡大表示] 以下では,(1)データにたどり着く最短の道を選ぶ仕組みと,(2)アクセスのスピードを上げる仕組みの

    最短かつ最速にアクセスする「DB高速化技術」(前編):ITpro
  • SQLによる数独の解法:CodeZine

    はじめに SQLを使って数独(ナンプレ)を解く方法を紹介します。 データベースを操作するための言語であるSQLを別の用途に使おうとする理由は、SQLが宣言的な記述が可能な言語の中で最も普及していると思われるからです(宣言的言語と言えばPrologを思い浮かべる方も多いかもしれませんが、残念なことにPrologは、SQLほどには普及していません)。 まず、宣言的な記述について説明しましょう。タクシーに乗ることを想像してください。「渋谷に行ってください」というように、欲しい結果を書くのが宣言的な記述です。具体的な道筋は運転手が考えてくれます。それに対して「まずA通りを北に行って、B交差点を左折して・・・」というように、具体的な道筋を示すのは手続き的記述です。プログラミング言語の場合も同様です。SQLやPrologにおいては、欲しい結果をプログラマが書けば、具体的な実現方法はコンピュータが考えて

  • SQLで木と階層構造のデータを扱う――入れ子集合モデル

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

    Sprewell
    Sprewell 2007/09/03
  • 分析関数の衝撃(中編):CodeZine

    はじめに 「分析関数の衝撃(前編)」に引き続き、CodeZineのミック氏の記事で記載されたSQLを、分析関数を使って記述していきます。対象読者SQLの可読性を向上させたい方SQLのパフォーマンスを向上させたい方  この記事では、「自己結合の使い方」と、「相関サブクエリで行と行を比較する」に記載されているSQLを分析関数を使って記述していきますので、先に読まれた方が理解がしやすいと思います。必要な環境 稿で扱うSQLは、Oracle 10.2.0.1.0で動作確認しました。ソースコードはDB2 V9.1でも動作確認しました。その他、Oracle9i以降DB2SQL Server 2005  でも応用できます。1. 部分的に不一致なキーの検索 まずは部分的に不一致なキーを検索するSQLについてです。「自己結合の使い方」では、以下の自己非等値結合を使うSQLが提示されています。 SELECT

    Sprewell
    Sprewell 2007/07/24
  • 分析関数の衝撃(前編):CodeZine

    はじめに Oracle9iから(厳密には、8.1.6 Enterprise Edition)から使用可能な分析関数について解説します。分析関数はSQL ServerやDB2でも使用できますし、標準SQLなので、いずれは他のDBでも使えるようになるはずです。 稿では分析関数の便利さを実感しやすくするために、CodeZineのミック氏の記事で記載されたSQLを、分析関数を使って記述していきます。対象読者SQLで分析関数を使ったことがない方SQLの可読性を向上させたい方SQLのパフォーマンスを向上させたい方 分析関数について SQLで分析関数を使ったことがない方は、@ITSQLクリニック(8) 極めよう! 分析関数によるSQL高速化計画』@ITSQLクリニック(9) SQL分析関数をさらに深く追求してみよう』@ITSQLクリニック(10) まだまだあるぞ! 分析関数の究極テクニック

    Sprewell
    Sprewell 2007/07/19
  • SQLで集合演算:CodeZine

    はじめに SQLが集合論に立脚する言語であるということは、この連載で一貫して強調してきたテーマの一つです。その特性のゆえに、SQLは「集合指向言語」と呼ばれていますし、実際、集合的な観点から見たときに初めて、その強力さが理解できると私は考えています。しかし現実には、SQLのこの側面は長らく無視されてきました。 その背景には、SQLにも責任の一端があります。というのも、SQLはちょっと前まで、高校で習う程度の基的な集合演算子すら持っていなかったからです。和(UNION)こそSQL-86からの古参ですが、交差(INTERSECT)と差(EXCEPT)が標準に入ったのはSQL-92ですし、除算(DIVIDE BY)が未だに標準化されていないことは、前にも述べました。だから、SQLが言語として不完全だという批判は、理由のないものではなかったのです。 しかし、現在では標準SQLに基的な集合演算子

    Sprewell
    Sprewell 2007/05/25
  • 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

    Sprewell
    Sprewell 2007/03/30
  • SQLで数列を扱う:CodeZine

    はじめに 関係モデルのデータ構造には、「順序」という概念がありません。必然的に、その実装であるリレーショナル・データベースのテーブルやビューにも、(たてまえ上)行列の順序がありません。同様にSQLも、順序集合を扱うことを直接的な目的とはしていません。 そのため、SQLでの順序集合の扱い方は、最初から順序を扱うことを目的とした手続き型言語とファイルシステムのアプローチとはかなり異質なものになります。しかし、異質ではあるものの、そこに確固たる原理が存在することも確かです。一言で言えば、集合と述語――特に「量化子」(quantifier)と呼ばれる特別な述語の使い方が鍵になります。 稿では、SQLを使って、数列や日付などの順序を持つデータを扱う方法を解説します。単にTipsを列挙するだけでなく、できれば、解法に共通する基的な原理を取り出し、未知の問題に取り組むときにも適用できる一般的な指針と

    Sprewell
    Sprewell 2007/03/20
  • SQL Injection Cheat Sheet

    Examples; (MS) means : MySQL and SQL Server etc. (M*S) means : Only in some versions of MySQL or special conditions see related note and SQL Server Table Of Contents About SQL Injection Cheat Sheet Syntax Reference, Sample Attacks and Dirty SQL Injection Tricks Line Comments SQL Injection Attack Samples Inline Comments Classical Inline Comment SQL Injection Attack Samples MySQL Vers

  • SQL Formatter / SQLFormatter formats SQL Statements

    SQL developers have varying opinions on SQL formatters, just like with any other tool. Some SQL developers prefer to format their code manually, while others find SQL formatters to be useful and essential tools. Here are some reasons how a SQL Formatter can support you and your team. Readability: A well-formatted SQL code is easier to read and understand, making it easier for you and others to mai

    SQL Formatter / SQLFormatter formats SQL Statements