Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Билет №28



1. Реляционная модель данных (РМД) — логическая модель данных. На реляционной модели данных строятся реляционные базы данных. Первичный ключ (англ. primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию).

Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными».

С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. В качестве первичного ключа, как правило, выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов.

Другой критерий выбора первичного ключа — сохранение уникальности со временем.

2. Вложенным запросом называется запрос, помещаемый в инструкцию SELECT, INSERT, UPDATE или DELETE или в другой вложенный запрос. Подзапрос может быть использован везде, где разрешены выражения. Вложенный запрос — оператор SELECT, заключенный в круглые скобки, и используемый в предложениях WHERE или HAVING.

Отличия:

1. таблица результатов вложенного запроса всегда состоит из 1-го столбца. Список возвращаемых столбцов во вложенном запросе всегда должен иметь только 1 элемент.

2. во вложенный запрос не может входить предложение ORDER BY для экономии времени.

3. вложенный запрос не может быть запросом на объединение нескольких различных операторов SELECT.

4. особенность: имена столбцов используемых во вложенном запросе могут являться ссылками на столбцы главного или внешнего запроса.

Пример:

Вывести список жителей, у которых общий доход меньше размера самого доходного источника.

SELECT NOM, FIO FROM PERSON

WHERE SUMD < (SELECT MAX(MONEYS) FROM PROFIT).

3.

Задача.

База данных содержит таблицы:

Студент (номер_зачетки, фио,......)

Успеваемость (номер_зачетки, код_предмета, оценка,....).

Выдать список студентов с указанием среднего балла для каждого из них (SQL).

select Surname,Name,Patronymic,cast(avg(Mark) as numeric(1,0)) as [Average mark] from student

inner join Progress on Progress.NumberZach=Student.NumberZach

group by surname,name,Patronymic





Дата публикования: 2015-10-09; Прочитано: 280 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...