ベストアンサー
主キーは列または列のセットに対する特別な制約。主キー制約により、そのように指定された列にNULL値がなく、すべての値が一意であることが保証されます。物理的には、主キーは一意のインデックスを使用してデータベースシステムによって実装され、主キーのすべての列はNOTNULLとして宣言されている必要があります。テーブルには主キーが1つしかない場合もありますが、複合(複数の列で構成される)の場合もあります。
代理キーは「実際の」またはナチュラルの代わりに主キーとして宣言できる列または列のセットキー。主キーとして宣言できる自然キーがいくつかある場合があり、これらはすべて候補キーと呼ばれます。したがって、代理は候補キーです。これは珍しいことですが、テーブルには実際には複数の代理キーが含まれる可能性があります。最も一般的なタイプのサロゲートキーは、MySQLのauto\_increment列、Oracleのシーケンス、SQLServerのID列などのインクリメント整数です。
サロゲートキーを使用する利点
前述のように、サロゲートキーはデータの元のコンテキストの一部を犠牲にします。ただし、次の理由により、分析目的で非常に役立つ場合があります。
- サロゲートキーは一意です。サロゲートキーは一意であるためです。システムによって生成されたため、システムが重複する値を作成して保存することはできません。
- 代理キーはすべてのレコードに統一されたルールを適用します。代理キー値は、システムで生成された値を作成するプログラムの結果です。プログラムの結果として作成されたキーは、各レコードに統一されたルールを適用します。
- 代理キーは時の試練に耐えます。キーにはコンテキストやビジネス上の意味がないため、将来的にキーを変更する必要はありません。
- 代理キーでは無制限の値を使用できます。シーケンシャル、タイムスタンプ、およびランダムキーには、一意の組み合わせに対する実際的な制限はありません。
回答
今日のほとんどのデータベースは、実際にはデータベース管理システム(DBMS)です。これらは2つのコンポーネントで構成されています。
- データベース適切。データと、関係、制約などのメタデータを格納します。 、など…
- 開発者やデータベース管理者がSQLコマンドを入力するユーザーインターフェイス。
データベースの大部分には、インターフェイス用のコマンドラインユーティリティが付属しています。データベースで。たとえば、MySQLは、入力行編集機能を備えた単純なSQLシェルを提供します。インタラクティブおよび非インタラクティブな使用をサポートします。インタラクティブに使用すると、クエリ結果はASCIIテーブル形式で表示されます。非対話的に(たとえば、フィルターとして)使用すると、結果はタブ区切り形式で表示されます。出力形式は、コマンドオプションを使用して変更できます。
コマンドインタープリターのプロンプトからMySQLシェルを呼び出すには、次のように入力します。
shellmysql --user=user\_name --password db\_name
Enter password: your\_password
データベースにログインすると、SELECTクエリなどのコマンドを実行できます。 、それに対して:…