Я играл с SQL-запросами, и мне пришло в голову - select x,y from table T
.
Здесь x и y могут быть арифметическими выражениями, такими как 2.0 / 5.0 ИЛИ 1 + 2, результат имеет количество строк таблицы T, причем первый столбец имеет значение 2.0 / 5.0, то есть 0.444444, а второй столбец имеет значение 3.
Мне любопытно узнать, как выполняется этот запрос. Я узнал, что в обработчике SQL-запросов происходит сопоставление SQL-представления запроса с внутренним представлением (например, реляционной алгеброй), которое затем оптимизируется для получения оптимального плана выполнения запроса.
Пожалуйста, исправьте мое понимание, если оно неверно - для запроса, который я указал, будет внутреннее отображение из моего запроса Q во внутреннее представление, которое эквивалентно представлению select * from table T
. Затем для всех возвращаемых строк проецируется n чисел столбцов, где n - количество арифметических выражений, указанных в Q. И все строки для n столбцов будут иметь свои соответствующие оценки арифметических выражений.
ура