Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор SELECT




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

Уявлення - це просто SELECT - вираження, що зберігаються в БД.

З точки зору користувача уявлення - це таблиця, яка постійно не зберігається в БД, а виникає при зверненні.

З точки зору оператора SELECT, і постійно збережені таблиці і тимчасові таблиці-представлення виглядають абсолютно однаково. При реальному виконанні оператора SELECT система враховує відмінність між збереженими таблицями і уявленнями, прихованими від користувача.

Результатом виконання операції SELECT завжди є таблиця.

Оператор SELECT має наступний формат:

SELECT [DISTINCT] <Список полів> або *

FROM <Список таблиць>

[WHERE <Умова відбору>]

[ORDER BY <Список полів для сортування>]

[GROUP BY <Список полів для групування>]

[HAVING <Умова групування>]

[UNION <Вкладений оператор SELECT>]

Вибрати всі поля SELECT *

FROM <ім'я таблиці>

 

Вибір певних полів

SELECT <ім'я стовпця 1>,..., <ім'я стовпця п>

FROM <ім'я таблиці>

 

Приклад. Вибрати всі поля таблиці «Співробітники»:

SELECT * FROM Співробітники

 

Приклад. Вибрати певні поля таблиці «Співробітники»:

SELECT Табномер, Прізвище, Відділ

FROM Співробітники

 

Вибір полів, що задовольняють деякому умові:

SELECT <ім'я стовпця 1>,..., <ім'я стовпця п>

FROM <ім'я таблиць (и)> WHERE <умова відбору>;

 

Приклад. У результаті запиту видати прізвище і відділ роботи всіх співробітників з посадою 'Завідувач':

SELECT Відділ, Прізвище

FROM Співробітники

WHERE Посада = '"Завідувач"

 

Модифікатор DISTINCT (запобігання вибірки повторюваних слів)

Дубльованими є такі рядки в результуючій таблиці, в яких ідентичний кожен стовпець.

Іноді (в залежності від завдання) буває необхідно усунути всі повтори рядків з результуючого набору. Цій меті служить модифікатор DISTINCT. Даний модифікатор може бути зазначений тільки один раз в списку обираних елементів і діє на весь список.

SELECT [DISTINCT] <ім'я стовпця 1>,..., <Ім'я стовпця п>

FROM <ім'я таблиць (и)> WHERE <умова відбору>;

 

Приклад. Обрати всі посади таблиці "Співробітники":

SELECT DISTINCT Посада

FROM Співробітники;

 

ORDER ВУ (упорядкування рядків у результаті запиту)

Операнд ORDER BY містить список полів, що визначають порядок сортування записів результуючого набору даних. За замовчуванням сортування по кожному полю виконується в порядку зростання значень. Якщо необхідно задати для поля сортування за спаданням, то після імені цього поля вказується описувач DESC.

ORDER BY <порядок рядків> [ASC | DESC]

Операнд ORDER BY завжди повинен слідувати за WHERE. Порядок рядків може задаватися одним із двох способів:

- іменами стовпців

- номерами стовпців.

Стовпець, який визначає порядок виведення рядків, не обов'язково повинен бути присутнім в списку обираних елементів (стовпців):

Приклад. Упорядкувати записи по табельному номеру співробітників:

SELECT *

FROM Співробітники

ORDER BY ТабНомер ASC | DESC;

 

Приклад. Видати прізвище та найменування відділу роботи для всіх завідувачів, при цьому записи впорядкувати за прізвища:

SELECT Відділ, Прізвище

FROM Співробітники

WHERE Посада = 'Завідувач'

ORDER BY 2

 

Приклад. Видати всі записи таблиці «Співробітники», при цьому записи впорядкувати за прізвища, а потім по табельному номеру в зростаючому порядку:

SELECT *

FROM Співробітники

ORDER BY Прізвище, ТабНомер ASC;

 

Використання псевдонімів (alias)

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

Псевдоніми (аліаси або ім'я кореляції) вводиться в розділі FROM і пишуться через пробіл після імені таблиці.

Імена кореляції повинні використовуватися в якості префіксів перед ім'ям стовпця і відділятися від нього крапкою:

Приклад:

SELECT S.Прізвище, О.НомВід

FROM Співробітники S, Відділ О

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

Приклад:

SELECT SI.Прізвище AS Прізвище1, S2.Оклад AS ОкладМалий

FROM Співробітники S1, Співробітники S2

WHERE SI.Оклад < S2.0клад

 

11.4. АРИФМЕТИЧНІ ВИРАЗИ.

Арифметичні вирази в WHERE.

У WHERE формується умова з'єднання таблиць, або умова вибору рядків. приклад:

SELECT Прізвище, Оклад, Премія

FROM Співробітники

WHERE Премія> 0,25 * 0клад

Приклад. Отримати список інженерів у зворотному порядку відношення Премія / Оклад:

SELECT Прізвище, Оклад, Премія, Премія / Оклад

FROM Співробітники

ORDER BY Премія / Оклад, DESC

 

11.5. ГРУПОВІ ФУНКЦІЇ.

До груп рядків, витягнутим в результаті запиту можна застосувати групові функції:




Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 421; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.