русс | укр

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

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

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

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


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

Проверка на пустое значение


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


Если столбцы ваших таблиц, входящих в условие поиска могут иметь пустое значение, то вам следует проявлять бдительность, задавая проверку их значений на NULL. Всегда следует перед выполнением "нормальных" проверок уточнить, не является ли значение пустым. Мы можем использовать два варианта:

<значение> IS NULL

и

<значение> IS NOT NULL

Еще раз повторю, это действительно может стать источником больших ошибок — перед обычной, нормальной, проверкой проверяйте значения на NULL.

Поиск в строковых столбцах

Для строковых значений используются варианты LIKE, CONTAINING и STARTING WITH. Напомню синтаксис:

...

| <значение> [NOT] LIKE <значение>

| <значение> [NOT] CONTAINING <значение>

| <значение> [NOT] STARTING [WITH] <значение>

...

Вариант LIKE

В варианте LIKE строковое значение должно содержать указанные символы.

В этом варианте можно использовать шаблонные символы: процент (%) означает любое, в том числе и нулевое количество любых символов, знак подчеркивания (_) означает ровно один любой символ. LIKE является чувствительным к регистру, т. е. различает строчные и прописные буквы. На самом деле это неприятное ограничение можно очень легко и безболезненно обойти, применяя для имени столбца, используемого в выражении, функцию UPPER, которая возвращает все буквенные данные в верхнем регистре в любом, допустимом для набора используемых символов, алфавите.

Выберем строки из таблицы PERSON, введя условие, по которому фамилия должна заканчиваться на "ОВ". Для этого перед буквами "ОВ" используем шаблонный символ %.[19]

SELECT PR_NAME2AS "Имя",

PR_NAME3AS"Отчество",

PR_NAMEAS"Фамилия"

FROM PERSON

WHERE PR_NAMELIKE'%ов'

Листинг 12. Выборка людей в варианте LIKE '%в'



Имя Отчество Фамилия
Максим Владимирович Бычков
Олег Владимирович Лядов
Евгений Андреевнич Болотов
Олег Сергеевич Феофилактов
Явар Гейдар Джафаров
Александр Михайлович Жданов
Алексей Викторович Лобанов
Сергей Анатольевич Лубов
Алексей Олегович Львов
Станислав Витальевич Приданников
Сергей Анатольевич Ременников
Эдуард Владимирович Седов
Олег Николаевич Фролов
Александр Александрович Чудинов
Николай Викторович Шатров
Руслан Рафаилович Амерзянов
Константин Игоревич Баталов
Сергей Валерьевич Бутаков
Василий Александрович Глазов
Дмитрий Федорович Глумов
Михаил Валерьевич Ермаков
Максим Владимирович Захаров
Илья Борисович Карманов
Владимир Николаевич Карпов
Вячеслав Валерьевич Красногоров
Станислав Евгеньевич Кузнецов
Олег Александрович Куликов
Максим Николаевич Кучеров
Владимир Николаевич Лобанов
Дмитрий Алексеевич Назаров
Дмитрий Аресентьевич Наумов
Эдуард Булатович Нигаметзянов
Алексей Викторович Спешков
Петр Сергеевич Теплоухов

Расширим условие поиска, выполним:[20]

SELECT PR_NAME2AS"Имя",

PR_NAME3AS"Отчество",

PR_NAMEAS"Фамилия"

FROM PERSON

WHERE UPPER(PR_NAME) LIKE'%ов%'

Мы добавили еще знак процента в условие: LIKE '%ов%'. То есть не только до, но и после символов "ов" может располагаться любое, в том числе и нулевое, количество любых символов. Теперь мы также получаем и женские фамилии.

Поскольку вариант LIKE является чувствительным к регистру, у вас, казалось бы, должны быть сложности при поиске данных, если вы не следовали моим мудрым советам и не вводили подобные строки в верхнем регистре. На самом деле ничего особенно страшного не произойдет. Даже если данные у вас введены вперемежку и прописными, и строчными буквами, вы можете использовать функцию UPPER, которая переведет все буквы строки в верхний регистр. Повторю — это относится только к символам алфавита, поддерживаемого вашим набором символов для этого столбца. Предыдущий запрос можно записать следующим образом: [21]

SELECT PR_NAME2AS "Имя",

PR_NAME3AS"Отчество",

PR_NAMEAS"Фамилия"

FROM PERSON

WHERE UPPER(PR_NAME) LIKE'%ов%'

 

Теперь покажем как воспользоваться знаком подчеркивания (_) . Найдем всех людей у которых “ов” начинается со второго символа:[22]

SELECT PR_NAME2AS"Имя",

PR_NAME3AS"Отчество",

PR_NAMEAS"Фамилия"

FROM PERSON

WHERE UPPER(PR_NAME) LIKE ‘_ов%'

В результате получим

Листинг 13. Список людей, у которых в фамилии после первого символа следует 'ов' (выборка в варианте LIKE '_ов%')

Имя Отчество Фамилия
Вера Валерьевна Новикова
Марина Рафаиловна Новикова
Ольга Викторовна Новосёлова


<== предыдущая лекция | следующая лекция ==>
ЗАМЕЧАНИЕ | Использование логических операций в условиях поиска


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


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

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

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


 


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

 
 

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

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