JavaRush /Курсы /SQL SELF /Базовый синтаксис SELECT: структура и компоненты запроса

Базовый синтаксис SELECT: структура и компоненты запроса

SQL SELF
1 уровень , 4 лекция
Открыта

Итак, мы уже начали разбираться с SELECT, командой SQL, предназначенной для извлечения данных из таблицы или нескольких таблиц в базе данных. Можно сказать, что это клавиша F5 в браузере для базы данных: "покажи мне, что у тебя есть". Простая структура запроса выглядит так:


        SELECT колонка1, колонка2, … колонкаN
        FROM таблица
        

Где:

  • SELECT — это ключевое слово, с которого начинается запрос.
  • колонка1, колонка2, ... — это список столбцов, данные из которых вы хотите получить.
  • FROM таблица — указывает таблицу, из которой извлекаются данные.

Давайте сразу разобьём это на части с примерами!

Основная структура команды SELECT

Выбор из всех столбцов. Если вы хотите посмотреть все данные из таблицы, можно использовать звёздочку *. Вот, например, у нас есть таблица students:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

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


        SELECT * FROM students
        

И результатом будет вот такой набор колонок и строк:

id name age grade
1 Alex 17 A
2 Maria 19 B
3 Otto 21 C

То есть — вся таблица, как и заказывали.

Выбор конкретных столбцов

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


        SELECT name, age FROM students
        

Результат выполнения запроса будет таким:

name age
Alex 17
Maria 19
Otto 21

Поняли разницу? Когда вы выбираете только нужные столбцы, запрос становится быстрее и красивее.

Порядок выполнения запроса

SQL-запросы — это коварная штука: хотя мы пишем SELECT в начале, на самом деле сначала обрабатывается часть FROM, а уже потом возвращается результат. Вот как это выглядит под капотом:

  1. Обрабатывается таблица в FROM: сервер находит указанную таблицу.
  2. Применяются условия к строкам (если есть): выбираются только те строки, которые соответствуют условиям.
  3. Выбираются указанные столбцы: из оставшихся строк извлекаются нужные данные.

То есть в такой команде:


        SELECT name FROM students
        

Cначала сервер найдёт таблицу students, затем прочитает столбец name, и только после этого вернёт результат.

Практические примеры

Пример №1: Список студентов.

Представим, что вы администратор университета, и вам нужны имена всех студентов. Запрос:

SELECT name
FROM students;

Результат:

name
Alex
Maria
Otto

Пример №2: Добавляем возраст и id.

Теперь вам нужны id, имена, и возраст. Просто добавьте еще пару столбцов:

SELECT name, age, id
FROM students;

Результат:

name age id
Alex 17 1
Maria 19 2
Otto 21 3

Пример №3: Добавляем выражения.

Допустим, вы хотите узнать, сколько лет осталось вашим студентам до совершеннолетия.

Тогда нужно будет вместо age написать 21-age. Тут мы для красоты предположили, что совершеннолетие будет в 21:

SELECT name, 21-age
FROM students;

И вот какой будет результат:

name 21-age
Alex 4
Maria 2
Otto 0

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

Типичные ошибки при использовании SELECT

Опечатки в названиях таблиц и столбцов.

Одна из самых частых ошибок — когда имя таблицы или столбца указано с ошибкой.

Если в базе данных нет таблицы studentsz, вы получите ошибку:

SELECT name
FROM studentsz; -- Ошибка: таблицы нет!

Или если столбец называется name, а вы указали student_name, снова ошибка:

SELECT student_name -- Ошибка: столбца нет!
FROM students;

Решение простое: всегда проверяйте названия таблиц и столбцов.

Синтаксические ошибки в запросе.

Еще одна частая ошибка — это забыли указать запятую, когда указывали колонки:

SELECT name age id -- Ошибка: нет запятой!
FROM students; 

Но не стоит волноваться. Запрос SELECT только выбирает данные. Любые ошибки в таком запросе не способны повредить данные в вашей базе. Но вот когда мы дойдем до запросов, которые изменяют данные - тогда ошибки будут стоить гораздо больше.

Использование * вместо конкретных столбцов.

Когда вы используете *, вы извлекаете ВСЕ данные, включая ненужные. Это снижает производительность и может быть проблемой с большими таблицами. Всегда выбирайте только те столбцы, которые вам реально нужны.

2
Задача
SQL SELF, 1 уровень, 4 лекция
Недоступна
Выбор всех данных из таблицы
Выбор всех данных из таблицы
2
Задача
SQL SELF, 1 уровень, 4 лекция
Недоступна
Выбор конкретных столбцов в SQL
Выбор конкретных столбцов в SQL
Комментарии (8)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Майор IT Уровень 26
9 сентября 2025
Обожаю JavaRush❤️
t0dzi Уровень 12
31 августа 2025
Если не сложно, пролайкайте коммент. Спасибо!
Денис Уровень 46
29 ноября 2025
а зачем?
t0dzi Уровень 12
1 декабря 2025
Ачивка
Ivan Уровень 5
8 августа 2025
Как же мне нравятся эти медиумы)
Anonymous #3080756 Уровень 45
19 июля 2025
В курсе задания даются максимально подробно, даже слишком: можно не думать, а просто написать решение по требованиям. Мой совет - читать только задание и, не читая предварительно требования, попробовать составить запрос самому (в файле init.sql можно подсмотреть структуру и тестовые данные таблиц), а потом уже сравнивать свой результат с требованиями, т.к. там могут быть важные уточнения: какие колонки в каком порядке должны выводиться, например.
Anemon Уровень 13 Expert
16 июля 2025
Мой первый запрос к базе данных 🤓
Spc Уровень 2
30 июня 2025
Всем удачного прохождения курса!