О чем эта статья
В данной инструкции мы расскажем об основных командах SQL, на примерах проиллюстрируем их использование и варианты применения. Сведенный в таблицу список SQL-команд с кратким описанием того, что тот или иной SQL запрос делает, мы покажем ниже, а далее опишем каждый из них более подробно.
Сводная таблица основных команд SQL
Оператор | Результат |
Операции с базами данных | |
show databases; | Показать все базы данных, имеющиеся в системе |
create database <имя_базы_данных>; | Создать базу данных с соответствующим именем |
use <имя_базы_данных>; | “Фокусировка” на базе данных, все последующие команды будут относиться именно к этой БД |
source <путь_к_файлу>; | Последовательное выполнение нескольких команд, содержащихся в файле |
drop database <имя_базы_данных>; | Полное удаление базы данных вместе с содержащимися в ней данными |
Операции с таблицами | |
show tables; | Показать все таблицы в выбранной в текущий момент базе данных |
create table <имя_таблицы> (столбец# тип_данных); | Создание пустой таблицы с заданным именем в текущей базе данных |
alter table <имя_таблицы> <действие>; | Изменение структуры таблицы (например, добавление столбца). Пример рассмотрим далее |
drop <имя_таблицы>; | Удаление таблицы вместе с данными |
Операции с данными в таблице | |
select <данные> from <имя_таблицы>; | Выборка данных из таблицы. Может быть дополнена условиями (об этом далее) |
insert into <имя_таблицы> (перечисление столбцов)
values (перечисление значений); |
Вставка строки в таблицу. Производится по принципу “столбцы один за другим – значения одно за другим” |
update <имя_таблицы> set <имя_столбца> = <значение> where <идентификатор_строки>; | Обновление данных в таблице. Все данные, соответствующие выборке, будут заменены |
order by <имя_столбца> <условие>; | Сортировка выводимых данных. Как правило в качестве условия используется оператор asc (по возрастанию) либо desc (по убыванию) |
group by <имя_столбца> <условия>; | Группировка выводимых данных, данные в выбранном столбце выводятся в алфавитном порядке |
distinct | Оператор, использующийся совместно с оператором select для вывода только уникальных значений в столбце |
like | Оператор, использующийся совместно с оператором select для вывода не полностью совпадающих, “шаблонизированных” значений в столбце |
inner join | Выборка данных из двух таблиц. Используется совместно с оператором select, вывод формируется по принципу “данные из первой таблицы сверяются по условию с данными второй таблицы, в результирующий вывод попадают строки, для которых условие выборки истинно |
Операции с базами данных
Далее мы рассмотрим каждый указанный оператор на примерах. Изначальное подключение к сервису баз данных осуществляется командой:
mysql -u<имя_пользователя> -p
Далее введите ваш пароль от MySQL.
Создадим базу данных:
create database <имя_базы_данных>;
Для иллюстрации одномоментного запуска нескольких команд SQL создадим файл с командами, и потом используем оператор source:
cat <<EOF > <путь_к_файлу>
create database test1;
create database test2;
create database test3;
EOF
mysql -u<имя_пользователя> -p
source <путь_к_файлу>;
Для проверки результата посмотрим список имеющихся баз, а потом удалим лишние:
show databases;
drop database <имя_базы_данных>;
Иллюстрация операций с таблицами
Далее мы будем использовать созданную ранее базу данных class. Сделаем ее активной и создадим в ней несколько таблиц:
use <имя_базы_данных>;
create table <имя_таблицы>(опции);
Заполним данные в таблицах:
insert into <имя_таблицы> (перечисление столбцов)
values (перечисление значений);
Посмотрим на результат:
select * from <имя_таблицы>;
Заменим в третьей таблице значение (представим что учитель Иван Баев теперь преподает другой предмет) и сразу же проверим результат:
update <имя_таблицы>
set <столбец> = <значение>
where <условие_выборки> = <значение>;
select <столбец> from <имя_таблицы> where <условие_выборки> = <значение>;
Удалим одну из таблиц:
drop table <имя_таблицы>
Выборка данных из таблиц
Весь контент таблицы показывается командой:
select * from <имя_таблицы>;
Выборочный отбор проводится по схеме:
select <отображаемые_столбцы> from <имя_таблицы> where <условие>;
Например, запрос на скриншоте ниже отобразит всех мальчиков старше 14 лет.
Для иллюстрации работы оператора join добавим таблицы boys и girls еще один столбец, используя конструкцию alter table. Затем в списках девочек и мальчиков укажем любимые ими предметы, используя оператор update как описано выше:
alter table <имя_таблицы> add column <имя_столбца> <тип_данных> <положение_нового_столбца>;
update <имя_таблицы> set <имя_столбца> = <значение> where <условие>;
Отобразим все имеющиеся в классе хобби (только уникальные значения):
select distinct <столбец> from <таблица>
Обратите внимание, что в вывод попало нулевое значение. Чтобы несколько облагородить выборку давайте добавим в запрос параметр IS NOT NULL:
Теперь проиллюстрируем работу join. Отобразим из двух таблиц всех учеников, любящих один и тот же предмет:
SELECT *
FROM girls INNER JOIN boys
ON boys.FavoriteDiscipline = girls.FavoriteDiscipline;
Отсортируем девочек по алфавиту при помощи оператора order:
Напоследок нужно сказать о том, что язык запросов SQL поддерживает математические функции. Например, можно подсчитать средний возраст детей:
select avg(<столбец>) as <произвольное_имя_результирующего_столбца> from <таблица>;
Заключение
В данной статье мы рассмотрели основные команды SQL-запросов с примерами их использования, рассмотрели работу с базами данных, таблицами и сортировку данных.