TL;DR .NET用の2-way SQLライブラリを作ってみた系の記事だよ。 対象読者 .NETでもOuteside/2-way SQLしたい人 ビルドタイムコード生成の手法に興味のある人 動機(立派な建前) まず、データベースに対するクエリの構築にどんな手法を用いるかについて考えてみます。 データベースの機能/性能を最大限に生かすためには、オブジェクトのトラッキング機能等は不要 RDBへのAPIが文字列(SQL)ベースな以上、文字列構築の表現力の確保がポイント LINQ的なType safeなビルダーには表現力の限界がある StringBuilder等を使った文字列操作だとSQLの検証がしにくい SQLが外部化されれば検証は行いやすい っというわけで、.NET以外の世界ではOuteside/2-way SQLなライブラリがよく使用されていたりもすると思います。 .NETの世界でも、自分
こんにちは、Development Teamの三宅です。 先日、社内(AI事業本部内)でSQL研修の講師を担当したので、今回はその内容について簡単に共有したいと思います。 はじめに 例年、AI事業本部では、新卒エンジニアの育成のためにソフトウェアエンジニア研修を行っております。今年はフルリモートでの実施となりました。研修期間は2週間ほどで、内容は前半が講義、後半が実践(チーム開発)でした。私が担当したのは、講義パートの一部であるSQL研修です。SQLやRDBにあまり慣れていない人でも、できるだけ体系的な学びが得られるようにすることを目標に、様々な資料をまとめて提供する方針で準備しました。結果的には、ハンズオン込みで4時間ほどのやや長い講義となりましたが、勉強になったという声も頂けたのでやって良かったと思っています。 研修資料 研修内容 SQL研修の内容は、基本的には大学のデータベース講義で
PostgreSQL 9.2より追加されたJSON型だが、特徴を理解して適切に使わないと色々な副作用に悩まされることになる。その問題点を挙げると共に、どのような場合に使うべきかの指針を示す。 PostgreSQLは、データ型としてjsonをサポートしています。しかし、やりたいことがある時に何でもかんでもjson型を使ってしまうというのはやめるべきです。これは、hstoreや新しく登場したjsonb型にも同じことが言えます。これらの型は必要な時には便利なツールになりますが、PostgreSQLでデータのモデリングを行う際に最初に検討すべきものではありません。 なぜなら、データを呼び出したり操作したりするのが難しくなってしまうためです。 何もかも同じところに入れてしまおうとすることによるアンチパターンをご存知の読者もいるでしょう。EAVアンチパターンは、長らくデータベーススキーマにおける必要悪
このページは、RDBMSのSQLの文法などの違いについてまとめる予定のページです。 目次 注意 このページを作ったひとが自分のために記載しているため網羅性はありません。 データ型は「RDBMS のデータ型の比較」にあります。 一覧 バージョン確認 RDBMS 例 MySQL SELECT VERSION(); PostgreSQL SELECT VERSION(); Oracle SELECT * FROM V$VERSION; SQL Server SELECT @@VERSION; SQLite SELECT sqlite_version(); 参考 MySQL: 12.16 Information Functions PostgreSQL: PostgreSQL: Documentation: 9.1: System Information Functions Oracle: V$V
WITH句は一時表を作成する句で,SQL99より規格に取り入れられた.しかしながら,各RDBMSのWITH句の実装はまちまちである. 次のSQL文を見てみよう. WITH foo(a, b) AS ( SELECT 1, 2 UNION SELECT 3, 4 ) SELECT * FROM foo このSQL文を実行すると,PostgreSQLとSQL Serverでは次のような結果を得る.(表示形式はRDBMSによって若干異なる.) a | b ----+---- 1 | 2 3 | 4 さらに,PostgreSQLはWITH句の中でSELECT文のほかにVALUES句を用いることもできるので,次のSQL文でもPostgreSQLの場合に限り受理され,先に示した例と同様の結果を得る.これにより,PostgreSQLでは既存の表を参照しないWITH句をほかのRDBMSの場合に比較して簡潔
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
開発者向けのSQLインデックス解説サイト、管理についての間違いない知識を提供します。 インデックスは開発時には忘れられがちである一方で、非常に効果的なSQLのチューニング方法です。Use The Index, Lukeでは、HibernateなどのORMツールの解説にとどまらず、SQLのインデックスについて基礎から説明します。 Use The Index, LukeはSQLパフォーマンス詳解のWeb上の無料版です。サイトを気に入って頂けたら、ぜひ書籍も購入してみて下さい。また、このサイトの運営をサポートする様々なグッズも販売しています。 MySQL、Oracle、SQL ServerなどにおけるSQLのインデックスUse The Index, Lukeでは、ベンダにとらわれないインデックスの説明を心がけています。製品特有の事柄については、以下のような表示をしています。 Db2 (LUW)U
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 概要 名著SQLアンチパターンを読み終えたので、それの復習のために悍ましいデータベースを作ろうと思った。 まず前半では、SQLアンチパターンを意図的に盛り込み、目も当てられない酷い設計をします。 そのあとリファクタリングを行なったER図に書き直していきます。 なお、真面目に書くと参考書の丸写しになってしまうので、この記事は アンチパターンもりもりのER図を見て嫌悪感を学習し、設計に役立てようという趣向のもと、詳しい説明は省きます。 とても良い本なので読んでください。 想定するシステムの概要と状況 目的において適切かはわかりませんが、とり
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く