MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLの1つのステートメントを使用して、データベース内のすべてのテーブルをどのように記述できますか?


INFORMATION_SCHEMA.COLUMNSを使用して、単一のステートメントでデータベース内のすべてのテーブルを記述することができます。構文は次のとおりです。

SELECT *FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA=’yourDatabaseName’\G

ここでは、2つのテーブルを持つデータベースサンプルを使用しています。

テーブル名は以下の通りです-

  • mytable
  • yourtable

上記の構文をデータベースに実装します。クエリは次のとおりです-

mysql> select * FROM information_schema.columns WHERE table_schema = 'sample'\G

以下は、データベース内の2つのテーブルを説明する出力です。

*************************** 1. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: sample
TABLE_NAME: mytable
COLUMN_NAME: id
ORDINAL_POSITION: 1
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: int
CHARACTER_MAXIMUM_LENGTH: NULL
CHARACTER_OCTET_LENGTH: NULL
NUMERIC_PRECISION: 10
NUMERIC_SCALE: 0
DATETIME_PRECISION: NULL
CHARACTER_SET_NAME: NULL
COLLATION_NAME: NULL
COLUMN_TYPE: int(11)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
GENERATION_EXPRESSION:
SRS_ID: NULL
*************************** 2. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: sample
TABLE_NAME: mytable
COLUMN_NAME: Name
ORDINAL_POSITION: 2
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: varchar
CHARACTER_MAXIMUM_LENGTH: 100
CHARACTER_OCTET_LENGTH: 400
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
DATETIME_PRECISION: NULL
CHARACTER_SET_NAME: utf8mb4
COLLATION_NAME: utf8mb4_0900_ai_ci
COLUMN_TYPE: varchar(100)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
GENERATION_EXPRESSION:
SRS_ID: NULL
*************************** 3. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: sample
TABLE_NAME: yourtable
COLUMN_NAME: id
ORDINAL_POSITION: 1
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: int
CHARACTER_MAXIMUM_LENGTH: NULL
CHARACTER_OCTET_LENGTH: NULL
NUMERIC_PRECISION: 10
NUMERIC_SCALE: 0
DATETIME_PRECISION: NULL
CHARACTER_SET_NAME: NULL
COLLATION_NAME: NULL
COLUMN_TYPE: int(11)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
GENERATION_EXPRESSION:
SRS_ID: NULL
*************************** 4. row ***************************
TABLE_CATALOG: def
TABLE_SCHEMA: sample
TABLE_NAME: yourtable
COLUMN_NAME: YourName
ORDINAL_POSITION: 2
COLUMN_DEFAULT: NULL
IS_NULLABLE: YES
DATA_TYPE: varchar
CHARACTER_MAXIMUM_LENGTH: 100
CHARACTER_OCTET_LENGTH: 400
NUMERIC_PRECISION: NULL
NUMERIC_SCALE: NULL
DATETIME_PRECISION: NULL
CHARACTER_SET_NAME: utf8mb4
COLLATION_NAME: utf8mb4_0900_ai_ci
COLUMN_TYPE: varchar(100)
COLUMN_KEY:
EXTRA:
PRIVILEGES: select,insert,update,references
COLUMN_COMMENT:
GENERATION_EXPRESSION:
SRS_ID: NULL
4 rows in set (0.00 sec)

  1. すべてのMySQLテーブルを1行で表示するにはどうすればよいですか?

    information_schema.tablesを使用して、すべてのテーブルを表示します。これで、データベース名も設定して、特定のデータベースのテーブルのみを表示できるようにします。 データベース「web」内のすべてのテーブルを表示してみましょう- mysql> select group_concat(table_name) from information_schema.tables where table_schema='web'; これにより、次の出力が生成されます- +---------------------------------------------

  2. MySQLデータベース内のすべてのテーブルを一覧表示します

    MySQLデータベース内のすべてのテーブルを一覧表示する方法を理解しましょう- データベースが作成されると、次のクエリを使用して特定のデータベースにアクセスして使用できます- クエリ mysql> USE databaseName Database changed 「USE」ステートメントにはセミコロンは必要ありません。これは「QUIT」ステートメントに似ています。セミコロンを使用しても害はありません。独自のデータベースを作成して使用することもできますが、その前に、MySQL管理者の許可が必要です。 MySQL管理者は、以下に示すコマンドを実行して権限を提供できます- mysql&