Отже, ми вже почали розбиратися з 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, а вже потім повертається результат. Ось як це виглядає під капотом:
- Обробляється таблиця у
FROM: сервер знаходить вказану таблицю. - Застосовуються умови до рядків (якщо є): вибираються тільки ті рядки, які відповідають умовам.
- Вибираються вказані стовпці: з залишених рядків витягуються потрібні дані.
Тобто в такій команді:
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 тільки вибирає дані. Будь-які помилки в такому запиті не здатні пошкодити дані у твоїй базі. Але от коли дійдемо до запитів, які змінюють дані — тоді помилки будуть коштувати набагато більше.
Використання * замість конкретних стовпців.
Коли ти використовуєш *, ти витягуєш ВСІ дані, включаючи непотрібні. Це знижує продуктивність і може бути проблемою з великими таблицями. Завжди вибирай тільки ті стовпці, які реально потрібні.
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