- •1) Базовые понятия реляционных баз данных.
- •Кортеж, отношение
- •2) Фундаментальные свойства отношений. Отсутствие кортежей-дубликатов
- •Отсутствие упорядоченности кортежей
- •Отсутствие упорядоченности атрибутов
- •Атомарность значений атрибутов
- •3) Теоретические языки запросов.
- •4) Реляционная алгебра.
- •Общая интерпретация реляционных операций:
- •Замкнутость реляционной алгебры и операция переименования
- •Специальные реляционные операции:
- •Операция ограничения
- •Операция взятия проекции
- •Операция соединения отношений
- •Операция деления отношений
- •5) Реляционное исчисление.
- •Кортежные переменные и правильно построенные формулы
- •Целевые списки и выражения реляционного исчисления
- •Реляционное исчисление доменов
- •6) Индексирование.
- •7) Связывание таблиц.
- •8) Контроль целостности связей.
- •1) Общая характеристика субд Access.
- •2) Создание таблиц и ввод данных средствами sql.
- •Определение столбца
- •Определение ограничений целостности таблицы
- •3) Выборка данных средствами sql.
- •Директива from
- •4) Предикаты.
- •Предикат all
- •Предикат distinct
- •Предикат distinctrow
- •Предикат null
- •Операция объединения inner join
- •5) Сложные запросы в sql и поддержка целостности данных. Групповые функции
- •Запросы на выполнение действия
Предикат null
Предикат null описывается синтаксическим правилом:
<null predicate> ::=
<column specification> IS [NOT] NULL
Этот предикат всегда принимает значения true или false. При этом значение "x IS NULL" равно true тогда и только тогда, когда значение x не определено. Значение предиката "x NOT IS NULL" равно значению "NOT x IS NULL".
Предикат like
Предикат like имеет следующий синтаксис:
<like predicate> ::=
<column specification> [NOT] LIKE <pattern>
[ESCAPE <escape character>]
<pattern> ::= <value specification>
<escape character> ::= <value specification>
Типы данных столбца левого операнда и образца должны быть типами символьных строк. В разделе ESCAPE должен специфицироваться одиночный символ.
Значение предиката равно true, если pattern является подстрокой заданного столбца. При этом, если раздел ESCAPE отсутствует, то при сопоставлении шаблона со строкой производится специальная интерпретация двух символов шаблона: символ подчеркивания ("_") обозначает любой одиночный символ; символ процента ("%") обозначает последовательность произвольных символов произвольной длины (может быть, нулевой).
Если же раздел ESCAPE присутствует и специфицирует некоторый одиночный символ x, то пары символов "x_" и "x%" представляют одиночные символы "_" и "%" соответственно.
Значение предиката like есть unknown, если значение столбца, либо шаблона не определено.
Значение предиката "x NOT LIKE y ESCAPE z" совпадает со значением "NOT x LIKE y ESCAPE z".
Предикат exists
Предикат exists имеет следующий синтаксис:
<exists predicate> ::=
EXISTS <subquery>
Значением этого предиката всегда является true или false, и это значение равно true тогда и только тогда, когда результат вычисления подзапроса не пуст.
Операция объединения inner join
С помощью этого оператора формируется связь эквивалентности. В объединение при таком типе связи включаются данные из двух таблиц, если в поле связи, имеющемся в обеих таблицах, найдены совпадающие значения. Есть еще два типа связи – LEFT JOIN , RIGHT JOIN. В случае применения таких связей в объединение включаются также записи из левой или правой таблицы, которым не соответствует ни одна запись в связываемой с ними таблице.
Операция объединения INNER является частью условия директивы FROM. Синтаксис:
FROM таблица1 INNER JOIN таблица2 ON таблица1.поле1 = таблица2.поле2
Пример:
SELECT DISTINCTROW [Название фирмы]
FROM Клиенты INNER JOIN Заказы
ON Клиенты.[Код клиента] = Заказы.[Код клиента]
ОRDER BY [Название фирмы];
Поля, по которым производится объединение таблиц, должны быть числовыми, либо, если они не числовые, они должны иметь одинаковый тип и размер, но необязательно одинаковые имена. Поля типа МЕМО или OLE – объекты не могут использоваться для операции объединения.
5) Сложные запросы в sql и поддержка целостности данных. Групповые функции
Групповые функции используются в выражениях запросов и в вычисляемых элементах управления форм или отчетов, но не в макросах или модулях, где вместо этого используются доменные групповые функции.
Пример1
SELECT SUM([цена] * [количество ]) AS [Общая стоимость]
FROM [Заказы]
WHERE [Город] = “Смоленск”
Пример2
SELECT AVG([цена] )
FROM [Заказы]
WHERE [цена] > 1000000
Пример3
SELECT Min([цена] )
FROM [Заказы]
WHERE [город] > “Смоленск”
Пример4
SELECT COUNT([город] ) AS [Всего по Смоленску]
FROM [Заказы]
WHERE [Город] = “Смоленск”
Пример5
SELECT First([Дата заказа]) AS [Первый заказ]
FROM [Заказы]
WHERE [Город] = “Смоленск”
