Студопедия — Значення NULL
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Значення NULL






Значення NULL в SQL – це невідоме значення, яке не слід плутати з порожнім. Порожнє значення – це відсутність даних, у випадку ж значення NULL ми не знаємо, яке значення повинне бути записане в даному полі. Значення NULL трактуються в SQL особливим чином, і ми продемонструємо це простим прикладом порівняння значень NULL з порожніми в SQL Server.

Подивимося, чи можна встановити рівність двох порожніх значень і проробимо те ж саме зі значеннями NULL:

Таким чином, порожні значення рівні один одному, значення NULL – не рівні, що інтуїтивно зрозуміло, тому що це невідомі значення, а два невідомих значення не повинні обов’язково бути рівні один одному. Цю властивість значень NULL потрібно завжди пам’ятати при складанні SQL-операторів. NULL – особливі значення й тому вимагають особливого ставлення. В умові WHERE передбачений спеціальний критерій для значень NULL – IS NULL. Спробуємо застосувати його.

СПРОБУЙТЕ – Застосування значень NULL

Спробуємо скласти список клієнтів, які не мають факсу.

1 Поле Факс, що зберігає дані про номер факсу клієнта. Отже, якщо у клієнта нема факсу, в таблиці Клиенты бази даних значення цього поля буде мати значення NULL. Саме цією обставиною ми й скористаємося, указавши як критерій наявність значення NULL у поле Факс.

2 Уведемо наступний SQL-оператор:

SELECT Название

FROM Клиенты

WHERE Факс IS NULL;

3 Результат буде наступним:

 


Як це працює

Для перевірки значень NULL застосовується ключове слово IS. Як ми показали вище, значення NULL не можна рівняти до чого б то не було, у тому числі й до іншого значення NULL. Із цим значенням не можна проводити ні обчислень, ні порівнянь. Єдино можлива дія над цим значенням – перевірка, чи дійсно воно є таким, і ця операція задається ключовим словом IS.

Як уже була сказано, IS NULL – операція особливого виду, застосовувана для перевірки значень NULL. Операція рівності (=) замість цього значення незастосовна:

3.2 Обчислення в умові WHERE

Критерії пошуку в умові WHERE можуть мати обчислення над полями таблиць.

Приміром, нам може знадобитися список товарів на складі, загальна вартість яких перевищує 140 000 російських рублів:

SELECT Марка, НаСкладе * Цена AS Стоимость

FROM Товары

WHERE НаСкладе * Цена > 140000;

У результаті одержимо всього кілька записів:

SQL Server містить ряд процедур обчислень над датами – наприклад, для визначення числа днів між двома датами. Ми докладно розглянемо їх у далі, що ж стосується розглянутих тут загальних принципів, то вони застосовні до поля будь-якого типу.

Застосування умови WHERE забезпечує ряд нових можливостей. Одна з найцінніших особливостей SQL – здатність виконувати обчислення не тільки в порядковому режимі, але в будь-якому місці таблиці. Наприклад, умовою WHERE можна скористатися для фільтрації по всіх замовленнях або по середньому замовленню (після виконання обчислень по всій таблиці для визначення цього самого середнього замовлення). Ми поговоримо про обчислення докладніше в наступних темах.

СПРОБУЙТЕ – Фільтрація за розрахованими значеннями

Припустимо, нам потрібен був список замовлень, в яких сума замовленого товару перевищує 100 000 російських рублів.

1 Інформація про замовлені товари зберігається в таблиці Заказано.

2 Очевидно, вартість замовлення того чи іншого товару дорівнює добутку значень, записаних у полях Количество і Цена.

3 Тепер можна скласти запит, у якому критерієм умови буде перевищення добутку значень двох полів. Складемо й уведемо наступний запит:

SELECT КодЗаказа, Цена * Количество

FROM Заказано

WHERE Цена * Количество > 100000

4 Як бачимо, обчислюваний стовпець у результаті не має імені:


5 Привласнимо стовпцю ім’я [Сума товару], скориставшись ключовим словом AS і отримали результат:

i Зверніть увагу на наявність пробілу в імені поля, внаслідок чого його потрібно вписувати в квадратні дужки.

Як це працює

У процесі виконання цього запиту, по кожному рядку виконується обчислення повної вартості замовленого товару. Якщо результат обчислення перевищує 100 000, рядок додається в результат, інакше – відкидається.

Зверніть увагу, що обчислення виконуються по кожному рядку даних. Слід дотримуватися обережності із застосуванням подібних складних обчислень, що істотно сповільнюють обробку великих наборів даних. Якщо такі обчислення доводиться проводити над даними, які міняються рідко (приміром, дані про покупки), можна подумати над створенням таблиці для зберігання обчислених значень.

Common Errors

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

Помилка Повідомлення або причина
Неправильний результат Як правило, наслідок помилки в логіці. Перевірте ще раз правильність операторів і формул.






Дата добавления: 2014-12-06; просмотров: 550. Нарушение авторских прав; Мы поможем в написании вашей работы!



Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

Классификация потерь населения в очагах поражения в военное время Ядерное, химическое и бактериологическое (биологическое) оружие является оружием массового поражения...

Факторы, влияющие на степень электролитической диссоциации Степень диссоциации зависит от природы электролита и растворителя, концентрации раствора, температуры, присутствия одноименного иона и других факторов...

Йодометрия. Характеристика метода Метод йодометрии основан на ОВ-реакциях, связанных с превращением I2 в ионы I- и обратно...

Способы тактических действий при проведении специальных операций Специальные операции проводятся с применением следующих основных тактических способов действий: охрана...

Искусство подбора персонала. Как оценить человека за час Искусство подбора персонала. Как оценить человека за час...

Этапы творческого процесса в изобразительной деятельности По мнению многих авторов, возникновение творческого начала в детской художественной практике носит такой же поэтапный характер, как и процесс творчества у мастеров искусства...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия