Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
6. Робота з SQL Server.docx
Скачиваний:
13
Добавлен:
22.11.2019
Размер:
121.61 Кб
Скачать

6.5.1. Управління полями таблиці з допомогою оператора select

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

select * from stat

В результаті цього запиту із таблиці stat в результатний набір даних попадають всі поля і всі записи. При цьому порядок полів у наборі даних відповідає порядку фізичних полів у таблиці.

Приклад перегляду декількох таблиць одночасно:

select *

from stat

select *

from obsag

В результаті цього запиту із таблиць stat і obsag виводяться всі поля і всі записи таблиць.

Якщо необхідно вибрати дані лише з декількох полів таблиці, то після слова SELECT перелічуються через кому у потрібному порядку назви цих полів. Порядок полів у наборі відповідатиме порядку полів у списку. Якщо ім’я поля вказано у списку неодноразово, то в наборі даних буде декілька стовпців з однаковими іменами і даними. Наприклад:

select cod, osvita

from stat

В результаті виконання цього SQL-запиту здійснюється відбір із таблиці записів тільки двох полів: cod, osvita.

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

select cod, suma, suma - 20

from obsag

У полі summa – 20 виведеться значення поля summa, зменшене на 20.

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

SELECТ DISTINCT <ім’я поля>, <ім’я поля >

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

Наприклад, необхідно вивести із таблиці obsag коди рекламних агентів, які виконали операції:

Select distinct cod

from obsag

6.5.2. Використання простих критеріїв відбору записів із таблиць

У попередніх прикладах в набір даних попадали всі записи із вказаних таблиць. На практиці набір даних обмежується записами, які задовольняють певним умовам (критеріям) відбору, які задаються з допомогою операнда WHERE.

Критерій відбору – це логічний вираз, в якому можна використовувати операції:

= – дорівнює;

> – більше;

< – менше;

>= – більше-рівне;

<= – менше-рівне;

<> або != – не рівне;

!> – не більше;

!< – не менше;

LIKE – порівняння по шаблону;

IS NULL – перевірка на нульове значення;

IN – перевірка на входження;

BETWEEN – перевірка на входження в діапазон.

Для операцій порівняння і порівняння по шаблону критерій відбору має наступний вигляд:

<Вираз1> <Операція порівняння> <Вираз2>

Використання операторів порівняння

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

select cod

from obsag

where suma>= 1500

Цей оператор створює список працівників, які виконали операції на суму не меншу ніж 1500 грн. Наведемо приклад відбору записів за значеннями символьного поля:

select prizv

from stat

where osvita = ‘вища’

У цьому прикладі в операції порівняння враховується регістр символів. Слова „Вища” і „вища” не рівні між собою. Різниця в регістрі символів або наявність початкових і кінцевих пробілів прозводить до помилок при відборі записів. У такому випадку критерій відбору доцільно записати так:

where upper(trim(osvita)) = ‘вища’

Функція TRIM знищує початкові і кінцеві пробіли, а функція UPPER приводить символи рядка до верхнього регістру. В результаті значення поля „Вища” буде приведена до значення „ВИЩА”.

Використання LIKE

Для порівняння рядків замість операцій =, !=, <> можна використовувати операцію LIKE, яка виконує порівняння за частковим співпадінням. Часткове співпадіння значень доцільно перевіряти, наприклад, коли відома тільки початкова частина прізвища:

select prizv

from stat

where prizv like ‘Ac%’

В результаті отримаємо список прізвищ, які починаються на літери “Ac”.

У виразах операції LIKE допускається застосування шаблону, в якому можна використовувати всі алфавітно-цифрові символи (з врахуванням регістра). При цьому два символи мають спеціальне призначення:

% - заміняє будь-яку кількість символів, в тому числі й нульовий;

_ - заміняє один символ.

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

select prizv

from stat

where prizv like '% р %'

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

Для перевірки нульового значення виразу служить операція IS NULL, яка має наступний формат:

<Вираз> IS [NOT] NULL

Наприклад,

select *

from stat

where is null

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

Використання IN

Перевірка на входження значення виразу в список виконується з допомогою операції IN наступного формату:

<Вираз> [NOT] IN <Список значень>

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

select cod, prizv

from stat

where osvita in (‘середня’, ‘вища’)

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

Використання BETWEEN

Операція BETWEEN виконує перевірку входження значення в діапазон. Вона має такий формат:

<Вираз> [NOT] BETWEEN

<Мінімальне значення> AND <Максимальне значення>

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

Розглянемо приклад:

select *

from stat

where data_nar between ‘01/01/1960’ and ‘01/12/1980’

У результаті виконання такого запиту отримаємо набір записів, для яких дата народження (поле data_nar) знаходиться в діапазоні з 1 січня 1960 року до 1 грудня 1980 року.

Використання HAVING

Операція HAVING відіграє таку ж роль для груп, як і WHERE для рядків. Ця операція включається в оператор при наявності GROUP BY.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]