トップへ(mam-mam.net/)

MariaDB(MySQL)のテーブルの作成と確認、カラムの追加削除

検索:

MariaDB(MySQL)のテーブルの作成と確認、カラムの追加削除方法をSQLで解説

テーブルの作成

テーブルの作成は以下のような構文だそうです。(オプションが多いので単純な構文を記述しています)
CREATE TABLE テーブル名( カラム名 オプション, カラム名 オプション, ・・・ );
以下のようなSQLで「id」と「name」カラムを含んだ「t_test」テーブルを作ることができます。

CREATE TABLE t_test(
  id INT COMMENT 'IDです',
  name VARCHAR(30) NOT NULL COMMENT 'ユーザー名'
);
MariaDB [db_test]> CREATE TABLE t_test(
    -> id int COMMENT 'IDです',
    -> name VARCHAR(30) NOT NULL COMMENT 'ユーザー名'
    -> );
Query OK, 0 rows affected (0.011 sec)

テーブル構造の確認

テーブル構造の確認は以下構文です。 DESC テーブル名;
上記で作成した「t_test」テーブルを確認するには以下のSQLになります。

DESC t_test;
MariaDB [db_test]> DESC t_test;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(30) | NO   |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.009 sec)

テーブルのステータス確認

テーブルのステータス確認は以下です。
SHOW TABLE STATUS FROM データベース名;;

上記で作成した「t_test」テーブルのステータスを確認するには以下です。

SHOW TABLE STATUS WHERE Name='t_test';
+------+------+-------+----------+-----+-----+--------------+-------------------+-----------+----------+------------------+-----+---------+
|Name  |Engine|Version|Row_format|Rows |...  |Auto_increment|Create_time        |Update_time|Check_time|Collation         |...  |Temporary|
+------+------+-------+----------+-----+-----+--------------+-------------------+-----------+----------+------------------+-----+---------+
|t_test|InnoDB|     10|Dynamic   |   0 |...  |          NULL|2024-02-01 14:11:23|NULL       |NULL      |utf8mb3_general_ci|...  |N        |
+------+------+-------+----------+-----+-----+--------------+-------------------+-----------+----------+------------------+-----+---------+
1 row in set (0.002 sec)

テーブルのSQLの確認

作成したテーブルのSQLの確認は以下の構文です。
SHOW CREATE TABLE テーブル名;
上記で作成した「t_test」テーブルのSQLを確認するには以下のSQLになります。

SHOW CREATE TABLE t_test;
MariaDB [db_test]> SHOW CREATE TABLE t_test;
+--------+-----------------------------------------------------------------------------------------+
| Table  | Create Table                                                                            |
+--------+-----------------------------------------------------------------------------------------+
| t_test | CREATE TABLE `t_test` (
  `id` int(11) DEFAULT NULL COMMENT 'IDです',
  `name` varchar(30) NOT NULL COMMENT 'ユーザー名'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci        |
+--------+-----------------------------------------------------------------------------------------+
1 row in set (0.002 sec)

テーブルを作成したときのSQLが確認できます。
また、テーブルの文字コード照合順序も確認できます。

テーブル名の変更

テーブル名の変更は以下です。
ALTER TABLE 既存テーブル名 RENAME 新テーブル名;

上記で作成した「t_test」テーブルの名前を「t_test2」に変更するには以下です。

ALTER TABLE t_test RENAME t_test2;
MariaDB [db_test]> ALTER TABLE t_test RENAME t_test2;
Query OK, 0 rows affected (0.012 sec)


テーブル名を元に戻しましょう。

ALTER TABLE t_test2 RENAME t_test;

参考

テーブルを、別データベースに移動させることもできます。
ALTER TABLE 現在のデータベース名.既存テーブル名 RENAME 移動先データベース名.テーブル名;

テーブルのレコード(データ)を全て削除する

TRUNCATE TABLE テーブル名;

テーブル自体を削除する

DROP TABLE テーブル名;

カラムの追加

テーブルにカラムを追加する構文です。
ALTER TABLE テーブル名 ADD 追加カラム名 型 オプション;

テーブルの一番最初にカラムを追加する構文です。
ALTER TABLE テーブル名 ADD 追加カラム名 型 オプション FIRST;

テーブルの指定したカラムの後にカラムを追加する構文です。
ALTER TABLE テーブル名 ADD 追加カラム名 型 オプション AFTER 既存のカラム名;

上記で作成した「t_test」テーブルの「id」カラムの後に「age」カラムを追加するSQLです。

ALTER TABLE t_test ADD age INT DEFAULT 0 AFTER id;
MariaDB [db_test]> ALTER TABLE t_test ADD age INT DEFAULT 0 AFTER id;
Query OK, 0 rows affected (0.022 sec)
Records: 0  Duplicates: 0  Warnings: 0

カラムの削除

テーブルの既存のカラムを削除する構文です。
- ALTER TABLE テーブル名 DROP COLUMN カラム名;

上記で作成した「t_test」テーブルの「mane」カラムを削除するSQLです。

ALTER TABLE t_test DROP COLUMN name;
MariaDB [db_test]> ALTER TABLE t_test DROP COLUMN name;
Query OK, 0 rows affected (0.021 sec)
Records: 0  Duplicates: 0  Warnings: 0

カラムの型の変更

カラムの型を変更する構文です。
ALTER TABLE テーブル名 MODIFY 既存カラム名 新しい型;
上記で作成した「t_test」テーブルの「id」カラムの型「INT」を「BIGINT」に変更するSQLです。

ALTER TABLE t_test MODIFY id BIGINT;
MariaDB [db_test]> ALTER TABLE t_test MODIFY id BIGINT;
Query OK, 0 rows affected (0.032 sec)
Records: 0  Duplicates: 0  Warnings: 0

カラム名と型の変更

カラム名と型を変更する構文です。
ALTER TABLE テーブル名 CHANGE 既存カラム名 新カラム名 新しい型;
上記で作成した「t_test」テーブルの「age」カラムの名称を「ageage」に変更し、型「INT」を「BIGINT」に変更し、するSQLです。

ALTER TABLE t_test CHANGE age ageage BIGINT;
MariaDB [db_test]> ALTER TABLE t_test CHANGE age ageage BIGINT;
Query OK, 0 rows affected (0.028 sec)
Records: 0  Duplicates: 0  Warnings: 0