MYSQLにてテーブルのCOLUMNS情報を取得する方法

① mysqlshowコマンド
[root@colinux ~]# mysqlshow STUDY City -u root -p

② show columnsコマンド
mysql> show columns from City from STUDY;

③ INFORMATION_SCHEMA.COLUMNSから抽出

SELECT COLUMN_NAME, DATA_TYPE, IS_NULLABLE,
COLUMN_KEY, COLUMN_DEFAULT, EXTRA
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'STUDY' AND TABLE_NAME = 'City';

columns


mysqlshowクライアントは、どのデータベース、そのテーブル、あるいはテーブルカラムのインデックスが
存在するか確認するために利用する事ができます。

データベースをリスト表示
mysqlshow -u root -p
特定のデータベース内のテーブルをリスト表示
mysqlshow STUDY -u root -p

mysqlshow

特定のデータベース内の特定のテーブルなどの表示
mysqlshow STUDY "MYSQLI%" -u root -p
mysqlshow STUDY "MYSQLI*" -u root -p

mysqlshow_2

補足(Indexの確認も可能/同時に一つのみ)

[root@colinux]$ mysqlshow --keys test innodbtable -u root -p
Enter password:
Database: test Table: innodbtable
+——-+———+———–+——+—–+———+——-+———————————+———+
| Field | Type | Collation | Null | Key | Default | Extra | Privileges | Comment |
+——-+———+———–+——+—–+———+——-+———————————+———+
| id | int(11) | | YES | | | | select,insert,update,references | |
+——-+———+———–+——+—–+———+——-+———————————+———+
Table has no keys
[root@colinux]$

参考サイト

7.15. mysqlshow — データベース、テーブル、カラム情報を表示


■ mysqlクライアントを利用してのDB作成

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| mysql |
| test |
+——————–+
3 rows in set (0.00 sec)

mysql> CREATE DATABASE DB01 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
Query OK, 1 row affected (0.04 sec)

mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| DB01 |
| mysql |
| test |
+——————–+
4 rows in set (0.00 sec)

mysql>

■ mysqladminコマンドを利用してのDB作成

[root@colinux ~]# mysqladmin -u root -ppassword CREATE DB02;

[root@colinux ~]# mysqlshow -u root -ppassword
+——————–+
|     Databases      |
+——————–+
| information_schema |
| DATABASE           |
| DB01               |
| DB02               |
| mysql              |
| test               |
+——————–+
[root@colinux ~]#

DBは作成されているが、文字コードや照合順序は?

mysql> show create database DB02;
+———-+—————————————————————+
| Database | Create Database                                               |
+———-+—————————————————————+
| DB02     | CREATE DATABASE `DB02` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+———-+—————————————————————+
1 row in set (0.00 sec)

※ 文字コードを設定し忘れた場合、ALTER DATABASE DB02 default character set=utf8; で変更可能。

mysql> SHOW COLLATION LIKE ‘utf8_%_ci’;

collation