|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
GROUP BYДля обчислення сумарних значень на основі даних однієї або декількох таблиць можна використовувати пропозицію GROUP BY (групування), що має такий синтаксис: GROUP BY {column1} [,...] Наприклад, наступний запит пов'язує дві таблиці, сортує їх по полю CustomerID, для кожного значення CustomerID створює один рядок в результуючому наборі даних і обчислює кількість значень поля OrderID для кожного значення CustomerID: SELECT Customers.CustomerID, COUNT (Orders.OrderID) FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID GROUP BY Customers.CustomerID У наведеному вище прикладі запиту ми використовували в реченні SELECT агрегатну функцію COUNT, яка обчислює кількість значень. HAVING HAVING має призначення, схоже з WHERE, але використовується при групуванні (GROUP BY) та з агрегатними даними. наприклад: SELECT Customers.CustomerID, COUNT (Orders.OrderID) FROM Customers INNER JOIN Orders ON Customers.CustomerID = Orders.CustomerID GROUP BY Customers.CustomerID HAVING COUNT (Orders.OrderID)> = 10 Цей запит аналогічний попередньому, але в результуючий набір даних включені тільки замовники, які розмістили десять або більше замовлень. ORDER BY Пропозиція ORDER BY (необов'язкове) застосовується для сортування результуючого набору даних по одній або кільком колонкам. Для визначення порядку сортування використовуються ключові слова ASC (за зростанням) або DESC (за спаданням). За замовчуванням дані сортуються за зростанням. Синтаксис пропозиції ORDER BY має вигляд: ORDER BY column1 [{ASC | DESC}] [, column2 [{ASC | DESC}] … Наприклад, для сортування співробітників на прізвище і потім по імені слід використовувати наступний SQL-запит: SELECT LastName, FirstName, Title FROM Employees ORDER BY LastName, FirstName Якщо сортування даних потрібно в порядку убування (наприклад, потрібно список продуктів в порядку убування цін), використовується ключове слово DESC: SELECT ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC WHERE Для фільтрації результатів, що повертаються оператором SELECT, можна використовувати WHERE, синтаксис якого має вигляд: WHERE expression1 [{AND | OR} expression2 [...]] Наприклад, замість отримання повного списку продуктів можна обмежитися лише тими з них, у яких значення поля CategoryID одно 4: SELECT * FROM Products WHERE CategoryID = 4 У пропозиції WHERE можна використовувати різні вирази, наприклад: SELECT * FROM Products WHERE CategoryID = 2 AND SupplierID > 10 або: SELECT ProductName, UnitPrice FROM Products WHERE CategoryID = 3 OR UnitPrice < 50 або: SELECT ProductName, UnitPrice FROM Products WHERE Discontinued IS NOT NULL Вираз 'IS NOT NULL' означає, що відповідна колонка результуючого набору даних не може містити порожніх значень. У пропозиції WHERE можна використовувати один з шести операторів відносин (<, <=, <>, =, >, >=), визначених в SQL. Крім перерахованих вище простих операторів порівняння, можна використовувати і спеціальні оператори порівняння: - BETWEEN - застосовується при перевірці знаходження значення усередині заданого інтервалу (включаючи його межі); - IN - застосовується для перевірки наявності значення в списку (множині даних); - LIKE - застосовується при перевірці відповідності значення заданої масці (шаблону). Наведемо кілька прикладів застосування цих операторів. Для зіставлення даних з маскою застосовується ключове слово LIKE: SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE 'M%' У даній масці символ '%' (відсоток) замінює будь-яку послідовність символів, а символ '_' (підкреслення) - один будь-який символ. Той же самий результат може бути отриманий таким способом: SELECTCompanyName, ContactName FROM Customers WHERE CompanyName BETWEEN 'M' AND 'N' В останньому прикладі ми можемо розширити область пошуку. Зокрема, при пошуку компаній, що починаються з букв від A до C, можна виконати наступний оператор SELECT: SELECT CompanyName, ContactName FROM Customers WHERE CompanyName BETWEEN 'A' AND 'D' Використовуючи оператор LIKE, ми можемо звузити діапазон пошуку, застосувавши більш складну маску для порівняння. Наприклад, щоб знайти компанії, які містять у своїй назві підрядок bl, можна застосувати наступний запит: SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE '% bl%' Маска '% bl%' показує, що до і після шуканого підрядка може бути будь-яка кількість довільних символів. Використовуючи оператор IN, можна задати список значень, в якому має міститися значення поля: SELECT CompanyName, ContactName FROM Customers WHERE CustomerID IN('ALFKI', 'BERGS', 'VINET') Контрольні запитання 1. Ключові слова all, distinct 2. Призначення та особливості використання where. 3. Призначення та особливості використання group by. 4. Призначення та особливості використання having. 5. Призначення та особливості використання order by. 6. Призначення та особливості використання between... and. 7. Призначення та особливості використання like. 8. Призначення та особливості використання in. Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.011 сек.) |