2020年に、The NULL Value and its Purpose in Relational Database Systems(リレーショナルデータベースシステムにおけるNULL値とその目的)について学びました。その記事で述べたように、値NULLは、値が存在しないことを意味する特別なマーカーになりました。NULL値は、列が値を持つことができることを示している可能性がありますが、その値がどうあるべきかはまだわかりません。そのような状況では、テーブルフィールドに実際の値を入力するために必要なデータを最終的に収集するまで、それらはプレースホルダーとして機能します。
さらに、全ての主要なデータベースベンダーがデフォルト値としてNULLをサポートしていることを考えると、NULLを使用することだけが理にかなっていますね。どうしても必要な場合を除き、NULLの使用を避けるデータベース設計者がいます。彼らは私たちが知らない何かを知っているのでしょうか?続きを読んで見つけてください!
定期的なデータベースバックアップの実行を信じていないデータベース管理者(DBA)はほとんどいませんが、最善の方法については多くの意見があります。どちらのアプローチを支持する場合でも、データベーススキーマのコピーを保持する理由は十分にあります。データが失われた場合は、スキーマからデータベース構造を復元し、最新のデータバックアップを使用してデータを取り込むことができます。
MySQLなどの一部のデータベースベンダーは、データベース構造を単独でバックアップするための無料のユーティリティ(つまりmysqldump)を提供していますが、それには特定の管理ツールを必要とするベンダーもあります。Navicat ユーザーの場合、外部ツールは必要ありません。データのバックアップはバックアップウィザードを使用して実行できますが、スキーマはデータ転送ツールを使用してコピーできます。このブログでは、その方法を学びます。
先週の記事では、SELECTクエリの外部結合に光を当てました。関連するテーブルから一致した行と一致しない行の両方を返すJOINのタイプです。残念ながら、これはMySQLを含む全てのデータベース(DB)ベンダーでサポートされているわけではありません。しかし、大丈夫です。なぜなら、外部結合は、他の3つのJOINのタイプ、つまり、LEFT JOIN(左結合)、INNER JOIN(内部結合)、およびRIGHT JOIN(右結合)を組み合わせることでエミュレートできるためです。この記事では、JEFT JOINとRIGHT JOINについて詳しく説明し、INNER JOINと組み合わせてOUTER JOINを作成する方法について説明します。
外部結合は、全てのSQL結合タイプの中で最も理解されていないものです。おそらく、外部結合が他の結合タイプよりも必要とされる頻度がやや少ないためです。いずれにせよ、外部結合について本質的に奇妙なことは何もありません。このブログ記事で説明するように、実際の外部結合のいくつかの例は、それらについての誤解や混乱を明確にするのに十分なはずです。
このブログでは、最初にOuter Joinステートメントの構文と目的について説明し、いくつかの実例を次に示します。
情報技術(または、より一般的に知られているIT)の領域では、列挙型は、定義済みの定数のセットをカプセル化する特別なデータ型です。そのため、変数は、定義済みの値の1つしか保持できません。一般的な例には、北、南、東、西のコンパス方位や曜日などがあります。
列挙型をデータベーステーブルに格納する際の複雑な要因の1つは、列挙型の値が数値またはアルファベット(つまり、文字列)である可能性があることです。さらに、許容される列挙型セットの一部ではない値をユーザーがテーブルに追加できないようにする必要があるでしょう。本日のブログでは、これらの問題の両方に対処します。