Вывести названия колонок sql

Как получить список и описание всех колонок в таблице Microsoft SQL Server?

В данной заметке будет рассмотрено несколько способов получения информации о столбцах таблицы в базе данных Microsoft SQL Server, например, мы научимся получать список колонок таблицы, включая их тип данных, с помощью SQL запроса.

Начну с того, что если Вам нужно просто визуально посмотреть, какие колонки или какой тип данных у той или иной колонке в таблице, то Вы для этого можете использовать графический функционал SQL Server Management Studio, а именно «Обозреватель объектов». Например, для того чтобы посмотреть информацию о столбцах таблицы, необходимо плюсиком открыть соответствующий контейнер.

Но если Вам необходимо выгрузить эту информацию или обработать ее в SQL инструкции, то в этом случае необходимо обращаться к системным объектам SQL Server с помощью языка SQL, как и к каким именно объектам обращаться мы сейчас и рассмотрим.

Примечание! Все примеры ниже мы будем рассматривать в Microsoft SQL Server 2016 Express. В базе данных создана тестовая таблица TestTable, она имеет всего три столбца.

Получаем список колонок таблицы с помощью представления информационной схемы

В Microsoft SQL Server существует специальная схема — INFORMATION_SCHEMA, которая содержит метаданные для всех объектов базы данных. В данной схеме есть представление COLUMNS, с помощью которого и можно получить информацию о колонках таблицы. Также в ней есть и другие полезные представления, о которых мы разговаривали в статье — «Представления информационной схемы Microsoft SQL Server».

Читайте также:  Самые хорошие беспроводные наушники джибиэль

А теперь допустим, нам нужно получить информацию о столбцах в таблице, например, имя столбца, тип данных и возможность принятия значения NULL, для этого мы напишем следующий запрос, в котором обратимся к представлению COLUMNS информационной схемы.

Получаем список столбцов таблицы с помощью системного представления sys.columns

Также информацию о колонках таблицы можно получить с помощью системного представления sys.columns, но только в этом случае для получения точно такого же результата, как был выше, необходимо будет объединять несколько системных представлений, а именно sys.tables, sys.columns и sys.types, так как в представлении sys.columns есть только идентификаторы нужных нам данных.

Получаем список колонок таблицы с помощью системной процедуры sp_columns

В SQL Server существует специальная системная процедура sp_columns, которая как раз и предназначена для получения информации о колонках таблицы.

Какой из рассмотренных выше способов Вам подойдет и окажется удобней решать Вам, а у меня на этом все, удачи!

Заметка! Новичкам рекомендую посмотреть мой видеокурс по T-SQL для начинающих, с помощью него Вы «с нуля» научитесь работать с SQL и программировать на T-SQL.

Источник

COLUMNS (Transact-SQL)

Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Параллельное хранилище данных

Возвращает одну строку для каждого столбца, доступного для текущего пользователя в текущей базе данных.

Чтобы получить сведения из этих представлений, укажите полное имя INFORMATION_SCHEMA.view_name.

Имя столбца Тип данных Описание
TABLE_CATALOG nvarchar ( 128 ) Квалификатор таблицы.
TABLE_SCHEMA nvarchar ( 128 ) Имя схемы, содержащей таблицу.

** важно ** Не используйте INFORMATION_SCHEMA представления для определения схемы объекта. INFORMATION_SCHEMA представления представляют только подмножество метаданных объекта. Единственный надежный способ найти схему объекта — направить запрос к представлению каталога sys.objects.

TABLE_NAME nvarchar ( 128 ) Имя таблицы.
COLUMN_NAME nvarchar ( 128 ) Имя столбца.
ORDINAL_POSITION int Идентификационный номер столбца.
COLUMN_DEFAULT nvarchar ( 4000 ) Значение столбца по умолчанию.
IS_NULLABLE varchar ( 3 ) Указывает, может ли столбец допускать значение NULL. Если для столбца допустимо значение NULL, этот столбец возвращает значение YES. Иначе возвращается значение NO.
DATA_TYPE nvarchar ( 128 ) Тип данных, поддерживаемый системой.
CHARACTER_MAXIMUM_LENGTH int Максимальная длина в символах для двоичных данных, символьных данных или текстовых данных и изображений.

