mysql怎么查看表结构及已有索引信息

63次阅读
没有评论

共计 4554 个字符,预计需要花费 12 分钟才能阅读完成。

本篇内容主要讲解“mysql 怎么查看表结构及已有索引信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“mysql 怎么查看表结构及已有索引信息”吧!

查看表结构及已有索引信息
 
需求背景是给一个表名然后给出相应的表结构信息及索引信息
 
常用的命令有如下:
 
desc tableName; desc employees.employees;
  www.2cto.com  
show columns from tableName; show COLUMNS from employees.employees;
 
describe tableName; DESCRIBE employees.employees;
 
这三个显示的结果都是一样的,显示表中 filed,type,null,key,default 及 extra。
 
show create table tableName; show CREATE TABLE employees.employees;
 
这个语句会显示这个表的建表语句。
 
select * from columns where table_name= 表名
select * from information_schema.COLUMNS where TABLE_SCHEMA= employees and TABLE_NAME= employees
 
这个显示的结果就比较全了。
 
接下来,来点更全的 sql,这个是用来同步 mysql 和 orac 数据字典的所有 sql。
 
mysql 部分:
 
01
## 查看所有的库
02
SELECT
03
    lower(schema_name) schema_name
04  www.2cto.com  
FROM
05
    information_schema.schemata
06
WHERE
07
    schema_name NOT IN (
08
        mysql ,
09
        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  www.2cto.com  
    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  www.2cto.com  
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
   www.2cto.com  
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
oracle 部分:
  www.2cto.com  
 
001
#table structure:
002
SELECT
003
    lower(table_name) table_name,
004
    TEMPORARY,
005
    tablespace_name,
006
    num_rows,
007
    duration,
008
    ORACLE table_type,
009  www.2cto.com  
    partitioned,
010
    (
011
        SELECT
012
            ceil(sum(bytes) / 1024 / 1024)
013
        FROM
014
            dba_segments b
015
        WHERE
016
            a. OWNER = b. OWNER
017
        AND a.table_name = b.segment_name
018
    ) AS store_capacity
019
FROM
020
    dba_tables a
021
WHERE
022
    OWNER = ?
023
AND table_name NOT LIKE TMP%
024
 
025
SELECT
026
    lower(column_name) column_name,
027
    column_id position,
028
    data_type,
029
    data_length,
030
    data_precision,
031
    data_scale,
032
    nullable,
033
    data_default default_value,
034  www.2cto.com  
    default_length
035
FROM
036
    dba_tab_columns
037
WHERE
038
    OWNER = ?
039
AND table_name = ?;
040
 
041
# index
042
SELECT
043
    lower(index_name) index_name,
044
    index_type type
045
FROM
046
    dba_indexes
047
WHERE
048
    OWNER = ?
049
AND table_name = ?
050
AND index_name NOT LIKE SYS_IL%
051
 
052
SELECT
053
    lower(column_name) column_name,
054
    column_position,
055
    descend
056
FROM
057
    dba_ind_columns
058
WHERE
059
    table_owner = ?
060
AND table_name = ?
061
AND index_name = ?;
062
   www.2cto.com  
063
#collect description
064
SELECT
065
    comments
066
FROM
067
    dba_tab_comments
068
WHERE
069
    OWNER = ?
070
AND table_name = ?;
071
 
072
SELECT
073
    lower(column_name) column_name,
074
    comments
075
FROM
076
    dba_col_comments
077
WHERE
078
    OWNER = ?
079
AND table_name = ?;
080
 
081
#database
082
SELECT
083
    lower(username) username
084
FROM
085
    dba_users
086
WHERE
087
    username NOT IN (
088
        STDBYPERF ,
089
        READONLY ,
090
        APPQOSSYS ,
091
        ANYSQL ,
092
        DBFLASH ,
093
        SYS ,
094
        SYSTEM ,
095
        MONITOR ,
096
        TBSEARCH ,
097
        MANAGER ,
098  www.2cto.com  
        SYSMAN ,
099
        EXFSYS ,
100
        WMSYS ,
101
        DIP ,
102
        TSMSYS ,
103
        ORACLE_OCM ,
104
        OUTLN ,
105
        DBSNMP ,
106
        PERFSTAT ,
107
        SEARCH ,
108
        TOOLS ,
109
        TBDUMP ,
110
        DMSYS ,
111
        XDB ,
112
        ANONYMOUS ,
113
        DEV_DDL
114
    );
115
 
116
#segsize
117
SELECT
118
    round(sum(bytes) / 1024 / 1024, 0) mbytes
119
FROM
120  www.2cto.com  
    dba_segments
121
WHERE
122
    OWNER = ?
123
AND segment_name = ?;
关于 oralce 中的 segements,可以参考一下这个系列文章。
 

http://book.51cto.com/art/201108/288137.htm

 
总结一下,mysql 中查看库表字段信息都在 information_schemal 中,这些是获取数据字典的必备 sql。
本文中 mysql 的语句都在本地测试过。另外 oracle 的结构也要熟悉。

到此,相信大家对“mysql 怎么查看表结构及已有索引信息”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-01发表,共计4554字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)