タグ

sqlに関するbrendonのブックマーク (17)

  • trdsqlというコマンドラインツールを作った - Qiita

    trdsqlというコマンドラインツールを作りました。 Goで作ってます。 githubの trdsqlからダウンロード出来ます。 またLinux/Windows/macOSのバイナリもあります。 以下は、古くなっている内容もいくつかあります。 最新版に対応した、より詳細な内容は trdsql 目次 | Noboru Saito's page を参照して下さい。 これは何? 簡単に言えばCSV(TSV含む)やLTSVに対してSQLを実行できるツールです。 同様のツールが q や textql 等いくつかあります。 trdsqlはPostgreSQLドライバとMySQLドライバを含んでいて実際にDBに接続することでSQLite以上の機能を使用できるようにしています。 PostgreSQLMySQLの構文が使えるだけではなく、CSVファイルと実テーブルでJOINしたり、CSVファイルからテーブ

    trdsqlというコマンドラインツールを作った - Qiita
    brendon
    brendon 2017/12/17
  • SQLiteからCSVファイルにSQLを投げてみた | DevelopersIO

    SQLite3.14(円周率πと同じですね!)が2016/08/08にリリースされました。 リリースノートによると、CSV仮想テーブルに対応したとありましたので、早速使ってみました。 Added the CSV virtual table for reading RFC 4180 formatted comma-separated value files. この機能を使うと、CSV形式のログファイルにSQLで問い合わせるといったことが簡単にできます。 仮想テーブルについて 仮想テーブル(Virtual Table)はSQLiteのデータベースで管理されていないデータを仮想的に管理されているように見せるテーブルです。 仮想テーブルで管理されているデータは、通常のテーブルのデータと同じように SQL インターフェースで操作できます。 SQLite では 全文検索インターフェース R-Trees

    SQLiteからCSVファイルにSQLを投げてみた | DevelopersIO
    brendon
    brendon 2016/10/05
  • SQLアンチパターン 幻の第26章「とりあえず削除フラグ」

    SQLアンチパターン 26章「とりあえず削除フラグ」 2015/08/31 @ GMO Yours #ronsakucasual https://atnd.org/events/68902Read less

    SQLアンチパターン 幻の第26章「とりあえず削除フラグ」
  • 新著が出ます:『SQL実践入門』 - ミックのブログ

    4月中旬ころになりますが、新著が出ます。SQLのパフォーマンスを主題にしたで、実行計画を読むことで、なぜこのSQLは遅いのか、あるいは速いのかをデータベースの内部動作まで把握して理解しよう、という趣旨です。 リレーショナルデータベースというのは、SQLという自然言語を模したインタフェースによって、低次のレイヤーを隠蔽する意図で作られたミドルウェアなので、当は実行計画などという手続レベルの世界をユーザが覗き見るのは、末転倒なところもあります。ただそうはいっても、現実にSQLが遅かったら原因を解析せざるをえないわけだし、大体当にブラックボックスにしたいなら、なんでどのDBMSも実行計画を見られる手段なんか用意してるんでしょうね不思議ですね、という理想と現実の狭間で悩むエンジニアの方々に少しでもベターな解に辿りつけるアプローチを提示できれば、と考えております。 以下まえがきと章立てです。

    新著が出ます:『SQL実践入門』 - ミックのブログ
  • SQLデータベースに正しインデックスを作るのは 誰の役割?

    SQLのパフォーマンス問題は、SQLそのものと同じぐらいの歴史がある―― ある人は、SQLはそもそも遅いものだとすら言うかもしれません。これは、SQL歴史が始まった頃は正しかったかもしれませんが、今となっては全く 当てはまらないでしょう。にもかかわらず、SQLのパフォーマンス問題は今も一般的でよくあることです。どうしてそうなってしまうのでしょうか? SQL言語は、恐らく最も成功した第4世代言語(4GL)でしょう。その最大の利点は、「何を」と「どのように」 を分離できることです。SQL文は、どのようにそれを実行するかを記述せずに、単純に 何を必要としているかのみの記述になっています。以下のような例を考えてみましょう。 SELECT date_of_birth FROM employees WHERE last_name = 'WINAND'SQLのクエリは、データを要求する英語の文として読

    SQLデータベースに正しインデックスを作るのは 誰の役割?
  • Where狙いのキー、order by狙いのキー

    2015/10/03 phpcon 2015 updated at 2016/01/13 about default_password_lifetime's default will be 0

    Where狙いのキー、order by狙いのキー
    brendon
    brendon 2014/08/30
  • SQLZoo

    Tutorials: Learn SQL step by step 0 SELECT basics Some simple queries to get you started 1 SELECT name Some pattern matching queries 2 SELECT from World In which we query the World country profile table. 3 SELECT from Nobel Additional practice of the basic features using a table of Nobel Prize winners. 4 SELECT within SELECT In which we form queries using other queries. 5 SUM and COUNT In which we

  • 意外と便利?PHP製のHTML用問い合わせ言語·htmlSQL MOONGIFT

    htmlSQLHTML構造にSQLを使って検索できるようにするライブラリです。 HTMLを操作する際にはDOMを使ったり、正規表現を使うのが一般的です。しかしもう一つのやり方を提案するのがhtmlSQLです。何とSQL(問い合わせ言語)を使ってHTMLソースを探索できます。 コード例。PHPで操作します。 こんな感じで取得できます(301になってしまっていますが…)。 こちらもコード例。SQLっぽい記述が面白いです。 クラスやIDなどで絞り込んだり、特定のタグだけを抽出することも簡単にできます。そして指定した要素だけ抽出して処理が可能です。今後、LIMITなどにも対応していくとのことです。 htmlSQLPHP製、New BSD Licenseのオープンソース・ソフトウェアです。 MOONGIFTはこう見る SQLはサーバサイドで使われるプログラミング言語と構造体系が大きく異なるために

    意外と便利?PHP製のHTML用問い合わせ言語·htmlSQL MOONGIFT
  • SQLアンチパターン - 開発者を待ち受ける25の落とし穴

    押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)NTT DATA Technology & Innovation

    SQLアンチパターン - 開発者を待ち受ける25の落とし穴
  • 「SQL アンチパターン」は色んな戦争の火種になりそう - yoshiori.github.io

    監訳の一人である @t_wada に献頂きました。 ありがとうございます!!! でだ、いきなりだけどコレ、タイトルで損してると思うんだよね…… だって、SQL のアンチパターンてタイトルだったら、 join した結果の方で where で絞るよりも on 句で先に絞れ 的なのが書いてあると思うじゃん!! 問い合わせ言語の事だと思うじゃん!!! 違った…… ほとんど書いてあるのは DB 設計についてだった…… まぁ、副題は「Avoiding the Pitfalls of Database Programming」のだし、まぁいいか。 んで、読んでみた感想とか もうね、何年か DB 絡んだ開発したことのある人なら(・∀・)ニヤニヤ出来ると思う。 「”マルチカラムアトリビュート”とか 10 年前に通ったわー」 とか 「あーはいはい”インデックスショットガン”乙」 みたいな。 Explain

  • SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?

    (PgDay2012発表資料) SQLにとって、なぜO/Rマッパーが重要かを説明した資料です。Read less

    SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
    brendon
    brendon 2012/12/07
  • SQLの暗黙の型変換はワナがいっぱい

    補足 この記事は旧徳丸浩の日記からの転載です。元URL、アーカイブはてなブックマーク1、はてなブックマーク2。 備忘のため転載いたしますが、この記事は2009年9月24日に公開されたもので、当時の徳丸の考えを示すものを、基的に内容を変更せずにそのまま転載するものです。 補足終わり このエントリでは、SQLにおいて「暗黙の型変換」を使うべきでない理由として、具体的な「ワナ」をいくつか紹介します。 数値項目に対するSQLインジェクション対策のまとめにて説明したように、RDBの数値型の列に対してSQLインジェクション対策をする方法として、以下の三種類が知られています。 バインド機構を用いる パラメータの数値としての妥当性確認を行う パラメータを文字列リテラルとしてエスケープする このうち、方法3を使うべきでない説明の補足です。具体的には、方法3には、「暗黙の型変換」が発生しますが、それが思わ

    brendon
    brendon 2011/12/16
  • 地獄のようによくわかるSQLテーブル結合 - こせきの技術日記

    テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOINJOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※ ON ...=... をまとめて USING(属性) と書ける。 ※ 何で結合するか言うまでもない時は、NATURALを指定すると勝手にJOINしてくれる。NATURALにJOINして……。 ※ WHEREは結合した結果に作用する。 ※ 現実には上図のように1対1で結合しません。 ※ おまけ。CROSS JOIN。 こんなの使いません。 ブクマ用画像。

    地獄のようによくわかるSQLテーブル結合 - こせきの技術日記
  • MySQLの複合INDEX - 憂鬱なプログラマの形而上学

    MySQLMySQLの複合インデックスについて。MySQLを使いこなしている人には常識の範疇にはいる知識だと思うのですが、かつての私のように、知らないとドツボにはまるので、ここにまとめておきます。タイトルでどういう内容か、もしかしたら大体、想像がつくかなと思うのですが、MySQLは1つのクエリーで1つのテーブルに対し、1つのインデックスしか機能しないということです。ようするに、あるテーブルに対して、普通に大量のインデックスを張ってもあまり意味がありません。そこで、今回は、最適な複合インデックスはどのようにしてはることができるか考えていこうじゃないか、という趣旨で書いていきたいと思います。まずは分析。テスト環境でインデックスが使われていないSQLを集めるまずは、/etc/my.cnfのパラメータを以下のように設定し、インデックスが使われていないSQLをスロークエリーに吐き出します。 slow

  • インデックスについて - SQLer 生島勘富 のブログ

    インデックスが分かってない人が非常に多い。 現実にあった例で、60カラムあるテーブルに、前から3つずつの複合インデックスを20個作るとか、30カラムを1つの複合インデックスにするとか、意味が分かっていない人が非常に多くいます。 ※ 詳しい人へ。ここでは、インデックス = B-Treeインデックスと考えてください。 インデックスとは インデックスとは、そのままズバリ「索引」のことです。 身近な例ではカラオケがあります。いわゆるカラオケがインデックス。リモコンで押す番号が主キー、流れる音楽・映像が実レコードと考えてみてください。 カラオケは「歌手名順」と「曲名順」の2つは最低限あると思います。 これらは、 歌手名順は、「歌手名・曲名」の組み合わせの複合インデックス。 曲名順は、「曲名・歌手名」の組み合わせの複合インデックス。 と考えることができます。 想像してみてください。小学生でも「アン

    インデックスについて - SQLer 生島勘富 のブログ
  • pg_sleepをSQLインジェクション検査に応用する - ockeghem's blog

    SQLインジェクションの進化形として、ブラインドSQLインジェクションという手法があります。通常のSQLインジェクションは、検索結果表示やエラー表示のところに、アプリケーションの想定とは別のテーブル・列の値を表示するものですが、ブラインドSQLインジェクションは、SQLの結果がエラーになる・ならないを1ビットの情報として悪用し、これを積み重ねることで、データベース内の任意情報を得ることができるというものです。 1ビットの情報が得る手段としては、SQLのエラー表示に限らないわけで、現実問題として、SQLのエラーが外部からは判別しにくい場合もあります。そのような場合の究極形として、時間差を利用するという手法があります。 MS SQL Serverには、waitfor delayという命令があって、時・分・秒指定でスリープさせることができます。金床には、MySQLやPostgreSQLの場合の

    pg_sleepをSQLインジェクション検査に応用する - ockeghem's blog
  • 忘れっぽいエンジニアのオラクルSQLリファレンス

    物忘れの激しい管理人は、調べたこともすぐ忘れてしまうので、同じことを、何度も調べながら開発しています。 ただ、IT業界は覚えることが多過ぎて、文法などの細かいことはあまり覚える気が無いというのもありますが(笑) そこで、何度も同じことを調べなくてもいいように、ORACLE SQLリファレンスをサイトにまとめる事にしました。 私と同じようなプログラマーやSEも結構いるんじゃないかと思いますので使えそうだったら利用してみて下さい。

  • 1