列名の変更

列名も扱う必要があります。それ以外の場合は、名前 name と id を繰り返しますが、それらには異なるデータが含まれます。一方、最初の id 列とemployee_id 列には同じデータが含まれています。

必要な列のみが含まれるクエリを作成し、同じ名前の列の名前を変更しましょう。

SELECT  
    task.id AS task_id,  
    task.name AS task_desc, 
    task.deadline AS deadline, 
    emploee.id AS emploee_id,  
    emploee.name AS emp_name,  
emploee.occupation AS	
    emp_occupation 
FROM employee, task
WHERE emploee.id = task.emploee_id

そして、このクエリの結果は次のようになります。

タスクID タスク説明 締め切り 従業員ID 従業員名 従業員の職業
1 フロントエンドのバグを修正 2022-06-01 1 イワノフ・イワン プログラマー
2 バックエンドのバグを修正 2022-06-15 2 ペトロフ・ペトル プログラマー
7 人生を楽しむ (ヌル) 4 ラビノビッチ・モイシャ 監督
3 コーヒーを買う 2022-07-01 5 キリエンコ・アナスタシア 事務長
4 コーヒーを買う 2022-08-01 5 キリエンコ・アナスタシア 事務長
5 コーヒーを買う 2022-09-01 5 キリエンコ・アナスタシア 事務長
8 人生を楽しむ (ヌル) 6 バスカ

わかりました。理解できない列名の問題は正常に解決されました。クエリは少し長くなりましたが、結果のテーブルではすべてが明らかです。余分な列もありません。

テーブルの別名

テーブル名が長すぎて、クエリ内で多くのスペースを占める場合があります。したがって、SQL の作成者は、列の場合と同様に読みやすさを向上させるために、テーブルの別名を指定する機能を提供しました。

エイリアス (テーブル エイリアス) の一般的な形式は次のとおりです。

FROM table1 alias1, table2 alias2

前のクエリを短いエイリアスで書き直してみましょう。

SELECT  
    t.id AS task_id,  
    t.name AS task_desc, 
    t.deadline AS deadline, 
    e.id AS emploee_id,  
    e.name AS emp_name,  
    e.occupation AS emp_occupation 
    FROM employee e, task t 
WHERE e.id = t.emploee_id

可読性は若干低下していますが、これはテーブルの名前が当初は単純かつ明確だったためです。次のようにしてもよいでしょう:

SELECT  
  	task.id AS task_id,  
  	task.name AS task_desc, 
  	task.deadline AS deadline, 
  	emploee.id AS emploee_id,  
  	emploee.name AS emp_name,  
emploee.occupation AS	
  	emp_occupation 
FROM  
  	Microsoft_it_department_employee employee, 
  	Year2022_priority_task task 
WHERE emploee.id = task.emploee_id 

この場合、エイリアスはすでに役に立ちます。;)

主キー

そして、テーブルに関する重要な情報がもう 1 つあります。タスクテーブルにemployee_id列があったことを覚えていますか? これにより、従業員テーブルから従業員 ID を参照しました。

あるテーブルから別のテーブルの行を参照したい場合、参照されるテーブルには ID を持つ列が必要です。この列は主キー PRIMARY KEY とも呼ばれます

ほとんどの場合、これは値の型がintである特別に追加された列です。テーブルにレコードを追加すると、SQL によってこの列の値が自動的に設定されます。

そして、多くのことがこれらのキーに関連付けられています。

  • 異なるテーブルを相互にリンクする。
  • ID によるクイック検索とフィルタリング。
  • データベース内のデータの整合性 (存在しない ID への参照がない)。
  • 誰も参照していないデータを削除する。
  • 他にもたくさんあります。

ちなみに、テーブルにいわゆるナチュラル キーがある場合があります。これは、内容が一意であることを意味する列が存在する場合です。たとえば、従業員テーブルに以下を追加することにしました。

  • 会社に到着した順番。
  • 税番号;
  • パスポートの番号とシリーズ。

データベース設計者は自然キーを主キーとして使用する場合もありますが、ほとんどの場合は別々に使用されます。結局のところ、レコードは削除、変更などが可能です。

執行吏がそのフルネームの借金をある人に課すという話をインターネットで読んだのではないかと思います。これは、一意のキーの概念に関連するものです。銀行や執行吏にとって、氏名と生年月日で人物を検索するのに非常に便利です。そして、99% の場合、これだけで個人を特定できます。

しかし、残りの 1% 未満は、生まれた年が同じで、完全に同名です。私たち一人一人の生活の中でそのような人はおそらくいないでしょうが、国家規模では存在します。一般に、ソフトウェアを作成している場合、またはデータベースを設計している場合、これが当てはまる可能性があることを知っておくと役立ちます。