DB_NAME (Transact-SQL)
Сведения о синтаксисе Transact-SQL для SQL Server 2014 (12.x) и более ранних версиях см . в документации по предыдущим версиям.
Аргументы
Идентификационный номер базы данных, имя которой вернет функция DB_NAME . Если в вызове DB_NAME аргумент database_id не указан, функция DB_NAME возвращает имя текущей базы данных.
Типы возвращаемых данных
nvarchar(128)
Разрешения
Если участник, вызывающий DB_NAME , не является владельцем конкретной базы данных, отличной от базы данных master или tempdb, то минимальными разрешениями, необходимыми для просмотра соответствующей строки DB_ID , являются разрешения уровня сервера ALTER ANY DATABASE или VIEW ANY DATABASE . Для базы данных master функция DB_ID требует по крайней мере разрешения CREATE DATABASE . База данных, к которой подключается вызывающий участник, всегда отображается в представлении sys.databases.
По умолчанию общедоступная роль имеет разрешение VIEW ANY DATABASE , что позволяет всем именам для входа просматривать информацию в базе данных. Чтобы имя для входа не могло обнаруживать базу данных, отзовите общедоступное разрешение VIEW ANY DATABASE с помощью инструкции REVOKE или отмените разрешение VIEW ANY DATABASE для отдельных имен для входа с помощью инструкции DENY .
Примеры
А. Возврат имени текущей базы данных
В приведенном ниже примере возвращается имя текущей базы данных.
SELECT DB_NAME() AS [Current Database]; GO
B. Возврат имени базы данных с указанным идентификатором базы данных
В приведенном ниже примере возвращается имя базы данных с идентификатором 3 .
USE master; GO SELECT DB_NAME(3) AS [Database Name]; GO
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
C. Получение имени текущей базы данных
SELECT DB_NAME() AS [Current Database];
D. Получение имени базы данных по ее идентификатору
В приведенном ниже примере возвращаются имя и идентификатор каждой базы данных.
SELECT DB_NAME(database_id) AS [Database], database_id FROM sys.databases;

