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
        

Спочатку сервер знайде таблицю 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 тільки вибирає дані. Будь-які помилки в такому запиті не здатні пошкодити дані у твоїй базі. Але от коли дійдемо до запитів, які змінюють дані — тоді помилки будуть коштувати набагато більше.

Використання * замість конкретних стовпців.

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

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