タグ

SQLとtipsに関するzaki1010のブックマーク (11)

  • プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 先日から『Ghost of Tsushima』の開発者が書いた『ルールズ・オブ・プログラミング』というをちょっとずつ読み進めていて、プログラミング熱が高まっています。このは大きな指針を示すだけで具体の話をするものではないのですが、読み物として面白いので私も似たようなことをやってみたくなりました。 何年もこういう仕事をしているとバグが入るパターンというのが見えてきます。そしてだいたいどこに行っても何の仕事でも似たようなことをすることになるのですが、今回の話もその一つです。 構造化テキストを文字列結合で作らない、置換でいじらないというのはこれだけみると何のことか分かりづらいかも知れませんがSaaS Product Team セキュアコーディングの啓蒙 第2回 (SQL インジェクション編)の内容とある面では同じ話です。

    プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers
  • MySQLで発生し得る思わぬデッドロックと対応方法

    はじめに この記事は実際の業務で発生した MySQL のデッドロックとそのいくつかの回避方法や対応方法を(テーマは変えて)手元で実行できるコードを用いて解説する記事です。具体的には「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターンの記事で紹介されている「1on1 チャットサービス」で紹介されているデッドロックとデータベースレイヤでは同じ状況だったのですが、記事で紹介されている方法とは別の方法でデッドロックを回避する必要があったため、同じ状況に遭遇した人の助けになればという思いで記事を書きました。また、こちらの記事が無ければ私自身も現象を理解するのにもっと苦労したと思うので、この場を借りてお礼申し上げます! 出金サービス履歴登録サービスを例に考える コードと説明が https://github.com/shuntagami/withdrawal_

    MySQLで発生し得る思わぬデッドロックと対応方法
  • 決済システムの残高管理周りの DB 設計と戦略 - カンム テックブログ

    エンジニアの佐野です。今日はカンムの決済システムでユーザの残高管理をどうやっているかについて書きます。 カンムの製品であるバンドルカードはプリペイド方式のカードです。ユーザによる入金、店舗での利用、運営事由の操作などによりユーザの残高が増減します。このような残高の管理について単純に考えると user_id と balance と updated_at あたりをもったテーブルを用意して balance と updated_at を更新していく方法があるかもしれません。しかしながらカンムでは残高を管理するテーブルを持たず、これらイベントの履歴のみで残高を管理しています。以下、記事ではこれらユーザの残高が増減するイベントのことをトランザクションと呼びます。ここでは DB の Transaction Processing を意味しません。 記事のポイントは 残高を管理をするテーブルは作らず、ト

    決済システムの残高管理周りの DB 設計と戦略 - カンム テックブログ
  • そろそろSQLのウィンドウ関数を理解したい - 連載1/3話 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに データ分析とデータ品質改善に従事してきた筆者が、SQLを用いた分析の基である「ウィンドウ関数」の使い方とデータ品質の調査改善を行う手法をまとめてみようと思います。 こちらの記事は、SQLの知識向上と振り返りを主題としているので、ABC分析、バスケット分析、RFM分析などの「データ分析の手法」について説明している記事ではありません。(反響やコメントによって別投稿するかもしれません) 背景 SQLエンジニアの大多数が利用しており、多くの方はWebサービス開発などでデータの登録画面や検索画面を作る際にSQLを利用したり、またはシ

    そろそろSQLのウィンドウ関数を理解したい - 連載1/3話 - Qiita
  • SQLデータベースに正しインデックスを作るのは 誰の役割?

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

    SQLデータベースに正しインデックスを作るのは 誰の役割?
  • SQLの観点から「Oracle Database」「PostgreSQL」 「MySQL」の特徴を整理しよう!

    EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

    SQLの観点から「Oracle Database」「PostgreSQL」 「MySQL」の特徴を整理しよう!
  • Office Space: ADO を使用して Excel ワークシートにクエリを実行する

    Office Space へようこそ。Office Space は、Microsoft® Office アプリケーションのスクリプト作成に関するヒントとテクニックを紹介するコラムです。毎週火曜日と木曜日に新しいヒントを掲載します。過去のヒントについては、Office Space アーカイブを参照してください。Microsoft Office でのスクリプト作成について質問がある場合は、scripter@microsoft.com (英語のみ) までお送りください。すべての質問に回答することはできないかもしれませんが、可能な限り対応いたします。 ADO を使用して Excel ワークシートにクエリを実行する 約 1 か月前、CBS は、人気ホーム コメディ "Everybody Loves Raymond" の最終回を放送しました。この番組は、Scripting Guys のうち少なくとも

    Office Space: ADO を使用して Excel ワークシートにクエリを実行する
  • グループ化したデータをHAVING句で絞り込む(1/3) ― @IT

    主な内容 --Page 1-- ▼グループ化した結果を絞り込むHAVING句 ▼WHERE句とHAVING句の違い --Page 2-- ▼HAVING句でグループ化した結果を絞り込む ▼HAVING句と論理演算子の組み合わせ --Page 3-- ▼HAVING句を利用する際の注意点 ▼まとめ 第5回を迎えた連載ですが、過去4回の連載を経て内容が徐々に濃くなってきました。単純なSELECT文から始まり、関数の利用、グループ化による集計などをこれまでに取り上げています。今回は、前回取り上げた「GROUP BY」句によるグループ化機能の利便性をさらに高める「HAVING」句を取り上げます。 グループ化した結果を絞り込むHAVING句 HAVING句を利用すると、GROUP BY句によってグループ化されたデータに対し、検索条件を指定し絞り込むことが可能です。絞り込みといえば「WHERE」句も

    グループ化したデータをHAVING句で絞り込む(1/3) ― @IT
    zaki1010
    zaki1010 2013/03/22
    WHERE句とHAVING句の違い
  • 外部テキストファイルとの接続方法

    Shell 関数 機能 外部テキストファイルを開くだけで何も操作をしなくてよい場合は、もっとも簡単なのがこの Shell 関数です。 Call Shell("NOTEPAD C:\Temp.txt", 1) Shell 関数自体は別にテキストファイルを操作するための関数ではなく、単にアプリケーションを呼び出すだけで、呼び出し先はメモ帳でも秀〇でも Excel でも何でもかまいません。上記例ではコマンドライン オプションでテキストファイルのフルパスを渡すことによって、メモ帳に起動と同時にテキストファイルを開かせています。 なおテキストファイルのフルパス中に半角スペース文字が混じる場合は、下記のようにパスをさらに二重のダブル クォーテーションで括る必要があります。 Call Shell("NOTEPAD ""C:\Documents and Settings\YU-TANG\デスクトップ\Te

  • Works - テキストファイルとExcelシートにSQL

    ExcelからSELECT文を発行する』と言う事ではありません。テキストファイルやエクセルシートに対して、 SELECT文を発行する方法について書いていきます。つまり、これらのファイルを、あたかも RDBMS のテーブルであるかのように扱う、と言う事です。    テキストの検索に関しては『grep 使えばいーじゃん』と言うご意見もあるでしょう。 実際、私自身は DOS版grep や シェアウェアの Qgrep を使っていますが、単純な grep だけでなく、 複数のファイルを使って複雑なクエリーを行う場合には、join や sort や uniq などのコマンドをパイプして使う必要があります。さらに複雑になれば、sed awk perl なども使うことになりましょう。    もちろん、そちらの方が楽、と言う人もいるでしょうが、 Windows ユーザー に限って言えば、どちらかと言う

    zaki1010
    zaki1010 2013/02/23
    ExcelのVBAでSELECT文を発行して云々ではなく、テキストファイルやエクセルシートに対して、テーブルのように扱って外部からSELECT文を発行する方法
  • リレーショナル・データベースの世界

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • 1