Перейти к содержимому

Как вывести список таблиц sql

  • автор:

Получить список таблиц в пользовательских БД в SQL Server

Добрый день. Подскажите запрос на получение списка таблиц пользовательских (не системных) баз данных в SQL Server 2008.

Отслеживать
51.4k 86 86 золотых знаков 267 267 серебряных знаков 505 505 бронзовых знаков
задан 6 июл 2011 в 7:33
285 2 2 золотых знака 4 4 серебряных знака 17 17 бронзовых знаков

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Есть ещё вариант SELECT * FROM INFORMATION_SCHEMA.TABLES

Он более кроссплатформенный относительно СУБД, т.к. INFORMATION_SCHEMA является частью стандарта SQL, а sys.objects нет.

Хотя там есть не всё, многие вещи без представлений из схемы sys не получить.

Отслеживать
ответ дан 6 июл 2011 в 9:04
8,875 25 25 серебряных знаков 66 66 бронзовых знаков
Запомню, спасибо
6 июл 2011 в 10:52

//Выдает все базы данных на сервере
SELECT name FROM sys.databases

//Выдает все таблицы в Базе данных
SELECT * FROM sys.objects WHERE type in (N’U’)

Отслеживать
ответ дан 6 июл 2011 в 7:43
841 1 1 золотой знак 9 9 серебряных знаков 26 26 бронзовых знаков

Второй запрос возвращает список таблиц из СИСТЕМНОЙ базы master. Наверное я неправильно сформулировал вопрос: Нужно получать список таблиц из баз, которые созданы пользователем, т.е. создана база БАЗА1 с таблицами ТАБЛИЦА1, ТАБЛИЦА2 и т.д. Нужно получить список этих таблиц: ТАБЛИЦА1, ТАБЛИЦА2

6 июл 2011 в 8:07

Второй запрос выведет вам таблицы из базы данных, которую вы выберите. USE [MyDataBase] для выбора базы данных

Как вывести список всех таблиц MySQL и количество строк в каждой из них впри помощи PHP?

Надо вывести список всех таблиц и чтобы рядом стояло количество строк в это таблице.
Что я делаю не так?

Список пуст!
"; > else < while ($table = mysqli_fetch_array($result)) < $numread = mysqli_num_rows($link, "SELECT * FROM `$table[0]`"); echo "
таб $table[0]. Кол-во строк: $numread
"; > > ?>
  • Вопрос задан более трёх лет назад
  • 6144 просмотра

2 комментария

Простой 2 комментария

Konata69lol

Konata Izumi @Konata69lol
Что выводит?
Какие-то ошибки?

FSystem88

Иван @FSystem88 Автор вопроса
Konata Izumi, выводит только список таблиц, а количество строк не выводит
Решения вопроса 1

HeadOnFire

Игорь Воротнёв @HeadOnFire
PHP, Laravel & WordPress Evangelist

SHOW TABLES FROM database_name прекрасно работает когда база не выбрана. Здесь мы показываем таблицы в базе, а не в $db_table. Исходя из вашего нейминга, вы просите таблицу показать ее таблицы, что абсурдно само по себе. Обращайтесь к базе. Или, если вы базу предварительно уже выбрали, то достаточно SHOW TABLES .

Далее, для SELECT * FROM table_name уже сначала нужно выбрать базу данных (которую вы опрашивали на предмет таблиц в первом запросе), или же обращаться к таблице в формате database_name.table_name.

Ну и, вместо того чтобы делать выборку всех строк со всеми колонками, спросите сразу SELECT COUNT(*) FROM database_name.table_name .

Еще проще и быстрее это сделать с помощью такого запроса:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'your_database_name';

Результат этого запроса:

+-----------------------+------------+ | table_name | table_rows | +-----------------------+------------+ | wp_terms | 10 | | wp_yoast_seo_meta | 61 | | wp_yoast_seo_links | 33 | | wp_commentmeta | 0 | | wp_term_taxonomy | 10 | | wp_ewwwio_queue | 352 | | wp_usermeta | 114 | | wp_options | 281 | | wp_users | 5 | | wp_term_relationships | 49 | | wp_ewwwio_images | 1048 | | wp_links | 0 | | wp_postmeta | 21408 | | wp_termmeta | 0 | | wp_comments | 0 | | wp_posts | 738 | +-----------------------+------------+

Единственное, что нужно учесть — если таблицы у вас InnoDB, то данные цифры будут более-менее точными, но не совсем. В силу механизмов оптимизации. Так что если нужно «приблизительно» понимать — используйте данный метод. Если нужно с точностью до одной строки — тогда COUNT.

Ну и еще можно сделать SHOW TABLE STATUS , находять в выбранной базе данных. Точность подсчета количества строк на InnoDB такая же, как и предыдущем методе, но зато здесь будет еще много полезной информации. Например — avg_row_length, data_length, index_length и другое.

Вывести список таблиц

Чтобы вывести список всех таблиц пользователей можно воспользоваться консольной утилитой « SQL Plus ». Что иронично. Для этого выполняем команду « cmd » в разделе «Пуск – Выполнить…». Далее появится черное окно в котором надо выполнить « sqlplus », потом ввести имя пользователя и пароль. И только после появления строки вида « SQL >» можно вводить SQL -код.

SELECT owners, table_name

FROM all_tables

ORDER BY 1, 2;

Просмотр списка баз данных на SQL Server

В этой статье описывается, как просмотреть список баз данных на экземпляре SQL Server с помощью SQL Server Management Studio или Transact-SQL.

Разрешения

Если участник, вызывающий sys.databases , не является владельцем базы данных, а база данных не является master или tempdb , то минимальными разрешениями, необходимыми для просмотра соответствующей строки, являются разрешения уровня сервера ALTER ANY DATABASE или VIEW ANY DATABASE или разрешение CREATE DATABASE в базе данных master . Узнать базу данных, к которой подключен участник, можно в представлении каталога sys.databases .

Использование среды SQL Server Management Studio

Просмотр списка баз данных в экземпляре SQL Server
  1. В обозревателе объектов подключитесь к экземпляру ядра СУБД SQL Server, а затем разверните этот экземпляр.
  2. Для просмотра списка всех баз данных в экземпляре разверните список Базы данных.

Использование Transact-SQL

Просмотр списка баз данных в экземпляре SQL Server
  1. Соединитесь с ядром СУБД .
  2. На стандартной панели выберите пункт Создать запрос.
  3. Скопируйте приведенный ниже пример в окно запроса и нажмите кнопку Выполнить. В этом примере возвращается список баз данных на экземпляре SQL Server. Список содержит имена баз данных, их идентификаторы и даты создания.
SELECT name, database_id, create_date FROM sys.databases; GO 

Далее

  • Представления каталога баз данных и файлов (Transact-SQL)
  • sys.databases (Transact-SQL)

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *