Студопедия — Основний синтаксис
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Основний синтаксис






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

SELECT [Поле]

FROM [Таблиця]

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

SELECT [Поле1], [Поле2],..., [Полеn]

FROM [Таблиця]

Далі потрібно визначити таблицю (або таблиці), у яких розташовуються зазначені поля. Ім’я таблиці вказується за ключовим словом FROM. У мові визначений символ, що вказує вивід всіх полів таблиці. Це зірочка (*). Поля даних результату виводяться в тому самому порядку, у якому вони розташовуються всередині таблиці бази даних. Цей формат виводу зручний для тестування, однак у реальній практиці його потрібно уникати.

Щоб виконати оператор SELECT із зірочкою, процесор бази даних повинен, насамперед, відкрити таблицю й визначити список її полів. Інша причина уникати застосування зірочки – труднощі читання результату за запитом, у якому не зазначені імена полів. Як ми побачимо в наступних темах, для виконання обчислень, сортування або фільтрації даних таблиці, знання імен полів просто потрібно.

СПРОБУЙТЕ – Запуск простого запиту

Для виконання SQL-оператора необхідний відповідний інтерфейс. В SQL Server це аналізатор запитів (Query Analyser); інші СКБД мають свої інтерфейси.

1 Запустіть Query Analyser.

2 Виберіть базу даних Борей.

3 Наберіть у редакторі запитів (текстовому полі у верхній частині вікна) наступний оператор SELECT. Це оператор зчитування імен співробітників з таблиці Сотрудники:

SELECT Имя, Фамилия FROM Сотрудники

4 Виконаєте оператор натисканням клавіші F5 або щигликом на кнопці виконання запиту (із зеленою трикутною стрілкою).

5 Результат буде мати вигляд:

 

 

i Ті, хто вперше працює з Query Analyser, може звернути увагу на деякі його особливості. По-перше, тут застосовується виділення кольорами окремих елементів тексту. Зарезервовані слова виділяються блакитним, дати – червоним, коментарі – зеленим. У нижній панелі виводяться результати – у формі таблиці (за замовчуванням) або у вигляді неформатованого тексту (якщо нажати Ctrl+T). Повернення до бланку запиту – Ctrl+D.

Результат виконання запиту виводиться в нижню панель у вигляді таблиці або неформатованого тексту – залежно від конфігурації. Для переходу в текстове або табличне представлення запиту клацніть правою кнопкою у вікні запиту й виберіть у контекстному меню Results In Grid (Результати у вигляді таблиці) або Results In Text (Результати у вигляді тексту).

Як це працює

Нагадаємо, що SQL-оператор можна перетворити у форму звичайного запиту. Які дії були задані SQL-операторові? «Вивести всі імена й прізвища». По суті, у тексті оператора саме це й сказано: «Вивести всі імена й прізвища із таблиці Співробітники». Уміння читати SQL-оператори й переводити з людської мови на SQL дуже знадобиться пізніше, коли потрібно буде встановлювати завдання наступного виду:

«Вивести п’ять кращих продавців південно-східного регіону за останній квартал, представивши результати по кожному плюс загальний підсумок».

До кінця посібника читач повинен навчитися ставити завдання такого роду. У даній темі ми будемо не раз ставити запити, які повинні допомогти в аналізі SQL-операторів і запобігти плутанині.

i Указуйте зчитування тільки необхідних даних; це прискорює виконання запитів.

Іноді замість очікуваного результату виконання запиту повертається повідомлення про помилку. Звичайно для її усунення досить уважніше придивитися до оператора, перевіривши ще раз його синтаксис. Кілька типових повідомлень про помилки наведені в наступній таблиці:

Розповсюджені помилки:

Помилка Повідомлення
Неправильно зазначене ім’я поля (помилка, зазначені неіснуюче поле й т.д.) Server: Msg 207, Level 16, State 3, Line 1 Invalid column name ‘Имя’ (Сервер: Повід. 207, рівень 16, стан 3, рядок 1 Неправильно зазначено ім’я стовпця ‘Имя’)
Неправильно зазначене ім’я таблиці Server: Msg 208, Level 16, State 1, Line 1 Invalid object name ‘Сотрудники’ (Неправильно зазначене ім’я таблиці ‘Сотрудники’)

2.2 Визначення полів

Існує багато ситуацій, що вимагають перейменування полів для додання їм більшої наочності виведених результатів або створення полів із загальним ім’ям у декількох таблицях. Припустимо, у нас є поля з іменами Название та ОбращатьсяК таблиці Клиенты, які в запиті потрібно перейменувати відповідно у Компанія та Представник. Спробуємо задати таке перейменування в SQL-запиті.

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

SELECT Название, ОбращатьсяК

FROM Клиенты


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

Цей же запит з перейменуванням полів:

SELECT Название AS Компанія, ОбращатьсяК AS Представник

FROM Клиенты

Тепер у панелі результату виведені нові імена:

Зверніть увагу, що результат залишився без змін – змінилися тільки імена полів. Втім, імена полів – у таблиці бази даних, – також залишилися колишніми. Саме тому нові імена називаються аліасами (або псевдонімами).

Заміна аліасами імен таблиць робиться точно так само, однак це нам знадобиться, коли ми почнемо працювати з багатьма таблицями. Складання багатотабличних запитів розглянемо далі.

i Аліас – інше ім’я таблиці або поля.

Як це працює

За допомогою ключового слова AS ми вказуємо в запиті, що полю, з якого зчитуються дані, перед поверненням результату повинне бути привласнене нове ім’я. Програма при обробці результату використає не дійсне ім’я поля, як воно записано в базі даних, а нове (аліас).

Застосування оператора AS дуже зручно при виведенні значень полів по деякій умові або виведенню обчислюваних полів. Умовними операторами ми займемося в наступній темі, обчислюваними полями – трохи пізніше, але в цій же темі. Обчислюване поле не має імені, оскільки воно не існувало до виконання оператора, а тому ім’я йому привласнюється оператором AS.

Перейменування полів оператором AS допомагає писати більш виразні запити, усуваючи плутанину через схожі імена або незручні угоди про найменування. Якщо ім’я поля має пробіли, його потрібно вписувати в прямокутні дужки ([ ]) або одинарні лапки (‘ ‘). Таким чином, поле Дата найма можна вказати у вигляді [Дата найма] або ‘Дата найма’, і ім’я його буде зазначено в результаті із пробілом.

Імена із пробілами допускаються в деяких базах даних, але цього потрібно уникати, оскільки інтерфейси окремих баз даних зазнають труднощів з обробкою таких імен. Загальноприйнята практика – виділення слів у довгих іменах заголовними буквами. Приміром, ДатаНайма замість Дата найма й ОбращатьсяК замість Обращаться к.

3 Фільтрація даних

Отже, ми навчилися ставити запит зчитування даних з таблиці за допомогою оператора SELECT. Читач, імовірно, звернув увагу на те, що дотепер ми зчитували всі записи таблиць. При невеликих таблицях (скажемо, у кілька десятків записів) це не погорджує проблем. Але як діяти, якщо таблиця має мільйон записів? Зчитування такої таблиці потребує багато часу й тривалої монополізації ресурсів. Очевидно, нам потрібно якийсь засіб фільтрації, що допомагає витягти тільки потрібну інформацію.

SQL має такий засіб. Це умова WHERE, що встановлює критерії відбору інформації.

Умова WHERE указується слідом за умовою FROM:

SELECT [Поле1], [Поле2], [Полеn]

FROM [Таблиця]

WHERE [Умова]

Умовний оператор за ключовим словом WHERE називається також критерієм пошуку, може включати будь-яке логічне вирази, порівняння рядків, а також інші критерії, які ми розглянемо в наступних темах.

Простий приклад застосування умови WHERE- запит списку працівників компанії, що проживають в Україні.

У таблиці Сотрудники є поле Страна, у яке записується інформація тільки про співробітників, що є громадянами України.

SELECT КодСотрудника, Фамилия, Имя

FROM Сотрудники

WHERE Страна = 'Украина';

Це дасть наступний результат:

КодСотрудника Фамилия Имя

------------- -------------------- ----------

3 Бабкина Ольга

4 Воронова Дарья

9 Ясенева Инна

 

(3 row(s) affected)


Існує кілька операцій порівняння, які можна використати для складання критеріїв пошуку. У наступній таблиці перераховані операції, які можуть бути використані в умові WHERE.

Знак операції Операція Приклад
= Рівність Имя = ‘Инна’
< > Нерівність Страна < > ‘Россия’
< Менше Цена < 200.00
> Більше Скидка >.15
> = Більше або дорівнює МинимальныйЗапас > = 50
< = Менше або дорівнює Количество < = 100
IS NULL Порожнє значення (NULL) ДатаИсполнения IS NULL
BETWEEN Пошук між значеннями СтоимостьДоставки BETWEEN 1000 AND 10000

i NULL означає невідоме значення – приміром, вік ненародженої дитини. Далі в цій же темі ми розглянемо це значення більш докладно.

Розглянемо практичний приклад застосування умови WHERE. Припустимо, нам потрібно знайти в таблиці Сотрудники імена й прізвища всіх, що надійшли на роботу після 1 січня 1994 р.

Ми вже вміємо скласти SQL-оператор для отримання всіх записів:

SELECT Фамилия, Имя, ДатаНайма

FROM Сотрудники

