Получение списка таблиц и полей в базе данных C#

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

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

SQL
Скопировать код
SELECT TABLE_NAME, GROUP_CONCAT(COLUMN_NAME) AS Columns
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA = 'YourDbName' -- Замените на название вашей БД в случае, если оно не 'YourDbName'.
GROUP BY TABLE_NAME;

Поздравляю! Вы только что привели информацию о столбцах в порядок. Мари Кондо была бы рада.

Кинга Идем в IT: пошаговый план для смены профессии

Раскрываем полный потенциал «каталогов объектов»

Помните слова Человека-паука: "С великой силой приходит великая ответственность". В истину сказать, работать с метаданными базы данных – значит, принимать на себя ответственность. Два инструмента, способных сделать вас сверхчеловеком в мире баз данных всего за одну ночь – это OBJECT CATALOG VIEWS (sys.objects, sys.columns, sys.types) и INFORMATION_SCHEMA. Подготовьтесь к полету среди системных объектов!

Используйте этот код:

SQL
Скопировать код
SELECT o.name AS Table_Name,
       c.name AS Column_Name,
       t.name AS Data_Type,
       c.max_length AS Size,
       c.precision,
       c.scale
FROM sys.objects o
JOIN sys.columns c ON o.object_id = c.object_id
JOIN sys.types t ON c.user_type_id = t.user_type_id
WHERE o.type = 'U' -- 'U' обозначает пользовательские таблицы.
ORDER BY o.name, c.column_id;

В глубину information schema

Обращение к INFORMATION_SCHEMA позволяет вывести структуру базы данных такой, какой она есть на самом деле.

Используйте следующий запрос:

SQL
Скопировать код
SELECT 
    COLUMN_NAME, 
    TABLE_NAME, 
    DATA_TYPE, 
    CHARACTER_MAXIMUM_LENGTH, 
    NUMERIC_PRECISION, 
    NUMERIC_SCALE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDbName' -- Замените на название вашей базы данных.
AND TABLE_NAME = 'YourTableName' -- Используйте, если нужна конкретная таблица.

Визуализация

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

Markdown
Скопировать код
📚 Библиотека Базы Данных 📚
| Полка (Таблица)  | Книги (Поля)            |
| ------------------ | ------------------------- |
| Авторы            | 📖 Имя, 📖 Биография      |
| Книги             | 📖 Название, 📖 Жанр      |
| Издатели          | 📖 Имя, 📖 Расположение   |

Библиотекари начиная с 3000 г. до н.э. стараются навести порядок в хаосе.

Коротко для воинов ORM

Пользуетесь ORM? Знание структуры таблиц поможет автоматизировать маппинг в ORM.

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

Хорошие практики: противостояние Темной стороне

Не забывайте о словах Человека-паука. С возможностями работы с метаданными приходит ответственность за аккуратность их использования. Регулярно используйте фильтры в ваших запросах и помните о возможном влиянии на производительность.

Имейте в виду, что, несмотря на всю полезность функции GROUP_CONCAT, она имеет ограничение на максимальную длину строки. Хорошо там, где без излишеств.

Точность – это ключ к королевству запросов

Хотите стать Шерлоком Холмсом в мире SQL-запросов? Стремитесь делать каждый запрос наиболее эффективным – выбирайте только нужные колонки. И помните: вместе с метаданными приходит знание об ограничениях, индексах и триггерах.

Полезные материалы

  1. Справочное руководство MySQL 8.0: Таблицы INFORMATION_SCHEMA — подробное описание SQL, в котором раскрываются разделы INFORMATION_SCHEMA в MySQL.
  2. sys.tables (Transact-SQL) – SQL Server | Microsoft Learn — официальное руководство, разъясняющее возможности sys.tables в SQL Server.
  3. sys.columns (Transact-SQL) – SQL Server | Microsoft Learn — детальное изучение sys.columns в документации Microsoft, идеальное для анализа баз данных SQL Server.
  4. PostgreSQL: Документация: Глава 53. Системные каталоги — всё необходимое для понимания системных каталогов и доступа к метаданным таблиц, представлено в официальной документации PostgreSQL.
  5. ALL_TAB_COLUMNS – гид по столбцам пользовательских таблиц в Oracle, упрощающий извлечение метаданных таблиц до самых оснований.