Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Описание запросов на SQL






Рассмотрим описание запросов на языке SQL для конкретной предметной области Успеваемость студентов.

Простая выборка

Запрос 1. Получить полные сведения обо всех студентах.

SELECT *

FROM S Символ * означает, что в результирующем отношении будут присутствовать все атрибуты отношения S.

Запрос 2. Получить все номера сданных предметов.

SELECT UNIQUE Np FROM S_P

В SQL не предусматривается исключение одинаковых строк из результата, если пользователь не потребует этого, задав ключевой параметр UNIQUE. Отметим, что операция исключения одинаковых строк может требовать дополнительных затрат.

Выборка по условию

Запрос 3. Получить номера тех студентов, которые имеют по предмету с номером 2 оценку 5.

SELECT Ns FROM S_P WHERE Np = 2 AND Ball = 5

Логическое выражение после параметра WHERE строится так же, как в алгоритмических языках.

Выборка с упорядочением

Запрос 4. Получить номера и фамилии студентов группы с номером, равным 1 (фамилии должны следовать в лексикографическом порядке).

SELECT Ns, Fio FROM S WHERE Ngr = 1 ORDER BY Fio DESC

Параметр DESC предполагает упорядочение по возрастанию значений в столбце, ASC – упорядочение по убыванию значений в столбце.

Выборка с использованием вложенного отображения Запрос 5. Получить список фамилий тех студентов, которые сдали пpедмет с номером 2.

SELECT Fio FROM S

WHERE Ns IS IN (SELECT Ns FROM S_P WHERE Np = 2)

Параметр IS IN предполагает проверку принадлежности множеству, полученному после выполнения внутреннего SELECT– FROM – WHERE.

Параметр IS NOT IN интерпретируется как «не принадлежит множеству».

Выборка с использованием нескольких уровней

вложенности Запрос 6. Получить список фамилий тех студентов, которые сдали пpедмет с названием «Мат.анализ».

SELECT Fio FROM S

WHERE Ns IS IN (SELECT Ns FROM S_P WHERE Np IS IN (SELECT Np FROM P WHERE Nazv='Мат.анализ'))

Выборка с использованием вложенного отображения к одной и той же таблице Запрос 7. Получить номера тех студентов, которые сдали тот же предмет, что и студент с номером 13.

SELECT UNIQUE Ns FROM S_P WHERE Np IS IN

(SELECT Np

FROM S_P WHERE Ns = 13)

Выборка с использованием синонима

Запрос 8. Получить номера всех предметов, которые сданы несколькими студентами.

SELECT UNIQUE Np FROM S_P SPr WHERE Np IS IN

(SELECT Np FROM S_P WHERE SPr.Ns < > Ns)

Выборка более чем из одной таблицы Запрос 9. Для каждого номера предмета получить фамилии студентов, которые его сдали.

SELECT Np, Fio FROM S_P, S WHERE S_P.Ns = S.Ns

Это предложение языка SQL аналогично операции соединения. Существенное различие заключается в том, что фактически соединения S_P и S не происходит, а значит, память на соединение не расходуется.

Выборка, включающая сравнение множеств Запрос 10. Получить список фамилий тех студентов, которые сдали все предметы.

SELECT Fio FROM S WHERE (SELECT Np

FROM S_P WHERE Ns = S.Ns)

=

(SELECT Np FROM P)

Выборка, включающая GROUP BY, HAVING и SET Запрос 11. Получить номера тех студентов, которые сдали все предметы, что и студент с номером 13.

SELECT Ns FROM S_P GROUP BY Ns

HAVING SET (Np) CONTAINS (SELECT Np

FROM S_P WHERE Ns = 13)

Параметр CONTAINS означает «содержит».

Параметр GROUP BY разделяет рассматриваемую таблицу на такие группы, что внутри любой из этих групп все строки содержат одинаковые значения в указанном столбце.

Затем действует фраза HAVING, являющаяся специальной формой фразы WHERE, но относящаяся не к отдельным строкам, а к группам: Предикат во фразе HAVING всегда ссылается на свойства групп и на основе этого предиката группы целиком либо выбираются, либо отбрасываются.

Значением функции SET становится множество значений, содержащихся в определенном столбце (столбцах) внутри заданной группы.

Операции редактирования

Для включения новой строки используется предложение INSERT, например:

INSERT INTO P: < 11, 'Информатика' >

Для удаления строки используется предложение DELETE, например:

DELETE S

WHERE Ns = 13

После выполнения этого предложения из таблицы S будет удалена строка с номером студента, равным 13.

После выполнения предложения

DELETE P таблица P станет пустой.

Для изменения значения в заданной строке используется предложение UPDATE, например:

UPDATE S SET Ngr = 2 WHERE Ns = 13

После выполнения этого оператора у студента с номером 13 номер группы станет равным 2.


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал