下面为大家介绍利用SQL查询语句获取Mysql数据库中表的表名,表描述、字段ID、字段名、数据类型、长度、精度、是否可以为null、默认值、是否自增、是否是主键、列描述
一、查询表信息(表名/表描述)
SELECT
table_name
name
,TABLE_COMMENT value
FROM
INFORMATION_SCHEMA.TABLES
WHERE
table_type=
'base table'
and
table_schema =
'数据库名'
order
by
table_name
asc
例如
SELECT table_name NAME,TABLE_COMMENT VALUE FROM INFORMATION_SCHEMA.TABLES WHERE table_type='base table'
AND table_schema = 'mysql' ORDER BY table_name ASC;
查询结果为:
二、查询字段信息(字段ID/字段名/数据类型/长度/精度/是否可以为null/默认值/是否自增/是否是主键/列描述)
方法1:
select ORDINAL_POSITION as Colorder,Column_Name as ColumnName,data_type as TypeName,COLUMN_COMMENT as DeText,
(case when data_type = 'float' or data_type = 'double' or data_type = 'decimal' then NUMERIC_PRECISION else CHARACTER_MAXIMUM_LENGTH end ) as length,
NUMERIC_SCALE as Scale,( case when EXTRA='auto_increment' then 1 else 0 end) as IsIdentity,(case when COLUMN_KEY='PRI' then 1 else 0 end) as IsPK,
(case when IS_NULLABLE = 'NO' then 0 else 1 end)as CanNull,COLUMN_DEFAULT as DefaultVal
from information_schema.columns where table_schema = '数据库名' and table_name = '表名' order by ORDINAL_POSITION asc
例如:
SELECT ORDINAL_POSITION AS Colorder,Column_Name AS ColumnName,data_type AS TypeName,COLUMN_COMMENT AS DeText,
(CASE WHEN data_type = 'float' OR data_type = 'double' OR data_type = 'decimal' THEN NUMERIC_PRECISION ELSE CHARACTER_MAXIMUM_LENGTH END ) AS LENGTH,
NUMERIC_SCALE AS Scale,( CASE WHEN EXTRA='auto_increment' THEN 1 ELSE 0 END) AS IsIdentity,(CASE WHEN COLUMN_KEY='PRI' THEN 1 ELSE 0 END) AS IsPK,
(CASE WHEN IS_NULLABLE = 'NO' THEN 0 ELSE 1 END)AS CanNull,COLUMN_DEFAULT AS DefaultVal
FROM information_schema.columns WHERE table_schema = 'mysql' AND table_name = 'db' ORDER BY ORDINAL_POSITION ASC
查询结果为:
方法2:
SHOW FULL COLUMNS FROM 表名