Как вы перечисляете все столбцы в таблице для различных популярных систем баз данных?
Как вы перечисляете все столбцы в таблице для различных популярных систем баз данных?
Ответы:
Для MySQL используйте:
DESCRIBE name_of_table;
Это также работает для Oracle, если вы используете SQL * Plus или Oracle SQL Developer.
DESCRIBE
name_of_table``;
DESCRIBE
это не инструкция Oracle PLSQL, а команда SQL * Plus , и поэтому она не работает в большинстве сред SQL IDE.
Для Oracle (PL / SQL)
SELECT column_name
FROM user_tab_cols
WHERE table_name = 'myTableName'
Для MySQL
SHOW COLUMNS FROM table_name
DESCRIBE name_of_table
.
user_tab_cols
в вашем запросе?
Для MS SQL Server:
select * from information_schema.columns where table_name = 'tableName'
information_schema.columns
Системный вид является частью ANSI SQL
стандарта ( ссылка ).
select COLUMN_NAME from information_schema.columns where table_name = 'tableName' and table_schema = 'databaseName'
(5 лет спустя, к чести PostgreSQL, самого продвинутого DDBB Королевства)
В PostgreSQL:
\d table_name
Или, используя SQL:
select column_name, data_type, character_maximum_length
from INFORMATION_SCHEMA.COLUMNS
where table_name = 'table_name';
Я знаю, что уже поздно, но я использую эту команду для Oracle:
select column_name,data_type,data_length from all_tab_columns where TABLE_NAME = 'xxxx' AND OWNER ='xxxxxxxxxx'
SQL Server
SELECT
c.name
FROM
sys.objects o
INNER JOIN
sys.columns c
ON
c.object_id = o.object_id
AND o.name = 'Table_Name'
или
SELECT
COLUMN_NAME
FROM
INFORMATION_SCHEMA.COLUMNS
WHERE
TABLE_NAME = 'Table_Name'
Второй способ - это стандарт ANSI, поэтому он должен работать со всеми базами данных, совместимыми с ANSI.
[
]
символов, поэтому запрос не должен использовать их, только простое имя таблицы. Если это не было целью ОП, по крайней мере, знать об этом.
<Table Name>
избежал бы двусмысленности. Во всяком случае, я понял, что вы, возможно, намеревались, что, когда я написал комментарий - на всякий случай не вредно предупреждать других.
Microsoft SQL Server Management Studio 2008 R2:
В редакторе запросов, если вы выделите текст имени таблицы (например, dbo.MyTable) и нажмете ALT+ F1, вы получите список имен столбцов, типа, длины и т. Д.
ALT+ в F1то время как вы выдвинули dbo.MyTable
на первый план является эквивалентом работы в EXEC sp_help 'dbo.MyTable'
соответствии с этим сайтом
Я не могу заставить работать варианты INFORMATION_SCHEMA.COLUMNS, поэтому я использую это вместо этого.
SQL Server
Чтобы вывести список всех пользовательских таблиц базы данных:
use [databasename]
select name from sysobjects where type = 'u'
Чтобы перечислить все столбцы таблицы:
use [databasename]
select name from syscolumns where id=object_id('tablename')
Небольшое исправление остальных в SQL Server (префикс схемы становится все более важным!):
SELECT name
FROM sys.columns
WHERE [object_id] = OBJECT_ID('dbo.tablename');