русс | укр

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

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

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

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


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

Уточнения запросов


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


Цель работы: Научиться создавать запросы с условием, в т.ч. с использованием логических операторов, сортировать данные по возрастанию и убыванию.

Ключевые слова:операторы WHERE, GROUP BY, ORDER BY, HAVING ,IN, BETWEEN, LIKE, is NULL.

Теоретический материал:

Использование в операторе SELECT предложения, определяемого ключевым словом WHERE (где), позволяет задавать выражение условия (предикат), принимающее значение истина или ложь для значений полей строк таблиц, к которым обращается оператор SELECT. Предложение WHERE определяет, какие строки указанных таблиц должны быть выбраны. В таблицу, являющуюся результатом запроса, включаются только те строки, для которых условие (предикат), указанное в предложении WHERE, принимает значение истина.

В задаваемых в предложении WHERE условиях могут использоваться операции сравнения, определяемые операторами = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно), <> (не равно), а также логические операторы AND, OR и NOT.

 

Пример 1. Выбрать студентов 3 группы.

SELECT * FROM DANNIE WHERE KOD_GRUPPY=3

 

Пример 2. Вывести родителей, работающих водителями и поварами.

SELECT FIO_ROD FROM RODITELI WHERE RABOTA=’ВОДИТЕЛЬ’ OR RABOTA=’ПОВАР’

 

Оператор GROUP BY (группировать по) служит для группировки записей по значениям одного или нескольких столбцов. Он собирает записи в группы и упорядочивает группы по алфавиту (точнее по ASCII- кодам символов).

 

Пример 3. Вывести родителей студентов сгруппированных по месту работы.

SELECT RABOTA, FIO_ROD FROM RODITELI GROUP BY RABOTA

Оператор HAVING (имеющие, при условии) обычно применяются совместно с оператором группировки GROUP BY и задает фильтр записей в группах

 

Пример 4. Вывести родителей студентов сгруппированных по месту работы, если они водители или учителя.



SELECT RABOTA, FIO_ROD FROM RODITELI GROUP BY RABOTA HAVING (RABOTA=‘ВОДИТЕЛЬ’) OR (RABOTA=’УЧИТЕЛЬ’)

 

При задании логического условия в предложении WHERE могут быть использованы операторы IN, BETWEEN, LIKE, IS NULL.

Операторы IN (равен любому из списка) и NOT IN (не равен ни одному из списка) используются для сравнения проверяемого значения поля с заданным списком. Этот список значений указывается в скобках справа от оператора IN.

Построенный с использованием IN предикат (условие) считается истинным, если значение поля, имя которого указано слева от IN, совпадает (подразумевается точное совпадение) с одним из значений, перечисленных в списке, указанном в скобках справа от IN.

Предикат, построенный с использованием NOT IN, считается истинным, если значение поля, имя которого указано слева от NOT IN, не совпадает ни с одним из значений, перечисленных в списке, указанном в скобках справа от NOT IN.

 

Пример 5. Вывести родителей, работающих водителями и поварами.

SELECT FIO_ROD FROM RODITELI WHERE RABOTA IN (‘ВОДИТЕЛЬ’, ’ПОВАР’)

 

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

SELECT FIO_ROD FROM RODITELI WHERE RABOTA NOT IN (‘УЧИТЕЛЬ’, ’ВРАЧ’)

 

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

 

Пример 7. Вывести информацию о родителях с кодом от 2 до 9:

SELECT * FROM RODITELI WHERE KOD_RODITEL BETWEEN 2 AND 10;

 

Левая граница (в данном случае 2) входитво множество значений, с которыми производится сравнение, правая граница (в данном случае 10) не входит. Оператор BETWEEN может использоваться как для числовых, так и для символьных типов полей.

 

Пример 8. Вывести фамилии родителей, заглавные буквы которых находятся в диапозоне от А до И.

SELECT * FROM RODITELI WHERE FAM BETWEEN ‘А’ AND ‘К’;

Оператор LIKE(поиск значений, удовлетворяющих образцу) просматривает строковые значения полей с целью определения, входит ли заданная в операторе LIKE подстрока (образец поиска) в символьную строку-значение проверяемого поля.

Для выборки строковых значений по заданному образцу подстроки можно применять шаблон искомого образца строки, использующий следующие символы:

