タグ

SQLに関するpick_mugetuのブックマーク (23)

  • SQLアンチパターン簡単まとめ

    SQLアンチパターン」について、自分の勉強がてら内容を簡単にまとめました。 「とりあえずSQLは触れてWebアプリが作れる」「シンプルなアプリを実務で作ったことがある」くらいの人が読むととても勉強になると思います。 また、「現場での良くない設計」が詳細に言語化されているので、経験豊富な人でも新たな発見があると思います。 詳しく知りたい方は是非を買って実際に読んでみて欲しいです。 第一章 ジェイウォーク パターン 1カラムにコンマ区切りで値を入れて複数の紐付きを表現しようとする なぜダメか 検索しづらい 文字列カラムの文字数制限という暗黙の制約を受ける バリデーションかけられない 解決策 交差テーブルの作成 第二章 ナイーブツリー パターン 木構造を表現するとき、常に親のみに依存する(parent_idだけ持ってしまう) 隣接リスト なぜダメか 階層を深く掘ろうとするとそのぶんSQLをか

    SQLアンチパターン簡単まとめ
  • Introducing MySQL Shell for VS Code

  • 【BigQuery】FIRST_VALUE関数,LAST_VALUE関数の使い方とその違い - Qiita

    概要 記事では,BigQueryのFIRST_VALUE関数とLAST_VALUE関数を紹介します。 以下公式ドキュメントより引用: https://cloud.google.com/bigquery/docs/reference/standard-sql/analytic-function-concepts?hl=ja#navigation-functions ナビゲーション関数は現在の行からウィンドウ フレーム内の別の行に対して,いくつかの value_expression を計算します。OVER 句の構文は,ナビゲーション関数によって異なります。 ※value_expressionは,式から返すことができる任意のデータ型を指定できます。 ・FIRST_VALUE関数:指定カラムの先頭の行を持ってくる関数 ・LAST_VALUE関数:指定カラムの末尾の行を持ってくる関数 同じような事

    【BigQuery】FIRST_VALUE関数,LAST_VALUE関数の使い方とその違い - Qiita
  • [Redshift] ウィンドウ関数:FIRST_VALUE、LAST_VALUEで文字列の最小値・最大値を取得 | DevelopersIO

    [Redshift] ウィンドウ関数:FIRST_VALUE、LAST_VALUEで文字列の最小値・最大値を取得 はじめに 最小値と最大値を取得する関数にはMINとMAXが存在しますが、文字列で実現するにはFIRST_VALUEとLAST_VALUEを使用します。 環境 MacOSX 10.10.5 Yosemite Redshift 1.0.1125 テーブルの準備 ミュージシャンのツアースケジュール:tour_schedule CREATE SCHEMA IF NOT EXISTS blog; CREATE TABLE IF NOT EXISTS blog.tour_schedule ( id INTEGER , artist VARCHAR(32) , day DATE , Country VARCHAR(16) , City VARCHAR(16) , Venue VARCHAR(

    [Redshift] ウィンドウ関数:FIRST_VALUE、LAST_VALUEで文字列の最小値・最大値を取得 | DevelopersIO
  • BdashというBIツールをリリースしました - hokaccha memo

    BdashというアプリケーションをElectronで作りました。 bdash-app/bdash: A simple business intelligence application. 以下からダウンロードしてインストールできます(現状まだMac版だけ)。 https://github.com/bdash-app/bdash/releases ざっくりとこんな感じのことができる。 SQLを書いて保存&実行できる 結果を元にグラフを書ける gistで共有できる 現状で対応しているデータソースはMySQL、PostgreSQL(Redshift含む)、BigQuery 仕事でRedshiftを使って分析SQLを書くことが増えて、手元ではJupyter Notebookを使ってたんだけど、SQL書いてグラフを書くだけの用途には若干オーバースペックでもうちょっと簡単にできるといいなと思ったのがき

    BdashというBIツールをリリースしました - hokaccha memo
  • ウィンドウ関数で作るデータプロダクト - クックパッド開発者ブログ

    検索編成部の兼山(@PENGUINANA_)です。 クックパッドではウィンドウ関数をデータプロダクトの開発に活用しています。 ウィンドウ関数を利用すると、行動ログを利用したプロダクトの開発や評価が簡単に始められます。 今回は「関連キーワード」を例にとりウィンドウ関数がどのように活用できるのかを紹介します。 関連キーワードとは 朝ごはんのレシピ 52750品 [クックパッド] 簡単おいしいみんなのレシピが224万品 検索画面に検索を補助するための関連キーワードが提示されています。 「朝ごはん」の検索画面の関連キーワード: レシピを検索していると、自分の欲しいレシピが簡単に見つからない時があります。 理由は様々ですが一例として以下の様な状況があると思います。 「入力するのがめんどくさい」 「さがしたいものがあまりイメージできていない」 「それをさがす適切な検索語が思いつかない」 関連キーワード

    ウィンドウ関数で作るデータプロダクト - クックパッド開発者ブログ
  • LIKE句のSQLインジェクション | Yakst

    GitHubエンジニアがデータベースのスローログから見つけた、LIKE句を使ったクエリーのパフォーマンス問題につながる可能性のある文字列。問題の仕組みと、それを回避するためのスニペット。 先日、例外情報のトラッカーを見回していたら、目を引くスロークエリーログを発見しました。SELECT ... WHERE ... LIKEといったクエリーのLIKE句にたくさんのパーセントが付いているのです。この部分はユーザが入力した部分なのは明らかで、最初私はSQLインジェクションを疑いました。 [3.92 sec] SELECT ... WHERE (profiles.email LIKE '%64%68%6f%6d%65%73@%67%6d%61%69%6c.%63%6f%6d%') LIMIT 10 コードを見てみると、ここで解釈されるメタ文字(%や_や\)のチェックをまったくせずにユーザが指定し

    LIKE句のSQLインジェクション | Yakst
  • SQLインジェクション対策もれの責任を開発会社に問う判決

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

  • 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

  • MySQL :: Got temporary error 20016 'Query aborted due to node failure' from NDBCLUSTER

  • ADODB.RecordsetでRecordCountを取得する - 大人になったら肺呼吸

    はじめに レガシーASP(クラシックASP)で、SQLを発行してデータベースからデータを取得する際に、結果として取得したレコードの件数を取得したい場合があります。このエントリでは、ADODB.RecordsetのRecordCountで正しいレコード数を取得する方法を紹介します。 RecordCountプロパティが-1を返す レコードの件数を取得するSQL(SELECT COUNT(*) FROM 〜)を使うことも可能ですが、データの取得と同時に件数も取得したいときは、RecordCountプロパティを参照することで、SELECTしたレコードの件数を取得することができます。 しかしながら、通常ではRecordCountプロパティは、-1を返します。これは、CursorLocationがデフォルト(サーバサイドカーソル)になっていることが原因です。 サーバーサイド カーソルを使用して作成した

    ADODB.RecordsetでRecordCountを取得する - 大人になったら肺呼吸
  • Accessからoracleのストアドプロシージャを呼び出したい。

    はじめまして。 いきなりですが質問させてください。 Accessからoracleのデータベース内に有るストアドプロシージャを使いたい(ボタンを押したらoracleのプロシージャが起動するイメージ)のですがAccessのVBAからはどのようにすれば使用できるのでしょうか? 色々調べて見たのですがVBからのはよく有るのですがVBAからは見つけられませんでした。 ODBCで繋げて呼び出しが出来たらなと思っています 無理ならば他の方法でも構いません。 よろしくお願いします。 使用環境 Access:2002 oracle:Oracle9i Enterprise Edition Release 9.2.0.1.0

    Accessからoracleのストアドプロシージャを呼び出したい。
    pick_mugetu
    pick_mugetu 2012/07/06
    基本的にはストアドプロシージャは実行できない
  • CASE式のススメ / リレーショナル・データベースの世界

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

  • seiji-tsubosaki.net - このウェブサイトは販売用です! - seiji tsubosaki リソースおよび情報

    pick_mugetu
    pick_mugetu 2012/03/23
    UNION ALL してから DISTINCT する SQL を書くと DISTINCT が無視される
  • モテるセキュ女子力を磨くための4つの心得「SQLインジェクションができない女をアピールせよ」等 - ockeghem's blog

    こんにちは、セキュリティ勉強会などで講師を担当しているockeghem夫です。私は学歴も知識もありませんが、セキュリティに関してはプロフェッショナル。今回は、モテるセキュ女子力を磨くための4つの心得を皆さんにお教えしたいと思います。 1. あえて2〜3世代前の書籍の知識で対策する あえて2〜3世代前の書籍の知識で脆弱性対策するようにしましょう。そして勉強会の打ち上げで好みの男がいたら話しかけみましょう。「あ〜ん! addslashes当にマジでチョームカつくんですけどぉぉお〜!」と言って、男に「どうしたの?」と言わせましょう。言わせたらもう大成功。「SQLインジェクションとか詳しくなくてぇ〜! サテ技に載ってたからずっとaddslashes使ってるんですけどぉ〜! 日語が化けるんですぅ〜! ぷんぷくり〜ん(怒)」と言いましょう。だいたいの男は新しい書籍を持ちたがる習性があるので、古か

    モテるセキュ女子力を磨くための4つの心得「SQLインジェクションができない女をアピールせよ」等 - ockeghem's blog
  • ソニーミュージック(日本)にSQLインジェクション脆弱性。DB構造も晒され。 - うさぎ文学日記

    今度はソニーミュージックの日のWebサイトにSQLインジェクション脆弱性があるとリークされています。 リーク内容にはSQLインジェクションで抜いたであろう、データベースのテーブル名やカラムなどの情報も載っています。 このデータベースに個人情報が入っているのなら、アクセスされている可能性もありますね。 LulzSec Leak Sony's Japanese websites Database ! ~ THN : The Hackers News ソニーに対する攻撃が止まりませんね…。

    ソニーミュージック(日本)にSQLインジェクション脆弱性。DB構造も晒され。 - うさぎ文学日記
  • サービス終了のお知らせ

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

    pick_mugetu
    pick_mugetu 2011/02/15
    マテリアライズドビュー
  • マテリアライズド・ビューの概念(Materialized View) - Oracle Pub

    Materialized View マテリアライズド・ビューは、データの集計、計算、レプリケートおよび分配に使用できるスキーマ・オブジェクトである。 データ・ウェアハウスでは、マテリアライズド・ビューは、合計値や平均値など、集計されたデータを計算して格納するために使用される。通常、このような環境では、マテリアライズド・ビューには集計データが格納されるため、サマリーと呼ばれる。また、マテリアライズド・ビューは、集計操作の有無に関係なく、結合の計算にも使用できる。 分散環境では、マテリアライズド・ビューは、分散サイトでデータをレプリケートし、複数のサイトで実行される更新を競合解消方法に従って同期化するために使用される。レプリカとしてのマテリアライズド・ビューは、他の方法ではリモート・サイトからのアクセスを必要とするデータへのローカル・アクセスを提供する。 モバイル・コンピューティング環境では、

    pick_mugetu
    pick_mugetu 2011/02/15
    マテリアライズドビュー
  • マテリアライズドビュー - Wikipedia

    データベース管理システムは関係モデルに従うため、ビュー は仮想的な テーブル であり、データベースに対するクエリの結果を表す。ビューを参照または更新すると、その処理はビューの対象となった実際のテーブルへの参照または更新へ変換され、実行される。 マテリアライズドビュー (Materialized View; 体現ビューともいう)はこれとは異なるアプローチを取り、クエリの結果を実際のテーブルにキャッシュする。キャッシュされたデータは元のテーブルが変更されるたびに更新される。そのため、最新でない状態を取得する可能性はあるが、効率的なアクセスが可能になる。特にデータウェアハウスでは実際のテーブルに対して頻繁にクエリを実行することは非常にコストが高いため、マテリアライズドビューが有効である。 さらに、マテリアライズドビューは実際のテーブルとして実体化されるため、実際のテーブルに対して適用可能な操作は

    pick_mugetu
    pick_mugetu 2011/02/15
    マテリアライズドビュー
  • Oracleの機能を使って表の結合を高速化する(1/4) - @IT

    連載では、Oracleデータベースのパフォーマンス・チューニングの中から、特にSQLのチューニングに注目して、実践レベルの手法を解説する。読者はOracleデータベースのアーキテクチャを理解し、運用管理の実務経験を積んでいることが望ましい。対象とするバージョンは現状で広く使われているOracle9iの機能を基とするが、Oracle 10gで有効な情報も随時紹介していく。(編集局) 連載目次 前回「表の結合を極めるチューニング・テクニック」では、絞り込み条件がない結合を含むSQL、絞り込み条件のある結合を含むSQLについて実例を基に最適な結合方法を説明しました。 今回は、Oracleの機能である「マテリアライズド・ビュー」「BITMAP JOIN INDEX」「クラスタ」を利用した結合処理に関するチューニング・テクニックについて説明します。 マテリアライズド・ビューを理解する 結合処理な

    Oracleの機能を使って表の結合を高速化する(1/4) - @IT
    pick_mugetu
    pick_mugetu 2011/02/15
    マテリアライズドビュー