タグ

SQLとdatabaseに関するdrumscoのブックマーク (8)

  • Home | DBML

    Intro​ DBML (Database Markup Language) is an open-source DSL language designed to define and document database schemas and structures. It is designed to be simple, consistent and highly-readable. It also comes with command-line tool and open-source module to help you convert between DBML and SQL. Table users { id integer username varchar role varchar created_at timestamp } Table posts { id integer

    Home | DBML
    drumsco
    drumsco 2022/10/09
    DBスキーマ定義用のMarkup Langage. dbdiagram.io で 2018年頃から開発された。DDLでもいいけど、これが業界標準になってくれたら、RDBMSの差異もある程度は吸収できるスキーマ定義にできそう。
  • MySQLで相関サブクエリを実行する

    相関サブクエリとは、SQLの実行結果の行と行を比較することです。 ある行とある行の時間差を求めることで何秒間隔でデータが登録されているかがわかったり、 ある行とある行の売上差を求めることで、売上の上がり下がりをだしたりできます。 相関サブクエリを知らなければ、 SELECTしたデータをもとに、 プログラムを書く必要がありますが、 データベースだけでもある程度のことはできてしまうのです! ポイントは2点あります。 (ポイント1)必要なデータだけをソートして抜き出し、行番号を振る このときに、ある行と次の行が比較対象となるようにソートしましょう。 (ポイント2)自己結合をして比較する 以上の2点です。 必要なデータだけをソートして抜き出し、行番号を振 必要なデータを抜き出すのは、whereで条件をつけます。 ソースするのはもちろんorder byです。 結果に行番号をつけることがポイントです。

    MySQLで相関サブクエリを実行する
    drumsco
    drumsco 2021/01/28
    MySQL8.0からはWindow関数が実装されている。なのでこれは 5.x の場合を想定したもの。rownum を生成するために自動変数 (select @i:=0)tmp を使うテクニックあり。
  • SQLのパフォーマンス問題を引き起こす日付型

    処理しにくい最もたるものはDATE型でしょう。 Oracleは、常に時刻までを含むDATE型の1つしかないので、特に厄介だと言えます。 時間の成分を排除するためにTRUNC関数を使うのは、 一般的な方法になっています。実際には、Oracleには純粋なDATE型は存在しないので、この関数は時間成分を削除 してしまうわけではなく、その代わり時刻を0時0分に設定します。検索時に時間成分を無視するには、比較の両辺で TRUNC関数を使用します。前日の売り上げを知りたい時は以下のようにします。 SELECT ... FROM sales WHERE TRUNC(sale_date) = TRUNC(sysdate - INTERVAL '1' DAY)これは完璧に有効で正しい文ですが、SALE_DATEに 作られたインデックスを正しく使うことはできません。この理由は、「UPPERとLOWERを使った

    SQLのパフォーマンス問題を引き起こす日付型
    drumsco
    drumsco 2020/10/11
    日付型、日時型、タイムスタンプ型の範囲検索を行う場合には、インデックスが重要。
  • SQLのインデックスとそのチューニングについてのオンラインブック

    開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQLOracleSQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 Db2 (LUW)U

    SQLのインデックスとそのチューニングについてのオンラインブック
  • TeamSQL - Cross-platform SQL Client Built for Collaboration

    Looking for an Amazon Redshift client? TeamSQL has retired and is not available for download anymore. You can The world's first and the only query and management tool built for Amazon Redshift. Get DataRow for Amazon Redshift Hello, TeamSQL has been a great platform to experiment with modern UI and powerful features to help you manage your popular databases with collaborative features. Over two ye

    TeamSQL - Cross-platform SQL Client Built for Collaboration
  • Another PostgreSQL Diff Tool (apgdiff) - Official Homepage: How to Use It

    If you found the product useful, you may like to donate us some amount. Another PostgreSQL Diff Tool (also known as apgdiff) is free PostgreSQL diff tool that is useful for comparison/diffing of database schemas. The tool compares two database dump files and creates output with DDL statements that can be used to update old database schema to new one or to see in what exactly both databases differ.

  • HOWTO - SQL92 Syntax

    < > <= >= <> = AND OR NOT IS [NOT] NULL [NOT] LIKE [NOT] IN ( [,...] ) [NOT] BETWEEN x AND y [conditional] ANY ( [,...] ) [conditional] ALL ( [,...] ) AVG | MAX | MIN | SUM | COUNT GREATEST|LEAST(x,y,...) <{ROUND|TRUNC<!ATE>}({x,places|date,format})> POSITION( s1 IN s2) EXTRACT( datetime FROM datetime_value) CHAR_LENGTH( s1 ) <LENGTH( s1 )> SUBSTRING(string FROM start [FOR length])|<SUBSTR(string,

  • リレーショナル・データベースの世界

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

  • 1