mysql查看表结构信息

时间:2021-08-25 10:46:40

原文地址: http://my.oschina.net/zimingforever/blog/64145

需求背景是给一个表名然后给出相应的表结构信息及索引信息

常用的命令有如下:

1. desc tableName; desc employees.employees;

2. show columns from tableName; show COLUMNS from employees.employees;

3. describe tableName; DESCRIBE employees.employees;

这三个显示的结果都是一样的,显示表中filed,type,null,key,default及extra。

4. show create table tableName; show CREATE TABLE employees.employees;

这个语句会显示这个表的建表语句。

5. select * from columns where table_name='表名';select * from information_schema.COLUMNS where TABLE_SCHEMA='employees' and TABLE_NAME='employees';

这个显示的结果就比较全了。

接下来,来点更全的sql,这个是用来同步mysql和orac数据字典的所有sql。

mysql部分:

 1 ## 查看所有的库
 2 SELECT
 3     lower(schema_name) schema_name
 4 FROM
 5     information_schema.schemata
 6 WHERE
 7     schema_name NOT IN (
 8         'mysql',
 9         'information_schema',
10         'test',
11         'search',
12         'tbsearch',
13         'sbtest',
14         'dev_ddl'
15     )
16  
17 ## 产看某一个库中的所有表
18 SELECT
19     table_name,
20     create_time updated_at,
21     table_type,
22     ENGINE,
23     table_rows num_rows,
24     table_comment,
25     ceil(data_length / 1024 / 1024) store_capacity
26 FROM
27     information_schema.TABLES
28 WHERE
29     table_schema = 'employees'
30 AND table_name NOT LIKE 'tmp#_%' ESCAPE '#'
31  
32 ##查看某一个库下某一个表的所有字段
33 SELECT
34     lower(column_name) column_name,
35     ordinal_position position,
36     column_default dafault_value,
37     substring(is_nullable, 1, 1) nullable,
38     column_type data_type,
39     column_comment,
40     character_maximum_length data_length,
41     numeric_precision data_precision,
42     numeric_scale data_scale
43 FROM
44     information_schema.COLUMNS
45 WHERE
46     table_schema = 'employees'
47 AND table_name = 'employees';
48  
49  
50 ## 查看某一个库下某一张表的索引
51  
52 SELECT DISTINCT
53     lower(index_name) index_name,
54     lower(index_type) type
55 FROM
56     information_schema.statistics
57 WHERE
58     table_schema = 'employees'
59 AND table_name = 'employees';
60  
61 ## 查看某一个库下某一张表的某一个索引
62  
63 SELECT
64     lower(column_name) column_name,
65     seq_in_index column_position
66 FROM
67     information_schema.statistics
68 WHERE
69     table_schema = 'employees'
70 AND table_name = 'employees'
71 AND index_name = 'primary';
72  
73 ## 查看某一个库下某一个表的注释
74 SELECT
75     table_comment comments
76 FROM
77     information_schema.TABLES
78 WHERE
79     table_schema = 'employees'
80 AND table_name = 'employees';
81  
82 ## 查看某一个库下某一个表的列的注释
83 SELECT
84     lower(column_name) column_name,
85     column_comment comments
86 FROM
87     COLUMNS
88 WHERE
89     table_schema = 'employees'
90 AND table_name = 'employees';