タグ

SQLに関するkairi-mのブックマーク (6)

  • MySQL使いが知るべきPostgreSQLとの違いと変わらない一つのこと

    — そーだい@初代ALF (@soudai1025) 2015, 8月 24 とブーメラン投げて見事に刺さってるので今から記事書く。 両サイドにはかなり厳しい話もするが俺の音を聴いておけ(関白宣言) まぁ歴史の長いRDBなのでお互いの比較記事は沢山ある。 なのでマルチスレッド(MySQL)とマルチプロセス(PostgreSQL)だとかVACUUMだって話はしない。 むしろ実際に使ってみた際の違いをにフォーカスする。 1. SQLの違い 基的にMySQLでやっていたことはPostgreSQL出来る。 しかし関数の挙動の違いは幾つかある。 例えば時間から曜日に該当する数字に変換した場合に MySQL → date_format(time,"%w") 0から始まり、日曜日に該当する PostgreSQL → to_char(time,'D') 1から始まり、日曜日に該当する など挙動に互換性

    MySQL使いが知るべきPostgreSQLとの違いと変わらない一つのこと
    kairi-m
    kairi-m 2015/08/24
    ふむ。最近はMySQLばかりだなあ…
  • SQLインジェクション対策もれの責任を開発会社に問う判決

    ポイントは下記の通りです。 X社(原告)はセキュリティ対策について特に指示はしていなかった 損害賠償について個別契約に定める契約金額の範囲内とする損害賠償責任制限があった 当初システムはカード決済を外部委託し直接カード情報を扱っていなかった X社が「カード会社毎の決済金額を知りたい」とY社に依頼をして、その結果カード情報をいったんDBに保存する仕様となった(2010年1月29日) X社からの問い合わせに対してY社は、カード情報を保持しない方式に変更することが可能で、そのほうが安全となり、費用は20万円程度である旨を伝えた(2010年9月27日)が、その後X社は改良の指示をしなかった 以下の脆弱性その他が認められた システム管理機能のIDとパスワードが admin/password であった 個人情報が記載されたお問い合わせログファイルの閲覧が可能(ディレクトリリスティングと意図しないファイ

    kairi-m
    kairi-m 2015/01/22
    ふむ。まあ、「専門家として当然はたすべき責務」の範囲内ということか…
  • ストアドプロシージャの基本的ななにか - Qiita

    あんまり知識ないけどがんばる SQLにも存在する様だけど, MySQLでしか経験がないからMySQLで書くよ 対象 以下に該当する方が対象です。 ある程度, SQLクエリが読める ある程度, DBの知識がある 背景 資料を探せど探せど, (個人的に)良いドキュメントが見つからなかったので 『じゃあ書いちゃおう』と思いました。 ※悪い資料だらけってわけじゃないけど, 物足りないとか惜しい記事ばかりだったので。 ストアドプロシージャって? DB上での一連処理に, 名前をつけて関数のように, 呼び出して使用できるもの。 DB上で動作を完結させちゃうから, 開発言語に依存しないよ! Ruby とか PHP だとか Perl でも Python だろうと CALL できれば結果は同じになるはずだよ! 権限まわり 作成

    ストアドプロシージャの基本的ななにか - Qiita
    kairi-m
    kairi-m 2014/12/24
    ストアドプロシージャはOracleしか経験がないな。今度使ってみよう。
  • YappoLogs: なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか

    なぜ SQL_CALC_FOUND_ROWS や LIMIT OFFSET のページングが良く無いのか ここ最近の大規模サービス関連したデータページング考です。 mysql 5.5.34 で試して記事書いてます。 bigdata テーブルは id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT, PRIMARY KEY (id) なカラムがある前提です。もちろん InnoDB です。 2014年なんだからCOUNT(*)とかSQL_CALC_FOUND_ROWSとかLIMIT OFFSETのページングはやめようぜ - Togetterまとめが発端にみえるけど、わりと昔から話されてる事なんだけど、「nippondanji SQL_CALC_FOUND_ROWS」でググっても有用な情報ないし文書化されてないからしとく。 ページング処理で使われがちな機能です。 S

    kairi-m
    kairi-m 2014/12/05
    まさにこれにハマったシステムの緊急対応をやってる…
  • [MySQL] 連番をINSERTと同時に挿入する方法

    連番を挿入する場合、色々な方法があるかと思いますが、 AUTO_INCREMENT なんかだと欠番が出来ちゃうし… MAX 関数で取得した最大値+1 を INSERT 時に一緒に挿入して…だと 同時アクセスされた時にうまく値をもってこれなかったりするし、 それに 2 回 SQL を発行しないといけないし… …一発でスマートにやりたいものです。 それを実現してくれるのが SELECT COALESCE(MAX(連番を入れるカラム)+1,1) です。 コイツを INSERT 文に入れてやります。 INSERT INTO テーブル名(連番を入れるカラム, 他のカラム...) SELECT COALESCE(MAX(連番を入れるカラム)+1,1), ?, ? FROM テーブル名; もしくは INSERT INTO テーブル名 (連番を入れるカラム, 他のカラム...) VALUES ((SELE

    [MySQL] 連番をINSERTと同時に挿入する方法
    kairi-m
    kairi-m 2013/03/08
    割と忘れるのでメモ
  • 昔懐かしいBASICプログラミングがアンドロイドで! 『BASIC! + SQL』出来るのはデータベース処理だけじゃない|タブロイド

    昔懐かしいBASICプログラミングがアンドロイドで! 『BASIC! + SQL』出来るのはデータベース処理だけじゃない 昔懐かしいBASICプログラミングがアンドロイド端末でもできるんです! しかもアプリタイトルにあるSQLによるデータベース処理だけでなく、マルチタッチ対応のグラフィック、サウンド、GPS、カメラ、Bluetooth、FTP、TCP/IP...の処理まで備えているというから驚き。『BASIC! + SQL』をご紹介します。 まず、サンプルプログラムがたくさん付属しています。ちょっと手を加えてオリジナリティをもたせることがプログラミング習得の第一歩、ですね。メニューから保存済のプログラムをロードして、メモ帳ライクなテキストエディタで編集し、保存し、実行します。この辺りの一連の操作は実に軽快、簡単。プログラミングに多少の心得のある方なら、説明不要かと思います。(もちろん新規の

    昔懐かしいBASICプログラミングがアンドロイドで! 『BASIC! + SQL』出来るのはデータベース処理だけじゃない|タブロイド
    kairi-m
    kairi-m 2012/01/27
    ほう。インストールしてみようかな。
  • 1