- •II) Вопросы по языку sql
- •Как можно специфицировать вывод всех столбцов таблицы?
- •Зачем необходимы алиасы имена столбцов? Как это делается?
- •Содержит ли результат запроса повторяющиеся строки? Как можно удалить повторяющиеся строки?
- •Зачем нужны алиасы столбцов? Как они задаются?
- •Зачем нужна квалификация столбцов именами таблиц?
- •Что такое внешнее соединение? Сформулируйте и запишите запрос с внешним соединением.
- •Как можно соединить две или более таблицы?
- •Что собой представляет значение выражения, содержащего значение null? Как проверить, что значение столбца равно null.
- •Назначение оператора like. Примеры
- •Назначение операторов in и between. Примеры.
- •Агрегатные функции. Какая область действия агрегатных функций при наличии и отсутствии фразы group by. Примеры.
- •Назначение фраз group by и having
- •Что можно использовать во фразе select при наличии и отсутствии фразы group by?
- •Что такое независимые и связанные подзапросы. Примеры.
- •Подзапросы в условии сравнения групп. Примеры
- •Подзапросы в условии проверки вхождения элемента во множество. Примеры.
- •Подзапрос в условии exists
- •Простые и связанные подзапросы во фразе having
Агрегатные функции. Какая область действия агрегатных функций при наличии и отсутствии фразы group by. Примеры.
Если вы используете фразу GROUP BY в предложении SELECT, SQL разделяет строки таблицы на группы. В запросе, содержащем фразу GROUP BY, все элементы в списке select должны использоваться либо выражения из фразы GROUP BY, либо выражения, содержащие агрегатный функции, либо константы. SQL применяет агрегатные функции в списке select к каждой группе строк и возвращает единственную результирующую строку в качестве результата для каждой группы.
Если фраза GROUP BY отсутствует, Oracle применяет агрегатную функция в списке select ко всем строкам таблицы запроса. Если агрегатная функция используется во фразе HAVING, то она используется для определения условия удаления групп строк, задаваемых фразой GROUP BY.
Областью действия агрегатной функции являются все строки каждой группы. Таким образом, SQL применяет агрегатные функции в списке select к каждой группе строк и возвращает единственную результирующую строку для каждой группы. То есть, каждая сформированная группа порождает одну результирующую строку.
Агрегатные функции без фраз WHERE и GROUP BY. Если фразы WHERE и GROUP BY отсутствуют, то областью действия агрегатной функции являются все строки таблицы.
Пример. Сколько строк в таблице TEACHER:
SELECT COUNT(*) AS Total_rows_in_TEACHER_table
FROM TEACHER;
Пример. Чему равна сумма фондов всех факультетов:
SELECT SUM(Fund)
FROM FACULTY;
GROUP BY и агрегатные функции в списке select.
Пример. Сколько кафедр в каждом из корпусов:
SELECT Building, COUNT(*)
FROM DEPARTMENT
GROUP BY Building;
Назначение фраз group by и having
Фраза GROUP BY определяет столбец или список столбцов (выражение над столбцом или список выражений над столбцами), которые используются для группирования строк таблицы. Выражения фразы GROUP BY могут содержать любые столбцы из таблиц фразы FROM, не зависимо от того, появляетсяь ли столбец во списке select.
Назначение фразы HAVING – определить условие выбора на группах строк. Она ограничивает группы строк теми, на которых указанное условие равно TRUE..
Указывайте GROUP BY и HAVING фразы после фразы WHERE.
Что можно использовать во фразе select при наличии и отсутствии фразы group by?
Фраза GROUP BY определяет столбец или список столбцов (выражение над столбцом или список выражений над столбцами), которые используются для группирования строк таблицы. Выражения фразы GROUP BY могут содержать любые столбцы из таблиц фразы FROM, не зависимо от того, появляетсяь ли столбец во списке select. Если запрос содержит фразу GROUP BY, то список select может содержать только:
константы,
выражения, включающие только агрегатные функции,
выражения из фразы GROUP BY,
выражения, которые включают упомянутые выше выражения.
Областью действия агрегатной функции являются все строки каждой группы. Таким образом, SQL применяет агрегатные функции в списке select к каждой группе строк и возвращает единственную результирующую строку для каждой группы. То есть, каждая сформированная группа порождает одну результирующую строку.
Назначение фразы HAVING – определить условие выбора на группах строк. Она ограничивает группы строк теми, на которых указанное условие равно TRUE..
Указывайте GROUP BY и HAVING фразы после фразы WHERE..