В основном я хочу получить имена таблиц и имена полей для каждой таблицы из текущей подключенной базы данных, ничего другого.
Это возможно?
Я знаю, что SHOW TABLES FROM my_database
получает имена таблиц, а SHOW COLUMNS FROM my_table
предоставит вам поля, но это, по крайней мере, [1 x # of tables] запросов, и я получаю больше информации, которую я хочу 🙂
В таблице INFORMATION_SCHEMA.COLUMNS есть то, о чем вы просите.
SELECT table_name, column_name FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = 'YourDBName' ORDER BY table_name, ordinal_position
SELECT t.name AS tblName, SCHEMA_NAME(schema_id) AS [schemaName], c.name AS colName FROM sys.tables AS t INNER JOIN sys.columns c ON t.OBJECT_ID = c.OBJECT_ID ORDER BY tblName;
SELECT * FROM information_schema.tables t JOIN information_schema.columns c ON t.TABLE_NAME = c.TABLE_NAME AND t.TABLE_CATALOG=c.TABLE_CATALOG AND t.TABLE_SCHEMA=c.TABLE_SCHEMA
работает для SQLSERVER 2005. Названия столбцов могут быть разными для MySQL (я предполагаю, что это то, что вы используете), но концепция такая же.
«Показать базы данных», «Показать таблицы» и «описать таблицу» – лучший, самый быстрый способ, который я знаю в MySql.
Но они специфичны для MySql.
Если ты хочешь:
a) переносимый способ запроса вашей схемы базы данных
... AND ...
б) более подробный контроль над вашим запросом, а затем ознакомьтесь с INFORMATION_SCHEMA:
http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
СИНТАКСИС:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES WHERE table_schema = 'db_name' [AND table_name LIKE 'wild']
После нескольких испытаний я сделал этот код sql, чтобы увидеть столбцы в моей таблице.
SELECT TABLE_NAME as table_name, COLUMN_NAME as column_name, COLUMN_TYPE as data_type, COLUMN_DEFAULT as default_value, IS_NULLABLE as nullable, COLUMN_KEY as constraints, EXTRA as constraints2, CHARACTER_SET_NAME as charset, COLLATION_NAME as collation FROM INFORMATION_SCHEMA.COLUMNS WHERE table_schema = '<YOUR_DATABASE_NAME>' AND TABLE_NAME='<YOUR_TABLE_NAME>' ORDER BY table_name, ordinal_position