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

SQLSQLBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このプロジェクトでは、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.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でさらに多くの実験を行ってみることができます。