VR
Virtual Reality On-line   Журнал
Новости   |     Журнал    |    Хаkер    |     Магазин   |   Проекты
[   Вход    ]
[Kарта сайтa]

[ Download  ]
[  Конкурс  ]
[ Анекдоты  ]
[  Ссылки   ]
[  Реклама  ]
[ Почтальон ]
[ О проекте ]






TopList
Язык запросов SQL
Занятие третье
:

Продолжаем изучать язык запросов SQL. На прошлом занятии мы покончили с булевыми операторами. Сегодня мы познакомимся ещё с несколькими операторами, упрощающими и усиливающими поиск необходимой информации. Сегодня это будут операторы IN, BETWEEN, IS NULL. А также , мы познакомимся с шаблонами.

Начну я с оператора IN. В принципе, можно создавать запросы и без него, но он упрощает SQL код и делает его более наглядным. Сразу рассмотрим пример:

SELECT *
FROM User
WHERE Сountry LIKE "USA" or Сountry LIKE "RUSSIA" or
      Сountry LIKE "GERMANY";

Этот запрос вполне работающий, но представь, что тебе так надо перечислить 20 или более стран. В этом случае запрос раздуется как земной шар. Вот как этот же запрос будет выглядеть с оператором IN.

SELECT *
FROM User
WHERE Сountry IN ("USA", "RUSSIA", "GERMANY");

Намного проще и меньше места. Если внимательно осмотреть два предыдущих запроса, то можно и без моих объяснений понять, что делает оператор IN. В данном случае он выведет все записи, в которых Counrty имеет одно из значений указанных в скобках.

Если используется числовое поле, то кавычки надо убрать:

SELECT *
FROM User
WHERE LecNumber IN (1, 2, 3)

В этом случае мы увидим все записи, где поле LecNumber равно 1 или 2 или 3. Вместе с оператором IN и со всеми последующими операторами ты можешь смело использовать булевы операторы, например:

SELECT *
FROM User
WHERE LecNumber NOT IN (1, 2, 3)

Теперь перейдём к рассмотрению оператора BETWEEN. Он также нужен только для удобства и вы можете спокойно обойтись без него. Снова перейдём к примеру. Допустим, что надо вывести все строки, где поле LecNumber больше либо равно 1 и меньше либо равно 5. Этот запрос будет выглядеть так:

SELECT *
FROM User
WHERE LecNumber >= 1 AND LecNumber <= 5

С оператором BETWEEN та же запись будет выглядеть так:

SELECT *
FROM User
WHERE LecNumber BETWEEN 1 AND 5

Как ты уже понял, этот оператор задаёт диапазон чисел. Ты должен помнить, что конечные точки включаются в результат запроса.

Этот оператор можно использовать и с строковыми полями:

SELECT *
FROM User
WHERE Сountry BETWEEN "A" AND "R";

В результат этого запроса войдут такие страны как GERMANY, AUSTRY, но не войдёт RUSSIA. Почему? Да потому что "GERMANY" меньше чем "R", а "RUSSIA" больше, потому что в слове "Russia" больше букв.

Оператор IS NULL означает нулевое значение. Сразу отмечу, что нулевое значение не равно 0 или "" (пустой строке). Ноль - это ноль, то есть не заполненное значение. В принципе, этот оператор прост, да и не очень важен, потому что ты очень редко будешь с ним работать. Поэтому я просто приведу пример и мы пойдём дальше:

SELECT *
FROM User
WHERE Сountry IS NULL;

Теперь рассмотрим ещё два оператора - % (процент) и _ (подчёркивание). Точнее сказать это не операторы, это управляющие символы используемые в шаблонах. Короче, ты их будешь использовать вместе с оператором LIKE. Представь, что тебе нужно вывести все записи, которые в поле Country содержат значение начинающееся на "R". Твой запрос будет выглядеть так:

SELECT *
FROM User
WHERE Сountry LIKE "R%";

Значок % (процент) означает любое количество символов, т.е. в результат войдут все слова начинающиеся на R и содержащие потом любое количество любых символов. Рассмотрим ещё пример: "А%С". В результат такого шаблона войдут слова: ананас, атас и другие, главное, чтобы они начинались на "А" и заканчивались на "С".

Теперь познакомимся с _ (подчёркивание) - оно означает один любой символ. Если % означал любое количество символов, то _ означает только один. Рассмотрим пример: "Т_К". В результат такого шаблона войдут слова: ТОК, ТУК, ТИК, но не войдёт ТУПИК и другие слова, содержащие между буквами Т и К больше чем одну букву.

Этот символ очень удобен, особенно для тех, кто прекрасно знает русский язык. Представь, что тебе надо найти слово "корова", а ты не знаешь, как писать "корова" или "карова". В этом случае просто пиши "к_рова" и ты не ошибёшься. Или вообще "к_р%". Красиво? А в принципе, это то же самое. Вот если бы в школе диктанты можно было бы так писать :).

На сегодня всё. Занятие получилось маленьким, но удаленьким. Удачи тебе.


Design by FMk group ©
Copyright©: Horrific aka Флёнов Михаил ©