タグ

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

  • PostgreSQL 15にMERGE文UPSERTがやってくる | DevelopersIO

    UPSERT とは データベースにレコードを反映する際、100%新規データを扱うのであれば、テーブルにINSERTするだけですみます。 更新データも存在する場合、新規の場合は INSERT 、更新の場合は UPDATE というように処理を振り分ける必要があります。 このように、データの状態によって UPDATE と INSERT を使い分けることを、UPDATE と INSERT をくっつけて UPSERT と呼びます。 PostgreSQL は9.5で INSERT を試し、制約違反が発生すれば UPDATE する INSERT ... ON CONFLICT 構文の UPSERT に対応しました。 PostgreSQL 以外にも、MySQLSQLiteがこの方式のUPSERTに対応しています。 INSERT INTO target(tid, val) VALUES(123, 10)

    PostgreSQL 15にMERGE文UPSERTがやってくる | DevelopersIO
    willnet
    willnet 2022/12/12
  • SQL Injection in the Query Structure

    willnet
    willnet 2022/12/12
  • LATERALを使ってみよう | Let's POSTGRES

    笠原 辰仁 記事は2015年のPostgreSQL Advent Calendarの 12/3 の記事です。PostgreSQL9.3でサポートされたLATERALについての解説と使いどころについて紹介します。 はじめに PostgreSQLは幅広くSQL標準(ではないものも含む)の句や構文をサポートしており、それが製品の特徴の一つでもあります。PostgreSQL8.4でサポートされたWindow関数やWITH句はその引き合いに出されることが多いです。 さて、PostgreSQL9.3からはLATERALという句がサポートされています。やや地味で使われることが少ないため、ご存知の方は少ないかもしれません。しかし、LATERAL句は、使いどころによっては非常に強力な武器になります。 注意 記事ではテーブル定義や実行計画等を記載している箇所がありますが、幅の表示上、見やすいように改行して

    willnet
    willnet 2019/06/17
  • SQL Server - use count function with intersect

    willnet
    willnet 2016/11/26
  • SQL Server: What is the difference between CROSS JOIN and FULL OUTER JOIN?

    willnet
    willnet 2015/04/04
    cross joinは問答無用で全部くっつけるのか
  • SQLで連続したカラムが何個あるかを求める方法

    お世話になっております。 PHPmysqlでサイトを作っておりまして、そのログを分析しようとしています。 あるテーブルにユーザー名とログイン日付が入ったテーブルが有ったとして、その中で連続○日ログインしていた人は○人という結果を取りたいと考えているのですがこれをSQLで処理する方法はありますでしょうか? 今のところ、PHPで全データを取った後にPHP側で処理するしかないかと思っているのですが、件数が多いため可能であればmysql側で処理したいと思っています。 日付はUNIXTIMEに直すなどすればINTEGERに変換出来るとは思っているのですが、日付型(難しいようであればINT型の連続値でも問題ありません)でSQLで処理出来る方法はあるのでしょうか? ○○結合をすれば良いなど手がかりなど教えていただけると助かります。 ■テーブル username   login_date ほげ     

    SQLで連続したカラムが何個あるかを求める方法
    willnet
    willnet 2015/03/17
  • 副問合せの使用方法

    副問合せの使用方法 副問合せは、複数部分の問合せに応答します。たとえば、Taylorの部門で働いている人を判断するには、まずTaylorが働く部門を判断する副問合せを使用できます。その後、親SELECT文で元の問合せに応答することができます。SELECT文のFROM句の副問合せは、インライン・ビューとも呼ばれます。任意の数の副問合せをインライン・ビュー内にネストできます。また、SELECT文のWHERE句の副問合せは、ネストした副問合せとも呼ばれます。ネストした副問合せには、最大255レベルの副問合せをネストできます。 副問合せは、別の副問合せを含むことができます。トップレベル問合せのFROM句内の副問合せレベルの数には、制限がありません。WHERE句には、最大255レベルの副問合せをネストできます。 副問合せにある列が、含まれる文の列と同じ名前を持つ場合、含まれる文の表の列に表名または別

    willnet
    willnet 2014/04/09
    “ネストした副問合せが、その副問合せから1レベル上位の親である文で参照する表の列を参照する場合、Oracleは相関副問合せを行います”
  • 地獄のようによくわかる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テーブル結合 - こせきの技術日記
    willnet
    willnet 2010/09/16
    タイトルにつられた/たしかにわかりやすい
  • 第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (1)単一参照テーブル~テーブルにポリモフィズムは必要か | gihyo.jp

    SQLアタマアカデミー 第3回テーブル設計のグレーゾーン~毒と薬は紙一重 (1)単一参照テーブル~テーブルにポリモフィズムは必要か はじめに リレーショナルデータベースが関わる案件において、その開発効率と品質を最も大きく決定する要因は、テーブル設計です。テーブル設計は、工程のかなり初期の段階でなされますが、ここがまずいと、その後の開発全体を無駄に不効率で混乱したものにしてしまい、かつ容易に後戻りがきかないという重要なステップです。したがって、「⁠はじめにテーブルありき」は何にもまして重要な合言葉です。 しかし、この工程の難しいところは、往々にして一義的な正解を定められないことです。常に「これが正解」と呼べるような決まったアルゴリズムが存在しないのです。もちろん、数十年にわたる多くの人々の努力によって、いくつかの効果的な設計技法や、原則として踏み外してはいけない最低限のルール(可能な限り正規

    第3回 テーブル設計のグレーゾーン~毒と薬は紙一重 (1)単一参照テーブル~テーブルにポリモフィズムは必要か | gihyo.jp
    willnet
    willnet 2009/09/29
    単一参照テーブル/OTLT/One True Lookup Table
  • 2-1. SQL組み立て時の引数チェック

    ユーザからの入力を埋め込んで検索のSQL文を組み立てるということはしばし ば行われる。このとき入力データのチェックが甘いと,ユーザは自分の都合の 良いSQL 文を混入でき,データベースに干渉できるという問題が起こる。

  • サービス終了のお知らせ

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

  • @IT:Databaseフォーラム全記事インデックス オラクルパーティショニング

    Databaseフォーラムに掲載されている全記事にアクセスできるインデックスです。また、@ITの各フォーラムにあるデータベース関連記事も掲載しています。インデックスは記事の追加とともに拡充していきます。

  • MySQL講座 +++[smart]

    サブルーチンの基的な使い方 プログラム内で何回も同じ処理をするようなときは、その処理の部分を切り離してサブルーチンにしてしまうのがスマートなやり方です。そうすれば、何回も同じソースを書く必要がなくなるので、時間の節約にもなります。 サブルーチンの宣言 サブルーチンは sub で宣言します。 sub func;    # サブルーチンの宣言 サブルーチンを宣言し、なおかつ定義するには次のようにします。サブルーチンの宣言と定義を同時に行うのが一般的です。 # サブルーチンの宣言と定義 sub func{ .... } サブルーチンを呼び出すには、アンパサンド( & ) をサブルーチン名の前につけて、以下のようにします。 &func(); サブルーチンはファイルのどの場所で宣言してもかまいませんし、呼び出し元と同じファイル内でなくても問題ありません。別ファイルにあるサブルーチンは、do、 re

    willnet
    willnet 2007/02/13
  • CASE式のススメ / リレーショナル・データベースの世界

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

  • SHIFT the Oracle - oracle tips and tricks

    コンテンツは 2007 年に以下の専用ドメインに移転しました。 https://www.shift-the-oracle.com/

  • @IT:Oracle管理者のためのSQLリファレンス

    Oracleライセンス「SE2」検証 CPUスレッド数制限はどんな仕組みで制御されるのか (2017/7/26) データベース管理システムの運用でトラブルが発生したらどうするか。DBサポートスペシャリストが現場目線の解決Tipsをお届けします。今回は、Oracle SE2の「CPUスレッド数制限」がどんな仕組みで行われるのかを検証します ドメイン参加後、SQL Serverが起動しなくなった (2017/7/24) 連載では、「SQL Server」で発生するトラブルを「どんな方法で」「どのように」解決していくか、正しい対処のためのノウハウを紹介します。今回は、「ドメイン参加後にSQL Serverが起動しなくなった場合の対処方法」を解説します さらに高度なSQL実行計画の取得」のために理解しておくべきこと (2017/7/21) 日オラクルのデータベーススペシャリストが「DBAがすぐ

  • SQL*Plus | 株式会社CONFRAGE

    SQL*Plusの入門基礎。

  • 1