Курс лекцій ( частина 1 ) для студентів спеціальності icon

Курс лекцій ( частина 1 ) для студентів спеціальності




НазваКурс лекцій ( частина 1 ) для студентів спеціальності
Сторінка4/6
Дата конвертації31.03.2013
Розмір0.67 Mb.
ТипКурс лекцій
1   2   3   4   5   6
1. /Конспект лекций/Использование SQL Server Management Studio.doc
2. /Конспект лекций/Лекция 0. Знайомство з SQL Server 2005.doc
3. /Конспект лекций/Лекция 1. Створення й керування базою даних SQL Server (short).doc
4. /Конспект лекций/Лекция 2. Синтаксичн_ елементи мови.doc
5. /Конспект лекций/Лекция 3. Виб_рка даних з бази даних.doc
6. /Конспект лекций/Лекция 4. Модиф_кац_я даних у базах даних SQL Server.doc
7. /Конспект лекций/Лекция 5. Збережен_ процедури.doc
8. /Конспект лекций/Лекция 5. Створення тригер_в _ керування ними ними.doc
9. /Конспект лекций/Мова SQL.Doc
10. /Конспект лекций/Создание триггеров и управление ими.doc
11. /Конспект лекций/Ц_л_сн_сть даних (short).doc
12. /Лабораторна робота малий формат.doc
Что такое sql server
Лекція Основи роботи з Microsoft sql| Server| 2005 Питання лекції Основні
Лекція Створення І керування базою даних sql server
Синтаксичні елементи мови Transact-sql
Вибірка даних з бази даних sql server
Модифікація даних у базах даних sql server
Збережені процедури
Створення|створіння| тригерів|трігерів| і керування ними (Тут додати що таке тригер і як він використовується)
Курс лекцій ( частина 1 ) для студентів спеціальності
Создание триггеров и управление ими
Цілісність даних
Методичні рекомендації для виконання лабораторних робіт для студентів спеціальності

Лекція 4 Вибірка даних з бази даних SQL Server

Питання лекції

  1. Основи оператора SELECT

  2. Витяг даних за допомогою з'єднань

  3. Визначення підзапитів усередині операторів SELECT
Література

[1] стор. 167-197, [2] стор.135-162.

Оператор SELECT дозволяє витягати дані із БД SQL Server і представляти їх користувачеві у вигляді одного або декількох результуючих наборів. Результуючий набір - це дані в табличній формі, які отримані в результаті виконання оператора SELECT. Подібно таблиці, результуючий набір складається з рядків і стовпців.

1. Основи оператора SELECT


Оператор SELECT мови Transact-SQL дозволяє одержувати існуючі дані з бази даних SQL Server. Більшість операторів SELECT описують чотири головних властивості результуючого набору:

  • стовпці, які повинні складати результуючий набір;

  • таблицю, з якої витягаються дані для формування результуючого набору;

  • умови, яким повинні відповідати рядки вихідної таблиці, щоб потрапити в результуючий набір;

  • послідовність упорядкування рядків у результуючому наборі.

У наступному прикладі оператор SELECT одержує з таблиці Products ідентифікатор, ім'я й ціну за одиницю будь-якого продукту вартістю вище $40.

SELECT ProductID, ProductNaine, UnitPrice

FROM Products

WHERE UnitPrice > 40

ORDER BY UnitPrice ASC

Конструкція SELECT у цьому прикладі визначає стовпці, з яких необхідно витягти значення, а конструкція FROM - таблицю, у якій перебувають ці стовпці. Конструкція WHERE обмежує результуючий набір тими продуктами, значення UnitPrice яким більше $40. Конструкція ORDER BY задає сортування результуючого набору по зростанню на основі значення стовпця UnitPrice. Повний синтаксис оператора SELECT складний, однак в загальному вигляді головні конструкції можна записати в такий спосіб:

SELECT список_вибору

