- •Базы данных. Сетевая модель.
- •Реляционная модель.
- •Функции над подмножествами.
- •Декартовое произведение множеств.
- •О тношение порядка
- •Функциональное
- •Отношение в степени 3
- •Транзитивное замыкание отношений.
- •Лекция №3 Базовые понятия реляционной модели данных. Общая характеристика рбд.
- •Отношение атрибуты и кортежи отношений
- •Реляционная алгебра
- •Отношения совместимые по типу.
- •Специальные реляционные операторы. Выборка селекция или ограничение.
- •Оператор Проекция.
- •Соединение.
- •Операция деления.
- •Зависимые реляционные операторы.
- •Запросы выразимые средствами реляционных алгебр. Целостность реляционных данных.
- •Парадоксы:
- •Потенциальные ключи.
- •Замечания:
- •Операции нарушающие целостность по ссылкам.
- •Реляционный способ доступа к данным. Основные сведения о языке sql. Выборка данных:
- •Логические операторы
- •Операторы объединения
- •Упорядочение данных.
- •Продажи данных. Группировка данных
- •Выборка данных их нескольких таблиц
- •Группировка
- •Подзапросы
Продажи данных. Группировка данных
Select {*|all|distinct поле1,…,полеN}
From таблица1{,таблица2,..,таблицаN}
Where условие
Group by {поле1, поле2,..,полеN}
order by поле{ASC|DESC}
например: выбрать поля наименование и категория из таблицы товары. Результат выборки упорядочить по нпзначению категория.
Select наименование, категория
From товары
Group by категория, наименование
Выборка данных их нескольких таблиц
Select таблица1.поле1,поле2{поле3,…,полеN}
From табл1, табл2{,таблица3,…,таблицаN}
Where
Таблица1 common_поле1=таблица2.com
Mon_поле1
г руппы операторов SQL:
Операторы DDL(data definition language). Операторы определения объектов БД. К ним относятся
Создание схемы БД create schema
Удаление drop schema
Создание БД create data base
Удаление drop data base
Create table
Изменение таблицы alter table
Drop table
Создание домена create domain
Drop domain
Alter domain
Операторы DML(data manipulation language).
Select. Отобрать строки из таблицы
Insert into. Добавить строки в таблицу
Update. Изменить строки в таблице
Delete
Commit. Зафиксировать внесённые изменения
Rollback. Откатить внесённые изменения
Операторы защиты и управления данными:
Create asserition. Создать ограничение.
Drop asserition
Grant. Привилегии пользователя создать
Revore. Отменить привилегии пользователя
Пример: вставка 1ой строки в таблицу
Insert into поставщики(номер, наименование)
Values (4, спиридонов);значения которые мы вставляем
Вставка в таблицу несколько строк, выбранных из другой таблицы
В таблицу вставить данные о поставщиках из таблицы поставщики имеющих номер больше 2х.
INSERT INTO
TMP_TABLE (номер, наименование);
SELECT номер, наименование
FROM поставщики ;из табл поставщики вставляем где номер больше 2х
WHERE номер>2;
Обновление
Update поставщики; имя таблицы
Set наименование= «Пупкин»; служебное слово и Какое поле и на какое значение хотим поменять
Удаление строк в таблице
Delete
From поставщики
Where N=1
Выбрать всех поставщиков из таблице поставщики.
SELECT *
FROM поставщики
WHERE N>2
*-то что хотим вывести
Select count (N) as кол-во
Выбрать из поставщики выбрать тока название поставщиков без повторяющихся строк.
Select distinct наименование
From поставщики
Select
Nп, Nд, кол-во, цена
Кол-во*цену ass сумма
From поставки
Упорядочить все детали по номеру детали
Select *
From поставки
Orderby Nдетали asc(по возрастанию) или deck(по убыванию); asc-всегда по умолчанию
Orderby Nдетали,
кол-во desc
Отбор данных из нескольких таблиц. Способы:
Из таблицы поставки вывести номер детали и кол-во к-рое он поставляет
Select поставщики. N, поставщики.наименование, поставки.Nдетали, поставки.количество
From поставщики, поставки
Where поставщик.Nпоставщика=поставки.Nпоставщика
Операторы естественного соединения таблицы JOIN.
Select поставщики.n, поставщики.наименование, поставки.Nдетали, поставки.количество
From поставщики join поставки
Using N
Select поставщики.n, поставщики.наименование, поставки.Nдетали, поставки.количество
From поставщики natural join поставки
Вывести ниименование постащика и детали а так же кол-во деталей которые он посталяет 3мя способами.
Select поставщики.наименование, детали.наименование, поставки.количество
From поставщики, поставки, детали
Where (поставщик.Nпоставщика=……
Select поставщики.наименование, детали.наименование, поставки.количество
Join (поставки join детали)
Using Nдетали)using Nпост
Select поставщики.наименование, детали.наименование, поставки.количество
From поставщики natural join (поставки, N…, join детали)
Join поставщики inner join ( поставщики inner join детали on поставки.nдетали=детали.Nдетали) on поставщики.Nпост=поставки.NП
Какие поставщики имею право поставлять какие детали.
Номер пост |
наименование |
статус |
1 |
X |
4 |
2 |
Y |
1 |
3 |
z |
2 |
Номер детали |
Наименование |
статус |
1 |
Болт |
3 |
2 |
Винт |
2 |
3 |
гайка |
1 |
Select п.Nп, п.статус, п.название,д.NД, д.наименование, д.статус
From п,д
Where П.статус П>=Д.статус Д
-
Nпост
Название П
Статус Поставщика
Nдетали
Наименование детали
Статус детали
1
Х
4
1
Болт
3
1
Х
4
2
Винт
2
1
х
4
3
гайка
1
2
у
1
3
гайка
1
3
z
2
2
Винт
2
3
Z
2
1
гайка
1
________________________________________________________
Контр-агенты
-
Номер
наименование
1
X
2
Y
3
Z
Детали
-
Номер детали
наименование
1
Болт
2
Гайка
3
винт
Поставщики
-
Номер поставщика
наименование
1
X
2
Y
3
z
Поставки
-
Номер поставщика
Номер агента
Номер детали
количество
1
2
1
100
1
3
2
200
1
3
3
300
2
3
1
150
2
3
2
250
3
2
1
1000
В таблице поставки номер поставщика и номер контр-агента являются внешними ключами, ссылающимися на потенциальный ключ любо в таблице контр-агента либо в поставщики. Вопрос: кто кому что в каком количестве поставляет?
Ответ: способы решения:
Select контр-агенты.наименование, детали.наименование, поставщики.наименование, поставки.количество
From контр-агент, детали, поставщики, поставки
Where контр-агент.номер=поставки.номер контр-агента and поставщик.номер постащика=поставке.номер детали.
Select контр-агенты.наименование, детали.наименование, поставщики.наименование, поставки.количество
From контр-агент, поставщики, детали inner join поставки on Д.Nд=п.Nп
Where к.nк=пост.Nк and п.Nп=пост.Nп
Теперь из таблицы поставки получить сумму,общее, мак и миН,среднее количество деталей.
Select min(кол-во) as мин max(кол-во) as макс avg(кол-во) as среднее значение sum(кол-во)as сумма
From пост
Мин |
Макс |
Среднее |
Сумма |
100 |
1000 |
333.33333 |
2000 |