Страницы

Поиск по вопросам

вторник, 31 декабря 2019 г.

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

#sql


Пожалуйста, дайте порядок выполнения операторов sql запроса или дайте ссылку, где
прочитать об этом: что за чем выполняется. Например (с потолка):

SELECT
  t1.id AS id, t1.name AS name, count(*) AS cnt
FROM
  tbl_name1 t1
INNER JOIN
  tbl_name2 t2 ON t1.id = t2.id
WHERE
  t1.id > 10
GROUP BY
  t1.name
HAVING
  cnt > 10
ORDER BY
  t1.id


Сначала GROUP BY, потом? Последним ORDER BY... 
Нигде не могу найти нормальной информации об этом :((
    


Ответы

Ответ 1



Порядок выполнения предложений в операторе select

Ответ 2



Для SQL Server смотри ссылку. Логический порядок обработки инструкции SELECT: FROM ON JOIN where GROUP BY WITH CUBE или WITH ROLLUP HAVING SELECT DISTINCT ORDER BY TOP

Ответ 3



Порядок выполнения зависит от ситуации и определяется перед выполнением запроса. СУБД позволяют просмотреть план выполнения - это то, как именно СУБД решила выполнить запрос.

Ответ 4



SELECT [DISTINCT | DISTINCTROW | ALL] select_expression,... [FROM table_references] [WHERE where_definition] [GROUP BY {unsigned_integer | col_name | formula} [ASC | DESC], ...] [HAVING where_definition] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC], ...]

Комментариев нет:

Отправить комментарий