Опубликован: 16.01.2007 | Доступ: свободный | Студентов: 9685 / 2435 | Оценка: 4.33 / 4.16 | Длительность: 10:11:00
Лекция 6:

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

< Лекция 5 || Лекция 6: 123456 || Лекция 7 >

Ограничение количества извлекаемых данных

Далее рассмотрим, как ограничить число записей, выводимых оператором SELECT.

По мере увеличения таблиц возникает необходимость вывода только подмножества данных. Этого можно добиться с помощью предложения LIMIT.

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

SELECT f_name, l_name from
employee_data LIMIT 5;

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

Имена первых пяти сотрудников

Рис. 6.8. Имена первых пяти сотрудников

Это первые пять записей таблицы.

Можно соединить оператор LIMIT с оператором ORDER BY. Таким образом, следующий оператор выведет четверых самых старых сотрудников компании.

SELECT f_name, l_name, age FROM
employee_data ORDER BY age LIMIT 4;

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

Четверо самых старых сотрудников компании

Рис. 6.9. Четверо самых старых сотрудников компании

Аналогично можно вывести двух самых молодых сотрудников.

SELECT f_name, l_name, 
 age from employee_data ORDER BY age LIMIT 2;

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

Двое самых молодых сотрудников

Рис. 6.10. Двое самых молодых сотрудников

Извлечение подмножеств

LIMIT можно использовать также для извлечения подмножества данных, используя дополнительные аргументы.

Общая форма оператора LIMIT имеет следующий вид:

SELECT (что-нибудь) from таблица LIMIT начальная строка, извлекаемое число записей;

SELECT f_name, l_name from
employee_data LIMIT 6,3;

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

Извлечение трёх строк начиная  с 6-й

Рис. 6.11. Извлечение трёх строк начиная с 6-й

Будут извлечены три строки, начиная с седьмой.

Задания

  1. Найдите имена 5 самых молодых сотрудников компании.
  2. Извлеките 5 записей, начиная с 10 строки.
  3. Выведите имя, фамилию и зарплату сотрудника, который получает самую большую зарплату.
  4. Что делает следующий оператор?
SELECT emp_id, age, perks
from employee_data ORDER BY
perks DESC LIMIT 10;

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

  1. mysql> SELECT f_name, l_name, age from
        -> employee_data ORDER BY age
        -> LIMIT 5;
  2. mysql> SELECT * from employee_data
        -> LIMIT 10, 5;
  3. mysql> select f_name, l_name, salary
        -> from employee_data
        -> ORDER BY salary DESC
        -> LIMIT 1;
  4. Этот оператор выводит идентификационный номер, возраст и надбавки 10 сотрудников, которые получают наибольшие надбавки.
    mysql> SELECT emp_id, age, perks
        -> from employee_data ORDER BY
        -> perks DESC LIMIT 10;
< Лекция 5 || Лекция 6: 123456 || Лекция 7 >
Александра Каева
Александра Каева
Диляра Кенжебай
Диляра Кенжебай