Новини високих технологій
» » Оператор Select (SQL)

Оператор Select (SQL)

2-05-2017, 20:33
1 305
Сам переклад абревіатури SQL (мова структурно організованих запитів) відображає той факт, що саме запити - найбільш часто застосовуваний елемент в SQL. Вибрати потрібні рядки, автоматично виключити надлишкові дані, пропустити або змінити порядок стовпців допоможе Select (SQL) - оператор, який містить вказівку СУБД вивести певну інформацію.
Оператор Select (SQL)

Синтаксис оператора

Щоб правильно використовувати будь-який оператор, необхідно спершу ознайомитися із синтаксисом розглянутого мови програмування. Коли говоримо конкретно про мову SQL Select (оператор) має наступний синтаксис:




Select



Повідомляє базі даних, що ми передаємо запит. Це ключове слово.



One, two, three



Список стовпців для виведення



From



Вказує на ім'я таблиці, з якої будуть вибиратися дані. Також є обов'язковим ключовим словом.

Це так званий «короткий» синтаксис оператора, проте він вказує нам на те, що без ключових слів Select і from СУБД наш запит не виконає. Повний синтаксис оператора представлений на наступному малюнку:
Тут пропозиція Where дозволяє уточнити пошук, задавши умову. Для групування значень і застосування до них агрегатної функції використовується пропозиція Group by, а щоб уточнити результат вже після угруповання, використовується пропозиція Having. Order by дозволить сортування вибраних стовпчиків за зростанням або за спаданням. Щоб більш наочно ознайомитися з оператором Select, уявімо, що в нашій базі даних є наступна таблиця Cats з інформацією:

Id



Breed



Name



Birthday



Color



1



Бобтейл



Лорд



01042017



Grey



2



Керл



Фінт



16032017



White



3



Мау



Пантера



30032017



Black



4



Бобтейл



Тайсон



23022017



Grey



5



Бурмилла



Афіна



08012017



Black

Кожен рядок таблиці містить унікальний номер кошеня, його породу, кличку, дату народження і забарвлення. Далі будемо розглядати, як працює оператор Select (SQL), спираючись на дані з цієї таблиці.


Як відбувається вибірка даних з таблиці

Як було розглянуто вище, для вибірки потрібних даних з таблиці обов'язково використовуються ключові слова. Після ключового слова Select зазначаються стовпці для виводу. Можна зробити перелік потрібних стовпців через кому, тоді вся конструкція буде виглядати так:

Select color, breed, name From Cats

Як бачимо, ми можемо упорядковувати стовпці в тому порядку, в якому вони нам необхідні. Крім того, можемо виводити тільки необхідні нам стовпці. Існує також коротка запис для перегляду всіх стовпців таблиці. Для цього після Select вказується зірочка (*) через пробіл. Вся конструкція буде виглядати так:

Select * From Cats

Результат наведеного запиту - вся таблиця Cats, представлена у тому вигляді, в якому вона міститься в кінці минулого розділу. Багато цікавляться тим, як розмістити результати виконання SQL Select в рядок. Найчастіше це потрібно, коли необхідно об'єднати прізвище, ім'я та по батькові особи, розміщені в роз'єднаних стовпцях. У нашому випадку об'єднаємо породу і забарвлення кішок з таблиці Cats. Нюанс полягає в тому, що різні СУБД використовують для рядковій конкатенації різні символи. В одних випадках це просто плюс (+), в інших – подвійна пряма риса (||) або символ амперсанда (&), часом використовується і операнд Concat. Тому перед об'єднанням необхідно прочитати анотацію до конкретної СУБД, з якою ви працюєте.


Select breed || ', ' || color From cats

Результат отримаємо наступний:

Breed, Color



Бобтейл, Grey



Керл, White



Мау, Black



Бобтейл, Grey



Бурмилла, Black

Виключення надлишкових даних

Distinct – функція Select (SQL), що дозволяє виключити дублювання абсолютно ідентичних рядків з результату вибірки. Наприклад, ми хочемо дізнатися, кішки яких порід є в нашій таблиці. Якщо використовуємо простий запит:

Select breed From Cats

То отримаємо цілком очікуваний результат:

Breed



Бобтейл



Керл



Мау



Бобтейл



Бурмилла

Як бачимо, порода бобтейл дублюється два рази. Аргумент Distinct дозволить виключити дублювання, достатньо лише дописати запит:

Select distinct breed From Cats

Уточнення запиту

В реальності практично жоден запит не виводить дані у вигляді повного набору рядків таблиці. Розглянемо, яке речення в Select (SQL) дозволить задати критерії для відбору тільки потрібних рядків. Таким пропозицією служить Where. У цьому реченні застосовується предикат – умовний вираз, що дає на виході значення "істина" або "брехня". Оператор Select витягне тільки ті дані з таблиці, для яких вираз буде мати значення True, або "істина". Допоможе розібратися з даною конструкцією проста вибірка. Припустимо, ми хочемо знати все про кішок чорного забарвлення.

