タグ

SQLに関するtyruのブックマーク (30)

  • go-sqlrow

    この記事はGo2 Advent Calendar 2017 13日目の記事です。 昨日は@kami_zh さんの Goで標準出力をキャプチャするパッケージを書いた でした。 go-sqlrowGo言語で標準パッケージを使用してRDBMSからデータを取ってくるには、以下の様に書きます1。 type Person struct { ID string Name string } db, _ := sql.Open("dn", "dsn") row, _ := db.Query(`SELECT id, name FROM person where id='foo'`) var p Person row.Scan(&p.ID, &p.Name) SQL文を発行するまではいいのですが、最後の行、sql.Row#Scanがくせ者です。 上記の例のように、sql.row#Scanは可変長個のポインタを引

    go-sqlrow
  • MySQLでGROUP BYを高速化したい

    tyru
    tyru 2017/02/07
    text 型は低速なので、text 型のカラムのハッシュ値を varchar 型のカラムとして追加。そしてインデックス貼って GROUP BY。なるほど
  • Web SQL Database

    W3C Working Group Note 18 November 2010 This Version: http://www.w3.org/TR/2010/NOTE-webdatabase-20101118/ Latest Published Version: http://www.w3.org/TR/webdatabase/ Latest Editor's Draft: http://dev.w3.org/html5/webdatabase/ Previous Versions: http://www.w3.org/TR/2009/WD-webdatabase-20091222/ http://www.w3.org/TR/2009/WD-webdatabase-20091029/ http://www.w3.org/TR/2009/WD-webstorage-20090423/ Ed

    tyru
    tyru 2016/01/19
    とっくに廃止になってるWeb SQL Database。ただPhoneGapでもStorage APIがあったりSQLiteをダイレクトに使う等の方法は残っているので、SQLが使えなくなった訳じゃない。SQLかKey-Valueかはたまた他の持ち方をするか悩む。
  • 640PLUS跡地(記事保管庫)

    retuner640 2012年8月までに私retuner640が書いたブログの跡地です。現在は主な記事の保管庫として使用しています。

    tyru
    tyru 2014/12/17
  • What's the difference between comma separated joins and join on syntax in MySQL?

    tyru
    tyru 2014/12/14
    JOIN使った方が結合条件が見やすくなる、文法的なミスが起きにくい、古い標準SQLである等々
  • とある診断員とSQLインジェクション

    2019/10/16 初心者向けCTFのWeb分野の強化法 CTFのweb分野を勉強しているものの番でなかなか解けないと悩んでいないでしょうか?そんな悩みを持った方を対象に、私の経験からweb分野の強化法を解説します。 How to strengthen the CTF Web field for beginners !! Although you are studying the CTF web field, are you worried that you can't solve it in production? For those who have such problems, I will explain how to strengthen the web field based on my experience. (study group) https://yahoo-osa

    とある診断員とSQLインジェクション
    tyru
    tyru 2014/06/01
    「テスト環境用意してもらえない→本番環境で脆弱性チェック→SQLインジェクションの脆弱性が有り全ユーザーのパスワードリセット」つらい…
  • SQLインジェクション対策に正解はない

    最近、SQLインジェクションのネタが盛り上がってるようだ。下記のTogetterまとめあたりが震源地だろうか。 「プリペアードクエリが基だけど、動的に SQL を組み立てる場合もあるから、そういう場合に備えてエスケープも知っておいたほうがいいかも」 - Togetterまとめ まとめを読んだ感想としては、「どちらの意見も間違ってはいない」というものだ。前提あるいは見方が異なるために、見解の相違が生じているだけのように思う。SQLインジェクションについては私も若干思うところがあるので意見を書いておこうと思う。 攻撃を防ぐのは難しいSQLインジェクションをはじめとするセキュリティ対策が難しいのは、ひとつでも穴があると致命的なダメージを受け得るということだ。「どうやって効率よくコードを書くか」とか「コードのメンテナンス性を高めるにはどう書くべきか」みたいな議論とは全く質が異なる議論が必要になっ

    SQLインジェクション対策に正解はない
    tyru
    tyru 2014/03/30
    いくつか追加条件を指定できる検索画面では組み立てていくしかないって話/ライブラリ(O/Rマッパー)での対処例としてはこういうのがいいと思う http://doma.seasar.org/reference/sqlfile.html#条件コメント
  • サービス終了のお知らせ

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

  • Entity-Attribute-Value: SQL アンチパターン - ペンギンラボ Wiki

    Bill Karwin “SQL Antipatterns: Avoiding the Pitfalls of Database Programming” の読書メモ。 Jaywalking 目的 ある属性について、複数の値を持たせる。 アンチパターン : カンマ区切りリスト カンマ区切りで複数の値を 1 つの列に納める。 例では、特定の製品についての担当者を複数設定するのにカンマ区切りで、担当者のアカウントIDを記述している。 create table products ( product_id integer, product_name varchar(1000), acount_id varchar(100), -- comma separated list -- ... ); insert into products (product_id, product_name, accou

    tyru
    tyru 2014/03/16
  • サービス終了のお知らせ

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

    tyru
    tyru 2014/03/09
  • Window関数 - 導入編 - still deeper

    はじめに エントリーは PostgreSQL Advent Calendar 2012 に参加しています。 エントリーではWindow関数がどういうものか、SQLでどう表すかについて説明します。 Window関数とは? SQLにはWindow関数と呼ばれる機能があります。SQL:2003で定義されており、PostgreSQLには8.4から導入されています。 Window関数がどういうものかというと、wikipediaを見ると次のように書いてあります。 SQL において、窓関数もしくはウィンドウ関数 (英: window function) は結果セットを 部分的に切り出した領域に集約関数を適用できる、拡張された SELECT ステートメントである。 窓関数 (SQL)) より引用 分かったような分からないような説明ですね。 確かに上の説明の通りではあるのですが、なぜ必要になるのかを順を

    tyru
    tyru 2014/02/12
    集約では集合全体の特徴を知ることはできても、行が全体の中でどういう立場にあるかということは調べられない/Window関数、分析関数、OLAP関数等と呼ばれ、パーティション、ウインドウフレームから構成される
  • 分析関数のウィンドウフレーム - Road to DBD:楽天ブログ

    2012.06.09 分析関数のウィンドウフレーム カテゴリ:DB-SQL Server 2012 SQL Sever 2012ではついにOVER句のウィンドウフレームがサポートされた。 SQL Server 2008までの議論では、セットベース(一括処理)・カーソルベース(順次処理)の2通りのアプローチのうち、後者がパフォーマンスで上回る可能性があるのは、累計算出のケースのみだとされてきた。 それもSQL Server 2008ではウィンドウフレームをサポートしていなかったからで、SQL Server 2012ではさらにカーソルへの依存を低下させることができると思われる。 (Oracleがとうの昔に対応済であることを考えると、遅きに失した感はあるが・・) ・SUM/AVG/COUNTなどの集計関数の場合でOrder句のみを記述した場合、 「RANGE BETWEEN UNBOUNDED

    分析関数のウィンドウフレーム - Road to DBD:楽天ブログ
    tyru
    tyru 2014/02/12
    SQL Server 2012の分析関数のガッカリ感>「ROW_NUMBER/DENSE_RANK/RANKなどの順位付け関数、LAG/LEADなどの分析関数ではウィンドウフレームを指定できない」
  • エロゲーマーのためのSQL -エロゲーマーのためのSQL-

    SQLはデータベースからデータを抽出したりするための言語です。 この文書は、ErogameScapeのデータベースからSELECTを使って自由自在にデータを取得できるようになることを目標にします。 エロゲーをやりはじめる大学生くらいのときに、大学の講義でデータベースを学んで、退屈だなーと思った時に、ErogameScapeでSQLを学ぶことで、少しでもSQLに興味を持って、自身でデータを加工することを学習して頂けると幸いです。 ※私の大学のリレーショナルデータベースの授業では、自分の身の回りの何かをER図に落とし込んで、DBを設計し、PostgreSQLに実装し、実際にデータを入力してSELECTしてみるところまでをやりました。 ER図という概念を学んだとき「ああ、これは面白い」と思いました。 先生はこう言ったのです。 「ER図に落とし込むと、思いもよらなかったことが分かる。」と。 当時、

    tyru
    tyru 2014/01/04
    エロゲーマーじゃないけど、なんかよさそう。
  • Devsの常識、DBAは非常識

    8/3に開催しました 「FGOなど大規模ゲームの課題から学ぶゲームサーバ・インフラ勉強会」の発表資料になります。

    Devsの常識、DBAは非常識
    tyru
    tyru 2013/09/14
    MySQLチューニング情報だ
  • 第11回 SQL流集合操作(4) 集合の性質を調べる | gihyo.jp

    では、ここからさらに、「⁠その階級の全員のBMIが『標準』か『やせ』のどちらかに分類される」階級だけを選択してください。結果は、「⁠子供」と「老人」の階級だけになります。 まず、「⁠子供」「⁠成人」「⁠老人」の3階級に分割した部分集合を作るまでは、先ほどのクエリと同じです。あとはそこに、「⁠階級」という集合自身の性質を調べる条件を付加するだけです。ここでHAVING句が活躍します(リスト11。実行結果は図13⁠)⁠。 リスト11 集合の性質を調べるためのクエリ SELECT CASE WHEN age < 20 THEN '子供' WHEN age BETWEEN 21 AND 69 THEN '成人' WHEN age > 70 THEN '老人' ELSE NULL END AS age_class, COUNT(*) FROM Persons GROUP BY CASE WHEN a

    第11回 SQL流集合操作(4) 集合の性質を調べる | gihyo.jp
    tyru
    tyru 2013/09/10
    WHERE句は「行」に対する条件を記述する。HAVING句は「行の集合」に対する条件を記述する。 / 流石分かりやすい説明だなー
  • 全ては時の中に… : 【SQL】OracleとSQL Serverのダミーテーブルについて

    2007/10/2819:4 【SQLOracleSQL Serverのダミーテーブルについて 通常は、SQLの結果を得る場合、何らかのテーブルを参照する必要がある。 しかし、時間の取得等のような"ちょっとした確認"でテーブルを参照するのは効率が悪いし、 インデックスに影響を与えてしまう可能性もある。 このような場合に実際のテーブルを参照することなく、SQL文を実行する方法について説明する。 《Oracle》FROM句にDUALテーブルを指定する。 SELECT SYSDATE FROM DUAL 《SQL SERVER》FROM句を省略する。 SELECT getDate() こうやって見てみると、SQL ServerのSELECTには、色々な使い方がある。 古いバージョンのSQL Serverでは、ストアドプロシージャで値を設定することもできたので…。 といっても、最近のバージョン

    tyru
    tyru 2013/09/02
    SQL Serverやっぱ変わってるなー
  • SQLServerでNULL値の置換(NVL,IsNull) – pg-info

    SQLServerでNULL値の置換(NVL,IsNull)投稿者: 4696 投稿日: 2008-07-142008-07-14 oracleでよく使っていたのが「nvl」関数。 sqlserverの場合は、「isnull」 Oracleの場合 select NVL(field, 0) FROM A SQLServerの場合 SELECT IsNull(field, 0) FROM A 列の内容がNULLの場合に「0」に置換しています。 空文字にする場合は、「0」のところを「”」シングルクォーテーション2つにすればOK。 こんな感じか

  • SQLServer データ型一覧

    -2^63 (-9223372036854775808) から 2^63 -1 (9223372036854775807) までの整数を格納するデータ型

  • 「相関サブクエリ」とは何かを理解して,複雑なSQLでも読めるようになろう - 主に言語とシステム開発に関して

    SQLの「相関サブクエリ」がわかれば・・・ 巨大なSQLが,迷わずに読めるようになる。 「関数」のような,便利なサブクエリを書けるようになる。 以下では, 「相関サブクエリ」とは何か? 普通のサブクエリ(非相関サブクエリ)やJOIN操作とは何が違うのか? 多重にネストされた,巨大なSQLの読み方は? という点を論じる。 サンプルデータ,および全体の方針 (1)サブクエリ無しでJOIN (2)INで非相関サブクエリ (2)の補足:サブクエリを「関数」と考えてみよう (3)EXISTSで相関サブクエリ 他のサンプル 巨大SQLの読み方 サンプルデータ,および全体の方針 まず,相関サブクエリの説明のために,以下のようなテーブルを例として取り上げる。 table1が,普通のデータ table2が,マスタデータ(ホワイトリスト) 「マスタに一致しないレコードをはじく」という操作をしたい。 方法は3パ

    「相関サブクエリ」とは何かを理解して,複雑なSQLでも読めるようになろう - 主に言語とシステム開発に関して
    tyru
    tyru 2013/08/30
  • Query design for "select top" equivalent in WQL?

    tyru
    tyru 2013/08/30
    え…WQLってTOP使えないの…