Главная » Полезные статьи » MySQL » Команды MySQL
Распечатать статью

Команды MySQL

Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE. Рассмотрим каждую из них отдельно.

SHOW

Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:

SHOW DATABASES;

Если, например, существуют две базы данных — mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:

+----------+ | Database | +----------+ | mysql    | | test     | +----------+

Для просмотра списка таблиц используется эта же команда в таком виде:

SHOW TABLES;

Эта команда выдаст список таблиц в текущей базе данных:

+-----------------+ | Tables in mysql | +-----------------+ | test            | | mysql           | +-----------------+

Замечание: вы можете работать только с одной базой данных в одно и то же время, поэтому в приведенном выше примере нет нужды указывать название базы данных, список таблиц которой стоит вывести, поскольку производится поиск в активной на данный момент базе.

CREATE

Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных — mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:

CREATE DATABASE staff

После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:

+----------+ | Database | +----------+ | mysql    | | test     | | staff    | +----------+

 

USE

Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:

USE staff

Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически — для ее использования необходимо сделать это самостоятельно.

SQL

Нижеследующее ознакомит вас с методами извлечения и занесения данных в таблицы при помощи языка SQL.

Просмотр данных

Наипростейшей командой является следующая:

SELECT * FROM mysql;

Эта команда подразумевает, что в активной базе данных существует таблица 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 поддерживает укороченную версию этого стандарта, в которую не входит выполнения подзапросов а также некоторые другие функции.

Источник:  internet-technologies.ru

Вы можете оставить комментарий, или обратную ссылку на Ваш сайт.

Оставить комментарий

Похожие статьи