July 2021
Intermediate to advanced
376 pages
6h 34m
Japanese
本書の焦点はプログラミングテクニックにあるため、ここまでの12の章では、強力なselect文、insert文、update文、delete文を組み立てるのに利用できるSQL言語の要素を集中的に取り上げてきました。しかし、コーディングに「間接的な」影響を与えるデータベースの機能は他にもあります。本章では、そのうちの2つであるインデックスと制約を取り上げます。
テーブルに行を挿入する際、データベースサーバーはそのデータをテーブル内の特定の場所に配置するわけではありません。たとえば、customerテーブルに行を追加する場合、データベースサーバーはその行をcustomer_id列の数値の順に配置するわけでも、last_name列のアルファベット順に配置するわけでもありません。データベースサーバーは単に、ファイル内の次に利用できる場所にデータを配置するだけです(各テーブルの空き領域のリストはデータベースサーバーが管理しています)。このため、customerテーブルに対してクエリが実行されたら、データベースサーバーはテーブルの行を1つ残らず調べなければなりません。たとえば、次のクエリを実行したとしましょう。
mysql>SELECT first_name, last_name->FROM customer->WHERE last_name LIKE 'Y%';+------------+-----------+ | first_name | last_name | +------------+-----------+ | LUIS | YANEZ | | MARVIN | YEE | | CYNTHIA | YOUNG | +------------+-----------+ ...