В консоль программы mysql
нужно ввести такой sql
запрос
который покажет базы данных имеющие в названии определенные символы например «_db» а не все как SHOW DATABASES;
задан 5 янв 2018 в 15:37
Aleksey execAleksey exec
3791 золотой знак3 серебряных знака19 бронзовых знаков
Не каждый statement есть query.
SHOW DATABASES
(и прочие SHOW
) запросами не являются!
Одним из правильных решений (особенно если это учебно-зачётная задача) является запрос типа
SELECT SCHEMA_NAME AS `Database`
FROM INFORMATION_SCHEMA.SCHEMATA
WHERE SCHEMA_NAME LIKE '%_db%';
ответ дан 5 янв 2018 в 16:49
Вот пример с вашим _db
.
SHOW DATABASES LIKE '_db%';
Или так:
SHOW DATABASES LIKE '%_db%';
Второй пример для того если _db
в середине имени базы данных а не в конце.
Вот здесь подробно все описано.
ответ дан 5 янв 2018 в 15:50
Raz GalstyanRaz Galstyan
8,0381 золотой знак19 серебряных знаков50 бронзовых знаков
ответ дан 5 янв 2018 в 15:42
retvizanretvizan
5994 серебряных знака5 бронзовых знаков
SHOW DATABASES LIKE ‘%_db%’; Вот так нормально
ответ дан 5 янв 2018 в 15:53
Недорогой хостинг для сайтов
В этом руководстве мы покажем вам, как отобразить список всех баз данных в системе MySQL Linux. Для тех из вас, кто не знал, MySQL — самая популярная система управления реляционными базами данных с открытым исходным кодом. Исходный код MySQL находится в свободном доступе, поскольку изначально разрабатывался как бесплатное ПО. MySQL написан на C и C ++ и совместим со всеми основными операционными системами. MySQL может использоваться для множества приложений, но чаще всего встречается в популярных стеках LAMP и LEMP .
В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo
‘ к командам для получения привилегий root. Я покажу вам пошаговый список баз данных MySQL в Linux.
Показать список всех баз данных в MySQL
Шаг 1. Во-первых, убедитесь, что все ваши системные пакеты обновлены, выполнив следующие apt
команды в терминале.
sudo apt update sudo apt upgrade
Шаг 2. Показать список всех баз данных в MySQL
Чтобы отображать базы данных в MySQL , вам необходимо войти в оболочку MySQL / MariaDB с пользователем root, как показано ниже:
$ mysql –u username –p Enter password: Welcome to the MySQL monitor. Commands end with ; or g. Your MySQL connection id is 3 Server version: 5.8.64-MySQL-ubuntu0.20.04 (Ubuntu) Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or 'h' for help. Type 'c' to clear the current input statement. MariaDB [(none)]>
Из оболочки MySQL выполните следующую команду:
MySQL [(none)]> show databases;
Выход:
+--------------------+ | Database | +--------------------+ | information_schema | | drupal | | magento | | mysql | | owncloud | | performance_schema | | wordpressdatabase | +--------------------+ 7 rows in set (0.01 sec)
Затем, если вы хотите использовать конкретную базу данных и перечислить все таблицы в ней, вы можете использовать следующие команды:
MySQL [(none)]> use mysql;
Затем выведите список доступных таблиц с помощью следующей команды:
MySQL [mysql]> show tables;
Выход:
+---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | event | | func | | general_log | | help_category | | help_keyword | | help_relation | | help_topic | | host | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | servers | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+
Если вы хотите узнать о структуре конкретной таблицы, вы можете использовать DESCRIBE
инструкцию в MySQL:
MySQL [(none)]> DESCRIBE user;
Поздравляю! Вы успешно показали все базы данных MySQL. Благодарим за использование этого руководства по установке сервера MySQL в системе Ubuntu 20.04 Focal Fossa. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт MySQL .
Рекомендуемый контент
Мы покажем вам, как перечислять все базы данных в MySQL. MySQL — это система управления реляционными базами данных с открытым исходным кодом, обычно используемая с веб-приложениями, такими как WordPress, Magento и т. Д. В этом уроке мы покажем вам, как перечислять все базы данных в MySQL на Linux VPS .
Прежде чем вы начнете перечислять все таблицы в MySQL, убедитесь, что у вас есть полный доступ к вашему серверу Linux, или, по крайней мере, у вас есть системный пользователь с привилегиями sudo, которые вы можете использовать для подключения к вашему серверу. После подключения к серверу через SSH выполните следующую команду, чтобы проверить, установлен ли сервер базы данных MySQL на вашем VPS, и какова версия:
mysql -V
Результат команды должен быть аналогичен выходу:
# mysql -V mysql Ver 14.14 Distrib 5.7.22, for Linux (x86_64) using EditLine wrapper
Затем, чтобы подключиться к серверу базы данных MySQL через командную строку, как пользователь root
, выполните следующую команду:
mysql -u root -p
MySQL попросит вас ввести пароль для пользователя root. Введите пароль и нажмите Enter
. Если вы еще не настроили пароль для пользователя root, вы можете использовать следующую команду:
mysql -u root
Конечно, всегда рекомендуется поддерживать безопасность ваших сервисов, поэтому, если вы еще не настроили пароль для root в MySQL, вы можете сделать это сейчас, используя команду mysql_secure_installation
без аргументов:
mysql_secure_installation
Затем ответьте на вопросы безопасности следующим образом:
Would you like to setup VALIDATE PASSWORD plugin? Press y|Y for Yes, any other key for No: y Please set the password for root here. New password: Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y Remove anonymous users? (Press y|Y for Yes, any other key for No) : y Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y All done!
Затем подключитесь к серверу базы данных MySQL с помощью пользователя root и введите новый пароль root.
Чтобы перечислить все базы данных в MySQL, выполните следующую команду:
mysql> show databases;
Эта команда будет работать для вас независимо от того, есть ли у вас Ubuntu VPS или CentOS VPS.
Результат команды должен быть аналогичен выходу:
mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | +--------------------+ 4 rows in set (0.00 sec)
Если у вас есть другие базы данных, созданные в MySQL, они будут перечислены здесь.
Затем, если вы хотите использовать определенную базу данных и перечислить все ее таблицы, вы можете использовать следующие команды:
mysql> use mysql;
Чтобы перечислить таблицы, вы можете использовать следующую команду:
mysql> show tables
Таблицы будут перечислены в следующем формате:
mysql> show tables; +---------------------------+ | Tables_in_mysql | +---------------------------+ | columns_priv | | db | | engine_cost | | event | | func | | general_log | | gtid_executed | | help_category | | help_keyword | | help_relation | | help_topic | | host | | innodb_index_stats | | innodb_table_stats | | ndb_binlog_index | | plugin | | proc | | procs_priv | | proxies_priv | | server_cost | | servers | | slave_master_info | | slave_relay_log_info | | slave_worker_info | | slow_log | | tables_priv | | time_zone | | time_zone_leap_second | | time_zone_name | | time_zone_transition | | time_zone_transition_type | | user | +---------------------------+ 32 rows in set (0.00 sec)
Если вы хотите узнать о структуре конкретной таблицы, вы можете использовать инструкцию DESCRIBE
в MySQL:
mysql> DESCRIBE user;
На выходе будет отображаться информация о каждом из столбцов в таблице.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE.
Рассмотрим каждую из них отдельно.
- SHOW
- CREATE
- USE
- SQL
- Редактирование данных
Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:
Если, например, существуют две базы данных — mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:
+----------+ | Database | +----------+ | mysql | | test | +----------+
Для просмотра списка таблиц используется эта же команда в таком виде:
Эта команда выдаст список таблиц в текущей базе данных:
+-----------------+ | Tables in mysql | +-----------------+ | test | | mysql | +-----------------+
Замечание: вы можете работать только с одной базой данных в одно и то же время, поэтому в приведенном выше примере нет нужды указывать название базы данных, список таблиц которой стоит вывести, поскольку производится поиск в активной на данный момент базе.
Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных — mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:
После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:
+----------+ | Database | +----------+ | mysql | | test | | staff | +----------+
Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:
Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически — для ее использования необходимо сделать это самостоятельно.
Нижеследующее ознакомит вас с методами извлечения и занесения данных в таблицы при помощи языка SQL.
Просмотр данных
Наипростейшей командой является следующая:
Эта команда подразумевает, что в активной базе данных существует таблица mysql, из которой она просто извлекает все данные и выводит их на экран.
Замечание: На SQL-команды распространяется одно ограничение, которое не имеет отношения к командам MySQL — инструкции SQL обязательно должны заканчиваться точкой с запятой. Это позволяет вводит многострочные запросы к бызе данных, что не требуется для MySQL-команд, которые как правило лаконичные и короткие.
Как вы уже наверное поняли, команда SELECT служит для просмотра данных таблиц. Ее упрощенный синтаксис таков:
SELECT <список полей> FROM <список названий таблиц> [WHERE <список условий>] [ORDER BY <список полей>];
В списке поля может быть как один элемент, так и несколько; кроме того возможно указание символа «*» (), который говорит, что следует показать все поля таблицы.
Часть WHERE … является необязательной и позволяет выбрать из таблицы строки, удовлетворяющие определенному(ым) условию(ям). Раздел ORDER BY … служит для сортировки полученных данных по определенным полям.
Вот пример более сложного запроса, демонстрирующий сказанное выше. Допустим таблица staff содержит информацию о сотрудниках некоторой организации. Этот запрос находит записи о тех из них, кто работает больше двух лет и кого не зовут Иваном.
SELECT name, project, works_since FROM staff WHERE name > 'Иван' AND works_since '1998-04-26';
Рассмотрим этот запрос
Первая строка велит MySQL показать содержимое только полей name, project и works_since. Вторая строка указывает на таблицу, в которой следует искать эти данные. Оставшаяся часть запроса указывает критерии выбора — имя не должно быть ‘Иван’, а дата быть более ранней, чем 26-е апреля 1998-го года. Вот пример вывода после такой операции:
+----------+--------------+-------------+ | name | project | works_since | +----------+--------------+-------------+ | Fred | Secret data | 1997-01-01 | | Jonathan | Blue apples | 1997-06-01 | +----------+--------------+-------------+
Для показа данных одного поля может использоваться такой запрос:
SELECT project FROM staff ORDER BY project;
+-------------+ | project | +-------------+ | Blue apples | | Blue apples | | Cornichons | | Secret data | | Secret data | | Secret data | +-------------+
Как видите, этот запрос просто выбирает значения из нужного поля из каждой строки и выводит их, заодно сортируя по (единственному) полю project, поэтому в результатах встречаются повторения. Для устранения их используется инструкция DISTINCT:
SELECT DISTINCT project FROM staff ORDER BY project;
+-------------+ | project | +-------------+ | Blue apples | | Cornichons | | Secret data | +-------------+
SQL позволяет производить некоторые вычисления и получать некоторую описательную информацию при помощи агрегатных функций. Среди этих функций — COUNT, SUM, MAX, MIN и AVG:
COUNT — вычисляет количество найденых строк;
SUM — находит сумму значений в найденых строках;
MAX — находит найбольшее среди найденых значений;
MIN — находит наименьшее среди найденых значений;
AVG — находит среднее значение от найденых .
Используются эти функции как элементы списка таблиц в запросе с аргументом — названием поля. Вот несколько примеров.
SELECT COUNT (project) FROM staff; SELECT MAX (projects_done) FROM staff; SELECT AVG (project_done) FROM staff
Эти запросы находят количество выполняемых проектов, наибольшее количество проектов, выполняемое одним человеком и среднее количество проектов, в которых участвуют работники соответственно.
SQL также располагает средствами работы с регулярными выражениями (работе с которыми в Perl вы можете ознакомиться, прочтя соответствующую статью на нашем сайте).
Для сравнения значения с регулярным выражением используется оператор LIKE, а для конструирования простеших выражений — символы ‘_’ (произвольный символ) и ‘%’ (произвольное количество произвольных символов). Пример. Этот запрос находит все имена, которые начинаются с ‘Jo’:
SELECT name FROM staff WHERE name LIKE 'Jo%n';
+----------+ | name | +----------+ | Jonathan | | John | +----------+
MySQL также позволяет производить более развитое сравнение с шаблоном при помощи оператора REGEXP и средств построения шаблона теми же методами, что используются в Perl (см. Регулярные выражения в Perl).
SELECT name, project FROM staff WHERE project REGEXP "[bB]";
Этот запрос выведет все строки, в которых название проекта содержит букву ‘b’ вне зависимости от регистра.
И последнее по порядку, но не по значению — использование более чем одной таблицы. Особенность заключается в том, что используемые таблицы могут иметь общие поля, которыми они связаны.
Для того, чтобы точно указывать, о поле какой таблицы идет речь, используется запись типа staff.project, где перед точкой стоит название таблицы, а после нее — название поля. Второй вариант — назначения псевдонимов (алиасов) таблицам для большего удобства. Для этого в списке таблиц название каждой таблицы указывается вместе с псевдонимом — например stuff x, projects y.
SELECT x.name, x.project, x.description FROM staff x, projects x WHERE x.project = x.project_name;
В этом примере объединяются таблицы staff и projects, причем выводятся имя сотрудника, проект над которым он работает и описание этого проекта.
+----------+-------------+------------------------------+ | name | project | description | +----------+-------------+------------------------------| | Jonathan | Blue apples | Worldwide apple distribution | | Fred | Secret data | Secret data | | John | Secret data | Secret data | +----------+-------------+------------------------------+
Объединив все это в один запрос получим следующее:
SELECT DISTINCT y.project_name, y.description, COUNT(x.name), FROM staff x, projects yWHERE y.project_name = x.project AND y.project_name > 'Secret data' AND y.project_name LIKE "Wo__d%" ORDER BY project_name;
+--------------+--------------------------+-------------+ | project_name | description | COUNT(name) | +--------------+--------------------------+-------------+ | Blue apples | Worldwide apple delivery | 3 | +--------------+--------------------------+-------------+
Этот запрос показывает названия проектов, описания их и количество сотрудников, которые заняты в них для тех проектов, которые не являются секретными и описания которых начинаются с ‘Wo’, следом за которыми идут еще два символа, после чего — ‘d’ и дальше что угодно, и сортирует единственное значение по полю project_name.
Редактирование данных — это добавление, удаление и изменение их. Для выполнения этих операций используются команды INSERT, DELETE и UPDATE соответственно.
Команда INSERT служит для вставки строк в таблицы. Вот как может выглядеть такой запрос:
INSERT INTO staff VALUES ("Robert", "1980-05-07", "2000-04-26", "$100", "Secret data");
Возможна также вставка отдельных значений. В таком случае необходимо указать, в какие поля стоит вставлять данные, причем оставшиеся поля будут незаполнены — при выполнении запросов SELECT они будут представлены как NULL — специальное начение, означающее, что данное отсутствует.
INSERT INTO staff(name, date_of_birth) VALUES ("Jack", "1977-07-29"); SELECT * FROM staff WHERE name = "Jack";
+------+---------------+-------------+---------+---------+ | name | date_of_birth | works_since | project | sallary | +------+---------------+-------------+---------+---------+ | Jack | 1997-07-29 | NULL | NULL | NULL | +------+---------------+-------------+---------+---------+
Удаление данных производится командой DELETE. Для этого нужно указать таблицу и (необязательно) условия, которым должны удовлетворять строки, которые следует удалить. Если условия опущены, эта команда, как и SELECT, проделает эту операцию надо всеми строками — то есть очистит таблицу.
DELETE FROM staff WHERE name = "Jack";
Изменение данных производится при помощи команды UPDATE. Необходимо указать, значения каких полей следует изменить, а также (опять же необязательно) условия, которым должны удовлетворять строки, которые следует обновить.
UPDATE staff SET works_since = "2000-04-26" sallary = "$200" project = "Secret data" WHERE name = "Jack";
Этот запрос устанавливает дату принятия на работу, зарплату и название проекта всем Джекам, которые находятся в базе данных.
Это небольшая часть языка SQL, необходимая для работы с MySQL, в частности при программировании для Web. Для более полной информации обратитесь к официальным спецификациям SQL или к документации MySQL.
Примечание для тех, кто знаком со стандартом ANSI SQL 92: на данный момент MySQL поддерживает укороченную версию этого стандарта, в которую не входит выполнения подзапросов а также некоторые другие функции.