タグ

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

  • DBコマンド横断比較リファレンスを作りました - clock-up-blog

    横断的にDB操作の類似コマンドを探すためのサイト 例えば MySQL を知っている人が 新しく他のデータベース、例えば Oracle を学習する際に MySQL でいうところのアレは Oracle ではどういうコマンドなんだろう という感じに情報を探す場面が多くあります。 そういう類の情報を探すときに役に立ちそうなリファレンスサイトを作りました。 xref.jp xref.jp - Database 追記: コンテンツ増やしました yum, apt-get, rpm 等々の横断比較リファレンス - clock-up-blog ソースコード GitHub に上げてあるので興味ある人は見てみると良いです。 kobake/xref.jp · GitHub PHP で書いてます。すんごい汚いです。謙遜じゃなくて当に。 プルリク歓迎。 機能 マトリクス方向の切替 比較表の見出しの向きって、その組み

    DBコマンド横断比較リファレンスを作りました - clock-up-blog
  • O/Rマッパー当たり前な時代だからこそSQLテクニックを磨こう·SQL Fiddle MOONGIFT

    SQL FiddleはColdFusion製のソフトウェア(ソースコードは公開されていますがライセンスは明記されていません)です。 開発環境をセットアップするというのは意外に面倒で、せっかく学習しようと思ってもその時点で頓挫してしまいます。もしあなたがSQLを学んでみたいと思うならばSQL Fiddleを使ってみましょう。 こちらがメイン画面です。左に構造、右に実行するSQLを書きます。 実行例。結果はテーブルで下に表示されます。 SQLを変えれば実際に結果も変わります。 対応するデータベースは多様です。 SQL FiddleはJSFiddleに代表されるWebプレイグラウンドサービスで、SQLをWebブラウザ上で実行、確認ができます。最初のテーブルのCreate文からはじまり、任意のSQLを実行してその結果をテーブル表示で確認できます。MySQL/PostgreSQL/MS SQL Se

    O/Rマッパー当たり前な時代だからこそSQLテクニックを磨こう·SQL Fiddle MOONGIFT
  • SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)

    unassert - encourage reliable programming by writing assertions in productionTakuto Wada

    SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
    masamkur
    masamkur 2013/04/22
  • SQL Injection Basics

    社内勉強会用資料です。

    SQL Injection Basics
    masamkur
    masamkur 2012/10/02
  • 「NULLがUNIQUE制約に縛られないことを利用する」のは、正当なNULLの使い方 - 極北データモデリング

    リンク先は「UNIQUE INDEXを振った列に複数のNULLを投入できること利用して、ユニークであるべきユーザIDの使い回し(=退会したユーザのIDを新規ユーザに開放する)を実現する」という話。 アクティブなユーザ名はユニークにしたいけど削除されたユーザの情報は残したい。でも削除済みユーザテーブルは作りたくない とかいうワガママを発揮したい時にdeleteフラグに使えないかなーなんてだめですかそうですか。なんか他にまともな方法無いですか…。 MySQLのこういうのっていかがなもんか - 桝原翔市的博客 いやーこれはまともな方法じゃないでしょうか。 「NULLはNULLに一致しない」のが絶対の原則なのだから、NULLを使ってUNIQUE制約を回避するのは裏技でもwork-aroundでもない、正当なテクニックでしょう。 私はTM派なので実表上にnullを発生させる設計はしないが、Nulla

    「NULLがUNIQUE制約に縛られないことを利用する」のは、正当なNULLの使い方 - 極北データモデリング
    masamkur
    masamkur 2012/09/14
    NULLはNULLに一致する → is null で抽出できる。わからない物事を集めることはできる。 NULLはNULLに一致しない → = null はエラー。わからない物事同士が同じかどうかわからない。
  • 「SQLインジェクション対策」でGoogle検索して上位15記事を検証した - ockeghem's blog

    このエントリでは、ネット上で「SQLインジェクション対策」でGoogle検索した結果の上位15エントリを検証した結果を報告します。 SQLインジェクション脆弱性の対策は、既に「安全なSQLの呼び出し方」にファイナルアンサー(後述)を示していますが、まだこの文書を知らない人が多いだろうことと、やや上級者向けの文書であることから、まだ十分に実践されてはいないと思います。 この状況で、セキュリティのことをよく知らない人がSQLインジェクション対策しようとした場合の行動を予測してみると、かなりの割合の人がGoogle等で検索して対処方法を調べると思われます。そこで、以下のURLでSQLインジェクション対策方法を検索した結果の上位のエントリを検証してみようと思い立ちました。 http://www.google.co.jp/search?q=SQLインジェクション対策 どこまで調べるかですが、以前NH

    「SQLインジェクション対策」でGoogle検索して上位15記事を検証した - ockeghem's blog
  • DAのコラム

    masamkur
    masamkur 2011/10/07
    DAになりたい人は良く読むように!
  • SQLチューニングの基盤となる統計情報

    SQL*PlusのAUTOTRACE機能 AUTOTRACEはSQL*Plusの機能で、SQLの実行計画、および実行時に必要としたシステムリソース(これを実行統計と呼びます)などを簡単に確認することができます。また、SQLトレースには含まれないメモリソート、ディスクソートの発生回数なども確認できます。 AUTOTRACE機能の設定方法 AUTOTRACE機能を使用するためには、初回のみ事前準備作業が必要になります。ここでは、例としてSCOTTユーザーに対して設定を行ってみます。 1. SYSユーザーでplustrce.sqlを実行し、PLUSTRACEロールを作成する $ sqlplus /nolog SQL> CONNECT / AS SYSDBA SQL> @$ORACLE_HOME/sqlplus/admin/plustrce.sql

    SQLチューニングの基盤となる統計情報
    masamkur
    masamkur 2011/02/09
    ひさびさにチューニングするかもしれないのです。
  • モデル

    プログラミングとは全く関係なく発展したので、プログラミング言語で使うデータ構造ではなく、すべて表の組み合わせにしなくてはならない。例えば、学部はオブジェクト指向なら学生のサブクラス(部分集合)として表すのが自然だが、関係データベースでは学生の表(各行が一人の学生のデータ)と学部の表(各行が一つの学部のデータ)を作り、学生がどの学部に所属しているかという項目を付ける。 関係データベースの表の操作は問い合わせ言語(SQL)で書く。しかし、RubySQLの両方を書くのは面倒なので、RailsではRubyで書いたプログラムから自動的にSQLを生成するようになっている。なので、複雑なことをしない限りSQLを書く必要は無い。 Railsのモデルの作り方 まずアプリケーション名を決める。これはファイルを置くディレクトリの名前に使われるだけなので、適当でよい。例えば school 。 % rails n

    masamkur
    masamkur 2010/11/15
    デルモのチャンネー・・・ではなく、抽象化の方。
  • Mysqlの5で、OracleのRow_Numberみたいな 挙動をしたい場合は、どうしたらいいのでしょうか?…

    Mysqlの5で、OracleのRow_Numberみたいな 挙動をしたい場合は、どうしたらいいのでしょうか? SELECTした内容に順序を付与したいです。

    masamkur
    masamkur 2010/11/12
    MySQLで連番付与。select文発行時の番号づけ。
  • MySQL 編2 - ODBC + VB ADO、テーブル作成、レコード更新、レコード参照 - SAK Streets

    MySQL 編2 - ODBC + VB ADO、テーブル作成、レコード更新、レコード参照 ■MySQL ODBC + VB ADO テーブル作成 ・テーブル作成で、日語項目名が指定できるかテストする。 問題なく作成できる。 Dim cn As Variant Dim sql As String '** ODBC 接続 Set cn = CreateObject("ADODB.Connection") cn.Open "dsn=MySQL;uid=sak;pwd=" cn.CursorLocation = 3 '** テーブル作成 sql = "create table testm (" sql = sql & "キー char(008)," sql = sql & "データ1 int8," sql = sql & "データ2 int8," sql = sql & "データ3 int8"

  • SQLの実行を「見える化」する

    システム性能の重要な位置を占めるデータベースのパフォーマンス ソフトウエアが大規模化、複雑化していく中で、システムのパフォーマンス問題にかかわるトラブルの話を多く耳にします。「安定稼働していたシステムが突然遅くなった」「テスト段階では問題がなかったのに、稼働で思ったようなパフォーマンスが出ない」「新しい環境に移行したら途端に性能が出なくなった」など。 これらの症状には、さまざまな原因が考えられます。実際には、複合的にいろいろな要素が絡み合っていることが多く、一概に「ここが悪い」と指摘することはできません。 しかし、多くのシステムでデータベースにかかわるパフォーマンス問題が発生しているのは事実であり、しかも、その性能劣化が、指数関数的に拡大していることが多いことを見逃すことはできません。データベースにかかわるパフォーマンス問題は、ハードウエアパフォーマンス、ネットワークパフォーマンス、DB

    masamkur
    masamkur 2010/10/04
    SQL
  • 地獄のようによくわかる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テーブル結合 - こせきの技術日記
    masamkur
    masamkur 2010/09/16
    やっぱり結合してナンボです。
  • MySQL CSVファイル入出力

    実際に打ったコマンド mysql> LOAD DATA INFILE "./data2.csv" INTO TABLE ado FIELDS TERMINATED BY ',' ENCLO SED BY '"'; Query OK, 3 rows affected (0.03 sec) Records: 3 Deleted: 0 Skipped: 0 Warnings: 0 mysql> SELECT * FROM ado; +--------+-----------+---------------+-------+ | name | e_mail | tell | maney | +--------+-----------+---------------+-------+ | sasuke | aaa▲aaaa | 1234-1234-678 | 4500 | | ziro | bbb▲

    MySQL CSVファイル入出力
    masamkur
    masamkur 2010/08/05
    SQL→CSV MySQL
  • 情報処理推進機構:情報セキュリティ:脆弱性対策 :「安全なSQLの呼び出し方」を公開

    IPA(独立行政法人情報処理推進機構、理事長:西垣 浩司)は、ウェブサイトを狙ったSQL(*1)インジェクション攻撃(*2)が継続していることから、ウェブアプリケーション(*3)の安全な実装方法を解説した資料「安全なSQLの呼び出し方」を2010年3月18日(木)からIPAのウェブサイトで公開しました。 URL:http://www.ipa.go.jp/security/vuln/websecurity.html 近年、ウェブサイトを狙った攻撃が継続しています。攻撃の実例として、IPAが無償で公開している「SQLインジェクション検出ツールiLogScanner(*4)」で、「脆弱性対策情報データベースJVN iPedia(*5)」のアクセスログを解析した事例を図1に示します。 図1を見ると、2008年頃から急増しているSQLインジェクション攻撃が全体の45%、ウェブサーバのパスワードファイ

  • テーブルを手っ取り早くCSV形式で出力する(SQL*Plus)

    テキストデータを取り込むには、SQL*Loaderというユーティリティが用意されていますが、 逆のSQL*Saverなどというものは用意されていません。 CSV形式のテキストファイルにデータを出力したい場合は、PL/SQLで外部ファイルに書き出す方法や MicroSoft ACCESS などのソフトからリンクし取り出す方法が考えられます。 MicroSoft ACCESSからリンクする方法は、少量のデータの場合はお手軽で良いのですが、 数万件オーダのデータを扱う場合、テーブルを表示するだけで時間が掛かったりと 一長一短であったりします。 今回は、SQL*PlusのSPOOL機能を使ってCSV形式のテキストファイルに出力する方法 でやって見ましょう。

    masamkur
    masamkur 2009/12/25
    SQL→CSV
  • 第5回 SQLで木構造を扱う~入れ子集合モデル (1)入れ子集合モデルとは何か | gihyo.jp

    はじめに 木構造と呼ばれるデータ構造の一種があります。1つのルート(根)と呼ばれるノードを始点として、(⁠通常)複数のリーフ(葉)と呼ばれるノードまでを経路で結んでできるデータ構造です。その名のとおり自然界にある「木」の構造ですし、学校時代、確率の授業で樹状図を書いた経験のある人もいるでしょう。 この構造は、私たちの周囲にとてもたくさん存在します。家系図や組織図も木ですし、IT関連の例では、ヒープやRDBのインデックス、ディレクトリ(フォルダ)によるファイルシステムやXMLも木構造です。Webの掲示板でも、最初の書き込みをルートとしてそれに対してコメントがつけられ、そのコメントにまたコメントがつけられるというプロセスで木構造を形成します。ここでは1つの書き込みがノードになります。 このように、IT技術と木構造は切っても切れない関係にありますし、多くの分野で応用されてもいるのですが、実は長い

    第5回 SQLで木構造を扱う~入れ子集合モデル (1)入れ子集合モデルとは何か | gihyo.jp
  • 1