ИСПОЛЬЗОВАНИЕ СООТНЕСЕННЫХ ПОДЗАПРОСОВ ДЛЯ НАХОЖДЕНИЯ ОШИБОК
Иногда полезно выполнять запросы которые разработаны специально так чтобы находить ошибки. Это всегда
возможно при
дефектной информации которую можно ввести в вашу базу данных, и, если она введена, бывает трудно ее определить.
Следующий запрос не должен производить никакого вывода. Он просматривает таблицу Порядков чтобы видеть совпадают
ли поля snum и cnum в каждой строке таблицы Заказчиков и выводит каждую строку где этого совпадения нет. Другими
словами, запрос выясняет, тот ли продавец кредитовал каждую продажу ( он воспринимает поле cnum, как первичный
ключ
таблицы Заказчиков, который не будет иметь никаких двойных значений в этой таблице ).
SELECT * FROM Orders main WHERE NOT snum = ( SELECT snum FROM Customers WHERE cnum = main.cnum );
При использовании механизма справочной целостности , вы можете быть гарантированы от некоторых ошибок такого
вида. Этот механизм
не всегда доступен, хотя его использование желательно во всех случаях, причем поиск ошибки запроса описанный
выше,
может быть еще полезнее.