Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ересь Бочкаревой.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
99.84 Кб
Скачать

9. Псевдонимы таблиц (в запросах на sql).

Синтаксис команды для объединения таблицы с собой, тот же что и для объединения многочисленных таблиц, в одном экземпляре. Когда вы объединяете таблицу с собой, все повторяемые имена столбца, заполняются префиксами имени таблицы. Чтобы ссылаться к этим столбцам внутри запроса, вы должны иметь два различных имени для этой таблицы. Вы можете сделать это с помощью определения временных имен называемых - .переменными диапазона, переменными корреляции или просто - псевдонимами Вы определяете их в предложении FROM запроса. Это очень просто: вы набираете им таблицы, оставляете пробел, и затем набираете псевдоним для нее.

SELECT * FROM table1 as a, table2 as b

WHERE a.field_name = b.field_name

10. Синтаксис оператора выбора select. Применение агрегатных функций и вложенных запросов в операторе выбора. Синтаксис оператора select

SELECT column_list

FROM table_name

[WHERE условие]

[GROUP BY условие]

[HAVING условие]

[ORDER BY условие]

SELECT Ключевое слово, которое сообщает базе данных о том, что оператор является запросом. Все запросы начинаются с этого слова, за ним следует пробел.

Column_list Список столбцов таблицы, которые выбираются запросом. Столбцы, не указанные в операторе, не будут включены в результат. Если необходимо вывести данные всех столбцов, можно использовать сокращенную запись. Звездочка (*) означает полный список столбцов.

FROM table_name Ключевое слово, которое должно присутствовать в каждом запросе. После него через пробел указывается имя таблицы, являющейся источником данных.

Код в скобках является не обязательным в операторе SELECT. Он необходим для более точного определения запроса.

Основные ключевые слова, относящиеся к запросу SELECT:

  • WHERE — используется для определения, какие строки должны быть выбраны или включены в GROUP BY.

  • GROUP BY — используется для объединения строк с общими значениями в элементы меньшего набора строк.

  • HAVING — используется для определения, какие строки после GROUP BY должны быть выбраны.

  • ORDER BY — используется для определения, какие столбцы используются для сортировки результирующего набора данных.

В SQL добавлены дополнительные функции, которые позволяют вычислять обобщенные групповые значения. Для применения агрегатных функций предполагается предварительная операция группировки. В чем состоит суть операции группировки? При группировке все множество кортежей отношения разбивается на группы, в которых собираются кортежи, имеющие одинаковые значения атрибутов, которые заданы в списке группировки.

Функция

Результат

COUNT

Количество строк или непустых значений полей, которые выбрал запрос

SUM

Сумма всех выбранных значений данного поля

AVG

Среднеарифметическое значение всех выбранных значений данного поля

MIN

Наименьшее из всех выбранных значений данного поля

MAX

Наибольшее из всех выбранных значений данного поля

Агрегатные функции используются подобно именам полей в операторе SELECT, но с одним исключением: они берут имя поля как аргумент. С функциями SUM и AVG могут использоваться только числовые поля. С функциями COUNT, MAX и MIN могут использоваться как числовые, так и символьные поля. При использовании с символьными полями MAX и MIN будут транслировать их в эквивалент ASCII кода и обрабатывать в алфавитном порядке. Некоторые СУБД позволяют использовать вложенные агрегаты, но это является отклонением от стандарта ANSI со всеми вытекающими отсюда последствиями.

С помощью SQL можно вкладывать запросы внутрь друг друга. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении WHERE или HAVING ), определяющего, верно оно или нет. Совместно с подзапросом можно использовать предикат EXISTS, который возвращает истину, если вывод подзапроса не пуст.

В сочетании с другими возможностями оператора выбора, такими как группировка, подзапрос представляет собой мощное средство для достижения нужного-результата. В части FROM оператора SELECT допустимо применять синонимы к именам таблицы, если при формировании запроса нам требуется более чем один экземпляр некоторого отношения. Синонимы задаются с использованием ключевого слова AS, которое может быть вообще опущено. Поэтому часть FROM может выглядеть следующим образом:

FROM R1 AS A, R1 AS B

или

FROM R1 A, R1 B;

оба выражения эквивалентны и рассматриваются как применения оператора SELECT к двум экземплярам таблицы R1.

Выбрать студентов, у которых оценка по экзамену не меньше, чем хотя бы одна оценка по сданным им лабораторным работам по данной дисциплины:

Select R1.ФИО

From R1

Where R1.Оценка >= ANY (Select R4.Оценка

From R4

Where R1.Дисциплина = R4. Дисциплина AND R1.ФИО = R4.ФИО)