Опубликован: 16.01.2007 | Уровень: для всех | Доступ: платный
Лекция 6:

Логические операторы

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Аннотация: В лекции рассматриваются логические операторы и способы их применения в MySql. Также рассматриваются способы упорядочивания данных, способы ограничения извлекаемых данных и команды обновления записей.

В этой лекции мы рассмотрим, как выбрать данные на основе условий SQL, представленных с помощью булевых (логических) операторов.

  1. AND
  2. OR
  3. NOT

Использовать их очень просто. Ниже показан оператор SELECT, который выводит имена сотрудников, которые получают более 70000, но меньше 90000.

SELECT f_name, l_name from employee_data
where salary > 70000 AND salary < 90000;

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

Имена сотрудников, которые получают более 70000, но меньше 90000

Рис. 6.1. Имена сотрудников, которые получают более 70000, но меньше 90000

Давайте выведем список сотрудников, фамилии которых начинаются с буквы К или Л.

SELECT l_name from employee_data where
l_name like 'К%' OR l_name like 'Л%';

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

Сотрудники, фамилии которых начинаются с буквы К или Л

Рис. 6.2. Сотрудники, фамилии которых начинаются с буквы К или Л

Вот более сложный пример: список имен и возраста сотрудников, фамилии которых не начинаются с К или Л, и которые младше 30 лет.

SELECT f_name, l_name , age from employee_data
where (l_name not like 'К%' OR l_name not like 'Л%') AND age < 30;

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

Список имен и возраста сотрудников, фамилии которых не начинаются с К или Л, и которые младше 30 лет

Рис. 6.3. Список имен и возраста сотрудников, фамилии которых не начинаются с К или Л, и которые младше 30 лет

Обратите внимание на использование скобок в представленном выше операторе. Скобки предназначены для выделения различных логических условий и удаления двусмысленностей.

Оператор NOT поможет при поиске всех сотрудников, которые не являются программистами. (Программисты включают старших программистов, программистов мультимедиа и программистов).

SELECT f_name, l_name, title from employee_data
where title NOT LIKE "%программист%";

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

Поиск всех сотрудников, которые не являются программистами

Рис. 6.4. Поиск всех сотрудников, которые не являются программистами

И последний пример перед упражнениями.

Показать всех сотрудников со стажем работы в компании более 3 лет, которые старше 30 лет.

select f_name, l_name from employee_data
where yos > 3 AND age > 30;

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

Все сотрудники, которые старше 30 лет, и имеют стаж работы более 3 лет

Рис. 6.5. Все сотрудники, которые старше 30 лет, и имеют стаж работы более 3 лет

Задания

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

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

SELECT l_name, f_name from employee_data
where title NOT LIKE '%продавец%'
AND age < 30;

3. Вывести все идентификационные номера и имена сотрудников в возрасте между 32 и 40 годами.

4. Выберите имена всех сотрудников в возрасте 32 лет, которые не являются программистами.

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

  1. mysql> select f_name, l_name from employee_data
      -> where salary <= 90000
      -> AND title NOT LIKE '%программист%';
  2. Команда выводит имена (фамилию, за которой следует имя) сотрудников, которые не работают в отделе продаж и моложе 30 лет.
    mysql> SELECT l_name, f_name from employee_data
        -> where title NOT LIKE '%продавец%'
        -> AND age < 30;
  3. mysql> select emp_id, f_name, l_name from
     -> employee_data where age > 32
     -> and age < 40;
  4. mysql> select f_name, l_name from employee_data
     -> where age = 32 AND
     -> title NOT LIKE '%программист%';
< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Александра Каева
Александра Каева
Диляра Кенжебай
Диляра Кенжебай
Анатолий Федоров
Анатолий Федоров
Россия, Москва, Московский государственный университет им. М. В. Ломоносова, 1989
Олег Волков
Олег Волков
Россия, Балаково, МБОУ СОШ 19