как узнать названия столбцов в 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.
Запрос MySQL для получения имен столбцов?
Я хотел бы получить все имена col таблицы mysql в массив в php?
есть ли запрос для этого?
18 ответов
лучший способ-использовать information_schema для метаданные виртуальной базы данных. В частности,базы данных information_schema.Колонки таблица.
Это очень мощный и может дать вам тонны информации без необходимости разбора текста (например, колонного типа, допускает ли столбец значения null, максимальный размер столбца, набор символов и т. д.).
дополнительные информация о разнице между 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, и будет удалено в будущем.»
Если вы хотите проверить только двойной тип файла, то вы можете сделать это легко
Если вы хотите проверить, какое поле разрешает тип null и т. д., Вы можете использовать это
вы хотите проверить больше, чем ссылка thik также поможет вам.
ПОКАЗАТЬ СТОЛБЦЫ в MySQL 5.1 (не 5.5) использует временную таблицу диска.
поэтому в некоторых случаях его можно считать медленным. По крайней мере, он может поднять свой created_tmp_disk_tables значение. Представьте себе одну временную таблицу дисков на соединение или на каждый запрос страницы.
0,5 мс последовательно. Это ничто по сравнению с 500ms-1000ms обслуживания страницы wordpress. Но все же иногда это имеет значение. Вовлечение дисковой системы, вы никогда не знаете, что происходит, когда сервер занят, кэш заполнен, hdd заглох и т. д.
0,1 мс, и он также может использовать кэш запросов.
Итак, вот мой маленький оптимизированный код для получения имен столбцов из таблицы без использования показать колонки если можно:
не уверен, что это то, что вы искали, но это сработало для меня:
это возвращает простой массив имен столбцов / имен переменных в вашей таблице или массиве в виде строк, что мне нужно для динамического построения запросов MySQL. Мое разочарование было в том, что я просто не знаю, как индексировать массивы в PHP очень хорошо, поэтому я не был уверен, что делать с результатами DESC или SHOW. Надеюсь, мой ответ поможет новичкам, таким как я!
для проверки результата: print_r($col_names);
Как узнать названия столбцов в sql
Здравствуйте, Cynic, Вы писали:
C>А может лучше так
Спасибо за ссылку, я узнал новое слово в английском языке, полезно будет.
Между тем, если кликнуть по самой же первой ссылке в гугле (по запросу который я дал), узнаем как минимум 2 способа получить колонки таблицы:
Дальнейшая проверка показывает, что примерно половина всех страниц из ТОП 10 гугла по тому запросу содержат ответ на твой вопрос.
Но видимо прошлый урок, когда я уже дал ссылку на гугл, ничему не научил.
На самом деле это не просто понты — нужно всегда в первую очередь пользоваться документацией (MSDN, manual) и поисковиком. Я, например, в поисковике нахожу ответы более чем на половину возникающих у меня вопросов. И только если честно усердно искал, но не нашел в мануале и поисковике, то уже спрашиваю на форуме или у знакомых/друзей в ICQ.
От: | bnk | http://unmanagedvisio.com/ | |
Дата: | 06.12.09 22:10 | ||
Оценка: | 1 (1) |
Здравствуйте, MozgC, Вы писали:
MC>Между тем, если кликнуть по самой же первой ссылке в гугле (по запросу который я дал), узнаем как минимум 2 способа получить колонки таблицы:
И оба «неправильные»
MC>Но видимо прошлый урок, когда я уже дал ссылку на гугл, ничему не научил.
MC>На самом деле это не просто понты — нужно всегда в первую очередь пользоваться документацией (MSDN, manual) и поисковиком. Я, например, в поисковике нахожу ответы более чем на половину возникающих у меня вопросов. И только если честно усердно искал, но не нашел в мануале и поисковике, то уже спрашиваю на форуме или у знакомых/друзей в ICQ.
Ага, напугался?
По сути вопроса, я думаю что лучше было бы просто
Это вроде как из стандарта (AFAIK работает на «любой» версии, в том числе на CE, в том числе не только в MS SQL).
От: | Cynic | |
Дата: | 06.12.09 22:10 | |
Оценка: |
Придется самому ответить. Поскольку в русском поиске ни чего не ищется, будем надеяться что Google проиндексирует.
В T-SQL информацию подобного рода получают используя представления(VIEW) — статические запросы, которые можно использовать так, как если бы они были таблицами. Подробнее можно почитать здесь или здесь, как будет угодно.
Для того чтобы получить в базе данных
От: | Cynic | |
Дата: | 06.12.09 22:12 | |
Оценка: |
Здравствуйте, bnk, Вы писали:
Братан ты опередил меня на доли секунды
От: | MozgC | http://nightcoder.livejournal.com | |
Дата: | 06.12.09 22:15 | ||
Оценка: |
Здравствуйте, bnk, Вы писали:
bnk>И оба «неправильные»
bnk>Ага, напугался?
Немного так как с Sql Server не работаю, но искать в гугле вроде умею
bnk>По сути вопроса, я думаю что лучше было бы просто
bnk>
bnk>Это вроде как из стандарта (AFAIK работает на «любой» версии, в том числе на CE, в том числе не только в MS SQL).
Этот вариант есть по второй ссылке в гугле, я привел пример только из первой
От: | Cynic | |
Дата: | 06.12.09 22:21 | |
Оценка: |
Здравствуйте, bnk, Вы писали:
bnk>По сути вопроса, я думаю что лучше было бы просто
bnk>
bnk>Это вроде как из стандарта (AFAIK работает на «любой» версии, в том числе на CE, в том числе не только в MS SQL).
Может ты ещё подскажешь как получить количество столбцов в таблице
Вот ещё вопрос. В стандарте написано о существовании команды SIMILAR TO, а вот T-SQL её не понимает
От: | Cynic | |
Дата: | 06.12.09 22:24 | |
Оценка: |
Здравствуйте, MozgC, Вы писали:
bnk>>По сути вопроса, я думаю что лучше было бы просто
bnk>>
bnk>>Это вроде как из стандарта (AFAIK работает на «любой» версии, в том числе на CE, в том числе не только в MS SQL).
MC>Этот вариант есть по второй ссылке в гугле, я привел пример только из первой
Ну вот по этой ссылке я ответ и нашёл Просто искать надо на англицком, русский поиск ни чего не находит
От: | bnk | http://unmanagedvisio.com/ | |
Дата: | 06.12.09 22:27 | ||
Оценка: |
Здравствуйте, MozgC, Вы писали:
MC>Этот вариант есть по второй ссылке в гугле, я привел пример только из первой
В общем ты прав конечно, и такие проблемы стоит решать с помощью гугла.
С другой стороны, часто не знаешь, можно так решить определенную проблему или нет.
То есть, является ли то решение, которое дает тебе гугл, «правильным» решением.
Он ведь «не знает», для чего ты его хочешь применять.
Обычно это можно оценить по числу выдаваемых ссылок.
Если их много, то скорее всего проблема является типичной, и решению от гугла стоит верить.
Если же ссылок мало, то скорее всего или ты крутой перец и первопроходец в своей области, или твоя задача вообще решается не так
(то есть была допущена «первая ошибка программиста» — решается «не та» задача).
От: | MozgC | http://nightcoder.livejournal.com | |
Дата: | 06.12.09 22:27 | ||
Оценка: |
Здравствуйте, bnk, Вы писали:
bnk>Это вроде как из стандарта (AFAIK работает на «любой» версии, в том числе на CE, в том числе не только в MS SQL).
Насколько я помню, к примеру в MySql этот «стандарт» появился относительно недавно, да и мне тут подсказывают что он, дословно, «меняется от версии к версии», о чем здесьпишет сам Microsoft:
В представления информационной схемы были внесены определенные изменения, нарушающие обратную совместимость. Эти изменения описаны в разделах, посвященных конкретным представлениям.
Ну и вроде Microsoft не позиционирует эту схему как стандарт, так как сами пишут:
Представление информационной схемы является одним из способов получения метаданных, которые предоставляет SQL Server.
От: | Аноним | |
Дата: | 08.12.09 16:08 | |
Оценка: |
От: | Cynic | |
Дата: | 09.12.09 12:03 | |
Оценка: |
Здравствуйте, Аноним, Вы писали:
А>Ты б поставил себе BOL и не мучался гуглением.
А что такое BOL
А>Возможно тебе не отвечали на вопрос, т.к. надеялись что ты и сам дойдёшь до всего увидев пример с INFORMATION_SCHEMA.
Да нет они просто воспитанием занимаются. Надо же как-то самомнение поднимать
Получить имена столбцов таблицы в MySQL?
есть ли способ захватить имя столбцов таблицы в mysql? использование php
17 ответов:
или в более новых версиях вы можете использовать information_schema для:
следующие операторы SQL почти эквивалентны:
Я сделал функцию PDO, которая возвращает все имена столбцов в простом массиве.
на выходе будет массив:
извините за некро, но мне нравится моя функция 😉
P. S. Я не включенными класс ядро, но вы можете использовать свой собственный класс.. Д. С.
это решение из командной строки mysql
в приведенном ниже запросе просто измените на вашу базу данных и на ваше имя таблицы, где вы просто хотите значения полей оператора DESCRIBE
функция MySQL опишите таблицу должно привести вас туда, куда вы хотите пойти (поместите свое имя таблицы в «таблицу»). Вам придется разобрать вывод, но это довольно легко. Насколько я помню, если вы выполните этот запрос, результат запроса PHP, обращающийся к функциям, которые обычно дают вам пару ключ-значение, будет иметь имена столбцов в качестве ключей. Но прошло некоторое время с тех пор, как я использовал PHP, так что не держите меня за это. 🙂
интересно также отметить, что вы можете использовать
EXPLAIN table_name что является синонимом DESCRIBE table_name и SHOW COLUMNS FROM table_name хотя объяснить чаще используется для получения информации о плане выполнения запроса.
The mysql_list_fields функция может вас заинтересовать ; но, как говорится в руководстве:
эта функция устарела. Это предпочтительно использовать mysql_query() to выдать SQL заявление.
мне нужны были имена столбцов в виде плоского массива, в то время как другие ответы возвращали ассоциативные массивы, поэтому я использовал:
Вывод названий полей
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Вывод названий городов вместо внешних ключей
Ребят, не сильно знаком с базами, подскажите пожалуйста как составить запрос. Нужно вместо внешних.
Сделать таблицу из 3 полей и вывод
В таблице нужно сделать 3 поля Дата(DATE), Выходной(логическое да\нет или 1\0 (незнаю какой тип.
Запрос на вывод двух полей по разным идентификаторам
Имеется три таблицы «страна», «город», «тур». В таблице «тур»- поля: «город вылета».
Подстановка названий по их id
Имеется следующие таблицы.
выводят информацию о столбцах. Что в эти запросы добавить, чтобы выводились только названия столбцов?
Кстати, нашёл как я это раньше делал:
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Чтение названий всех папок из папки «Profiles» и вывод этих названий в ListBox
Мне надо устроить выбор профиля для загрузки игры. Все файлы одного профиля хранятся в папке с.
Как сделать подписи названий полей таблиц
БД access. В самом access подписи полей в таблицах стоят, а в Delphi выводятся названия таблиц на.
Выпадающий список из названий полей с условием их отбора
Всем доброго времени суток. Очень нужна ваша помощь, господа эксперты. Не знаю с какой стороны.
- как узнать названия своих регионов в майнкрафт
- как узнать названия цветка по фото комнатные