タグ

SQLとsqlに関するmainyaaのブックマーク (19)

  • SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた

    2016/10/22 GCPUG Fukuoka 4thで発表。 BigQueryのStandard SQLの機能やLegacySQLからの移行に関する注意点など。

    SQLおじさん(自称)がBigQueryのStandard SQLを使ってみた
  • XSSとSQLインジェクションの両方が可能なRFC5322適合のメールアドレス

    メールアドレスの「ルール」に関する話題が盛り上がっていますね。 「メールアドレスのルール」系まとめがそろって間違ってるのでご注意を 「メールアドレスのルール」なんて使ってはいけない3つの理由 これらのエントリに異論があるわけでありません。メールアドレスに関するルールというとRFC5322などがあるものの、現実の運用では簡易的な仕様を用いている場合が大半である…という事情は、私も以前ブログに書きました。、 稿では、「空前のメールアドレスのルールブーム(?)」に便乗する形で、RFC5322に準拠したメールアドレスで、XSSやSQLインジェクションの攻撃ができることを紹介します。と言っても、SQLインジェクションについては、過去に書きましたので、稿では、RFC5322バリッドなメールアドレスでSQLインジェクションとXSSの両方ができるメールアドレスを紹介します。 まず、攻撃対象として、以下

    XSSとSQLインジェクションの両方が可能なRFC5322適合のメールアドレス
  • Norikra v1.0.0 - たごもりすメモ

    English article 以前からスキーマレスなストリーム処理をSQLで!というソフトウェアとして作っていたNorikra、このたびあちこち機能改善したりしたので、既にお仕事で絶賛稼働中ということもあるし、区切りとして v1.0.0 としてリリースした。 ついでにロゴとかも作ったので、なんとなくいい感じになりつつある。 https://rubygems.org/gems/norikra/versions/1.0.0-java http://norikra.github.io/ 修正点は リポジトリ のChangesに書いてあるが、curlだけで操作できるようHTTP JSON APIが加わってたり、GCまわりでハマらないようなデフォルトオプションが入ってたり、分析系クエリを書きたい人のために Group-by with Rollup や Grouping sets, Cube などの

    Norikra v1.0.0 - たごもりすメモ
    mainyaa
    mainyaa 2014/05/20
    おお
  • TechCrunch | Startup and Technology News

    Featuring Prime Minister of Greece & top Euro tech voices!

    TechCrunch | Startup and Technology News
  • Batch and Stream processing with SQL

    Complex Event Processing on Ruby, Fluentd and Norikra #rubykaigi

    Batch and Stream processing with SQL
  • Google Cloud SQL、クラウド外からも標準的なMySQLプロトコルでアクセス可能に

    Googleは同社のクラウド上で提要しているデータベースサービス「Google Cloud SQL」に対して、オンプレミスなどクラウド以外からもMySQLの標準プロトコルで接続できる機能「MySQL Wire Protocol」を公開しました。 Cloud Platform Blog: Google Cloud SQL is now accessible from just about any application, anywhere MySQL Wire Protocol is the standard connection protocol for MySQL databases. It lets you access your replicated, managed, Cloud SQL database from just about any application, runni

    Google Cloud SQL、クラウド外からも標準的なMySQLプロトコルでアクセス可能に
  • SQLアンチパターン

    TOPICS Database 発行年月日 2013年01月 PRINT LENGTH 352 ISBN 978-4-87311-589-4 原書 SQL Antipatterns FORMAT 書はDB設計やSQL記述の際に避けるべき事柄を1章で1つ、25個紹介する書籍です。リレーショナルデータベースを中心に据えたシステム開発には、様々な場面で陥りやすい失敗(アンチパターン)があります。書はデータベース論理設計、データベース物理設計、クエリの記述、アプリケーション開発という4つのカテゴリに分け、それぞれの分野におけるアンチパターンを紹介し、失敗を避けるためのより良い方法を紹介します。複数の値を持つ属性や再帰的なツリー構造の格納から、小数値の丸めやNULLの扱いに起因する問題、全文検索やSQLインジェクション、MVCアーキテクチャなど、実践的かつ幅広いトピックを網羅します。日語版では

    SQLアンチパターン
  • 本を読む Shibuya.pm TT #12で話を聴いた

    11月30日に、Perlプログラマの集まるイベント「Shibuya.pm Technical Talk #12」に参加して、発表を聴いてきました。 中心となったのは「NoSQL vs. NoKVS ライトニングディスカッション」。実際に高速(分散)KVSやRDBMSを開発したり使ったりしている豪華メンバーが壇上に並んで、発表や議論を繰り広げました。 そのほかの発表も含めて、実開発者による濃い話が面白く語られていました。全体的に、アプリの実行速度にこだわった話が多かったのが印象的です。あと、予定の9時ぴったりに終わったのにもびっくり。 1週間たっちゃいましたが、以下、自分の復習として、メモをまとめておきます。 Tatsumaki" I/O bound HTTP clients in web frameworks(miyagawa) Shibuya.pmといえばこの人、miyagawaさんのセ

  • Filter::SQL 作った - kazuhoのメモ置き場

    please see: Kazuho@Cybozu Labs: Perl で埋め込み SQL を使って楽をする話 http://coderepos.org/share/browser/lang/perl/Filter-SQL こんな感じで書ける。 use DBI; use Filter::SQL; Filter::SQL->dbh(DBI->connect('dbi:mysql:test;user=root')) or die DBI->errstr; SQL DROP TABLE IF EXISTS t;; SQL CREATE TABLE T (v int not null);; for (my $n = 0; $n < 10; $n++) { INSERT INTO T (v) VALUES ($n);; } foreach my $row (SELECT * FROM t;) {

    Filter::SQL 作った - kazuhoのメモ置き場
  • Filter::SQLが使いやすくてしかたがない

    Filter::SQL 作った - id:kazuhookuのメモ置き場にある、Filter::SQLが使いやすくて仕方がないという話。 前にも書いたけれど私はPerlのデータベースプログラミングに苦手意識がある。SQLPerlも人並みにはできるけれど、その両方がまざったのはどうもだめだ。 だいたい、こちらはSELECTだけをすればいいのに use 5.010; use DBI; my $dbh = DBI->connect("dbi:SQLite:dbname=foo.db"); my $sth = $dbh->prepare("SELECT * FROM table WHERE bar > 1"); $sth->execute; while ( my $row = $sth->fetch ) { say join "\t", @$row; }のような呪文を書かなくてはならないのは苦痛

  • Oracleでのエスケープ - 2007-12-30 - T.Teradaの日記

    今日の日記では、OracleでのSQLインジェクション対策について書きます。 以下のようなコード(PHP)があるとします。 <?php ... $foo_escape = str_replace("'", "''", $foo); $sql = "SELECT * FROM table1 WHERE foo='$foo_escape'"; $stmt = OCIParse($dbh, $sql); ... 「'」を「''」にエスケープしてSQL文に埋め込み、Oracleで実行(Parse)しています。 割とよくあるコードかもしれませんが、これだとSQLインジェクション攻撃に脆弱な場合があります。 不正な文字列 DBサーバとのコネクションにEUC-JP(JA16EUCTILDE)を使用しているとします。 ここで、$fooに「[0xA1]' OR 1=1--」のような、EUC-JPとして不正な

    Oracleでのエスケープ - 2007-12-30 - T.Teradaの日記
    mainyaa
    mainyaa 2008/01/07
    対策は、自作のエスケープ+文字列結合ではなく、DBMSが正規に提供するAPIを利用してSQL文を生成することです。
  • SQLによる数独の高速解法:CodeZine

    CALCULATE_GS_V3は控えめに言っても「遅すぎる」ので、これに比べて「高速」であっても、「数独」の解法として特別高速なわけではありません(数独をコンピュータで解いた経験のある人なら、標準的なサイズ9×9の数独を、今日の計算機は数秒で解くことはご存じでしょう)。しかしながら、稿で紹介するSQLの書き方は、さまざまな場面で応用できるはずです。ここで紹介する方法よりも劇的に速い方法を第3部で紹介しているので併せてお読みください(1秒程度で解けます)。対象読者計算機でパズルを解くことに興味のある方数独を知っている方(数独自体についての説明はしません)ストアド・プロシージャについて学びたい(ストアド・プロシージャ自体については説明しませんが、雰囲気は分かると思います)データベース管理システムで「データの管理」を超えたことをしてみたい方 必要な環境 文のコードをそのまま実行するにはMyS

    mainyaa
    mainyaa 2007/09/11
    問題が出たら思わず自分で解いてしまった。
  • SQLによる数独の解法:CodeZine

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

    mainyaa
    mainyaa 2007/09/11
    ストアド・プロシージャの勉強にいいかも
  • MySQLノウハウ

    いろいろなからメモってきたメモのメモ。出典を書いておくのを忘れた。思い出し次第補完するかも。 deleteのコストは高いので、無効化を示すフィールドを作ってupdateすべき slow query logに要注意 多くのエントリでほとんどのフィールドが同じ値を持つ場合はインデックスの効果が小さい →複合インデックスの効果が大きい 複合インデックスは指定の順番が大切。AとBという指定の場合、A単独でもインデックスの効果がある。逆は真でない。 インデックスが使われる場面は フィールド値を定数と比較するとき (where name = 'hogehoge') フィールド値でJOINするとき (where a.name = b.name) フィールド値の範囲を求めるとき (<,>,between) LIKE句が文字列から始まるとき (where name like 'hoge%') min(),

    mainyaa
    mainyaa 2007/07/12
    よくまとまってる。ありがたい。
  • http://neta.ywcafe.net/000597.html

    mainyaa
    mainyaa 2006/06/18
    PostgreSQLの幾何データ型使って地図の位置情報についてのSELECTの仕方や、インデックスの張り方等。位置情報やその検索はこうやって扱えばいいのか。メモメモ。
  • mysql:12071 階層化されたデータをMySQLで扱う

    From: zen kishimoto <zen kishimoto <zen@xxxxxxxxxx>> Date: Sat, 03 Sep 2005 09:24:15 -0700 Subject: [mysql 12071] 階層化されたデータをMySQLで扱う (Managing Hierarchical Data in MySQL) http://dev.mysql.com/tech-resources/articles/hierarchical-data.html (図はこのサイトを参照のこと) Mike Hillyer著 初めに 多くのユーザーは一回くらいはSQLデータベース内で、階層化したデータを 扱ったことがあると思います。そのときはリレーショナル データベースは階層化したデータ用に開発されなかったと考えたと思います。 リレーショナルデータベースのテーブルは階層化されておらず

  • 1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT

    連載はSQLの応用力を身に付けたいエンジニア向けに、さまざまなテクニックを紹介する。SQLの基構文は平易なものだが、実務で活用するには教科書的な記述を理解するだけでは不十分だ。連載は、著名なメールマガジン「おら!オラ! Oracle - どっぷり検証生活」を発行するインサイトテクノロジーコンサルタントを執筆陣に迎え、SQLのセンス向上に役立つ大技小技を紹介していく。(編集局) FOR...LOOP文を使って、いくつものSQL文でデータをINSERTしているPL/SQLプロシージャやプログラムをよく見掛けますが、実は1度にデータをINSERTする方法もあるんです。マルチテーブル・インサート(Multitable Insert)とはその名のとおり、1つのSQL文で複数の表にINSERTが可能になります。この最大のメリットは、やはりパフォーマンスです。では早速ご紹介します。 マルチテーブ

    1つのSQL文で複数の表にINSERTする絶品テクニック(1/2) ― @IT
    mainyaa
    mainyaa 2006/03/02
    コレは知らなかった。
  • 基礎から理解するデータベースのしくみ(5):ITpro

    SQL文を実行する際のパフォーマンスに大きな影響を及ぼすものとして,もう一つ,インデックスがあります。インデックスについては,どう定義すべきかというデータベース設計上の問題と,インデックスを有効に使うためのSQL文をどう書くべきかというコーディング上の問題があります。 ここではテーブル設計上の問題を主に取り上げます。SQL文のコーディングについては囲み記事「SQL文を最速にする11のポイント」を参照してください。 インデックスは,テーブルの検索速度を向上させるためのものです。それぞれのSQL文に対して最適なインデックスを定義するのが理想的ですが,実際にはある程度限られたインデックスで,必要なパフォーマンス要件を満たすようにインデックスを定義する必要があります。加えて,どんなSQL文が実際に発行されるのかがあらかじめわかっていない場合は,適当な想定に基づいてインデックスを定義しておかなくては

    基礎から理解するデータベースのしくみ(5):ITpro
    mainyaa
    mainyaa 2006/01/29
    SQLをカスタマイズして高速化する方法っぽい
  • SystemWatanabe JetとSQLServerのSQL

    【JetとSQLServerのSQL】 Jet用のSQL と MSDEおよびSQLServer(以下SQLServerと表記)用のSQLは構文が多少異なります。 JetとSQLServerのSQL構文を比較、まとめてみました。 [基構文] ●Select/Insert/Update/Delete SQL構文 [Select文] ●複数テーブルの結合 ●複数テーブルの連結 [Insert文] ●他テーブルからのレコード追加 [Update文] ●他テーブルの値を更新 ●他テーブルの集計値を更新 [関数・演算子・その他] ●日付の表記方法 ●日付の加減算 ●日付型の変換 ●文字連結 ●Null値の置き換え(Nz関数/ISNULL関数) ●式の評価(Iif関数/CASE関数) ●整数部の切り出し(Int関数/FLOOR関数) ●True(真)の値 ●ワイルドカード文字

  • 1