What is INFORMATION SCHEMA database? INFORMATION_SCHEMA is a database contained in MySQL / MariaDB where it has provided access to the metadata database, all information about the MySQL / MariaDB Server such as database names, tables, columns, data types, access rights and so on are contained therein.
INFORMATION_SCHEMA is very useful for a developer, because with it we can find out many things we need to build or manage databases. Before I give an example of its use, here I am a list of the tables contained in the information schema. Use this query to display:
USE INFORMATION_SCHEMA; SHOW TABLES;
the following list is displayed
Tables_in_information_schema |
CHARACTER_SETS |
COLLATIONS |
COLLATION_CHARACTER_SET_APPLICABILITY |
COLUMNS |
COLUMN_PRIVILEGES |
ENGINES |
EVENTS |
FILES |
GLOBAL_STATUS |
GLOBAL_VARIABLES |
KEY_COLUMN_USAGE |
OPTIMIZER_TRACE |
PARAMETERS |
PARTITIONS |
PLUGINS |
PROCESSLIST |
PROFILING |
REFERENTIAL_CONSTRAINTS |
ROUTINES |
SCHEMATA |
SCHEMA_PRIVILEGES |
SESSION_STATUS |
SESSION_VARIABLES |
SQL_FILTER_INFO |
STATISTICS |
TABLES |
TABLESPACES |
TABLE_CONSTRAINTS |
TABLE_PRIVILEGES |
TRIGGERS |
USER_PRIVILEGES |
VIEWS |
INNODB_LOCKS |
INNODB_TRX |
INNODB_SYS_DATAFILES |
INNODB_METRICS |
INNODB_SYS_TABLESTATS |
INNODB_CMP |
METADATA_LOCK_INFO |
INNODB_CMP_RESET |
INNODB_CMP_PER_INDEX |
INNODB_CMPMEM_RESET |
INNODB_FT_DELETED |
INNODB_BUFFER_PAGE_LRU |
INNODB_LOCK_WAITS |
INNODB_SYS_COLUMNS |
INNODB_SYS_INDEXES |
INNODB_FT_DEFAULT_STOPWORD |
INNODB_SYS_FIELDS |
INNODB_CMP_PER_INDEX_RESET |
INNODB_BUFFER_PAGE |
INNODB_CMPMEM |
THREAD_GROUP_STATUS |
INNODB_FT_BEING_DELETED |
INNODB_SYS_TABLESPACES |
INNODB_FT_INDEX_CACHE |
INNODB_SYS_FOREIGN_COLS |
INNODB_SYS_TABLES |
INNODB_BUFFER_POOL_STATS |
INNODB_FT_CONFIG |
INNODB_SYS_FOREIGN |
INNODB_FT_INDEX_TABLE |
Also Read : Tips for Create MySQL/MariaDB User Database
Please explore each of the tables yourself because I haven’t explored the contents of each of these tables myself. There are several tables from INFORMATION_SCHEMA that I have used and the following are examples of utilizing INFORMATION_SCHEMA that I usually use:
# Looking for a column in any table in a database SELECT TABLE_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE COLUMN_NAME = 'columnName' AND TABLE_SCHEMA = 'databaseName'; # Displays the user and their privileges SELECT * FROM INFORMATION_SHCEMA.USER_PRIVILEGES; # Viewing a list of procedures in a database SELECT ROUTINE_NAME, ROUTINE_TYPE, ROUTINE_SCHEMA FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = 'PROCEDURE' AND ROUTINE_SCHEMA = 'databaseName'; # Check Collation database SELECT * FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'databaseName'; # Check the collation of all tables in a database SELECT TABLE_NAME, TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'databaseName'; # Check Column collation based on table SELECT TABLE_NAME, COLUMN_NAME, CHARACTER_SET_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'tableName' AND TABLE_SCHEMA = 'databaseName';
Yes, that’s what I know about what the INFORMATION SCHEMA database is and how it’s used, that’s all the information I can provide and hopefully it’s useful. Thank you ^^.
SOURCE:
0 Comments