SELECT и FROM
SELECT и FROM есть в каждом запросе. SELECT говорит, какие столбцы показать. FROM говорит, из какой таблицы их взять.
В этом уроке работаем с таблицей tutorial.us_housing_units — число построенных домов в США по месяцам и регионам.
База, схема, таблица
Заголовок раздела «База, схема, таблица»База данных — это организованный набор данных. Данные в ней лежат в таблицах.
Таблица похожа на лист Excel: есть строки и столбцы. Но правила строже:
- данные всегда разложены по столбцам;
- у каждого столбца есть имя, и оно уникально в таблице;
- в одном столбце все значения одного типа (числа, текст, даты).
Таблицы сгруппированы в схемы. Схема — это папка для таблиц. Полное имя таблицы пишут так: схема.таблица.
В нашей учебной базе две схемы:
| Схема | Что в ней |
|---|---|
tutorial | Основные таблицы курса: Billboard, дома, Crunchbase, акции Apple и другие |
benn | Таблицы про студенческий футбол и служебные таблицы для кейсов |
Например, tutorial.us_housing_units — таблица us_housing_units в схеме tutorial.
SELECT и FROM
Заголовок раздела «SELECT и FROM»Выберем три столбца:
SELECT year, month, westFROM tutorial.us_housing_units;Правила:
- сначала
SELECT, потомFROM, порядок менять нельзя; - столбцы разделяют запятой;
- после последнего столбца запятой нет.
Запрос вернёт столбцы year, month и west. Строки — все, что есть в таблице.
Все столбцы: SELECT *
Заголовок раздела «Все столбцы: SELECT *»Звёздочка * значит «все столбцы»:
SELECT *FROM tutorial.us_housing_units;Что происходит при запуске запроса
Заголовок раздела «Что происходит при запуске запроса»База выполняет запрос и возвращает результат — новую таблицу. Исходная таблица при этом не меняется. SELECT только читает данные.
Если запустить запрос ещё раз, база снова прочитает таблицу. Если данные в таблице изменились, изменится и результат.
Как оформлять запрос
Заголовок раздела «Как оформлять запрос»SQL не различает регистр ключевых слов и не обращает внимания на переносы строк. Эти два запроса одинаковы:
select year, month, west from tutorial.us_housing_units;SELECT year, month, westFROM tutorial.us_housing_units;Второй читать проще. Принятые правила:
- ключевые слова (
SELECT,FROM,WHERE) — заглавными буквами; - имена столбцов и таблиц — строчными;
- каждую часть запроса — с новой строки;
- в конце — точка с запятой
;.
Имена столбцов: AS
Заголовок раздела «Имена столбцов: AS»Столбец в результате можно переименовать. Для этого пишут AS и новое имя:
SELECT west AS west_region, south AS south_regionFROM tutorial.us_housing_units;Хорошее имя — строчными буквами, слова через подчёркивание: west_region.
Если в имени нужны пробелы или заглавные буквы, возьмите его в двойные кавычки:
SELECT west AS "West Region"FROM tutorial.us_housing_units;Практика
Заголовок раздела «Практика»Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.
Задание 1
Заголовок раздела «Задание 1»Выберите все столбцы таблицы tutorial.us_housing_units, но без *. Перечислите каждый столбец.
Проверка: 564 строки, 7 столбцов. Первая строка: 1968 год, January, south = 34.4.
Решение
SELECT year, month, month_name, south, west, midwest, northeastFROM tutorial.us_housing_units;Задание 2
Заголовок раздела «Задание 2»Выберите все столбцы таблицы tutorial.us_housing_units и переименуйте их так, чтобы каждое слово начиналось с заглавной буквы: Year, Month, Month Name и так далее.
Проверка: 7 столбцов, третий называется Month Name.
Решение
SELECT year AS "Year", month AS "Month", month_name AS "Month Name", south AS "South", west AS "West", midwest AS "Midwest", northeast AS "Northeast"FROM tutorial.us_housing_units;