2013-10-18 73 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) 
相關問題