Программирование >>  Исключение дубликатов строк 

1 ... 37 38 39 [ 40 ] 41 42 43 ... 152


Customers

GuslCoiinly

CustStale

1001

Suzanne

Viescas

15127 NE 24th. #383

Redmond

King

1002

Thompson

122 Spring River Drive

Duval

King

1003

Gary

Haflmafk

Route 2< Box 2038

El Paso

£ Paso

1004

M ctiael

Davolio

672 Lamont Ave

Ivlarysvf e

1005

Kenneth

Peacock

4110 Old Redmoncf Rd,

Fremont

1006

John

Viescas

15127 NE 24th. 4383

Redmond

King

1007

Laura

Ca arian

901 Pjne Avenue

Washington

1008

Patterson

233 West Va ey Hvvy

Everett

Snohomish

Рис. 5.13. Обычная таблица Клиенты


Строка нулевой длины - две последовательные одиночные кавычки без пробела между ними ( ) - может при определенных обстоятельствах оказаться значащей. Например, в таблице Employee значение строки с нулевой длиной в столбце с именем Middlelnitial указывает, что у конкретного служащего отсутствует второе имя.

Значение Null исключительно полезно, когда используется для указанной цели, и таблица Customers на рис. 5.13 представляет собой явный пример. В столбце CustCounty каждое Null представляет собой пропущенное или неизвестное имя округа для строки, в которой оно появилось. Для корректного использования Nu необходимо понять в первую очередь, почему оно появляется.

Пропущенные значения обычно являются результатом ошибки человека. Рассмотрим, например, строку для Michael Davolio. Если при вводе данных для г-на Davolio вы не спросили у него название страны проживания, то эти данные будут рассматриваться как пропущенные и представляются в строке как Null. Когда ошибка будет обнаружена, ее можно исправить, уточнив у г-на Davolio название его страны.

Неизвестные значения появляются в таблице по множеству причин. Одна из них может быть в том, что необходимое для столбца конкретное значение все еще не определено. Допустим, имеется таблица Categories (Категории) в базе данных School Scheduling (Расписание занятий). В этой таблице отсутствует категория для нового курса лекций, который предполагается ввести начиная с осенней сессии. Другая причина, по которой в таблице могут содержаться неизвестные значения, состоит в том, что они действительно неизвестны. Воспользуемся еще раз таблицей Customers (Клиенты) на рис. 5.13 и рассмотрим строку для Kenneth Peacock. Предположим, что вводятся данные для г-на Peacock и вы запрашиваете у него название округа, в котором он живет. Если он не знает его названия, значение столбца для округа в его строке будет действительно неизвестным и представляется в этой строке как Null. Можно устранить проблему, как только название округа будет установлено.

Значение столбца также может быть Null, если ни одно из его значений неприменимо к конкретной строке. Предположим, вы работаете с таблицей Employee



(Сотрудники), которая содержит столбцы Salary (Зарплата) и HourlyRate (Почасовая ставка). Значение одного из этих столбцов всегда будет Null, поскольку невозможна одновременная оплата сотрудника как по фиксированной, так и по почасовой ставке.

Между понятиями не применяется и неприменимо существует очень незначительная разница. В предьщущем примере значение одного из столбцов действительно не применяется. Но предположим, что вы работаете с таблицей Patient (Пациенты), в которой имеется столбец HairColor (Цвет волос), и вы занимаетесь текущей корректировкой строки для пациента-мужчины. Если этот пациент лысый, то значение для указанного столбца определенно неприменимо к нему. Хотя и можно использовать значение Null для представления неприменимого значения, мы рекомендуем использовать истинное значение, например N/A (от Not Applicable - Неприменимо). При этом информация окажется намного понятнее спустя некоторое время.

Разрешать ли использование значения Null в таблице - зависит от способа использования данных. Рассмотрим теперь негативные последствия использования значений Nul.

Проблемы, свпзонные с использованием Null

Основной недостаток использования Null состоит в его неблагоприятном воздействии на математические операции. Любая операция с привлечением Null дает в результате Null. Логически это разумно: если число неизвестно, то результат операции неизбежно неизвестен. Обратите внимание, как Null изменяет результат операции в следующем примере:

(25 * (Null (25 * (25 *

3) + 4 = 79 * 3) + 4 = Null Null) + 4 = Null 3) + Null = Null

Такой же результат получается, когда в операции используются столбцы, содержащие значения Null. Предположим, что выполняется следующий оператор SELECT и возвращает набор результатов, представленный на рис. 5.14:

SELECT ProductID, ProductDescription, Price, QuantityOnHand, Price * QuantityOnHand AS Total Value

FROM Products

Category,

Операция, представленная столбцом TotalValue, завершается успешно в том случае, когда столбцы Price и QuantityOnHand являются допустимыми цифровыми значениями. Если Price либо QuantityOnHand содержат Null, то TotalValue будет содержать Null. Как только значения Null в Price и QuantityOnHand будут заменены действительными цифровыми значениями, TotalValue будет содержать соответствующее



Products

70001

Shur-Lok U-lock

Accessories

70002

SpeeaRlte Cydecomputer

65.00

1,300.00

7(Ю03

SteelHead Mtcroshe 1 Hefmet

Accessories

36,00

i.naoo

70004

SureStop 133-MB Brakes

Components

23,50

376.00

70005

Diablo ATM Mountain Bike

Bikes

1.200.00

7(Ю06

UitraVision Helmet Mount Mirrors

7.45

74.50

Рис. 5.14. Результат присутствия Null в математическом выражении

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

В главе 12 будет рассмотрено влияние значений Null на операторы SELECT, суммируюидие информацию.

Примеры опвротороА

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

Внимание! В последующих примерах этапы преобразования и уточнения объединены, чтобы вы научились делать это самостоятельно. Хотя все еще выполняются все три этапа, вам предоставляется возможность поработать с процессом объединения в примерах операторов.

Бозо донных зокозоб но зокупку

What is the inventory value of each product?

{ Какова стоимость запасов каоюдого товара? )

Преобразование/ Select tfte product name, retail price times * quantity Уточнение: on hand as InventoryValue from the products table

(Выбрать наименование продукта, розничную цену *

количество в наличии как InventoryValue из Товары )

SELECT ProductName,

Retail Price * QuantityOnHand

AS InventoryValue FROM Products



1 ... 37 38 39 [ 40 ] 41 42 43 ... 152

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика