问题
Basically I want to get the table names, and the field names for each table from the current database that is connected, nothing else.
Is this possible?
I know that SHOW TABLES FROM my_database
gets you the table names, and SHOW COLUMNS FROM my_table
will get you the fields, but that's at least [1 x # of tables] queries and I get more information that I want :)
回答1:
The INFORMATION_SCHEMA.COLUMNS table has what you're asking for.
SELECT table_name, column_name
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'YourDBName'
ORDER BY table_name, ordinal_position
回答2:
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;
回答3:
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
works for SQLSERVER 2005. The column names might be different for MySQL (I assume that's what you're using), but the concept is the same.
回答4:
"Show databases", "Show tables" and "describe table" are the best, fastest way I know of in MySql.
But they are MySql-specific.
If you want:
a) a portable way to query your database schema
... AND ...
b) more granular control over your query, then look at INFORMATION_SCHEMA:
http://dev.mysql.com/doc/refman/5.0/en/information-schema.html
SYNTAX:
SELECT table_name FROM INFORMATION_SCHEMA.TABLES
WHERE table_schema = 'db_name'
[AND table_name LIKE 'wild']
回答5:
After a few trials, i made this sql code to see the columns in my table.
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
来源:https://stackoverflow.com/questions/8421224/get-database-schema-with-one-query