Логично предположить, что если у нас есть данные, нам необходимо их выбирать из базы, обрабатывать и выводить на экран в удобном, понятном, читаемом виде.
В нашей рабочей схеме уже есть три таблицы с данными – это таблицы AUTO, CITY, MAN.
Напомню, что в таблице MAN хранятся сведения о покупателях: их имена, их возраст, CITY – это данные о городах, а таблица AUTO содержит сведения об автомобилях некоторого автосалона.
Если человек приобретает автомобиль, то в таблице AUTO в колонке PHONEnum выставляется номер телефона человека, который приобрел машину.
Для извлечения данных из базы и вывода этих данных на экран используются команды, называемые запросами к базе данных, специальная команда SQL – SELECT. Эта команда является наиболее часто используемой командой в языке SQL и постоянно применяется на практике.
Теория и практика
Начнем с самого легкого запроса, рассмотрим синтаксис самого простого оператора SELECT:
SELECT * FROM TABLE_NAME
Здесь TABLE_NAME – имя таблицы, из которой мы запрашиваем данные.
Символ * означает, что мы выводим на экран данные из всех колонок.
Откройте тестовую среду и выполните запрос
SELECT * FROM CITY;
Рисунок 7. Запрос из таблицы CITY
На экран выведены названия колонок в первой строке, а также данные в каждой колонке из таблицы CITY.
А теперь другой вариант синтаксиса такого же простого запроса SQL:
SELECT column_NAME1, column_NAME1, column_NAMEn FROM TABLE_NAME
В этом варианте вместо звездочки используются наименования колонок и на экран будут выведены только перечисленные колонки из заданной в поле FROM таблицы.
Пример (выполните в нашей тестовой среде):
SELECT CITYCODE, CITYNAME FROM CITY;
Рисунок 8. Запрос к таблице CITY по колонкам CITYCODE, CITYNAME
Результат запроса – на экран выведены только те две колонки, которые мы указали после оператора SELECT.
Существует и другой вариант синтаксиса для SQL-запросов:
SELECT TABLE_NAME.* FROM TABLE_NAME
или
SELECT TABLE_NAME. column_NAME1, TABLE_NAME. column_NAME1, TABLE_NAME. column_NAMEn FROM TABLE_NAME
Прорешаем задания, которые мы уже выполнили, с использованием такого синтаксиса:
SELECT CITY.* FROM CITY
При выполнении этого запроса SELECT получается результат, совершенно аналогичный тому, что и в примерах выше.
Небольшой лайфхак.
Как я составляю запросы? Сначала пишу SELECT *, затем FROM, имя таблицы, выполняю запрос, а уже после перечисляю колонки, которые необходимо вывести на экран, и далее выполняю запрос повторно.
Фильтр строк WHERE в запросе SELECT
Итак, мы научились выводить на экран все данные из заданной таблицы, но как же поступить, если нам необходимо вывести на экран только избранные строки? Допустим, что в заданной таблице миллион строк, а нам необходимо посмотреть из них лишь 10.
К счастью, язык SQL позволяет это сделать. Для этого в языке SQL и в частности в команде SELECT предусмотрен специальный оператор – WHERE.
Рассмотрим синтаксис команды SELECT с оператором WHERE:
SELECT * или перечень колонок FROM TABLE_NAME WHERE условие отбора строк
Примеры:
Выберем названия городов, где население 300 000 человек.
SELECT * FROM CITY WHERE PEOPLES = 300000
Альтернативная форма записи:
SELECT CITY.* FROM CITY WHERE CITY.PEOPLES = 300000
Выражение в WHERE формируется с помощью математических операндов сравнения, рассмотрим этот момент подробнее.
Операнды сравнения
> больше
<меньше
= строгое равенство
или неравенство! =
Примеры
Выберем все колонки (*) из таблицы городов, где население больше 300 000 человек.
SELECT * FROM CITY WHERE PEOPLES> 300000
Рисунок 9. Запрос таблице CITY с условием
Выберем название города с кодом города, равным 2, из CIty
Альтернативная форма записи: