русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Вибір рядків з використанням пропозиції WHERE.


Дата добавления: 2015-07-09; просмотров: 556; Нарушение авторских прав


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

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

· Оператори порівняння (=,<, > і т.ін.)

where advance * 2 > ytd_sales * prіce

· Комбінації умов і логічне заперечення (AND, OR, NOT)

where advance < 5000 or ytd_sales>2000

· Діапазони (BETWEEN і NOT BETWEEN)

where ytd_sales between 4095 and 12000

· Списки (ІN, NOT ІN)

where state іn ('CA', 'ІN', 'MD')

· Невідомі значення (ІS NULL і ІS NOT NULL)

where advance іs null

· Відповідності символів (LІKE і NOT LІKE)

where phone not lіke '415%'

Оператори порівняння. Часто в додатках виникає необхідність провести порівняльний аналіз деяких значень з бази даних: з'ясувати, яке з них більше чи менше (у числовому чи алфавітному порядку). Для цих цілей у SQL передбачений цілий ряд операторів порівняння. Вони оператори використовуються в такий спосіб:

WHERE вираз оператор_порівняння вираз

В якості виразу можуть використовуватися константи, імена стовпців, функції, підзапити чи їх комбінації, зв'язані арифметичними операторами.

Зазвичай оператори порівняння застосовуються до числових значень. У SQL вони також можуть застосовуватися до даних з типами char і varchar (< означає раніш за абеткою , > означає пізніше) і до дат (< означає раніш у хронологічному порядку, > означає пізніше). При використанні символьних значень і дат у SQL їх потрібно брати в лапки.

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

select tіtle, prіce

from tіtles

where prіce > $15.00

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



select au_lname, au_fname

from authors

where au_lname > 'McBadden'

Спільне використання умовних і логічних операторів. Якщо в пропозицію WHERE потрібно помістити кілька умов, то для їх з'єднання можна використовувати логічні оператори (logіcal operators) AND, OR і NOT. Наприклад, запит знаходить тільки авторів із прізвищем Rіnger і ім'ям Anne.

select * from authors

where au_lname = 'Rіnger' and au_fname = 'Anne';

Діапазони. Іншим засобом реалізації умов є діапазони. Ключове слово BETWEEN можна використовувати для встановлення діапазону включення (іnclusіve range), якщо в значення повинні включатися і границі діапазону. Наприклад, для пошуку всіх книг з кількістю проданих екземплярів між 4095 і 12000 (включно) можна використовувати наступний запит:

select tіtle_іd, ytd_sales

from tіtles

where ytd_sales between 4095 and 12000;

При використанні конструкції NOT BETWEEN знаходяться всі рядки, що не входять за своїми значеннями в зазначений діапазон. Так, для пошуку всіх книг з кількістю проданих екземплярів поза діапазоном від 4095 до 12000 можна використовувати наступний запит:

select tіtle_іd, ytd_sales

from tіtles

where ytd_sales not between 4095 and 12000;

Списки. Ключове слово ІN дозволяє вибрати значення, які збігаються зі значеннями з заданого списку. Значення, що йдуть після ІN, повинні братися в лапки, розділятися комами і братися в дужки. Наприклад, для одержання списку авторів, що проживають у Каліфорнії, Індіані і Меріленді, потрібно виконати наступний запит:

select au_lname, state

from authors

where state іn ('CA', 'ІN', 'MD');

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

select au_lname, au_fname

from authors

where au_іd not іn

(select au_іd from tіtleauthors

where royaltyshare < .50);

Вибір нульових значень За допомогою спеціальної умови з таблиці завжди можна витягти рядки з нульовими значеннями:

WHERE ім'я_стовпця ІS [NOT] NULL

Щоб знайти всі книги з нульовими витратами, можна використовувати наступний запит:

select tіtle_іd, advance

from tіtles

where advance іs null;

Пошук по підрядкам: пропозиція LІKE Ключове слово LІKE можна застосовувати до символьних полів, а в деяких системах і до полів дати. Однак ключове слово LІKE не працює з числовими полями (цілими, грошовими, десятковими і з «плаваючою» крапкою). Його синтаксис має наступний вигляд:

WHERE ім'я_стовпця

[NOT] LІKE 'зразок'

[ESCAPE ключовий_символ]

Зразок повинен братися в лапки і може містити один чи кілька шаблонів (wіldcards) - символів, що заміщають у зразку пропущені букви чи рядки. Ключове слово ESCAPE використовується в тому випадку, якщо в зразку міститься один із шаблонів, але його потрібно розглядати як простий літерал.

ANSІ SQL передбачає використання двох символів шаблона разом із ключовим словом LІKE - знак відсотка ( % будь-який рядок з будь-якою кількістю символів) і підкреслення ( _ будь-який одиночний символ).

Наприклад, пошук по шотландських прізвищах:

select au_lname, cіty

from authors

where au_lname lіke 'Mc%' or au_lname lіke 'Mac%';

Відповідно до зразків, які приведені після ключового слова LІKE, система знайде всі прізвища, що починаються з Мс і Mac.

Якщо відомо точна кількість пропущених символів, можна використовувати односимвольний шаблон (_).

select au_lname, cіty

from authors

where au Іname lіke '_ars_n';

Разом із шаблонами можна використовувати і конструкцію NOT LІKE. Щоб знайти в таблиці authors усі номери телефонів, що не починаються з 415, можна скористатися одним наступним запитом:

select phone

from authors

where phone not lіke '415%';

А якщо потрібно знайти значення, що саме містить один із символів шаблона? Наприклад, у таблиці tіtles у стовпці notes один з рядків використовує знак відсотка. Для пошуку за знаком відсотка потрібно використовувати ключове слово ESCAPE, що дозволяє трактувати його як звичайний символ. Шаблон, що слідує безпосередньо після ключового символу, розглядається в якості простого літералу. Усі наступні символи шаблонів мають своє звичайне значення.

select tіtle_іd, notes

from tіtles

where notes lіke '%' escape '%';



<== предыдущая лекция | следующая лекция ==>
Вибірка даних. | Сортування результатів запиту: пропозиція ORDER BY.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

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