Мегаобучалка Главная | О нас | Обратная связь


Операторы IN и BETWEEN



2019-12-29 208 Обсуждений (0)
Операторы IN и BETWEEN 0.00 из 5.00 0 оценок




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

SELECT f_name, l_name, title from

-> employee_data where

-> title = 'разработчик Web' OR

-> title = 'системный адм.';

На рис. 6.6. приведен результат запроса.

 

Рис. 6.6. Поиск сотрудников, которые являются разработчиками Web или системными администраторами

В SQL имеется более простой способ сделать это с помощью оператора IN (в множестве). Его использование не представляет никаких трудностей.

SELECT f_name, l_name, title from

-> employee_data where title

-> IN ('разработчик Web', 'системный адм.');

Результат будет аналогичен рис. 6.6.

Использование NOT перед IN позволяет вывести данные, которые не входят в множество, определяемое условием IN. Следующий оператор выводит список сотрудников, которые не занимают должность программиста или системного администратора.

SELECT f_name, l_name, title from

-> employee_data where title NOT IN

-> ('программист', 'системный адм.');

Оператор BETWEEN используется для определения целочисленных границ. Поэтому вместо age >= 32 AND age <= 40 можно использовать age BETWEEN 32 AND 40.

select f_name, l_name, age from

-> employee_data where age BETWEEN

-> 32 AND 40;

На рис. 6.7. приведен результат запроса.

 

Рис. 6.7. Поиск сотрудников, возраст которых лежит в промежутке от 32-х до 40 лет

NOT также можно использовать вместе с BETWEEN, как в следующем операторе, который выводит сотрудников, зарплата которых меньше 90000 или больше 150000.

select f_name, l_name, salary

-> from employee_data where salary

-> NOT BETWEEN

-> 90000 AND 150000;

Задания

1. Найдите всех сотрудников, которые занимают должность "старший программист" и "программист мультимедиа".

2. Выведите список имен сотрудников, зарплата которых составляет от 70000 до 90000.

3. Что делает следующий оператор?

SELECT f_name, l_name, title from

employee_data where title NOT IN

('программист', 'старший программист',

'программист мультимедиа');

4. Вот более сложный оператор, который объединяет BETWEEN и IN. Что он делает?

SELECT f_name, l_name, title, age

from employee_data where

title NOT IN

('программист', 'старший программист',

'программист мультимедиа') AND age

NOT BETWEEN 28 and 32;

Возможные решения

1. mysql> select l_name, f_name, title

2.  -> from employee_data where

3.  -> title IN

4.  -> ('старший программист',

5.  -> 'программист мультимедиа');

6. 2. mysql> select f_name, l_name, salary from

7.     -> employee_data where salary BETWEEN

8.     -> 70000 AND 90000;

  1. Выводятся имена и должности всех, кто не является программистом.

10.mysql> SELECT f_name, l_name, title from

11. -> employee_data where title NOT IN

12. -> ('программист', 'старший программист',

-> 'программист мультимедиа');

  1. Этот оператор выводит список тех, кто не является программистом, и которые младше 28 или старше 32 лет.

14.mysql> SELECT f_name, l_name, title, age from

15. -> employee_data where title NOT IN

16. -> ('программист', 'старший программист',

17. -> 'программист мультимедиа') AND

-> age NOT BETWEEN 28 AND 32;

Упорядочивание данных

Рассмотрим вопрос о том, как можно изменить порядок вывода данных, извлеченных из таблиц MySQL, используя предложение ORDER BY оператора SELECT.

Извлекаемые до сих пор данные всегда выводились в том порядке, в котором они были сохранены в таблице. В действительности SQL позволяет сортировать извлеченные данные с помощью предложения ORDER BY. Это предложение требует имя столбца, на основе которого будут сортироваться данные. Давайте посмотрим, как можно вывести имена сотрудников с упорядоченными по алфавиту фамилиями сотрудников (в возрастающем порядке).

SELECT l_name, f_name from

employee_data ORDER BY l_name;

А вот так сотрудников можно отсортировать по возрасту.

SELECT f_name, l_name, age

from employee_data

ORDER BY age;

Предложение ORDER BY может сортировать в возрастающем порядке ( ASCENDING или ASC ) или в убывающем порядке ( DESCENDING или DESC ) в зависимости от указанного аргумента.

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

SELECT f_name from employee_data

ORDER by f_name DESC;

Примечание: Возрастающий порядок ( ASC ) используется по умолчанию.

Задания

1. Вывести список сотрудников в порядке, определяемом зарплатой, которую они получают.

2. Выведите список сотрудников в убывающем порядке их стажа работы в компании.

3. Что делает следующий оператор?

SELECT emp_id, l_name, title, age

from employee_data ORDER BY

title DESC, age ASC;

4. Вывести список сотрудников (фамилию и имя), которые занимают должность "программист" или "разработчик Web" и отсортировать их фамилии по алфавиту.

Возможные решения

1. mysql> SELECT f_name, l_name, salary

2.     -> from employee_data

3.     -> ORDER BY salary;

4. mysql> SELECT f_name, l_name, yos

5.     -> from employee_data

6.     -> ORDER by yos DESC;

  1. Оператор выводит список сотрудников с идентификационным номером, должностью, и возрастом, отсортированный по должности в убывающем порядке и по возрасту в возрастающем порядке.

8. mysql> SELECT emp_id, l_name, title, age

9.     -> from employee_data ORDER BY

-> title DESC, age ASC;

Примечание: Сначала сортируются должности в убывающем порядке. Затем для каждой должности сортируется возраст сотрудников в возрастающем порядке.

10.mysql> SELECT l_name, f_name from employee_data

11. -> where title IN ('программист',

12. -> 'разработчик Web') ORDER BY l_name;



2019-12-29 208 Обсуждений (0)
Операторы IN и BETWEEN 0.00 из 5.00 0 оценок









Обсуждение в статье: Операторы IN и BETWEEN

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

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



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (208)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.005 сек.)