29 Янв 2018 23:01:07 | 0 comments
Как посмотреть тип движка у таблиц в MySQL
Очень часто бывает необходимо посмотреть тип движка у таблицы в MySQL.
Как это сделать для 1 таблицы и для всех таблиц в нужной базе данных? Читаем ниже.
Самый простой способ узнать тип движка у таблицы — это вызвать ‘SHOW CREATE TABLE ‘ или ‘SHOW TABLE STATUS FROM LIKE ‘.
mysql> USE mysql; mysql> SHOW CREATE TABLE plugin\G; *************************** 1. row *************************** Table: plugin Create Table: CREATE TABLE `plugin` ( `name` varchar(64) NOT NULL DEFAULT '', `dl` varchar(128) NOT NULL DEFAULT '', PRIMARY KEY (`name`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='MySQL plugins' 1 row in set (0.00 sec)
mysql> SHOW TABLE STATUS FROM mysql LIKE 'plugin'\G; *************************** 1. row *************************** Name: plugin Engine: MyISAM Version: 10 Row_format: Dynamic Rows: 4 Avg_row_length: 51 Data_length: 204 Max_data_length: 281474976710655 Index_length: 2048 Data_free: 0 Auto_increment: NULL Create_time: 2018-02-20 00:21:12 Update_time: 2018-02-20 00:21:12 Check_time: NULL Collation: utf8_general_ci Checksum: NULL Create_options: Comment: MySQL plugins 1 row in set (0.00 sec)
и в строке ENGINE мы видим, что у таблицы plugin тип движка MyISAM.
На самом деле есть способ еще проще — это воспользоваться утилитой mysqlshow.
Посмотрим информацию о таблице plugin из БД mysql:
# mysqlshow -u root -p -i mysql plugin Database: mysql Wildcard: plugin +--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+ | Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment | +--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+ | plugin | MyISAM | 10 | Dynamic | 4 | 51 | 204 | 281474976710655 | 2048 | 0 | | 2017-12-10 23:37:48 | 2017-12-10 23:37:48 | | utf8_general_ci | | | MySQL plugins | +--------+--------+---------+------------+------+----------------+-------------+-----------------+--------------+-----------+----------------+---------------------+---------------------+------------+-----------------+----------+----------------+---------------+
Информации довольно много и она достаточно неудобно представлена (много колонок), но можно увидеть поле Engine — это то, что нам нужно.
Если же нужно посмотреть информацию в более удобном виде и узнать не только ENGINE, то можно выполнить такой SQL-запрос:
mysql> SELECT TABLE_NAME,ENGINE,ROW_FORMAT,TABLE_ROWS,DATA_LENGTH,INDEX_LENGTH FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'mysql' ORDER BY ENGINE asc; +---------------------------+--------+------------+------------+-------------+--------------+ | TABLE_NAME | ENGINE | ROW_FORMAT | TABLE_ROWS | DATA_LENGTH | INDEX_LENGTH | +---------------------------+--------+------------+------------+-------------+--------------+ | general_log | CSV | Dynamic | 2 | 0 | 0 | | slow_log | CSV | Dynamic | 2 | 0 | 0 | | innodb_index_stats | InnoDB | Compact | 29542 | 5767168 | 0 | | innodb_table_stats | InnoDB | Compact | 3057 | 425984 | 0 | | slave_master_info | InnoDB | Compact | 0 | 16384 | 0 | | slave_relay_log_info | InnoDB | Compact | 0 | 16384 | 0 | | slave_worker_info | InnoDB | Compact | 0 | 16384 | 0 | | db | MyISAM | Fixed | 148 | 65560 | 13312 | | help_topic | MyISAM | Dynamic | 533 | 510552 | 21504 | | proxies_priv | MyISAM | Fixed | 2 | 1386 | 5120 | | time_zone | MyISAM | Fixed | 0 | 0 | 1024 | | event | MyISAM | Dynamic | 0 | 0 | 2048 | | servers | MyISAM | Fixed | 0 | 0 | 1024 | | time_zone_leap_second | MyISAM | Fixed | 0 | 0 | 1024 | | func | MyISAM | Fixed | 3 | 1737 | 2048 | | time_zone_name | MyISAM | Fixed | 0 | 0 | 1024 | | ndb_binlog_index | MyISAM | Dynamic | 0 | 0 | 1024 | | time_zone_transition | MyISAM | Fixed | 0 | 0 | 1024 | | help_category | MyISAM | Dynamic | 40 | 1120 | 3072 | | plugin | MyISAM | Dynamic | 4 | 204 | 2048 | | time_zone_transition_type | MyISAM | Fixed | 0 | 0 | 1024 | | help_keyword | MyISAM | Fixed | 485 | 95545 | 17408 | | proc | MyISAM | Dynamic | 0 | 1200 | 4096 | | user | MyISAM | Dynamic | 160 | 19620 | 6144 | | columns_priv | MyISAM | Fixed | 0 | 0 | 4096 | | help_relation | MyISAM | Fixed | 1090 | 9810 | 20480 | | procs_priv | MyISAM | Fixed | 0 | 0 | 4096 | | tables_priv | MyISAM | Fixed | 7 | 5957 | 8192 | +---------------------------+--------+------------+------------+-------------+--------------+ 28 rows in set (0.00 sec)
Колонка ENGINE — это тип движка у таблицы;
Колонка ROW_FORMAT — это формат строк таблицы;
Колонка TABLE_ROWS — это количества записей в таблице;
Колонка DATA_LENGTH — это размер данных в таблице в байтах;
Колонка INDEX_LENGTH — это размер индекса в таблице в байтах;
На этом все, до скорых встреч. Если у Вас возникли вопросы или Вы хотите чтобы я помог Вам, то Вы всегда можете связаться со мной разными доступными способами.
Как проверить тип системы хранения MySQL на Linux и Windows
Используются две основные системы хранения MySQL: MyISAM и Innodb. MyISAM является не транзакционной, и, следовательно, может быть быстрее для чтения, в то время как InnoDB полностью поддерживает транзакции (например, совершение/откат) с блокировкой отдельных элементов. Когда вы создаёте новую таблицу MySQL вы выбираете её тип (так называемую систему хранения, движок базы данных). Если вы не делаете выбор, то вы просто будете использовать движок, который в конфигурации указан как дефолтный.
Если вы хотите узнать тип существующей таблицы базы данных MySQL, есть несколько способов сделать это.
Метод первый
Если у вас есть доступ в phpMyAdmin, мы можете узнать тип баз данных из него. Просто выберите базу данных из phpMyAdmin, чтобы видеть список её таблиц. В колонке «Тип» вы увидите тип базы данных для каждой таблицы.
Метод второй
Если вы можете напрямую авторизоваться на сервере MySQL, другой способ выяснить систему хранения — это запустить следующую MySQL команду внутри вашего MySQL сервера после авторизации.
mysql> SELECT ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = 'my_database' AND TABLE_NAME = 'my_table';
Эта команда покажет тип системы хранения таблицы под названием ‘my_table’ в базе данных ‘my_database’.
‘my_database’ — название базы данных, в которой находится интересующая вас таблица
‘my_table’ — название интересующей вас таблицы
Метод третий
И ещё один метод проверить движок MySQL, это использование mysqlshow (утилиты командной строки, которая показывает информацию о базе данных). mysqlshow поставляется вместе с установкой клиентского пакета MySQL. Для использования mysqlshow вы должны войти в MySQL сервер со своим логином.
Эта команда отобразит информацию о конкретной базе данных. В колонке «Engine» вы увидите систему хранения для каждой таблицы.
$ mysqlshow -u -p -i
Узнать тип системы хранения MySQL на Windows
Все вышеописанные методы применимы и для Windows. Небольшая коррекция есть только для третьего способа. Файл имеет имя mysqlshow.exe и, скорее всего, придётся прописывать полный путь до него. Например, я вызываю его таким образом:
C:Serverbinmysql-5.6binmysqlshow.exe -u root -p -i db_wordpress
Как узнать тип базы данных
Как быть, если вы забыли имя базы или таблицы, или структуру какой-либо из таблиц (например имена столбцов)? В MySQL эта проблема решается при помощи нескольких команд, выводящих информацию о базе данных и содержащихся в ней таблицах.
Вы уже познакомились с командой SHOW DATABASES , выводящей список управляемых сервером баз данных. Определить, какая из них выбрана в данный момент, можно с помощью функции DATABASE() :
mysql> SELECT DATABASE(); +------------+ | DATABASE() | +------------+ | menagerie | +------------+
Если ни одна из баз не выбрана, результат будет пуст.
Выяснить, какие таблицы содержит текущая база данных (что необходимо, если, например, никак не получается вспомнить имя нужной таблицы), можно при помощи следующей команды:
mysql> SHOW TABLES; +---------------------+ | Tables in menagerie | +---------------------+ | event | | pet | +---------------------+
Узнать структуру таблицы можно при помощи команды DESCRIBE , которая выводит информацию о каждом из столбцов таблицы:
mysql> DESCRIBE pet; +---------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +---------+-------------+------+-----+---------+-------+ | name | varchar(20) | YES | | NULL | | | owner | varchar(20) | YES | | NULL | | | species | varchar(20) | YES | | NULL | | | sex | char(1) | YES | | NULL | | | birth | date | YES | | NULL | | | death | date | YES | | NULL | | +---------+-------------+------+-----+---------+-------+
Field — имя столбца, Type — тип данных, к которому относится этот столбец, NULL указывает, может ли данный столбец содержать значения NULL , Key — является ли этот столбец индексным, и, наконец, Default указывает значение данного столбца по умолчанию.
Если для таблицы созданы индексы, информацию о них можно получить с помощью команды SHOW INDEX FROM tbl_name .