Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Выборка данных с помощью условий



Теперь более подробно рассмотрим формат оператора SELECT. Его полный формат имеет вид:

SELECT имена_столбцов from имя_таблицы [WHERE ...условия];

В операторе SELECT условия являются необязательными.

Оператор SELECT без условий выводит все данные из указанных столбцов. Одним из достоинств RDBMS является возможность извлекать данные на основе определенных условий.

Теперь перейдём к рассмотрению операторов сравнения.

Операторы сравнения = и !=

SELECT f_name, l_name from employee_data where f_name = 'Иван';

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


Рис. 5.4. Выборка столбцов с условием для поля "имя".

Этот оператор выводит имена и фамилии всех сотрудников, которые имеют имя Иван. Отметим, что слово Иван в условии заключено в одиночные кавычки. Можно использовать также двойные кавычки. Кавычки являются обязательными, так как MySQL будет порождать ошибку при их отсутствии. Кроме того сравнения MySQL не различают регистр символов, что означает, что с равным успехом можно использовать "Иван", "иван" и даже "ИвАн".

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

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


Рис. 5.5. Выборка столбцов с условием для поля "должность"

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

SELECT f_name, l_name from employee_data where age = 32;

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


Рис. 5.6. Выборка столбцов с условием для поля "возраст"

Это список имен и фамилий всех сотрудников с возрастом 32 года. Вспомните, что тип столбца age был задан как int, поэтому кавычки вокруг 32 не требуются. Это - незначительное различие между текстовым и целочисленным типами столбцов.

Оператор != означает 'не равно' и является противоположным оператору равенства.

Операторы больше и меньше

Давайте получим имена и фамилии всех сотрудников, которые старше 32 лет.

SELECT f_name, l_name from employee_data where age > 32;

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


Рис. 5.7. Выборка столбцов с условием "больше" для поля "возраст"

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

SELECT f_name, l_name from employee_data where salary > 120000;

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


Рис. 5.8. Выборка столбцов с условием "больше" для поля "зарплата"

Теперь перечислим всех сотрудников, которые имеют стаж работы в компании менее 3 лет.

SELECT f_name, l_name from employee_data where yos < 3;

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


Рис. 5.9. Выборка столбцов с условием "меньше" для поля "стаж"

Операторы <= и >=

Используемые в основном с целочисленными данными операторы меньше или равно (<=) и больше или равно (>=) обеспечивают дополнительные возможности.

select f_name, l_name, age, salaryfrom employee_data where age >= 32;

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


Рис. 5.10. Выборка столбцов с условием "больше или равно" для поля "возраст"

Выборка содержит имена, возраст и зарплаты сотрудников, которым больше 32 лет.

select f_name, l_name from employee_data where yos <= 2;

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


Рис. 5.11. Выборка столбцов с условием "меньше или равно" для поля "стаж"

Запрос выводит имена сотрудников, которые работают в компании меньше 3 лет.

Задания

1. Напишите оператор SELECT для извлечения идентификационного номера сотрудников, которые старше 30 лет.

2. Напишите оператор SELECT для извлечения имен и фамилий всех Web-разработчиков.

3. Что выведет следующий оператор SELECT:

SELECT * from employee_data where salary <=100000;

4. Как вывести зарплаты и надбавки сотрудников, которые получают в качестве надбавок более 16000?

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

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

1. select emp_id from employee_data where age > 30;

2. select f_name, l_name from employee_data where title='web designer';

3. Следующий оператор выводит всю информацию о сотрудниках, которые получают зарплату не больше 100000.

SELECT * from employee_data where salary <=100000;

4. select salary, perks from employee_data where perks >= 16000;

5. select l_name, f_name from employee_data where title = 'бухгалтер';







Читайте также:

Последнее изменение этой страницы: 2016-03-17; Просмотров: 106; Нарушение авторского права страницы


lektsia.com 2007 - 2017 год. Все права принадлежат их авторам! (0.006 с.) Главная | Обратная связь