MySQL データベーステーブル制約の変更

SQLBeginner
オンラインで実践に進む

はじめに

このプロジェクトでは、MySQL データベースのcountrylanguageテーブルを変更し、IsOfficialフィールドの「not null」制約を削除する方法を学びます。

👀 プレビュー

MariaDB [world]> DESC countrylanguage;
+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NO   | PRI |         |       |
| Language    | char(30)      | NO   | PRI |         |       |
| IsOfficial  | enum('T','F') | YES  |     | NULL    |       |
| Percentage  | decimal(4,1)  | NO   |     | 0.0     |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.002 sec)

🎯 タスク

このプロジェクトでは、以下を学びます。

  • MySQL データベースを起動し、sudoコマンドを使用してアクセスする方法
  • world.sqlデータファイルを MySQL データベースにインポートする方法
  • countrylanguageテーブルを変更し、IsOfficialフィールドの「not null」制約を削除する方法
  • countrylanguageテーブルに対して行われた変更を検証する方法

🏆 成果

このプロジェクトを完了すると、以下ができるようになります。

  • コマンドラインインターフェイスを使用して MySQL データベースを操作する方法を理解する
  • フィールドの制約を変更することでテーブル構造を変更する
  • テーブルの構造を記述することで、テーブルに対して行われた変更を検証する

MySQL データベースを起動して MySQL にアクセスする

このステップでは、MySQL データベースを起動し、パスワードなしでsudoコマンドを使用してアクセスする方法を学びます。

  1. MySQL データベースサービスを起動する:
sudo service mysql start
  1. MySQL コマンドラインインターフェイスにアクセスする:
sudo mysql

これで MySQL データベースを操作できる状態になりました。

✨ 解答を確認して練習

World データベースをインポートする

このステップでは、world.sqlデータファイルを MySQL データベースにインポートし、worldデータベースに切り替える方法を学びます。

  1. world.sqlデータファイルをインポートする:
MariaDB [None]> SOURCE /home/labex/project/world.sql;
  1. worldデータベースに切り替える:
MariaDB [None]> USE world;

これでworldデータベースが読み込まれ、操作できる状態になりました。

✨ 解答を確認して練習

countrylanguage テーブルを変更する

このステップでは、countrylanguage テーブルの IsOfficial フィールドから「not null」制約を削除する方法を学びます。

  1. テキストエディタで changeNull.sql ファイルを開きます。
  2. 次の SQL ステートメントをファイルに追加します:
ALTER TABLE countrylanguage MODIFY COLUMN IsOfficial ENUM('T', 'F') NULL;

このステートメントは、countrylanguage テーブルの IsOfficial フィールドから「not null」制約を削除します。

  1. changeNull.sql ファイルを保存します。
✨ 解答を確認して練習

changeNull.sql スクリプトを実行する

このステップでは、MySQL コマンドラインインターフェイスで changeNull.sql スクリプトを実行する方法を学びます。

  1. MySQL コマンドラインインターフェイスで、次のコマンドを実行して changeNull.sql スクリプトを実行します:
MariaDB [world]> SOURCE /home/labex/project/changeNull.sql;

これにより、changeNull.sql ファイル内の SQL ステートメントが実行され、countrylanguage テーブルが変更されます。

✨ 解答を確認して練習

変更を検証する

このステップでは、countrylanguage テーブルに対して行われた変更を確認する方法を学びます。

  1. MySQL コマンドラインインターフェイスで、次のコマンドを実行して countrylanguage テーブルの構造を表示します:
MariaDB [world]> DESC countrylanguage;

出力結果には、IsOfficial フィールドから「not null」制約が削除されていることが示されるはずです。

+-------------+---------------+------+-----+---------+-------+
| Field       | Type          | Null | Key | Default | Extra |
+-------------+---------------+------+-----+---------+-------+
| CountryCode | char(3)       | NO   | PRI |         |       |
| Language    | char(30)      | NO   | PRI |         |       |
| IsOfficial  | enum('T','F') | YES  |     | NULL    |       |
| Percentage  | decimal(4,1)  | NO   |     | 0.0     |       |
+-------------+---------------+------+-----+---------+-------+
4 rows in set (0.002 sec)

おめでとうございます!IsOfficial フィールドから「not null」制約を削除することで、countrylanguage テーブルを正常に変更できました。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。実験技術を向上させるために、LabEx でさらに多くの実験を行ってみることができます。