русс | укр

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

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

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

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


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

Отбор строк (операция выборки)


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


Все разобранные выше примеры возвращали данные для каждой строки таблицы students (или marks). Такие большие выборки обычно требуются только при формировании отчетов, большинство других задач требует предварительного отбора строк таблицы, необходимых пользователю. Напомним, что строки в таблицах не нумеруются, поэтому такие операции, как «извлечь первую строку таблицы», стандартом не поддерживаются.

В качестве критерия для отбора строк таблицы можно задать любое логическое выражение, используя фразу WHERE. В процессе выполнения запроса быдет выполнен отбор только тех строк, для которых данное выражение принимает значение «истина». Таким образом, результатом операции выборки может быть произвольное число строк таблицы (от нуля до всех строк).

Например, запрос:

select * from students where cod_st=10

возвратит все данные о студенте, у которого личный код=10. Такой запрос гарантированно вернет не более одной строки (если студента с кодом 10 в таблице нет, то запрос не вернет ни одной строки, но вернуть, например, две строки он не сможет, т.к. личный код студента обладает свойством уникальности).

Условие отбора строк может включать следующие операции:

· операции сравнения < , > , <= , >= , !=(<>) , =

· операция проверки на отсутствие данных IS NULL

или их наличие IS NOT NULL

· логические операции: and, or, not

· операция вхождения значения в заданный диапазон значений

between начальное_значение and конечное_значение

· операция принадлежности значения заданному множеству

in (множество)

· операция соответствия заданному шаблону (для текстовых столбцов)

LIKE ‘шаблон’

В шаблоне для операции LIKE разрешено использовать два символа-заменителя:

· % заменяет последовательность из любого количества любых символов (в том числе и пустая последовательность)



· _ заменяет один любой символ в заданной позиции.

Например, пусть требуется выбрать фамилии и телефоны всех студентов, фамилия которых начинается на букву «С». Список отсортировать по фамилии. Текст запроса:

select namt_st, phone

from students

where name_st LIKE ‘С%’

ORDER BY 1

Если в приведенном запросе заменить шаблон на ‘%C%’, то такой запрос выберет всех студентов, у которых в фамилии есть хотя бы одна буква «С». Если шаблон заменить на ‘C_____’ (после буквы С стоит пять знаков подчеркивания), то будут выбраны студенты, фамилия которых начинается на букву С и содержит 6 символов.

При поиске по текстовым столбцам, в том числе по шаблону, обычно тонким моментом является чувствительность букв к регистру. Во многих СУБД заглавные и строчные буквы при поиске и сортировке не различаются, но, как правило, имеется возможность настройки чувствительности к регистру. В СУБД Oracle строчные и заглавные буквы в текстовых константах и шаблонах различаются, при сортировке также учитывается регистр букв.

Поэтому, например, при поиске студентов, в фамилии которых есть хотя бы одна буква С, в качестве условия отбора следует использовать

WHERE name_st LIKE ‘%C%’ OR name_st LIKE ‘%c%’

Следует помнить, что запросы с операцией LIKE обычно выполняются довольно медленно, особенно если символ % стоит в начале шаблона (к такому запросу невозможно подключить древовидный индекс для ускорения поиска). Однако при поиске в текстовых столбцах данная операция используется довольно часто. В Oracle версии 10 появилось и еще более мощное средство – поиск по регулярным выражениям, которое пока в стандарт языка SQL не вошло.

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

Пусть требуется выбрать все строки из таблицы оценок, в которых присутствуют оценки 3 или 4. Запрос простой, но может быть выполнен несколькими разными способами:

SELECT * FROM marks WHERE mark=3 OR mark=4

SELECT * FROM marks WHERE mark>2 AND mark<5

SELECT * FROM marks WHERE mark IN (3, 4)

SELECT * FROM marks WHERE mark BETWEEN 3 AND 4

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

Требуется выбрать такие строки из таблицы студентов, в которых отсутствует телефон студента.

SELECT * FROM students WHERE phone IS NULL

Обратим внимание, что запрос

SELECT * FROM students WHERE phone = NULL

возвратит неправильный ответ, но при этом не будет получено сообщения об ошибке.



<== предыдущая лекция | следующая лекция ==>
Сортировка результатов запроса | Создание вычисляемых столбцов (операция расширения)


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


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

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

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


 


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

 
 

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

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