![]() |
Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | |
|
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; Прочитано: 300 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!