Диапазоны и множества

Создадим таблицу для хранения информации о людях

CREATE TABLE people (man_id SERIAL PRIMARY KEY, man_name TEXT, man_age INTEGER);

Заполним созданную таблицу

INSERT INTO people (man_name, man_age) VALUES ('Maxim', 20);
INSERT INTO people (man_name, man_age) VALUES ('Ann', 18);
INSERT INTO people (man_name, man_age) VALUES ('Nina', 24);
INSERT INTO people (man_name, man_age) VALUES ('George', 19);
INSERT INTO people (man_name, man_age) VALUES ('Piter', 35);

Использование диапазона

Выведем информацию о людях, возраст которых находится на отрезке [ 18 , 20 ]

SELECT * FROM people WHERE man_age BETWEEN 18 AND 20;

Вывести информацию о людях, возраст которых НЕ входит в отрезок [ 18 , 20 ]

SELECT * FROM people WHERE man_age NOT BETWEEN 18 AND 20;

Использование множества

Вывести информацию о людях, у которых имя Максим или Георгий.

SELECT * FROM people WHERE man_name IN ('Maxim', 'George');

Аналогично работает данный запрос

SELECT * FROM people WHERE man_name = 'Maxim' OR man_name = 'George';

Первый вариант запроса работает быстрее.

Проверка на отсутствие в множестве

Вывести информацию о людях, у которых имя отлично от имён Максим и Георгий

SELECT * FROM people WHERE man_name NOT IN ('Maxim', 'George');

Last updated

Was this helpful?