-1 для данных типа XML и больших значений. Иначе возвращается значение NULL. Дополнительные сведения см. в разделе Типы данных (Transact-SQL).

CHARACTER_OCTET_LENGTH int Максимальная длина в байтах для двоичных данных, символьных данных или текстовых данных и изображений.

-1 для данных типа XML и больших значений. Иначе возвращается значение NULL.

NUMERIC_PRECISION tinyint Точность приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_PRECISION_RADIX smallint Основание системы счисления точности приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
NUMERIC_SCALE int Масштаб приблизительных числовых данных, точных числовых данных, целочисленных данных или денежных данных. Иначе возвращается значение NULL.
DATETIME_PRECISION smallint Код подтипа для типов данных интервала DateTime и ISO. Для других типов данных возвращается значение NULL.
CHARACTER_SET_CATALOG nvarchar ( 128 ) Возвращает образец. Указывает базу данных, в которой находится набор символов, если столбец содержит символьные данные или текстовый тип данных. Иначе возвращается значение NULL.
CHARACTER_SET_SCHEMA nvarchar ( 128 ) Всегда возвращает значение NULL.
CHARACTER_SET_NAME nvarchar ( 128 ) Возвращает уникальное имя для набора символов, если этот столбец имеет символьные данные или тип данных Text . Иначе возвращается значение NULL.
COLLATION_CATALOG nvarchar ( 128 ) Всегда возвращает значение NULL.
COLLATION_SCHEMA nvarchar ( 128 ) Всегда возвращает значение NULL.
COLLATION_NAME nvarchar ( 128 ) Возвращает уникальное имя для параметров сортировки, если столбец имеет символьные данные или текстовый тип данных. Иначе возвращается значение NULL.
DOMAIN_CATALOG nvarchar ( 128 ) Если столбец имеет тип данных псевдонима, то этот столбец содержит имя базы данных, в которой был создан определяемый пользователем тип данных. Иначе возвращается значение NULL.
DOMAIN_SCHEMA nvarchar ( 128 ) Если столбец имеет определяемый пользователем тип данных, то столбец возвращает имя схемы этого типа данных. Иначе возвращается значение NULL.

** важно ** Не используйте INFORMATION_SCHEMA представления для определения схемы типа данных. Единственный надежный способ найти схему типа — использовать функцию TYPEPROPERTY.

DOMAIN_NAME nvarchar ( 128 ) Если столбец имеет определяемый пользователем тип данных, то столбец является именем этого типа данных. Иначе возвращается значение NULL.

Remarks

Столбец ORDINAL_POSITION INFORMATION_SCHEMA. Представление COLUMNs несовместимо с битовым шаблоном столбцов, возвращаемых функцией COLUMNS_UPDATED. Чтобы получить битовый шаблон, совместимый с COLUMNS_UPDATED, необходимо сослаться на свойство columnid системной функции COLUMNPROPERTY при запросе INFORMATION_SCHEMA. Представление СТОЛБЦОВ . Пример:

Источник

Получить имена столбцов таблицы в MySQL?

есть ли способ захватить имя столбцов таблицы в mysql? использование php

17 ответов:

или в более новых версиях вы можете использовать information_schema для:

следующие операторы SQL почти эквивалентны:

Я сделал функцию PDO, которая возвращает все имена столбцов в простом массиве.

на выходе будет массив:

извините за некро, но мне нравится моя функция 😉

P. S. Я не включенными класс ядро, но вы можете использовать свой собственный класс.. Д. С.

это решение из командной строки mysql

в приведенном ниже запросе просто измените на вашу базу данных и на ваше имя таблицы, где вы просто хотите значения полей оператора DESCRIBE

функция MySQL опишите таблицу должно привести вас туда, куда вы хотите пойти (поместите свое имя таблицы в «таблицу»). Вам придется разобрать вывод, но это довольно легко. Насколько я помню, если вы выполните этот запрос, результат запроса PHP, обращающийся к функциям, которые обычно дают вам пару ключ-значение, будет иметь имена столбцов в качестве ключей. Но прошло некоторое время с тех пор, как я использовал PHP, так что не держите меня за это. 🙂

вы также можете проверить mysql_fetch_array() , например:

интересно также отметить, что вы можете использовать
EXPLAIN table_name что является синонимом DESCRIBE table_name и SHOW COLUMNS FROM table_name хотя объяснить чаще используется для получения информации о плане выполнения запроса.