Select * From cats Where color = 'Black'

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

3



Мау



Пантера



30032017



Black



5



Бурмилла



Афіна



08012017



Black

Також можна комбінувати умови, використовуючи логічні оператори And, Or, Not.

Пропозиція Group by

Пропозиція Group by, використовуване в Select (SQL), дозволяє згрупувати запити значень певного стовпця (або стовпців), а потім застосувати до них агрегатну функцію. До агрегатним функцій належать: Count – підраховує кількість рядків, відібраних запитом. Sum – арифметична сума всіх відібраних значень стовпця. Min – виводить мінімальне з відібраних значень стовпця. Max – відповідно, максимальне з відібраних значень стовпця. Avg – середнє значення. Схему роботи даної пропозиції простіше всього зрозуміти на конкретному прикладі. Припустимо, ми хочемо дізнатися, скільки кошенят кожної породи у нас є. Для цього необхідно сформувати наступний простий запит:


Select breed, count(*) From cats Group by breed

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

Breed



Count



Бобтейл



2



Керл



1



Мау



1



Бурмилла



1

Як бачимо, кошенят породи бобтейл у нас двоє, інших же всього по одному. На практиці за таким запитом, грунтуючись на таблиці, заводчик може зрозуміти, кішки яких порід користуються попитом у покупців, а яких – ні. Цілком ймовірно, що з-за величезної кількості записів в реальній таблиці захочеться ще уточнити запит і вивести тільки ті породи кошенят, яких залишилося не більше, наприклад, десяти. Для уточнення або фільтрації груп використовується пропозиція Having. Воно дозволяє відкинути певні групи, аналогічно речення Where, отбрасывающему окремі рядки. Умова задається за агрегатної функції. Допишемо запит:

Select breed, count(*) From cats Group by breed Having count(*) <=10

Оскільки умова ми поставили «кількість кошенят кожної породи не більше 10», то результат отримаємо такий же, як у прикладі без уточнення. Але тут важливо зрозуміти саму схему роботи пропозиції Having. А ось якщо змінимо логічне умова на Having count(*) =1 то результат скоротиться до трьох рядків і виведе породи кошенят, яких залишилося всього по одному.

Сортування

Познайомимося з Order by – пропозицією оператора Select (SQL), що дозволяє відсортувати виводяться рядки за зростанням або спаданням значень в одному або декількох стовпцях.
Важливо пам'ятати, що Order by – це заключне речення всієї конструкції оператора Select. Воно розміщується після Select, From, Where, Group by, Having. При проведенні сортування є три важливих моменти: 1) Можна вказати будь-яку кількість стовпців, кожний з яких окремо можна відсортувати або за зростанням (ASC), або за спаданням (DESC). 2) Всі зазначені стовпці в операторі Order by повинні обов'язково бути присутнім серед вибраних стовпців Select. 3) Необов'язково перераховувати конкретні імена стовпців для сортування, можна просто вказати їх номери, під якими вони йдуть в інструкції Select.
Сподіваємося, що з допомогою нашої статті ви отримали базові знання про використання SQL запитів і тепер без праці виберете необхідну інформацію з вашої СУБД.
Цікаво по темі
SQL distinct: опис, приклади, властивості
SQL distinct: опис, приклади, властивості
Найчастіше при використанні SQL для вибірки інформації з таблиць, користувач отримує надлишкові дані, які полягають в наявності абсолютно ідентичних
Як задається SQL-сортування?
Як задається SQL-сортування?
При роботі з базами даних часто виникає необхідність вивести результат запиту в певному порядку, наприклад, за алфавітом. Для цього в СУБД існує
SQL Where: способи застосування та приклади
SQL Where: способи застосування та приклади
Для вибору даних з бази використовується конструкція Select[набор данних]from[имя таблици]. Як показує досвід, в 80 % випадків використання запитів
HAVING SQL: опис, синтаксис, приклади
HAVING SQL: опис, синтаксис, приклади
Серед інших параметрів оператора SELECT мови SQL параметр HAVING є вкрай корисним. Це стосується тих випадків, коли результуючу вибірку потрібно не
MySQL - запит у запиті. MySQL: приклади запитів. Вкладені запити MySQL
MySQL - запит у запиті. MySQL: приклади запитів. Вкладені запити MySQL
Основні особливості вкладених запитів. Як побудувати в MySQL запит в запиті. Для чого необхідні вкладені запити. Приклад вкладеного запиту MySQL.
MySQL select select from: оператор вибірки
MySQL select select from: оператор вибірки
MySQL - одна з найпопулярніших систем управління базами даних (СУБД). У даній статті ми розглянемо базову функціональність оператора вибірки SELECT,