[INTO ім'я_нової_таблиці]

FROM список_таблиць

[WHERE умови_пошуку]

[GROUP BY угруповання_по_списку]

[HAVING умови_пошуку]

[ORDER BY поле_для_сортування [ASC DESC]]

Далі ми докладно розглянемо кожну конструкцію і покажемо на прикладах, як визначати конструкції, що одержують певні дані з бази даних SQL Server.
Конструкція SELECT

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

У списку вибору також можна вказати ключові слова, які визначають кінцевий формат результуючого набору.
Ключове слово DISTINCT

Ключове слово DISTINCT забороняє вивід у результуючому наборі повторюваних рядків. Наприклад, у таблиці Orders бази даних Northwind зберігаються повторювані значення у стовпці ShipCity. Наступний код дозволяє одержати список значень ShipCity без дублікатів:

SELECT DISTINCT ShipCity, ShipRegion

FROM Orders

ORDER BY ShipCity
Ключове слово TOP n

Ключове слово ТОР п задає перші п рядків результуючого набору, які необхідно повернути. Якщо задано параметр ORDER BY, вибір рядків виконується після впорядкування результуючого набору. Значення п указує число рядків, які повертаються, (якщо не визначене ключове слово PERCENT). Якщо задано ключове слово PERCENT, то п - це відсоток рядків, що повертаються , від загального числа рядків у результуючому наборі.

Наприклад, у наступному прикладі оператор SELECT повертає перші 10 упорядкованих за алфавітом міст із таблиці Orders.

SELECT DISTINCT TOP 10 ShipCity, ShipRegion

FROM Orders

ORDER BY ShipCity


Ключове слово AS

Можна зробити оператор SELECT більше зрозумілим, привласнивши таблиці псевдонім (його також називають зв'язаним ім'ям). Псевдонім можна привласнити таблиці як за допомогою ключового слова AS, так і без нього:

ім'я_таблиці AS псевдонім_таблиці

ім'я_таблиці псевдонім_таблиці

У наступному прикладі таблиці Publishers привласнюється псевдонім р:

USE pubs

SELECT p.pub_id, p.pub_name

FFOM publishers AS p


Якщо таблиці привласнений псевдонім, то у всіх явних посиланнях на таблицю в операторах Transact-SQL необхідно використовувати псевдонім, а не ім'я таблиці.
Типи інформації в списку вибору

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

SELECT FirstName + ' ' + LastNane AS "Employee Name",

IDENTITYCOL AS "Employee ID",

HomePhone, Region

FROM Northwind.dbo.Employees

ORDER BY LastName, FirstNarne ASC

Цей оператор поміщає в один стовпець імена й прізвища працівників, розділені пробілом. Ім'я стовпця, у якому зберігаються імена працівників - Employee Name. У результуючий набір також увійде стовпець із ідентифікатором, який буде названий Employee ID, а також стовпці HomePhone і Region. Результуючий набір упорядкований спочатку за прізвищем, а потім за іменем.
Конструкція INTO

Конструкція INTO дозволяє вказати, що для результуючого набору буде створена нова таблиця, ім'я якої задане цією конструкцією. За допомогою оператора SELECT...INTO вдається об'єднати дані з декількох таблиць або подань в одну таблицю. Його можна використовувати для створення нової таблиці з даними, обраними на зв'язаному сервері. У наступному прикладі оператор SELECT витягає значення зі стовпців FirstName і LastName таблиці Employees:

SELECT FirstName, LastName

INTO EmployeeNames

FROM Employees

Згенерирований результуючий набір створює таблицю EmployeeNames. У новій таблиці стовпці FirstName і LastName будуть містити значення з таблиці Employees. Результуючий набір не виводиться на вкладці Results, якщо не виконати явний запит до нової таблиці.
Конструкція FROM

Конструкцію FROM необхідно поміщати в кожному операторі SELECT, що витягає дані з таблиць або відображень. Ця конструкція дозволяє задати список таблиць і відображень, на стовпці яких посилаються список вибору і конструкція WHERE. Цим таблицям і відображенням можуть бути привласнені псевдоніми в конструкції AS. Конструкція FROM, крім того, дозволяє з'єднувати таблиці, задаючи умови з'єднання в конструкції JOIN. Конструкція FROM являє собою список імен таблиць, відображень і конструкцій JOIN, розділених комами. У наступному прикладі в операторі SELECT конструкція FROM задає таблицю Shippers:

SELECT * FROM Shippers

Конструкцію FROM також використовують і для визначення з'єднань між двома таблицями або відображеннями.
Конструкції WHERE, GROUP BY і HAVING

В операторі SELECT конструкції WHERE і HAVING визначають рядки вихідної таблиці, які необхідні для побудови результуючого набору. Конструкції WHERE і HAVING виконують роль фільтрів. Вони задають набір умов пошуку - для побудови результуючого набору вибираються лише ті рядочки, які відповідають умовам пошуку. Наприклад, в операторі SELECT конструкція WHERE повертає лише ті рядки, де район зазначений як штат Вашингтон (WA):

SELECT Customerl, CompanyName

FROM Northwind.dbo.Customers

WHERE Region = 'WA'

Конструкція HAVING, як правило (але не обов'язково), використовується разом з конструкцією GROUP BY. Конструкція HAVING задає додаткові фільтри, які застосовуються після завершення фільтрації, обумовленою конструкцією WHERE. У наступному прикладі в операторі SELECT використані конструкції WHERE, GROUP BY і HAVING:

SELECT OrdDLOrderID AS OrderID,

SUM(Ord1.Quantity) AS "Units Sold",

SUM(Ord1.UnitPrice * Ord1.Quantity) AS Revenue

FROM [Order Details] AS Ord1

WHERE OrdDLOrderID IN

(SELECT DISTINCT Ord2. OrderID

FROM [Order Details] AS Ord2

WHERE Ord2.UnitPrice > $100)

GROUP BY GrdDLOrderID

HAVING SUM(Ord1.Quantity) > 100

Тут конструкція WHERE повертає замовлення, вартість яких більше $100, а далі конструкція HAVING обмежує результат, відбираючи замовлення на більш ніж 100 одиниць товару. Конструкція GROUP BY обмежує рядки для кожного конкретного значення поля Ord1.
Конструкція GROUP BY

Конструкція GROUP BY використовується для одержання підсумкових значень у кожному рядку результуючого набору. При застосуванні оператора SELECT без конструкції GROUP BY агрегатні функції повертають лише одне підсумкове значення.

Після ключових слів GROUP BY вказують список стовпців, за яким виконується групування. Конструкція GROUP BY обмежує рядки результуючого набору. Для кожного конкретного значення стовпця або декількох стовпців, яки групуються, можливий тільки один рядок. У кожному рядку результуючого набору втримуються підсумкові дані, які пов'язані з деяким значенням стовпців, які групуються. Якщо в операторі SELECT є конструкція GROUP BY, SQL Server накладає обмеження на елементи списку вибору. У списку вибору можуть бути лише ті стовпці, що групуються, і вирази, які повертають тільки одне значення для кожного значення стовпців, що групуються, наприклад агрегатні функції (векторні агрегати), одним з параметрів яких є ім'я стовпця.

Як правило, конструкція HAVING використовується з конструкцією GROUP BY, хоча її дозволяється застосовувати й окремо. Будь-який вираз може стати таким, який групує, якщо він не містить агрегатних функцій. У конструкції GROUP BY необхідно задавати ім'я стовпця таблиці або відображення, а не ім'я стовпця результуючого набору, привласнене за допомогою конструкції AS. У конструкції GROUP BY припустимо вказати кілька стовпців у вигляді вкладених груп, тобто згрупувати таблицю за допомогою будь-якої комбінації стовпців.
Обробка конструкцій WHERE, GROUP BY і HAVING

Розуміння вірної послідовності, у якій застосовуються конструкції WHERE, GROUP BY і HAVING, допомагає програмувати ефективні запити:

  • конструкція WHERE фільтрує рядки, які є результатом операцій, заданих у конструкції FROM;

  • вихідна інформація конструкції WHERE групується за допомогою конструкції GROUP BY;

  • рядки згрупованого результату фільтруються засобами конструкції HAVING.

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

Конструкція ORDER BY сортує результат запиту по одному або декількох полях. Сортування може бути як по зростанню (ASC), так і по убуванню (DESC). Якщо не заданий жоден з видів сортування, за замовчуванням передбачається ASC. Якщо в конструкції ORDER BY названо кілька стовпців, виконується вкладене сортування. Наступний оператор сортує рядки таблиці Titles спочатку за назвою видавництва (по убуванню), потім по типі (по зростанню, для кожного видавництва) і, нарешті, за ціною (також по зростанню, оскільки не заданий параметр DESC).

USE Pubs

SELECT Pub_id, Type, Title_id, Price

FROM Titles

ORDER BY Pub_id DESC, Type, Price


Приклад використання операторів SELECT для вибірки даних

У цій вправі ми скористаємося операторами SELECT для витягу інформації з бази даних Pubs. Кожний наступний оператор SELECT необхідно будувати на основі попереднього, при цьому інформація, що входить у результуючий набір, усе більше конкретизується.
Витяг всіх даних з таблиці Titles

Уведемо наступні команди Transact-SQL вікні редактору запитів:

USE Pubs

SELECT * FROM Titles

Цей оператор визначає базу даних, де втримується потрібна для перегляду таблиця. Оператор SELECT витягає всі дані з таблиці Titles у базі даних Pubs. Зірочка (*) у списку вибору вказує, що треба вибрати дані із всіх стовпців таблиці. Виконаємо оператор Transact-SQL. Результуючий набір виводиться на вкладці Results.
Одержання даних з певних стовпців таблиці Titles

У вікні редактору запитів уведемо наступний код Transact-SQL:

USE Pubs

SELECT Title_id, Title, Price, Ytd_sales

FROM Titles

Тут оператор SELECT витягає дані зі стовпців Title_id, Title, Price і Ytd_sales бази даних Pub. Виконаємо оператор Transact-SQL. Результуючий набір виводиться на вкладці Results.
Завдання умови, якій повинен відповідати результуючий набір

Уведемо наступні команди Transact-SQL вікні редактору запитів:

USE Pubs

SELECT Titie_id, Title, Price, Ytd_sales

FROM Titles

WHERE Price > 10

Тепер оператор SELECT витягне лише ті рядки, значення поля Price яких перевищує $10. Виконаємо оператор Transact-SQL. Результуючий набір виводиться на вкладці Results.

Завдання порядку, у якому виводиться результуючий набір

Уведемо наступні команди Transact-SQL вікні редактору запитів:

USE Pubs

SELECT Title_id, Title, Price. Ytd_sales

FROM Titles

WHERE Price > 10

ORDER BY Price DESC, Title

Результуючий набір, що поверне цей оператор SELECT, упорядковується спочатку за ціною (по убуванню), а потім по заголовку (по зростанню). Виконаємо оператор Transact-SQL. Результуючий набір виводиться на вкладці Results.
Угруповання даних у результуючому наборі

Уведемо наступні команди Transact-SQL вікні редактору запитів:

USE Pubs

SELECT Type, AVG(Price) AS AvgPrice

FROM Titles

WHERE Price > 10

GROUP BY Type

ORDER BY AvgPrice DESC

У результуючому наборі, що поверне цей оператор SELECT, групуються рядки з однаковими значеннями поля Турe. Рядки, що не відповідають умовам конструкції WHERE, виключаються до початку будь-яких операцій по угрупованню. При угрупованні виконується усереднення значень стовпця Price, а отримане середнє значення вставляється в результуючий набір у вигляді стовпця AvgPrice. Значення стовпця AvgPrice упорядковуються по убуванню. Виконаємо оператор Transact-SQL. Результуючий набір виводиться на вкладці Results.

Створення таблиці для розміщення результуючого набору

Уведемо наступні команди Transact-SQL вікні редактору запитів:

USE Pubs

SELECT Type, AVG(Price) AS AvgPrice

INTO TypeAvgPrice

FROM Titles

WHERE Price > 10

GROUP BY Type

ORDER BY AvgPrice DESC

Оператор SELECT створить нову таблицю за назвою TypeAvgPrice. У стовпцях Турe і AvgPrice розміщаються значення результуючого набору. Виконаємо оператор Transact-SQL. На вкладці Results виводиться повідомлення, з зазначеним числом рядків, на яке вплинуло виконання оператора.

Уведемо і виконаємо наступний оператор Transact-SQL:

SELECT * FROM TypeAvgPrice

Уміст таблиці TypeAvgPrice виводиться на вкладці Results.

Уведемо і виконаємо наступний оператор Transact-SQL:

DROP TABLE TypeAvgPrice


На вкладці Results виводиться повідомлення про успішне завершення команди.

Тепер, коли ви познайомилися з основами роботи оператора SELECT і його різними конструкціями, ми розглянемо більш складні методики роботи із запитами. Одна з них дозволяє об'єднати кілька таблиць із метою одержання результуючого набору, що містить рядки й стовпці із всіх цих таблиць. Інша методика заснована на використанні підзапитів, які являють собою оператори SELECT, вкладені в інші оператори (SELECT, INSERT, UPDATE або DELETE). Усередині підзапитів дозволяються вкладені підзапити. Такі елементи мови Transact-SQL, як CUBE і ROLLUP, дозволяють одержувати зведені дані.
1   2   3   4   5   6



Схожі:

Курс лекцій ( частина 1 ) для студентів спеціальності iconКонспект лекцій для студентів спеціальності ксм
Операційні системи. Конспект лекцій для студентів спеціальності ксм денної та заочної форми навчання. / проф. Бурчак І. Н., Здолбіцький...
Курс лекцій ( частина 1 ) для студентів спеціальності iconКонспект лекцій з дисципліни "Міжнародна економіка" для студентів спеціальності «Облік і аудит»
Конспект лекцій з дисципліни “Міжнародна економіка” для студентів спеціальності «Облік І аудит» /М. В. Яковенко. Олександрія: кіруе,...
Курс лекцій ( частина 1 ) для студентів спеціальності iconКурс лекцій з дисципліни „Релігієзнавство (для студентів 1-3 курсів усіх спеціальностей академії)
Курс лекцій з дисципліни “Релігієзнавство” (для студентів 1-3 курсів усіх спеціальностей академії) // Укл. Толстенко С. М. – Харків...
Курс лекцій ( частина 1 ) для студентів спеціальності iconКурс лекцій Для студентів освітньо-кваліфікаційного рівня "бакалавр" економічних спеціальностей усіх форм навчання Суми
України [Текст] : курс лекцій / [уклад.: А. І. Зякун, В. Г. Троян]; Державний вищий навчальний заклад “Українська академія банківської...
Курс лекцій ( частина 1 ) для студентів спеціальності iconКонспект лекцій призначається для студентів бакалаврського рівня спеціальності «Мінералогія, геохімія»
Скакун Л. З. Мінералогія. Конспект лекцій. Ч. – Львів: Видав-ничий центр лну ім. Івана Франка, 2002. – 51 с
Курс лекцій ( частина 1 ) для студентів спеціальності iconПрограма та плани семінарських занять для студентів Філософського факультету
Курс “Аналіз соціальних систем” є обов’язковим навчальним курсом, який читається для студентів ІІ курсу спеціальності “політологія”...
Курс лекцій ( частина 1 ) для студентів спеціальності iconКурс лекцій для студентів всіх форм навчання. Дніпропетровськ, ддфа, 2007. 143с
Мікроекономіка: Курс лекцій для студентів всіх форм навчання. – Дніпропетровськ, ддфа, 2007. 143с
Курс лекцій ( частина 1 ) для студентів спеціальності iconПрограма для студентів спеціальності 0304 "Міжнародні відносини" напряму "Міжнародне право" Затверджено
України " є нормативним курсом для студентів спеціальності '60304 "Міжнародні відносини" напряму "Міжнародне право". Викладається...
Курс лекцій ( частина 1 ) для студентів спеціальності iconПрограма для студентів спеціальності "Міжнародне право" Затверджено
Дисципліна “Міжнародна інформація” є базовою нормативною дисципліною для спеціальності “міжнародне право”, що викладається на ІV...
Курс лекцій ( частина 1 ) для студентів спеціальності iconПрограма курсу Курс "Вибори та виборчі системи"
Курс “Вибори та виборчі системи” є обов’язковим навчальним курсом, який читається для студентів ІV курсу Філософського факультету...
Курс лекцій ( частина 1 ) для студентів спеціальності iconПрограма «Ергономіка інформаційних технологій» (назва дисципліни) Для студентів спеціальності (ей)
Для студентів спеціальності (ей) 010104. 36 «Професійне навчання. Комп’ютерні технології в управлінні та навчанні»
Додайте кнопку на своєму сайті:
Документи


База даних захищена авторським правом ©te.zavantag.com 2000-2017
При копіюванні матеріалу обов'язкове зазначення активного посилання відкритою для індексації.
звернутися до адміністрації
Документи