- •Множества и операции над множествами.
- •Основная операция над множествами. Мощность множества.
- •Кортежи. Декартово произведение.
- •Транзитивные замыкания отношений.
- •Типы данных в бд
- •Декартово произведение множеств
- •Объединение новой записи (union)
- •Пересечение наборов записей (intersect)
- •Условное соединение
Типы данных в бд
В языке sql поддерживаются следующие типы данных
-CHARACTER (n) или CHAR(n) – символьные строки фиксированной длины в n символов
-NUMERIC [(n,m)] – точные числа. Здесь n общее количество в числе, n количество цифр справа в десятичной точке
-DECIMAL [(n,m)]
-DEC[(n,m)]
-INTEGER или INT
-SMALLINT – целые числа меньшего диапазона, вещественный тип данных в одинарной точности.
-FLOA [(n)] – числа в большом формате, хранимы в плавающем формате, n – число байт, резервируемое для храниения одного числа.
-REAL – вещественный тип который соответствует числам в плавающем формате меньшей точности чем FLOAT.
-DOUBE PRECISION – большая точность чем REAL
-VARCHAR (n) – строки переменной длины n.
-NCHAR(N) – строки локализованных чисел, фиксируемой длины (n)
-NCHAR VARYING – строки локализованных чисел
-DATE – календарная дата
-TIMESTAMP(точность)- дата и время
-INTERVAL – временной интервал
Табл. Агрегат.ф
Функция |
Результат |
Count |
|
Sum |
|
Avg |
|
Min |
Минимальное значение |
Max |
Максимальное значение |
Пр. Вычислить количество студентов сдававших экзамен по каждой дисциплине
Select r1.дисциплина, count(*)
From r1
Group by r.дисциплина;
Результат
Дисциплина |
Count(*) |
БД |
6 |
а/я |
4 |
Пр. найти количество студентов успешно сдавших экзамены
Select count(*)
From r1
Where оценка>2;
Пр. Вычислить количество разных оценок полученных по каждой дисциплине
Select r1.дисциплина, count(distinct r.оценка)
From r1
Where r1.оценка<>0
group by r1.дисциплина;
Пр. определить для каждой группы и каждой дисциплины количество успешно сдавших экзаменов и средний бал по дисциплине
Select r2.группа, r1.дисциплина, count(*) avg(оценка)
From r1,r2
Where r1.фио = r2.фио and
R1.оценка>2 and r1.оценка<>0
Group by r1.группа, r1.дисциплина;
Пр.вывести группы в которых на экзаменах получено больше одной двойки
Select r2.группы
From r1,r2
Where r1.фио = r2.фио and
R1.лценка=2
Group by r2.группа, r1.дисциплина
Having count(*)>1;
22.03.2012
Вопросы по контрольной:
1.Операции соединения
2.Операции объединения.
3.Создание и удаление таблицы
4.Модификация таблиц
5.Транзакции. Определение и оператор транзакций
6.Краткая характеристика первых 3 нормальных форм
7.Нормализация БД
Декартово произведение множеств
Декартово произведение двух таблиц
Синтаксис: select список_столбцов from T1,T2,…,Tn – этот запрос возвращает набор строк(записей) полученный в результате декартово произведения наборов записей из указанных таблиц.
Примечание! Таблицы могут быть как таблицами БД, так и виртуальными таблицами, возвращаемыми запросами.
Иногда требуется получить декартово произведение таблицы самой на себя. В этом случае необходимо использовать разные псевдонимы для этой таблицы.
Пример: select список_столбцов from MyTab T1, My Tab T2;
В Майкрософт для получения декартово произведения возможно использование выражения (select список_столбцов from T1, T2,…,Tn;)