Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
3.doc
Скачиваний:
34
Добавлен:
12.02.2016
Размер:
239.62 Кб
Скачать

6.4. Вибірка даних

Найбільш розповсюдженою командою SQL є та, яка дозволяє переглядати дані в базі: SELECT. Введення та зміна даних відбуваютьсялише час від часу, а більшість баз даних зайнято в основному тим, що надають дані для читання. Загальний вид команди наступний:

SELECT колонка1, колонка2,..., колонкаN FROM таблиця1, таблиця2,..., таблицяN [WHERE умови вибірки]

Отже, після команди SELECT задається список полів (колонок), дані яких нас будуть цікавити. Можна задати “*”, щоб вказати, що вибажаєте вибрати всі колонки. Після команди FROM задається список таблиць, в яких ці дані знаходяться. Команда WHERE вказує, які самерядки повинні бути відібрані, та дозволяє визначити, яким чином повинні бути об'єднані таблиці.

Саме об'єднання вносить “реляційність” в реляційні бази даних. Саме об'єднання дозволяє спів ставити рядки однієї таблиці рядку іншої.Основним видом об'єднання є таке, яке іноді називають внутрішнім об'єднанням. Об'єднання таблиць полягає в прирівнюванні колонок двохтаблиць:

 

SELECT book.title, author.name FROM author, book WHERE book.author = author.id

Даний приклад читається як: вибрати колонку title таблиці book та колонку name таблиці author з таблиць author, book де значення колонки author таблиці book відповідає значенню колонки id таблиці author. Як видно з прикладу, стандарт SQL дозволяє складне іменуванняполів бази даних, яке включає назву таблиці та через крапку назву колонки. Повні імена, які складаються з імені таблиці та колонки доситьчасто є дуже громіздкими. В цьому випадку доречним є застосування так званих псевдонімів, які звичайно є коротшими та більш виразними.Наприклад, псевдонім колонки:

SELECT long_field_names_are_annoying AS myfield FROM tabl_name

Псевдоніми можуть бути використані і в інших випадках.

Вибрані з бази дані повертаються нам у будь-якому порядку, що не залежить навіть від порядку введення даних в таблиці. Але засобамиSQL ми можемо вказати в якому саме порядку ми бажаємо отримати дані. В запиті це досягається за допомогою команди ORDER BY (сортує в порядку зростання):

SELECT last_name, first_name, age FROM peaple ORDER BY last_name, first_name

 

В даному прикладі сортування відбудеться за двома колонками спочатку за прізвищем а потім за ім'ям. Можна проводити сортування за будь-яким числом колонок, але всі вони повинні бути перераховані після команди SELECT.

Для сортування відібраних даних в оберненому порядку потрібно в кінці колонки добавити DESC:

 

SELECT last_name, first_name, age FROM peaple ORDER BY last_name, DESC

Групування також є однією з можливостей вибірки. Як і визначається назвою, групування дозволяє об'єднати в один рядки заналогічними значеннями з метою їх сумісного обробітку. В запиті це робиться за допомогою команди GROUP BY та назви колонки, за якоюпотрібно згрупувати:

SELECT year FROM albums GROUP BY year

 

Сила сортування та групування у поєднанні з функціями SQL дозволяє проводити великий об'єм обробітку даних на сервері до їхвидобутку.

Функції SQL це окремий великий розділ вивчення даної мови. Ми зупинимося лише на деяких з них. Функції зазвичай працюють над всіммасивом вибраних даних. Використовуються вони у вигляді НАЗВА_ФУНКЦІЇ(колонка):

 

SELECT MAX(price) FROM book

 

Крім функції MAX (максимальне) можна використовувати MIN (мінімальне), AVG (середнє), COUNT (підрахунок кількості значень). Такожможна застосовувати математичні операції для створення розрахункових колонок в таблиці виводу.

Для того, щоб вибрати з таблиці дише деякі, необхідні нам записи, після команди WHERE необхідно вказати обмеження для вибірки у вигляді колонка, оператор порівняння (<, >, =, LIKE і т.д.), значення:

 

SELECT name, author FROM book WHERE year = 2006

В даному прикладі ми просимо вибрати з таблиці book дані про назву та автора книг, які були видані в 2006 році.