MariaDB(MySQL)のテーブル作成時のSQL確認、テーブル構造の確認、テーブル名の変更、カラムの追加削除、カラム名や型変更方法をSQLで解説
- テーブル構造の確認(DESC テーブル名;)
- テーブルのステータス確認(SHOW TABLE STATUS WHERE Name='テーブル名';)
- テーブルの作成時のSQL確認(SHOW CREATE TABLE テーブル名;)
- テーブル名の変更(ALTER TABLE 既存テーブル名 RENAME 新テーブル名;)
- テーブルのレコード全削除(TRUNCATE TABLE テーブル名;)
- テーブルを削除(DROP TABLE テーブル名;)
- カラムの追加(ALTER TABLE テーブル名 ADD 追加カラム名 型 オプション;)
- カラムの削除(ALTER TABLE テーブル名 DROP COLUMN カラム名;)
- カラムの型の変更(ALTER TABLE テーブル名 MODIFY 既存カラム名 新しい型;)
- カラム名と型の変更(ALTER TABLE t_test CHANGE age ageage BIGINT;)
についてサンプルテーブルとサンプル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