Соединение - отношение, которое содержит все возможные кортежи, которые представляют собой комбинацию атрибутов двух кортежей, принадлежащих двум заданным отношениям, при условии, что в этих двух комбинациях присутствуют одинаковые значения в одном или в нескольких общих атрибутах.
Деление - выполняется для заданных двух унарных отношений и одного бинарного отношения (оно должно содержать все кортежи из первого унарного отношения, соответствующие всем кортежам во втором унарном отношении). Результат выполнения представляется в виде одного или нескольких отношений.
SQL
Структурированный язык запросов SQL - стандартный язык запросов для работы с реляционными базами данных. Появился сразу после возникновения реляционной алгебры. Первый прототип создан в конце 70-х годов. Первый стандарт SQL1 - 1989 г., в 1992 г. - SQL2, а в 1999 г. - SQL3, в который были добавлены новые типы данных, новый раздел на события и триггеры, а также структурированные типы.
Составные части SQL.
В отличие от обычной реляционной алгебры, SQL является полным языком, в котором кроме описания запросов используется описание данных.
1. Операторы определения данных.
2. Операторы манипуляции данными (создание, удаление, изменение данных).
3. Оператор, реализующий язык запросов.
4. Средства управления транзакциями.
5. Средства администрирования данных.
6. Программы на SQL.
Типы данных и константы, соответствующие этим типам данных, посмотреть самим!!!
Операторы. +, -, *,/
Встроенные функции выписать самим!!!
Оператор выбора SELECT.
SELECT { ALL / DISTINCT } { поля/ * }
FROM таблицы
[WHERE условие GROUPBY поля HAVING условие ORDERBY поля]
ALL означает, что в результат будут включены все строки, удовлетворяющие заданным условиям (задается по умолчанию).
DISTINCTозначает, что в результат будут включены только различные строки.
* означает, что в результирующий набор включаются все столбцы из исходных таблиц.
В FROMзадается список исходных таблиц через запятую.
В WHEREзадается условие отбора строк результата или условие соединения.
В GROUPBY задается список полей группировки.
В HAVING задается условие, которое накладывается на группу.
В ORDERBY задается список полей …..
В выражениях условий могут использоваться:
- знаки <>, =, >, <, >=, <=;
- предикат BETWEENAANDB, принимающий значение, находящееся между A и B;
- предикат NOT BETWEEN A AND B;
- предикат вхождения в множество IN (множество). Истинен, когда сравниваемое значение попадает в множество. Множество значений может быть задано перечислением или вложенным запросом;
- предикат NOTIN (множество);
- предикат сравнения с образом LIKE шаблон. В шаблоне могут использоваться знаки "_" - любой символ в текущей позиции, "%" - произвольная последовательность символов;
- предикат NOTLIKE шаблон;
- предикат сравнения с неопределенным значением ISNULL. Означает, что значение атрибута в данный момент времени не определено;
- предикат ISNOTNULL;
- предикаты существования и несуществования EXIST и NOTEXIST - используются при работе с вложенными запросами;
- предикаты AND, OR, NOT (в порядке убывания приоритетов).
Примеры.
R1=<ФИО, Дисциплина, Оценка> R2=<ФИО, Группа> R3=<Группа, Дисциплина>
Вывести список всех групп.
SELECT DISTINCT Группа
FROM R3;
Вывести список студентов, сдавших экзамен по БД на 2.
SELECT ФИО
FROM R1
WHERE Оценка=2 AND Дисциплина ='БД';
Вывести список студентов, которым надо сдавать экзамены с указанием названий дисциплин, по которым проводятся экзамены.
SELECT ФИО, Дисциплина
FROM R2, R3
WHERE R2.Группа = R3.Группа;
Вывести список двоечников, у которых двойка не по одной дисциплине.
SELECT DISTINCT R1.ФИО
FROM R1 AS A, R1 AS B
WHERE A.Оценка<=2 AND B.Оценка<=2 AND A.Дисциплина= B.Дисциплина;
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.