• символ подчеркивания «_», указанный в шаблоне, определяет возможность наличия в указанном месте одного любогосимвола;

• символ «%» допускает присутствие в указанном месте проверяемой строки последовательности любых символов произвольной длины.

Этот оператор применим только к символьным полям типа CHAR или VARCHAR.

Пример 9. Выбрать сведения о родителях, фамилии которых начинаются на букву «П».

SELECT * FROM RODITELI WHERE FAM LIKE 'П%'

Оператор IS NULLвыводит строки, содержащие значение NULL в проверяемом поле.

 

Пример 10. Выбрать записи, содержащие пустые значения в данных о работе родителей.

SELECT * FROM RODITELI WHERE RABOTA IS NULL;

 

Для сортировки в SQL существует ключевое слово ORDER BY, после которого указывается имя столбца, по которому будет происходить сортировка. Команда имеет следующий синтаксис:

SELECT <поля> FROM <таблица> ORDER BY <поле>

 

После ORDER BY <поле> можно указать направление сортировки. По умолчанию записи сортируются по возрастанию (ASC), ключевое слово DESC задает сортировку в порядке, обратном алфавитному.

 

Пример 11. Отсортировать фамилии родителей в алфавитном порядке.

SELECT FIO_ROD FROM RODITELI ORDER BY FIO_ROD

 

Пример 12. Отсортировать место работы родителей в порядке, обратном алфавитному.

SELECT RABOTA FROM RODITELI ORDER BY RABOTA DESC

 

Сортировку можно производить сразу по нескольким столбцам. В этом случае сортировка идет сначала по первому полю в указанном направлении, а если в этом столбце есть одинаковые значения, то они будут отсортированы по второму полю.

 

Пример 13. Отсортировать место работы родителей в алфавитном порядке, а фамилии в порядке, обратном алфавитному.

SELECT FIO_ROD , RABOTA FROM RODITELI ORDER BY FIO_ROD, FIO_ROD DESC;

 

Задания:

1. Вывести фамилии студентов, обучающихся в группе с кодом 3.

2. Вывести название региона с кодом 1.

3. Вывести фамилию преподавателя с кодом 2.

4. Вывести информацию о студентах, обучающихся в группах с кодами 1 и 2.

5. Вывести названия дисциплин с кодами 2 и 3.

6. Вывести имена студентов, заглавные буквы которых находятся в диапазоне от «В» до «М».

7. Вывести данные о студентах, фамилии которых начинаются на букву «М».

8. Выбрать записи, содержащие пустые значения о номере квартире студентов (проживающих в доме).

9. Отсортировать фамилии студентов в алфавитном порядке.

10. Вывести данные о студентах, отсортировав номера телефонов по возрастанию.

11. Отсортировать студентов по номеру группы в порядке возрастания, а для одинаковых групп - фамилии в порядке, обратном алфавитному.

12. Выбрать студентов, фамилии которых заканчиваются на «а».

13. Отсортировать в порядке возрастания фамилии студентов, чьи отчества заканчиваются на «ич».

14. Отсортировать в порядке возрастания фамилии студентов, обучающихся в группе 3.

15. Вывести студентов, родившихся в 1990 году.

16. Отсортировать в алфавитном порядке фамилии студентов, у которых начальные буквы имени заключены в диапазоне от «И» до «Я».

17. Вывести данные о студентах с фамилиями «Петров», «Смелов».

18. Вывести в порядке, обратном алфавитному, все имена и фамилии студентов, родившихся не в 1991 году.

19. Вывести информацию о всех студентах, кроме Варечкина и Климовой.

20. Выбрать студентов, у которых номера телефонов связи МТС и начинаются с 3.

21. Сгруппировать список улиц по коду города.

22. Сгруппировать данные о студентах по дате рождения.

23. Вывести по группам коды городов для улиц Ставропольская и Комсомольская.

24. Сгруппировать по улицам данные о студентах, обучающихся в группе с кодом 1.

25. Отсортировать в алфавитном порядке фамилии студентов, у которых в отчестве встречается «..ев..».

 



<== предыдущая лекция | следующая лекция ==>
Выборка данных - оператор SELECT | Лабораторная работа №4


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


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

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

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


 


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

 
 

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

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