ステータス:非推奨

この記事では、サポートされなくなったバージョンのUbuntuについて説明します。 現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。

理由:
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達しました and no longer receives security patches or updates. This guide is no longer maintained.

代わりに参照してください:
このガイドは参照として役立つ場合がありますが、他のUbuntuリリースでは機能しない場合があります。 可能な場合は、使用しているUbuntuのバージョン用に作成されたガイドを使用することを強くお勧めします。 ページ上部の検索機能を使用して、より新しいバージョンを見つけることができます。

MySQLとMariaDBとは何ですか

MySQLとMariaDBは、SQL言語を使用する2つの一般的なデータベースシステムです。 Ubuntu上の多くのアプリケーションは、MySQLまたはMariaDBを使用して情報を管理します。

この記事では、MySQLまたはMariaDBインターフェース内でテーブルを作成する方法について説明します。 これらのタスクはUbuntu12.04VPSサーバーで実行しますが、ほとんどのコマンドはどのUbuntuマシンでも同じである必要があります。

MySQLとMariaDBをUbuntuにインストールする方法

MySQLとMariaDBのコマンド構文は同じであるため、どちらのデータベースシステムでもこのガイドで機能します。

MySQLをUbuntuにインストールするには、次のコマンドを使用します。

sudo apt-get install mysql-server

Ubuntu 12.04にMariaDBをインストールするには、ターミナルに次のように入力します。

sudo apt-get update
sudo apt-get install python-software-properties
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db
sudo add-apt-repository 'deb http://repo.maxindo.net.id/mariadb/repo/5.5/ubuntu precise main'
sudo apt-get update
sudo apt-get install mariadb-server

UbuntuにMySQLをインストールする方法の詳細については、このガイドに従ってください。

MySQLとMariaDBでのデータベースの作成

テーブルを確認する前に、MySQL内で初期データベース環境を構成する必要があります。

次のコマンドを使用してMySQLまたはMariaDBにログインします。

mysql -u root -p

インストール中に設定したパスワードを入力して続行します。

「遊び場」と呼ばれる学習用のデータベースを作成します。 次のコマンドを使用してデータベースを作成します。

CREATE DATABASE playground;

次のコマンドを使用して、新しいデータベースに切り替えます。

USE playground;

これで、テーブルについて学習を開始する準備が整いました。

MySQLとMariaDBでテーブルを作成する方法

データベースに「遊び場」という名前を付けたので、このデータベースを使用して、遊び場で見つかった機器を説明するテーブルを作成しましょう。

テーブル作成構文は、次の規則に従います。

CREATE TABLE [IF NOT EXISTS] name_of_table (list_of_table_columns) [engine=database_engine]

括弧内のセクション(”[“および”]”)はオプションです。 「IFNOTEXISTS」オプションは、同じ名前のテーブルがすでに存在する場合、テーブルの作成を強制的に中止します。 テーブルがすでに作成されている場合にエラーが発生しないようにするには、このオプションを使用することが重要です。

「engine=database_engine」セクションは、情報処理を最適化するために特定のタイプのテーブルを選択するためのものです。 これはこの記事の範囲外であり、このオプションを省略すると、適切なデフォルト(InnoDB)が選択されます。

列セクションで必要なさまざまなフィールドについては後で説明しますが、ここでは、テーブルを作成しましょう。

CREATE TABLE IF NOT EXISTS equipment (
    equip_id int(5) NOT NULL AUTO_INCREMENT,
    type varchar(50) DEFAULT NULL,
    install_date DATE DEFAULT NULL,
    color varchar(20) DEFAULT NULL,
    working bool DEFAULT NULL,
    location varchar(250) DEFAULT NULL,
    PRIMARY KEY(equip_id)
    );
Query OK, 0 rows affected (0.03 sec)

列の定義

達成したことを確認するには、次のコマンドを使用して新しいテーブルの列を出力します。

show columns in equipment;
+--------------+--------------+------+-----+---------+----------------+
| Field        | Type         | Null | Key | Default | Extra          | |+--------------+--------------+------+-----+---------+----------------+
| equip_id     | int(5)       | NO   | PRI | NULL    | auto_increment |
| type         | varchar(50)  | YES  |     | NULL    |                |
| install_date | date         | YES  |     | NULL    |                |
| color        | varchar(20)  | YES  |     | NULL    |                |
| working      | tinyint(1)   | YES  |     | NULL    |                |
| location     | varchar(250) | YES  |     | NULL    |                |
+--------------+--------------+------+-----+---------+----------------+
6 rows in set (0.00 sec)