The mysql_list_fields функция может вас заинтересовать ; но, как говорится в руководстве:

эта функция устарела. Это предпочтительно использовать mysql_query() to выдать SQL заявление.

мне нужны были имена столбцов в виде плоского массива, в то время как другие ответы возвращали ассоциативные массивы, поэтому я использовал:

Источник

Запрос MySQL для получения имен столбцов?

Я хотел бы получить все имена col таблицы mysql в массив в php?

есть ли запрос для этого?

18 ответов

лучший способ-использовать information_schema для метаданные виртуальной базы данных. В частности,базы данных information_schema.Колонки таблица.

Это очень мощный и может дать вам тонны информации без необходимости разбора текста (например, колонного типа, допускает ли столбец значения null, максимальный размер столбца, набор символов и т. д.).

О, и это стандартный SQL (тогда как SHOW . является конкретным расширением MySQL).

дополнительные информация о разнице между SHOW. и с помощью INFORMATION_SCHEMA таблицы, проверьте MySQL документация INFORMATION_SCHEMA В общем.

вы можете использовать следующий запрос для MYSQL:

Ниже приведен пример кода, который показывает, как реализовать выше синтаксис в php, чтобы перечислить имена столбцов:

для получения подробной информации о выходе SHOW COLUMNS FROM TABLE на странице: MySQL Refrence.

кажется, есть 2 пути:

Я делал это в прошлом.

редактировать: сегодня я узнал, лучший способ сделать это. См. ответ ircmaxell.

парсить вывод SHOW COLUMNS FROM table;

старая функция PHP «mysql_list_fields ()» устарела. Итак, сегодня лучший способ получить имена полей-это запрос «показать столбцы из table_name [LIKE ‘name’]». Итак, вот небольшой пример:

использовать mysql_fetch_field() для просмотра всех данных столбца. См.руководство.

«предупреждение Это расширение является устаревшей начиная с версии PHP 5.5.0, и будет удалено в будущем.»

Если вы хотите проверить всю структуру таблицы с некоторыми поданными, то используйте этот код. В этом запросе я выбираю column_name, column_type и table_name для получения дополнительной информации . Я использую order BY column_type, чтобы легко его видеть.

Если вы хотите проверить только двойной тип файла, то вы можете сделать это легко

Если вы хотите проверить, какое поле разрешает тип null и т. д., Вы можете использовать это

вы хотите проверить больше, чем ссылка thik также поможет вам.

ПОКАЗАТЬ СТОЛБЦЫ в MySQL 5.1 (не 5.5) использует временную таблицу диска.

поэтому в некоторых случаях его можно считать медленным. По крайней мере, он может поднять свой created_tmp_disk_tables значение. Представьте себе одну временную таблицу дисков на соединение или на каждый запрос страницы.

ПОКАЗАТЬ СТОЛБЦЫ — это не так уж медленно, возможно, потому, что он использует кэш файловой системы. Phpmyadmin говорит

0,5 мс последовательно. Это ничто по сравнению с 500ms-1000ms обслуживания страницы wordpress. Но все же иногда это имеет значение. Вовлечение дисковой системы, вы никогда не знаете, что происходит, когда сервер занят, кэш заполнен, hdd заглох и т. д.

получение имен столбцов через ВЫБЕРИТЕ * FROM . Предел 1 был около

0,1 мс, и он также может использовать кэш запросов.

Итак, вот мой маленький оптимизированный код для получения имен столбцов из таблицы без использования показать колонки если можно:

  • пока первая строка таблицы не содержит диапазон мегабайт данных, она должна работать нормально.
  • имена функций db_rows и db_row_ar должен быть заменен на вашу конкретную базу данных установка.

не уверен, что это то, что вы искали, но это сработало для меня:

это возвращает простой массив имен столбцов / имен переменных в вашей таблице или массиве в виде строк, что мне нужно для динамического построения запросов MySQL. Мое разочарование было в том, что я просто не знаю, как индексировать массивы в PHP очень хорошо, поэтому я не был уверен, что делать с результатами DESC или SHOW. Надеюсь, мой ответ поможет новичкам, таким как я!

для проверки результата: print_r($col_names);

Источник

Оцените статью