タグ

sqlに関するhiro_yのブックマーク (42)

  • GitHub - c9s/SQLBuilder: A powerful, fast, cross-platform SQL Builder for PHP. Convert your structured data into SQL queries with a fluent style interface and targeting on all the mainstream database (MySQL, PostgreSQL, SQLite)

    use SQLBuilder\ArgumentArray; use SQLBuilder\Universal\Query\SelectQuery; use SQLBuilder\Driver\MySQLDriver; use SQLBuilder\Driver\PgSQLDriver; use SQLBuilder\Driver\SQLiteDriver; $mysql = new MySQLDriver; $args = new ArgumentArray; $query = new SelectQuery; $query->select(array('id', 'name', 'phone', 'address','confirmed')) ->from('users', 'u') ->partitions('u1', 'u2', 'u3') ->where() ->is('confi

    GitHub - c9s/SQLBuilder: A powerful, fast, cross-platform SQL Builder for PHP. Convert your structured data into SQL queries with a fluent style interface and targeting on all the mainstream database (MySQL, PostgreSQL, SQLite)
    hiro_y
    hiro_y 2012/03/05
    「A Powerful, Fast SQL Builder in PHP5.3」
  • YAPC::Asia 2011 おつかれさまでした - かみぽわーる

    YAPC::Asia 2011 おつかれさまでした! 今回は前夜祭のRejectConfと2日目のLTでトークをしてきました。 RejectConf 当は難しいフレンド・タイムライン処理という話をしました。 この手の機能はWebのソーシャル系サービスなら必ずといっていいほど当たり前に実装されている機能で、小規模のサービスでも中規模のサービスでも程度の差こそあれ問題になり得ます。 効率的に実装されていない負荷の高い機能は、より多くの設備投資を必要にするし、サービスを提供する裏でより多くの人の労力を犠牲にしないと成り立たないので最悪です。 このトークを聴いてくれた人が「そういえばこういう問題があるんだっけな」と想像力を働かせられるきっかけになればうれしいなと思います。 LT MySQLでMessagePackの中身を検索ということで、MySQLに構造化されたデータをシリアライズして突っ込むこ

    YAPC::Asia 2011 おつかれさまでした - かみぽわーる
    hiro_y
    hiro_y 2011/10/18
    タイムラインをどう効率良く取得するか
  • なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」のまとめ

    大垣氏が寄稿された『なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」』の内容を受け、つぶやかれたものをまとめました。

    なぜPHPアプリにセキュリティホールが多いのか? 「第42回 PostgreSQL 9.0に見るSQLインジェクション対策」のまとめ
    hiro_y
    hiro_y 2011/05/22
    議論かみ合ってないけど。
  • limit/offsetについて考える - だるろぐ

    LIMIT 20 OFFSET (:page - 1) * 20 みたいなクエリは :page に大きい値が入れれるように設計されてるとクエリに殺されるので、 WHERE key = :offset_for_next_page LIMIT 20 なクエリになるよう設計してほしい。 http://twitter.com/kamipo/status/56304601049210880 俺もボスに教わるまで知らなかったのだが、 mysql> select id from mentions order by id asc limit 100, 10;がすることは、 データを10個だけfetchする ではなく、 110個データをfetchして、先頭から100個捨てる だ。何を今更って感じですよねー知ったのは10ヶ月ほど前でした。俺の未熟さを思い知れ。 で。このようにlimitを付けてデータを取得する

    limit/offsetについて考える - だるろぐ
    hiro_y
    hiro_y 2011/04/16
    limit 100,10がしていることは「110個データをfetchして、先頭から100個捨てる」こと。
  • Web Page Under Construction

    Network Solutions - Original domain name registration and reservation services with variety of internet-related business offerings. Quick, dependable and reliable.

    hiro_y
    hiro_y 2010/09/17
    MySQLのSQLだけで緯度/経度から距離を計算
  • SQLのlike演算子でエスケープが必要な文字 - teracc’s blog

    まとめると以下のようになると思います。 Oracle % _ %(全角)_(全角) DB2 % _ %(全角)_(全角) MS SQL Server % _ [ MySQL % _ PostgreSQL % _ 注意点は以下のとおり。 DB2、Oracleは、「%」「_」(全角)もワイルドカードとして解釈する SQL Serverは、[a-z]のような正規表現的な記述を解釈する 当然、ワイルドカード的な機能を持たせたい「%」や「_」等はエスケープしない 全データベース共通の話として、エスケープ文字自体もエスケープする必要がある(MySQL、Postgresでは「\」がデフォルトのエスケープ文字) likeのエスケープをした後に、Prepared Statementで値をSQLにバインドする (関連)2008-07-10 - T.Teradaの日記

    SQLのlike演算子でエスケープが必要な文字 - teracc’s blog
    hiro_y
    hiro_y 2009/07/04
    likeでエスケープが必要な文字まとめ。
  • 開発環境で自動でSQLにExplainをかけるコンポーネント バージョンアップ(1.1) PostgreSQL対応 - cakephperの日記(CakePHP, Laravel, PHP)

    English page is here. 何度もバージョンアップしてすみません。MASA-Pさんのコメントや、あつさんのトラックバックからPostgreSQLでは一部のExplain結果しか出力されない問題がわかりました。ありがとうございます。 PostgreSQLで検証してませんでした、手を抜いてすみません。。。 というわけで、PostgreSQL対応しました。あつさんのコードを参考にしました。 下記のような画面になります。 最新版はここからダウンロードしてください。 PostgreSQL対応の差分だけ解説します CakePHP のおいしいべ方で英語で紹介してもらえて、http://planetcakephp.org/にも反映されたので、ソースコードは全部載せておきます <?php /** * ExplainSqlComponent - Auto execute SQL Explai

    開発環境で自動でSQLにExplainをかけるコンポーネント バージョンアップ(1.1) PostgreSQL対応 - cakephperの日記(CakePHP, Laravel, PHP)
    hiro_y
    hiro_y 2009/03/11
    MySQL/PostgreSQLに対応したSQLのexplain結果をデバッグ表示できるCakePHPコンポーネント。
  • SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog

    以前このブログでも取り上げたことのある神戸デジタル・ラボの近藤伸明氏がThink IT上で「SQLインジェクション大全」という連載を執筆しておられる。その第三回「SQLインジェクションの対策」を読んで以下の部分が引っかかった。 バインド機構とは、あらかじめSQL文のひな型を用意し、後から変動個所(プレースホルダ)に実際の値(バインド値)を割り当ててSQL文を生成するデータベースの機能だ。バインド値はエスケープ処理した後にプレースホルダにはめ込むので、悪意あるSQL文が挿入されても、その実行を阻止することができる(図1-2)。 http://thinkit.jp/article/847/1/ たしかにエスケープ処理を使ってバインド機構を実装する場合もある。JavaMySQLの組み合わせでUnicodeのU+00A5を用いたSQLインジェクションの可能性 | 徳丸浩の日記から派生して、MyS

    SQLのバインド機構は「エスケープ処理された値」をはめ込むのか - ockeghem's blog
    hiro_y
    hiro_y 2009/03/01
    サーバーサイドのプリペアードステートメントのメリットとは。「SQLの構文解析はプレースホルダのまま行われるので原理的にSQLインジェクションの可能性がない」「キャッシュされるのでSQLの実行効率が向上する」
  • Martin Fowler氏はデータストレージについての凍結した考えがほぐれてきたと考えている

    あなたにとって重要なトピックや同僚の最新情報を入手しましょう最新の洞察とトレンドに関する最新情報を即座に受け取りましょう。 継続的な学習のために、無料のリソースに手軽にアクセスしましょうミニブック、トランスクリプト付き動画、およびトレーニング教材。 記事を保存して、いつでも読むことができます記事をブックマークして、準備ができたらいつでも読めます。

    Martin Fowler氏はデータストレージについての凍結した考えがほぐれてきたと考えている
    hiro_y
    hiro_y 2008/12/12
    「もしあなたが統合のプロトコルをSQLからHTTPに変えたら、それはあなたがデータベースを統合データベース(リンク)からアプリケーション・データベース(リンク)に変えられるということです。」
  • RDBMSの時代の終わりが見えてきた - きしだのはてな

    クラウドと一緒にやってきたもの 最近、クラウドが流行ってます。 GoogleMapResuceから始まって、MicrosoftのAzureまで、大手のクラウド製品が出揃った感じ。 で、そこで、こんなクラウド製品が出ましたというときに、必ずといっていいほどそのクラウド用のデータベースの説明があります。そして、それはRDBMSではありません。 GoogleだとBigTable、MicrosoftだとSQL Data Services、あとはAmazonSimpleDB。どれも、基的にはひとつのテーブルにハッシュコードでアクセスするようになっています。 ほかのクラウド製品も、Oracle Coherenceだったり、楽天のRomaだったり、非RDBMSのデータストレージを提供します。 クラウドというわけではないけど、mixiのTokyo TyrantやApache CouchDBも、RDB

    RDBMSの時代の終わりが見えてきた - きしだのはてな
    hiro_y
    hiro_y 2008/12/12
    RDBMSからの脱却とか。流れとしては同意だけど。
  • ダウンロード - HASHコンサルティング株式会社

    Copyright(C)2008 HASH Consulting Corporation. All Rights Reserved.

    hiro_y
    hiro_y 2008/07/16
    SQLインジェクションに関する発表資料あり。
  • 2008-07-10 - T.Teradaの日記 - SQLのLIKE演算子のエスケープ

    例えば、「\%foo」から始まる文字列を検索する場合には、どのようなSQL文を書けばよいのでしょうか。 条件は以下の通りです。 DBMSソフトはMySQL ESCAPE節は使わない MySQLでESCAPE節を使わない場合、ワイルドカード文字(「%」や「_」)は「\」でエスケープすることになります。 間違った答え 直感的に以下のようなSQL文を書いてしまう人もいると思います。 SELECT * FROM table1 WHERE hoge LIKE '\\\%foo%'; 実際に試して見ます。 mysql> SELECT 123 FROM dual WHERE '\\%foo456' LIKE '\\\%foo%'; +-----+ | 123 | +-----+ | 123 | +-----+ 1 row in set (0.00 sec) mysql> SELECT 123 FROM

    2008-07-10 - T.Teradaの日記 - SQLのLIKE演算子のエスケープ
    hiro_y
    hiro_y 2008/07/13
    MySQLでlike演算子を使う場合のエスケープ。
  • SQLエスケープにおける「\」の取り扱い

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2008年6月2日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 昨日のエントリ(徳丸浩の日記 - そろそろSQLエスケープに関して一言いっとくか - SQLのエスケープ再考)は思いがけず多くの方に読んでいただいた。ありがとうございます。その中で高木浩光氏からブクマコメントを頂戴した。 \がescape用文字のDBで\のescapeが必須になる理由が明確に書かれてない。\'が与えられたとき'だけescapeすると…。自作escapeは危うい。「安全な…作り方」3版で追加の「3.失敗例」ではDBで用意されたescape機能しか推奨していない このうち、まず「\」のエスケープが必

    hiro_y
    hiro_y 2008/07/06
    SQLのエスケープで「\」のエスケープが必要な理由。
  • 徳丸浩の日記 - そろそろSQLエスケープに関して一言いっとくか - SQLのエスケープ再考

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2007年11月26日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり 稿ではSQLインジェクション対策として、SQLのエスケープ処理の方法について検討する。 最近SQLインジェクション攻撃が猛威を振るっていることもあり、SQLインジェクションに対する解説記事が増えてきたようだが、対策方法については十分に書かれていないように感じる。非常に稀なケースの対応が不十分だと言っているのではない。ごく基的なことが十分書かれていないと思うのだ。 SQLインジェクション対策には二通りある。バインド機構を使うものと、SQLのエスケープによるものだ。このうち、SQLのエスケープについて、十分

    hiro_y
    hiro_y 2008/07/06
    DBのバインド機構を使わないSQLのエスケープについて。
  • Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話

    « Japanize for IE バージョンアップのおしらせ | メイン | Filter::SQL を使って掲示板を書いてみました » 2008年04月16日 Perl で埋め込み SQL を使って楽をする話 DSL (ドメイン固有言語) は、プログラム開発の生産性を向上させる有力な手段です。そして、よく使われる DSL の代表例が正規表現と SQL だと思うのですが、前者に比して後者を嫌いな人が多いようです。なぜだろうと思ってつぶやいたところ、「SQL はリテラルじゃないから!」という答えが tokuhirom さんから返ってきました。そういえば例えば Pro*C のように C で Embedded SQL というのは良く聞く話なのに、Perl では同様の例がないような感じだったので、作ってみました。Perl で埋め込み SQL を実現するソースフィルター Filter::SQL

    hiro_y
    hiro_y 2008/04/18
    Perlのコード中にSQLをそのまま書く。
  • この発想はなかった - 書評 - 逆算式SQL教科書 : 404 Blog Not Found

    2007年12月28日02:45 カテゴリ書評/画評/品評Lightweight Languages この発想はなかった - 書評 - 逆算式SQL教科書 技術評論社書籍編集部池様より献御礼。 ぐんぐん実力がつく! 逆算式SQL教科書 小野哲 やられた! この発想はなかったよ。 書「ぐんぐん実力がつく!逆算式SQL教科書」は、一言で言うと「それってどう書く」のSQL版。文法や命令を説明するのではなく、「こうしたい時にはどうするの」という実例集。他の言語だと、いわゆるCookbookというのがすでにかなりあるのだけど、SQLはまだなかった。 目次 - 書籍案内:ぐんぐん実力がつく! 逆算式SQL教科書|gihyo.jp … 技術評論社 第1章 逆算してみませんか? 第2章 最も基的なSELECT文 第3章 次に重要なSELECT文 第4章 1ランク上のSELECT文 第5章 覚えてお

    この発想はなかった - 書評 - 逆算式SQL教科書 : 404 Blog Not Found
    hiro_y
    hiro_y 2008/01/03
    「SQLは『単なる』データ永続化の手段として使うには、あまりに高機能」そうそう。
  • SQLのTIMESTAMP型と日付「0000-00-00」

    こんにちは。hnwです。今回はSQLの話題です。SQLで、TIMESTAMP型(MySQL で言えばDATETIME型)のカラムに未定義値の意味で「0000-00-00 00:00:00」という値をセットする人が居るかと思います。でも、これは止めた方がいいんじゃないでしょうか、という話題です。 標準SQLについて 私の手元に『標準SQLガイド 改訂第4版』というSQL/92の解説があるのですが、「17.3 日時」によれば、TIMESTAMP型で扱える範囲は0001-01-01 00:00:00から9999-12-31 23:59:61.999までとなっています。つまり、標準SQLのTIMESTAMP型を考えると0000-00-00の扱いは未定義ということになります。 PostgreSQLについて PostgreSQLのTIMESTAMP型に関して言うと、標準SQLを超える範囲の年も扱える

    hiro_y
    hiro_y 2007/11/15
    timestamp型に「0000-00-00 00:00:00」をセットすることについて。
  • SQL Hacks

    すでにSQL言語を使いこなしている読者のために、ユニークですぐに役立つテクニックを紹介するのが、書『SQL Hacks』です。プログラムのパフォーマンスを向上させ、データベースの管理を容易にする秘密の方法を紹介します。陥りがちな失敗例の解説が充実していることも特徴です。取り上げるテーマは「SQLの基」「JOIN、UNION、VIEW」「文字列の処理」「日付の処理」「数値の処理」「オンラインアプリケーション」「さまざまなデータの構成」「小さいデータの格納」「ロックとパフォーマンス」「レポートの作成」「ユーザと管理」など。MySQLを中心に、SQL Server、Oracle、PostgreSQLについても解説を行いました。 訳者まえがき クレジット はじめに 1章 SQLの基 1. コマンドラインからSQLを実行する 2. プログラムからデータベースに接続する 3. 条件付きINSER

    SQL Hacks
    hiro_y
    hiro_y 2007/07/12
    SQL Hacks、オライリーから。
  • 帰ってきたHAVING句:CodeZine

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

    hiro_y
    hiro_y 2007/07/12
    havingの使い方。
  • Christophe Coenraets » New version of Salesbuilder Flex / AIR application

    Before moving ahead and trying to know anything else, it’s important that we first understand what exactly is apache flex. Apache Flex ( Formerly known as Adobe Flex ) is a set of tools and libraries that helped in making Adobe Flash Apps and games. The Flex framework had 2 main components, MXML and ActionScript XML MXML is an XML-based markup language used for describing the UI of an application.

    Christophe Coenraets » New version of Salesbuilder Flex / AIR application
    hiro_y
    hiro_y 2007/06/28
    Flexベース、Google Gears用のSQLAdmin。