結果は、列を定義するために必要なフィールドへの洞察を与えてくれます。 テーブル作成コマンドの各列の説明はコンマで区切られ、次の規則に従います。

Column_Name Data_Type[(size_of_data)] [NULL or NOT NULL] [DEFAULT default_value] [AUTO_INCREMENT]

各列定義の値は次のとおりです。

<ul>
<li><strong>Column Name</strong>: Describes the attribute being assigned.  For instance, our first column is called "equip_id" because it will hold the unique ID number associated with each piece of equipment.</li>

<li><strong>Data Type</strong>: Specifies the type of data the column will hold.  Can be any of MySQL's data types.  For instance, "int" specifies that only integer values will be accepted, while "varchar" is used to hold string values.  There are many data types, but these are outside of the scope of this article.

<em>Note: Most data types need a size value in parentheses to specify the maximum amount of space needed to hold the values for that field.</em></li>

<li><strong>Null</strong>: Defines whether null is a valid value for that field.  Can be "null" or "not null".</li>

<li><strong>Default Value</strong>: Sets the initial value of all newly created records that do no specify a value. The "default" keyword is followed by the value.</li>

<li><strong>auto_increment</strong>: MySQL will handle the sequential numbering internally of any column marked with this option, in order to provide a unique value for each record.</li>
</ul>

最後に、列宣言を閉じる前に、「PRIMARY KEY(columns_to_be_primary_keys)」と入力して、主キーとして使用する列を指定する必要があります。

「auto_increment」オプションは値が一意であることを保証するため、「equip_id」列を主キーとして使用しました。これは主キーの要件です。

MySQLまたはMariaDBテーブルにデータを挿入する方法

テーブルにレコードを挿入してみましょう。 これを行うには、次の構文を使用します。

INSERT INTO table_name (field1, field2, ...) VALUES (value1, value2, ...);

すべての文字列値は引用符で囲む必要があります。 「auto_increment」が設定されているすべての列には値は必要ありません。データベースが次の連続番号を提供するためです。

次のように、遊具テーブルにスライドを追加できます。

INSERT INTO equipment (type, install_date, color, working, location)
VALUES
("Slide", Now(), "blue", 1, "Southwest Corner");

日付列に現在の日付を入力する「Now()」という特殊関数を使用しました。

情報を表示するには、テーブルをクエリします。 アスタリスク(*)は、すべてに一致する特別なワイルドカード文字です。 このクエリは、機器テーブル内のすべてを選択します。

SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
| equip_id | type  | install_date | color | working | location         |
+----------+-------+--------------+-------+---------+------------------+
|        1 | Slide | 2013-07-26   | blue  |       1 | Southwest Corner |
+----------+-------+--------------+-------+---------+------------------+
1 row in set (0.00 sec)

別のエントリを追加しましょう:

INSERT INTO equipment (type, install_date, color, working, location)
VALUES
("Swing", Now(), "green", 1, "Northwest Corner");

新しいデータがテーブルに存在することがわかります。

SELECT * FROM equipment;
+----------+-------+--------------+-------+---------+------------------+
| equip_id | type  | install_date | color | working | location         |
+----------+-------+--------------+-------+---------+------------------+
|        1 | Slide | 2013-07-26   | blue  |       1 | Southwest Corner |
|        2 | Swing | 2013-07-26   | green |       1 | Northwest Corner |
+----------+-------+--------------+-------+---------+------------------+
2 rows in set (0.00 sec)

MySQLとMariaDBでテーブルを削除する方法

テーブルを削除するには、次の構文を使用できます。

DROP TABLE table_name;

テーブルを削除すると、内部のデータを復元できないため、このコマンドには十分注意してください。

まず、現在のテーブルを表示して、「showtables」コマンドがどのようになるかを確認します。

SHOW tables;
+----------------------+
| Tables_in_playground |
+----------------------+
| equipment            |
+----------------------+
1 row in set (0.00 sec)

機器テーブルを削除しましょう:

DROP TABLE equipment;

そして今、「遊び場」テーブルリストをもう一度確認してください。

SHOW tables;
Empty set (0.00 sec)

「プレイグラウンド」データベースにテーブルがなくなったため、操作は成功しました。

結論

これで、テーブルに対する基本的な操作の実行に慣れているはずです。

これらは、MySQLまたはMariaDBを管理するために必要な基本的なスキルです。 データベース管理の他の領域に飛び込むときに、それらに精通することで成果が得られます。

ジャスティン・エリングウッド