2013-10-18 71 views
5

我只是不明白一件事。当我键入:从information_schema获取所有表格,MySQL

SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';

我得到:

+----------------------------------------------+ 
| table_name         | 
+----------------------------------------------+ 
| columns_priv         | 
| db           | 
| event          | 
| func           | 
| general_log         | 
| help_category        | 
| help_keyword         | 
| help_relation        | 
| help_topic         | 
| host           | 
| ndb_binlog_index        | 
| plugin          | 
| proc           | 
| procs_priv         | 
| proxies_priv         | 
| servers          | 
| slow_log          | 
| tables_priv         | 
| time_zone         | 
| time_zone_leap_second      | 
| time_zone_name        | 
| time_zone_transition       | 
| time_zone_transition_type     | 
| user           | 
| cond_instances        | 
| events_waits_current       | 
| events_waits_history       | 
| events_waits_history_long     | 
| events_waits_summary_by_instance    | 
| events_waits_summary_by_thread_by_event_name | 
| events_waits_summary_global_by_event_name | 
| file_instances        | 
| file_summary_by_event_name     | 
| file_summary_by_instance      | 
| mutex_instances        | 
| performance_timers       | 
| rwlock_instances        | 
| setup_consumers        | 
| setup_instruments       | 
| setup_timers         | 
| threads          | 
+----------------------------------------------+ 
41 rows in set (0.23 sec) 

但选择似乎并没有在所有的工作:

mysql> select * from db; 
ERROR 1109 (42S02): Unknown table 'db' in information_schema 
mysql> 

这怎么可能?我的意思是,SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE = 'BASE TABLE';表明,被命名为“DB”

表。其次,当我输入:SELECT table_name FROM INFORMATION_SCHEMA.TABLES;它给了我:

+----------------------------------------------+ 
| table_name         | 
+----------------------------------------------+ 
| CHARACTER_SETS        | 
| COLLATIONS         | 
| COLLATION_CHARACTER_SET_APPLICABILITY  | 
| COLUMNS          | 
| COLUMN_PRIVILEGES       | 
| ENGINES          | 
| EVENTS          | 
| FILES          | 
| GLOBAL_STATUS        | 
| GLOBAL_VARIABLES        | 
| KEY_COLUMN_USAGE        | 
| PARAMETERS         | 
| PARTITIONS         | 
| PLUGINS          | 
| PROCESSLIST         | 
| PROFILING         | 
| REFERENTIAL_CONSTRAINTS      | 
| ROUTINES          | 
| SCHEMATA          | 
| SCHEMA_PRIVILEGES       | 
| SESSION_STATUS        | 
| SESSION_VARIABLES       | 
| STATISTICS         | 
| TABLES          | 
| TABLESPACES         | 
| TABLE_CONSTRAINTS       | 
| TABLE_PRIVILEGES        | 
| TRIGGERS          | 
| USER_PRIVILEGES        | 
| VIEWS          | 
| INNODB_BUFFER_PAGE       | 
| INNODB_TRX         | 
| INNODB_BUFFER_POOL_STATS      | 
| INNODB_LOCK_WAITS       | 
| INNODB_CMPMEM        | 
| INNODB_CMP         | 
| INNODB_LOCKS         | 
| INNODB_CMPMEM_RESET       | 
| INNODB_CMP_RESET        | 
| INNODB_BUFFER_PAGE_LRU      | 
| columns_priv         | 
| db           | 
| event          | 
| func           | 
| general_log         | 
| help_category        | 
| help_keyword         | 
| help_relation        | 
| help_topic         | 
| host           | 
| ndb_binlog_index        | 
| plugin          | 
| proc           | 
| procs_priv         | 
| proxies_priv         | 
| servers          | 
| slow_log          | 
| tables_priv         | 
| time_zone         | 
| time_zone_leap_second      | 
| time_zone_name        | 
| time_zone_transition       | 
| time_zone_transition_type     | 
| user           | 
| cond_instances        | 
| events_waits_current       | 
| events_waits_history       | 
| events_waits_history_long     | 
| events_waits_summary_by_instance    | 
| events_waits_summary_by_thread_by_event_name | 
| events_waits_summary_global_by_event_name | 
| file_instances        | 
| file_summary_by_event_name     | 
| file_summary_by_instance      | 
| mutex_instances        | 
| performance_timers       | 
| rwlock_instances        | 
| setup_consumers        | 
| setup_instruments       | 
| setup_timers         | 
| threads          | 
+----------------------------------------------+ 
81 rows in set (0.00 sec) 

和进出口能做到:mysql> select * from events;和Im得到一些结果。这是为什么?为什么我只能选择大写字母?另外,如何从information_schema表中只选择大写字母?干杯

如果很重要:我以root身份登录到我的数据库。

回答

2

'INFORMATION_SCHEMA' 只有服务信息。它有关于表'db'的信息存在,但它不是'information_schema'数据库 - 某处,但不在'information_schema'中。

关于在TABLE_SCHEMA字段中保存的需要表的数据库的信息

+0

那是我理解的解释! – yak

3

您只选择表名,但对于TABLE_SCHEMA:

MariaDB [(none)]> SELECT table_name, table_schema FROM INFORMATION_SCHEMA.TABLES WHERE 

    TABLE_TYPE = 'BASE TABLE'; 
    +----------------------------------------------+--------------------+ 
    | table_name         | table_schema  | 
    +----------------------------------------------+--------------------+ 
    | columns_priv         | mysql    | 
    | db           | mysql    | 
    | event          | mysql    | 
    | func           | mysql    | 
    | general_log         | mysql    | 
    | help_category        | mysql    | 
    | help_keyword         | mysql    | 
    | help_relation        | mysql    | 
    | help_topic         | mysql    | 
    | host           | mysql    | 
    | ndb_binlog_index        | mysql    | 
    | plugin          | mysql    | 
    | proc           | mysql    | 
    | procs_priv         | mysql    | 
    | proxies_priv         | mysql    | 
    | servers          | mysql    | 
    | slow_log          | mysql    | 
    | tables_priv         | mysql    | 
    | time_zone         | mysql    | 
    | time_zone_leap_second      | mysql    | 
    | time_zone_name        | mysql    | 
    | time_zone_transition       | mysql    | 
    | time_zone_transition_type     | mysql    | 
    | user           | mysql    | 
    | cond_instances        | performance_schema | 
    | events_waits_current       | performance_schema | 
    | events_waits_history       | performance_schema | 
    | events_waits_history_long     | performance_schema | 
    | events_waits_summary_by_instance    | performance_schema | 
    | events_waits_summary_by_thread_by_event_name | performance_schema | 
    | events_waits_summary_global_by_event_name | performance_schema | 
    | file_instances        | performance_schema | 
    | file_summary_by_event_name     | performance_schema | 
    | file_summary_by_instance      | performance_schema | 
    | mutex_instances        | performance_schema | 
    | performance_timers       | performance_schema | 
    | rwlock_instances        | performance_schema | 
    | setup_consumers        | performance_schema | 
    | setup_instruments       | performance_schema | 
    | setup_timers         | performance_schema | 
    | threads          | performance_schema | 
    +----------------------------------------------+--------------------+ 

,你会得到:

MariaDB [(none)]> select * from mysql.db; 
Empty set (0.00 sec) 
相关问题