Link Search Menu Expand Document
27 Июня 2023 г.

Порядок выполнения SELECT запроса в mysql

В каком же порядке выполняется sql запрос

# 1. Определение таблиц, секция FROM
SELECT * FROM `user`,`audit_kp` WHERE audit_kp.author_id = `user`.id

# 2. Объединение таблиц, секция JOIN
SELECT * FROM `user` JOIN audit_kp ON `user`.id = audit_kp.author_id # Результат с запросом выше идентичен                               

# 3. Условие WHERE
SELECT * FROM `user` WHERE `status` <> 10                 
SELECT * FROM `user` WHERE `status` != 10
SELECT * FROM `user` WHERE `status` = 10 AND departament = 5

# 4. Группировка строк GROUP BY
SELECT * FROM `user` WHERE `status` = 10 GROUP BY departament # Получим по одному представителю своего отдела

# 5. HAVING Уточнение выборки после GROUP BY
SELECT * FROM `user` WHERE `status` = 10 GROUP BY departament HAVING role = 3

# 6. Выбор столбцов и выполнение агрегатных функций в секции SELECT
SELECT COUNT(*),departament,username FROM `user` # Всего записей в таблице 
                                     
# 7. Сортировка столбцов ORDER BY
SELECT * FROM `user` ORDER BY id ASC
SELECT * FROM `user` ORDER BY id DESC
SELECT * FROM `user` ORDER BY username ASC, status DESC # Сортировка сразу по двум полям

# 8. LIMIT Ограничить количество выводимых строк
SELECT * FROM `user` LIMIT 10 # 10 первых строк
SELECT * FROM `user` LIMIT 10 OFFSET 10 # или SELECT * FROM `user` LIMIT 10,10

В итоге у нас получается порядок следующий

FROM
JOIN
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
LIMIT

Возник вопрос или предложение пиши на почту alexsey_89@bk.ru или в Телеграмм канал

Дата публикации: 27 Июня 2023 г.

Содержание


Наверх

Последнее изменение страницы: 27 Июня 2023 г.