タグ

SQLに関するnaneyのブックマーク (7)

  • ウノウラボ Unoh Labs: RDBで階層構造を扱うには?

    yukiです。ダイエットを始めて3kg減ったと思ったら、風邪を引いて見事に1kg増量。 運動しないと駄目ですね。あと残り20kg、道のりは遠いです。 さて今回は、「RDBで階層構造を扱うには?」です。 あるサイトを構築中に階層構造をもったカテゴリ構造にすることになり、どのようにDBで扱うか悩みました。 DBMySQLを採用していたので、この時点でぱっと頭に浮かんだ選択肢は以下のようなものでした。 XML-DBを利用する 親カテゴリレコードのプライマリIDを子カテゴリレコードに持たせる 親を含めた『絶対パス』を名称として扱い、取り出した後にパース ファイルシステムに同様のディレクトリ構造を作り、毎回パースする (1)のXMLDBはオープンソースのeXistやXindice、Yggdrasillなど様々な選択肢がありましたが、カテゴリのみの利用な割にメンテナンスコストが高すぎるので見送りま

  • なければ INSERT、あれば UPDATE

    間違って主キーと同じ値を含む行を挿入しようとしたらエラーを出して教えてほしいとき INSERT INTO test VALUES(1,100); とすると、ERROR 1062 (23000): Duplicate entry '1' for key 1 というエラーが出る。 間違って主キーと同じ値を含む行を挿入しようとしても無視して処理を続行してほしいとき INSERT IGNORE INTO test VALUES(1,100); とすると、Query OK, 0 rows affected (0.00 sec) と表示される。テーブルは変更されていない。 主キーと同じ値を含む行がないなら新しく挿入し、あるならその行を更新してほしいとき REPLACE INTO test VALUES(1,500); とすると、Query OK, 2 rows affected (0.00 sec)

    naney
    naney 2008/05/14
  • SELECT * fromについての話

    気軽に書いてたけど、これちゃんと書いておかないとマズイか。 F's Garage:どのレベルのフレームワークが一番良いのか。 に書いた以下の部分。 確かにJavaBeansは面倒だけど、ハッシュで取り回す型のない言語は、DBのスキーマの変更は強いし。(え、select * from を使うなって?) select * を推奨せず、カラム名を指定すべきという話についての考察がありました。 眠る開発屋blog » SELECT文でアスタリスクを使うな論、とか 列名指定のほうが必要な分だけデータを送らず転送量が減るので、または解析のパフォーマンスが上がるのでよい、みたいな話があるが、そんなに変わるの? いや、経験的にはあんまり変わらん気が。 ってか、もしMySQLであれば、クエリーキャッシュがあるので、なるべく同じ記述のSQL文を発行したほうがいい。 そもそもアプリケーションキャッシュ使えよ!と

    naney
    naney 2008/05/04
  • 逆引きSQL比較

    Works > 逆引きSQL比較 逆引きSQL比較 [ 共通事項 ]  [ ORACLE ]  [ MSSQL ]  [ SSA ]  [ Postgres ]  [ MySQL ]  [ Jet ]  Last Updated. 14-May-2006 Since 08-May-2001 ■はじめに 複数の RDBMS を使った経験がある人なら、おわかりかと思いますが、SQLRDBMS によって異なる部分が結構あります。 このページは各 RDBMS における 基的な機能(主にSQLについて)の概要を、逆引きで、かつ平易な言葉で閲覧 する事を目的に作ったリファレンスです。 特定の RDBMS を持ち上げたり、貶めたりするのが目的ではないので誤解なきよう。 また、間違いについてのご指摘や『こうした方が効率的だ』などのご意見も大歓迎です。 対象としているのは以下の RDBMS

  • GitHub - ondras/wwwsqldesigner: WWW SQL Designer, your online SQL diagramming tool

    Hi and welcome to WWW SQL Designer! This tool allows you to draw and create database schemas (E-R diagrams) directly in browser, without the need for any external programs (flash). You only need JavaScript enabled. The Designer works perfectly in Chrome, Mozilla (Firefox, Seamonkey), Internet Explorer, MS Edge, Safari and Opera. Many database features are supported, such as keys, foreign key const

    GitHub - ondras/wwwsqldesigner: WWW SQL Designer, your online SQL diagramming tool
    naney
    naney 2007/11/06
  • 高木浩光@自宅の日記 - 駄目な技術文書の見分け方 その1

    ■ 駄目な技術文書の見分け方 その1 はてなブックマークのホッテントリを見ていたところ、300を超えるユーザに登録された以下の記事があった。 今夜分かるSQLインジェクション対策, 上野宣, @IT, 2006年11月2日 また上野宣か。顔見知りなのでズバリいくことにする。 しかし、その対策はまだ当に理解されていないように思える。 へえ。 終わりの方を見てみると、 Webアプリケーションの対策 入力値のSQLの特殊文字を適切にエスケープ 入力値=プログラム(プロセス)に外部から入ってくるもの シフトJISの場合には1バイト文字を整理 SQLの記述をなくすためにO/R(Object/Relational)マッピングを活用 攻撃者に役立つ情報を与えないために、不要なエラーメッセージ(データベースが出力するエラーなど)の表示を抑止 対策に「準備された文」(prepared statement)

  • 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
    naney
    naney 2006/02/28
  • 1