Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД.docx
Скачиваний:
2
Добавлен:
07.09.2019
Размер:
2.33 Mб
Скачать

Продажи данных. Группировка данных

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:

  1. Операторы DDL(data definition language). Операторы определения объектов БД. К ним относятся

    1. Создание схемы БД create schema

    2. Удаление drop schema

    3. Создание БД create data base

    4. Удаление drop data base

    5. Create table

    6. Изменение таблицы alter table

    7. Drop table

    8. Создание домена create domain

    9. Drop domain

    10. Alter domain

  2. Операторы DML(data manipulation language).

    1. Select. Отобрать строки из таблицы

    2. Insert into. Добавить строки в таблицу

    3. Update. Изменить строки в таблице

    4. Delete

    5. Commit. Зафиксировать внесённые изменения

    6. Rollback. Откатить внесённые изменения

  3. Операторы защиты и управления данными:

    1. Create asserition. Создать ограничение.

    2. Drop asserition

    3. Grant. Привилегии пользователя создать

    4. 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

Отбор данных из нескольких таблиц. Способы:

  1. Из таблицы поставки вывести номер детали и кол-во к-рое он поставляет

Select поставщики. N, поставщики.наименование, поставки.Nдетали, поставки.количество

From поставщики, поставки

Where поставщик.Nпоставщика=поставки.Nпоставщика

  1. Операторы естественного соединения таблицы JOIN.

Select поставщики.n, поставщики.наименование, поставки.Nдетали, поставки.количество

From поставщики join поставки

Using N

Select поставщики.n, поставщики.наименование, поставки.Nдетали, поставки.количество

From поставщики natural join поставки

Вывести ниименование постащика и детали а так же кол-во деталей которые он посталяет 3мя способами.

  1. Select поставщики.наименование, детали.наименование, поставки.количество

From поставщики, поставки, детали

Where (поставщик.Nпоставщика=……

  1. Select поставщики.наименование, детали.наименование, поставки.количество

Join (поставки join детали)

Using Nдетали)using Nпост

  1. Select поставщики.наименование, детали.наименование, поставки.количество

From поставщики natural join (поставки, N…, join детали)

  1. 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

В таблице поставки номер поставщика и номер контр-агента являются внешними ключами, ссылающимися на потенциальный ключ любо в таблице контр-агента либо в поставщики. Вопрос: кто кому что в каком количестве поставляет?

Ответ: способы решения:

  1. Select контр-агенты.наименование, детали.наименование, поставщики.наименование, поставки.количество

From контр-агент, детали, поставщики, поставки

Where контр-агент.номер=поставки.номер контр-агента and поставщик.номер постащика=поставке.номер детали.

  1. 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