Шаг 5 - SELECT: углублённое изучение

Простой вывод и устранение дубликатов (DISTINCT)

Выбор конкретных столбцов:

SELECT emp_no, last_name
FROM employees
LIMIT 5;

Результат:

emp_no

last_name

10001

Facello

10002

Simmel

10003

Bamford

10004

Koblick

10005

Maliniak

Устранение дубликатов с DISTINCT:

В таблице salaries много записей для каждого сотрудника. Для получения уникальных ID:

SELECT DISTINCT emp_no
FROM salaries
LIMIT 5;

Результат:

emp_no

10001

10002

10003

10004

10005

Особенности DISTINCT: - Применяется ко всем выбираемым столбцам - Сохраняет строки, где хотя бы одно значение отличается - ALL (противоположность DISTINCT) используется редко

Условия выборки (WHERE)

Фильтрация по строковому полю:

SELECT emp_no, dept_no, from_date, to_date
FROM dept_emp
WHERE dept_no = 'd001'
LIMIT 3;

Результат:

emp_no

dept_no

from_date

to_date

10017

d001

1993-08-03

2000-08-03

10049

d001

1992-05-05

2000-05-05

10060

d001

1994-02-23

1997-01-31

Фильтрация по числовому полю:

SELECT DISTINCT emp_no
FROM salaries
WHERE salary > 60000
LIMIT 5;

Результат:

emp_no

10001

10002

10004

10005

10006

Особенности MySQL:

  1. Чувствительность к регистру (зависит от collation):

SELECT * FROM employees WHERE last_name = 'facello'; -- Может не сработать
SELECT * FROM employees WHERE last_name COLLATE utf8mb4_general_ci = 'facello'; -- Регистронезависимо