Тепер доповнимо цей оператор нашою умовою часу надходження на роботу. Щоб отримати правильний результат, важливо вказати знак потрібної операції. Оскільки в умові було сказано про прийняті на роботу після 1 січня 1994 р., потрібно вказати знак «більше» (>):

SELECT Фамилия, Имя, ДатаНайма

FROM Сотрудники

WHERE ДатаНайма > '1/1/1994';

Зверніть увагу на необхідність записати дату в одинарні лапки. Якби ми працювали в інший СКБД, нам, ймовірно, довелося б скористатися іншими роздільниками. Приміром, в Microsoft Access дата позначаються знаком фунта (#).

Якщо запустити цей оператор, число записів у результаті буде менше повного числа записів у таблиці:

Фамилия Имя ДатаНайма

-------------------- ---------- ----------------------------------------Кралев Петр 1994-01-02 00: 00: 00

Крылова Анна 1994-03-05 00: 00: 00

Ясенева Инна 1994-11-15 00: 00: 00

 

(3 row(s) affected)

Нагадаємо, що в SQL Server дати записують в одинарні лапки, в Microsoft Access позначаються по обидва боки знаком фунта (#).

СПРОБУЙТЕ – Застосування умови WHERE

Припустимо, нам треба скласти звіт із вказівкою ідентифікаторів й імен всіх клієнтів зі Польщі.

1 Очевидно, у запиті повинні бути зазначені таблиця Клиенты й її поля КодКлиента й Название. Цього досить для складання основної частини запиту:

SELECT КодКлиента, Название

FROM Клиенты

По цьому запиті ми одержимо список всіх клієнтів.

2 Тепер дані потрібно відфільтрувати таким чином, щоб залишити в списку тільки клієнтів з Польщі. Для цього задамо порівняння поля Страна зі значенням ‘Польша’. Оскільки нам потрібно точна відповідність, укажемо в умові WHERE операцію рівності. Запит прийме вид:

SELECT КодКлиента, Название

FROM Клиенты

WHERE Страна = 'Польша'

Виконання цього запиту дає відфільтрований список:

КодКлиента Название

---------- ----------------------------------------

WOLZA Wolski Zajazd

 

(1 row(s) affected)

Як це працює

Вказуючи умову WHERE у запиті, ми задаємо фільтрацію записів по зазначеному в ньому критерію. У нашому прикладі, цей критерій – рівність значень поля Страна строковому значенню 'Польша'. Рядки, що не задовольняють критерію, ігноруються. Кожен критерій умови WHERE діє як фільтр записів за значеннями відповідного поля. Можна ставити умови WHERE будь-якої складності, і ми будемо вчитися цьому протягом всього посібника.

Нижче перераховані деякі повідомлення про помилки, які можуть з’являтися при спробах виконання деяких із цих операторів:

Розповсюджені помилки:

Помилка Повідомлення
Неправильно зазначене ім’я поля Server: Msg 207, Level 16, State 3, Line 1 Invalid column name ‘Название’ (Сервер: сообщ. 207, рівень 16, стан 3, рядок 1 Неправильно зазначене ім’я стовпця ‘ Название‘)
Відсутність повернутих даних Повідомлення не виводиться
Використання неправильних роздільників Server: Msg 207, Level 16, State 3, Line 1 Invalid column name 'Польша' Неправильно зазначене ім’я стовпця 'Польша'






Дата добавления: 2014-12-06; просмотров: 597. Нарушение авторских прав; Мы поможем в написании вашей работы!



Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Растягивание костей и хрящей. Данные способы применимы в случае закрытых зон роста. Врачи-хирурги выяснили...

ФАКТОРЫ, ВЛИЯЮЩИЕ НА ИЗНОС ДЕТАЛЕЙ, И МЕТОДЫ СНИЖЕНИИ СКОРОСТИ ИЗНАШИВАНИЯ Кроме названных причин разрушений и износов, знание которых можно использовать в системе технического обслуживания и ремонта машин для повышения их долговечности, немаловажное значение имеют знания о причинах разрушения деталей в результате старения...

Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого...

Ситуация 26. ПРОВЕРЕНО МИНЗДРАВОМ   Станислав Свердлов закончил российско-американский факультет менеджмента Томского государственного университета...

Различия в философии античности, средневековья и Возрождения ♦Венцом античной философии было: Единое Благо, Мировой Ум, Мировая Душа, Космос...

Характерные черты немецкой классической философии 1. Особое понимание роли философии в истории человечества, в развитии мировой культуры. Классические немецкие философы полагали, что философия призвана быть критической совестью культуры, «душой» культуры. 2. Исследовались не только человеческая...

Studopedia.info - Студопедия - 2014-2024 год . (0.012 сек.) русская версия | украинская версия