Расширенная фильтрация данных. AND и OR


Сложная фильтрация данных может использовать операторы AND и OR и операторов сравнения (=,<,>,<=,>=,<>).

Пусть таблица, содержит четыре самых продаваемых альбома. Нужно выбрать альбомы, классифицирующиеся как рок и проданы менее 50 миллионов копий.

SELECT * FROM albums WHERE genre='рок' AND sales_in_millions<=50 ORDER BY released

In/Between/Like

WHERE также поддерживает несколько специальных команд, позволяющих проверять наиболее часто используемые запросы. Вот они:

· IN –указывает диапазоны условий, которые должны выполнятся

· BETWEEN – проверяет, находится ли значение в указанном диапазоне

· LIKE – ищет по определенным паттернам

Например, если нужно выбрать альбомы с поп и соул музыкой, мы можем использовать IN("value1","value2").

SELECT * FROM albums WHERE genre IN ('pop','soul');

Если нужны альбомы, изданные между 1975 и 1985годами,то :

SELECT * FROM albums WHERE released BETWEEN 1975 AND 1985;

Функции

SQL использует много функций:

· COUNT() – возвращает количество строк

· SUM() – возвращает общую сумму числового столбца

· AVG() – возвращает среднее значение из множества значений

· MIN() / MAX() – получает минимальное / максимальное значение из столбца

Чтобы получить самый последний год в таблице нужно записать запрос:

SELECT MAX(released) FROM albums;

Подзапросы

Если нужно использовать результат от расчетов, не обойтись без вложенных запросов. Допустим нужно вывести artist, album и release year для старейшего альбома в таблице.

Получить эти конкретные столбцы:

SELECT artist, album, released FROM albums;

Получить самый ранний год:

SELECT MIN(released) FROM album;

Нужно объединить два запроса с помощью WHERE:

SELECT artist,album,released FROM albums

WHERE released = ( SELECT MIN(released) FROM albums);

Объединение таблиц

В более сложных базах данных существует несколько таблиц, связанных друг с другом. Например, представлены две таблицы о видеоиграх (video_games) и разработчиков видеоигр (game_developers).

Таблица video_games

Таблица game_developers

В таблице video_games есть колонка разработчик (developer_id), но в ней содержится целое число, а не имя разработчика. Это число представляет собой идентификатор (id) соответствующего разработчика из таблицы разработчиков игр (game_developers), связывая логически два списка, что позволяет нам использовать информацию, хранящуюся в них обоих одновременно.

Если нужно создать запрос, возвращающий все, что нужно знать об играх, можно использовать INNER JOIN для связи колонок из обеих таблиц.

SELECT video_games.name,

video_games.genre,

game_developers.name,

game_developers.country

FROM video_games

INNER JOIN game_developers

ON video_games.developer_id = game_developers.id;

Это самый простой и наиболее распространенный тип JOIN. Есть несколько других вариантов.

Алиасы

В примере две колонки называемые name. Можно установить псевдоним одного из повторяющихся столбцов, например, name из таблицы game_developers будет называться developer.

Можно сократить запрос задав псевдонимы имен таблиц: video_games назовем games, game_developers – devs :

SELECT games.name,

games.genre,

devs.name AS developer,

devs.country

FROM video_games AS games

INNER JOIN game_developers AS devs

ON games.developer_id = devs.id;

Обновление данных

В SQL с помощью инструкции UPDATE изменяются данные в некоторых строках. Инструкция UPDATE состоит из:

· Таблицы, в которой находится значение для замены;

· Имен столбцов и их новых значений;

· Выбранные с помощью WHERE строки, которые обновятся. Если этого не сделать, то изменятся все строки в таблице.

Ниже приведена таблица tv_seriesс сериалами с их рейтингом. В таблицу закралась маленькая ошибка: хотя сериал Игра престолов и описывается как комедия, он на самом деле ей не является. Исправление

Данные таблицы tv_series

UPDATE tv_series SET genre = 'драма' WHERE id = 2;

Удаление данных

Удаление строки таблицы с помощью SQL происходит при помощи выбора таблицы и строки, которую нужно удалить. Удаление из предыдущего примера последней строки в таблице tv_series делается с помощью инструкции DELETE

DELETE FROM tv_series WHERE id = 4

Будьте осторожными при написании инструкции DELETE и убедитесь, что условие WHERE присутствует, иначе все строки таблицы будут удалены!

Удаление таблицы

Удаление всех строк с сохранением таблицы выполняет команда TRUNCATE:

TRUNCATE TABLE table_name;

Удаление всей таблицы – DROP:

DROP TABLE table_name;




Дата добавления: 2022-04-12; просмотров: 113;


Поиск по сайту:

Воспользовавшись поиском можно найти нужную информацию на сайте.

Поделитесь с друзьями:

Считаете данную информацию полезной, тогда расскажите друзьям в соц. сетях.
Poznayka.org - Познайка.Орг - 2016-2024 год. Материал предоставляется для ознакомительных и учебных целей.
Генерация страницы за: 0.009 сек.