10. Операции с таблицами: изменение. alter table SP add constraint qtychk check (Qty&gt0) alter table P add column Discount float default 0 © М.Л. Цымблер. 11. Операции с таблицами: удаление.


Чтобы посмотреть этот PDF файл с форматированием и разметкой, скачайте его и откройте на своем компьютере.
Язык запросов
SQL
Технологии баз данных. Лекция
зык
структурных запросов
SQL
SQL (
Structured
Query
Language
, язык структурных запросов)
стандартный язык
запросов к реляционным базам
данных.
SQL
основан на реляционной алгебре
В базовом варианте SQL является информационно
логическим
языком, а не языком программирования.
Спецификация
SQL/PSM (
Persistent
Stored
Modules
, хранимые процедуры)
представляет собой процедурное расширение SQL
Прототип языка
SQL
был
разработан в конце 70
х годов в
компании IBM
Research
. Он был реализован в первом прототипе
реляционной СУБД фирмы IBM
System
R. В дальнейшем этот язык
применялся во многих коммерческих СУБД и в силу своего
широкого распространения постепенно стал стандартом "де
факто" для языков манипулирования данными в реляционных
СУБД.
SQL:
историческая справка
Год
Название
Отличительные
особенности
SEQUEL
Язык управления
данными экспериментальной СУБД
IBM System R
(SEQUEL
Structured
English
QUEry
Language
SQL
или
SQL
Первый вариант стандарта, принятый
институтом ANSI и одобренный ISO в 1987.
SQL
Доработанный вариант предыдущего стандарта.
Добавлена концепция
первичного и внешнего ключей.
SQL
Значительные
изменения
предыдущего стандарта.
SQL:1999
или
SQL
Добавлена поддержка регулярных выражений, рекурсивных запросов,
поддержка триггеров, базовые процедурные расширения, нескалярные типы
данных и некоторые объектно
ориентированные возможности.
SQL:2003
Добавлена
поддержка работы с XML
данными, функции для работы с OLAP
базами данных, генераторы последовательностей и основанные на них типы
данных.
SQL:2006
Значительное расширение
поддержки
работы с XML
данными. Возможность
совместно использовать в запросах SQL и XQuery.
SQL:2008
Улучшение возможностей
OLAP
функций, устранение некоторых
неоднозначностей стандарта SQL:2003.
SQL:2011
Поддержка
хронологических баз данных.
SQL
плюсы и минусы
��© М.Л. Цымблер
��4&#x/BBo;&#xx [5;.7 ;ͦ.;ă ;ȃ.; 3;—.3; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [5;.7 ;ͦ.;ă ;ȃ.; 3;—.3; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Преимущества
Независимость от конкретной СУБД
Стандарты
Декларативность
��•Недостатки
Несоответствие классической РМД
Таблица
отношение, строка
кортеж и др.
Сложность
Избыточность языковых средств
Большой объем стандарта
Отступления от стандартов
"Надмножества подмножества
SQL": Oracle PL/SQL, MS
TransactSQL
, PL/
pgSQL
и др.
Структура
SQL
Язык определения данных (
Data Definition Language, DDL)
Язык манипулирования данными (
Data Manipulation Language,
DML)
язык запросов
(Data Query Language, DQL)
Язык определения
доступа к данным (
Data Control Language, DCL)
Язык управления транзакциями (
Transaction Control Language, TCL)
Программный
SQL
Язык
определения данных
��6&#x/BBo;&#xx [5;.7 ;͢.;͢ ;ĉ.;薙&#x 398;&#x.05 ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;&#x/BBo;&#xx [5;.7 ;͢.;͢ ;ĉ.;薙&#x 398;&#x.05 ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;•DDL&#x/MCI; 12;&#x 000;&#x/MCI; 12;&#x 000;(&#x/MCI; 13;&#x 000;&#x/MCI; 13;&#x 000;Data Definition Language
Создание, удаление,
изменение
определения
объектов БД
CREATE
DROP
ALTER
Модельная база данных
��© М.Л. Цымблер
��Поставщики
��Поставки
Детали
Операции с таблицами:
создание
��© М.Л. Цымблер
��8&#x/BBo;&#xx [4;.88;v 2;.4;ˆ ;ɠ.;靵&#x 336;&#x.279; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [4;.88;v 2;.4;ˆ ;ɠ.;靵&#x 336;&#x.279; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;create table
S (
SID
char(4)
primary key
Name
char(10)
not null
City
char(10)
not null
Rating
int
not null
Операции с таблицами:
создание
��© М.Л. Цымблер
��9&#x/BBo;&#xx [4;.88;v 1;h.0;҈ ;ɢ.;⥵&#x 336;&#x.279; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [4;.88;v 1;h.0;҈ ;ɢ.;⥵&#x 336;&#x.279; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;create table
P (
PID
char(4)
primary key
Name
char(10)
not null
City
char(10)
not null
Price
int
not null
Color
char(10)
not null
Weight
float
not
null
Операции с таблицами:
создание
��© М.Л. Цымблер
��10&#x/BBo;&#xx [5;.7 ;’.9;ࠗ ;ə.;吢&#x 419;&#x.027; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [5;.7 ;’.9;ࠗ ;ə.;吢&#x 419;&#x.027; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;create table
SP (
SID
char(4),
PID
char(4),
Qty
int
not null
,
primary key
(SID, PID),
foreign
key
(SID)
references
S (SID)
on delete cascade
on update cascade
foreign key
(PID)
references
P (PID)
on delete cascade
on update cascade
��*&#x/MCI; 13;&#x 000;&#x/MCI; 13;&#x 000;Допустимы режимы
cascade
set null
set default
и
no action
Операции с таблицами:
изменение
��© М.Л. Цымблер
��11&#x/BBo;&#xx [2; .12;Q 3;.2;ķ ;İ.;圹&#x 351;&#x.957; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [2; .12;Q 3;.2;ķ ;İ.;圹&#x 351;&#x.957; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;alter
table
add
constraint
chk
check
Qty
��alter table
add
column
Discount
float
default 0;
Операции с таблицами:
удаление
drop table
SP;
drop table
drop table
Операции с доменами
��© М.Л. Цымблер
��13&#x/BBo;&#xx [5;.7 ;ͨ.;Ń ;†.3;ࡸ ;Ι.;7 ];&#x/Sub;&#xtype;&#x /Fo;&#xoter;&#x /Ty;&#xpe /;&#xPagi;&#xnati;&#xon 0;&#x/BBo;&#xx [5;.7 ;ͨ.;Ń ;†.3;ࡸ ;Ι.;7 ];&#x/Sub;&#xtype;&#x /Fo;&#xoter;&#x /Ty;&#xpe /;&#xPagi;&#xnati;&#xon 0;•В &#x/MCI; 10;&#x 000;&#x/MCI; 10;&#x 000;SQL
домены не ограничивают сравнения, а являются лишь
синонимами встроенных типов данных
(char,
int
, date, time,
timestamp, bit
и др.)
��•Создание домена
create domain
Color char(10);
create domain
Gender char
default
'?'
constraint
chk_gender
(check (value in 'M', '
'));
��•Удаление домена
drop domain
Color restrict;
drop domain
Gender cascade;
��•Изменение домена
alter domain
Gender char
constraint
chk_gender
(check (value in 'M', '
'));
зык
манипулирования данными
DML
Вставка
записей в
таблицу:
INSERT
Обновление записей в
таблице
: UPDATE
Удаление записей из
таблицы
: DELETE
Выборка записей из
таблиц
: SELECT
Вставка данных в таблицу
��© М.Л. Цымблер
��15&#x/BBo;&#xx [5;.7 ;̸.;8 1;2.3; ;Ё.;ؑ ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;&#x/BBo;&#xx [5;.7 ;̸.;8 1;2.3; ;Ё.;ؑ ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;insertinto &#x/MCI; 8 ;&#x/MCI; 8 ;таблица
&#x/MCI; 10;&#x 000;&#x/MCI; 10;&#x 000;список полей
список значений
запрос на выборку
��•Вставка одной строки
insert
into
P (PID, Color, Name, Weight, City)
values
('P10', '
белый
Брус
, 3,
Москва
');
��•Вставка нескольких строк
insert
into
AvgRatings
(City, Rating)
select
S.City
S.Rating
from
group
by
S.City
Обновление данных в таблице
��© М.Л. Цымблер
��16&#x/BBo;&#xx [5;.7 ;͡.; 1;D.8;ঙ ;Ё.;ؑ ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;&#x/BBo;&#xx [5;.7 ;͡.; 1;D.8;ঙ ;Ё.;ؑ ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;update &#x/MCI; 8 ;&#x/MCI; 8 ;таблица
Обновление одной строки
update
Обновление нескольких строк
update
Удаление данных из таблицы
��© М.Л. Цымблер
Удаление одной строки
delete
from
where
S.SID='S007';
��•Удаление нескольких строк
delete
from
where
S.Rating
<(select
S.Rating
) from S);
��•Удаление
всех строк
Выборка данных из таблиц
��© М.Л. Цымблер
��18&#x/BBo;&#xx [5;.7 ;͖.;e 3;.0;ȁ ;Ђ.;ঔ ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;&#x/BBo;&#xx [5;.7 ;͖.;e 3;.0;ȁ ;Ђ.;ঔ ;&#x]/Su; typ; /F;&#xoote;&#xr /T;&#xype ;&#x/Pag;&#xinat;&#xion ;select[distinct
список выбираемых полей
список таблиц выбора
where&#x/MCI; 12;&#x 000;&#x/MCI; 12;&#x 000;условие отбора записей
orderby&#x/MCI; 14;&#x 000;&#x/MCI; 14;&#x 000;список упорядочиваемых полей
groupby&#x/MCI; 16;&#x 000;&#x/MCI; 16;&#x 000;список группируемых полей
having&#x/MCI; 18;&#x 000;&#x/MCI; 18;&#x 000;условие отбора групп
Выборка всех строк
��© М.Л. Цымблер
��19&#x/BBo;&#xx [1;.44;v 3;….7;ɥ ;Ή.;癄&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;….7;ɥ ;Ή.;癄&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать полную информацию о деталях.
��select
from
��select
from
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Результат
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Выборка по условию
��© М.Л. Цымблер
��20&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̒.;㆒&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̒.;㆒&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать список названий и цен
деталей не из Парижа
весом
более
10.
��select
P.Name
,
P.Price
from
where
P.City
Париж
and
P.Weight
>10
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Name
Price
Шуруп
Гайка
Шуруп
Результат
Выборка без повторяющихся значений
��© М.Л. Цымблер
��21&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̒.;㆒&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̒.;㆒&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать список названий и цен
деталей не из Парижа
весом
более
10.
select
distinct
P.Name
from
where
P.City
Париж
and
P.Weight
>10
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Name
Шуруп
Гайка
Результат
Выборка с упорядочиванием
��© М.Л. Цымблер
��22&#x/BBo;&#xx [7;&#x.197; 36;.04;e 3;w.6;ո ;Ж.;锶&#x ]/S;&#xubty;&#xpe /;oot;r /;&#xType;&#x /Pa;&#xgina;&#xtion;&#x 000;&#x/BBo;&#xx [7;&#x.197; 36;.04;e 3;w.6;ո ;Ж.;锶&#x ]/S;&#xubty;&#xpe /;oot;r /;&#xType;&#x /Pa;&#xgina;&#xtion;&#x 000;•Выдать список названий и цен деталей
(без повторений) не из Парижа
весом
более 10, упорядоченный по названию
детали.
select
distinct
P.Name
,
P.Price
from
where
P.City
Париж
and
P.Weight
>10
order by
Name
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Name
Price
Гайка
Шуруп
Результат
Выборка
с упорядочиванием
��© М.Л. Цымблер
��23&#x/BBo;&#xx [7;&#x.197; 36;.04;e 3;w.6;ո ;Ж.;锶&#x ]/S;&#xubty;&#xpe /;oot;r /;&#xType;&#x /Pa;&#xgina;&#xtion;&#x 000;&#x/BBo;&#xx [7;&#x.197; 36;.04;e 3;w.6;ո ;Ж.;锶&#x ]/S;&#xubty;&#xpe /;oot;r /;&#xType;&#x /Pa;&#xgina;&#xtion;&#x 000;•Выдать список названий и цен деталей
(без повторений) не из Парижа
весом
более 10, упорядоченный
по убыванию
цены.
��select distinct
P.Name
,
P.Price
from
where
P.City
Париж
and
P.Weight
>10
order by
P.Price
desc
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Name
Price
Шуруп
Гайка
Результат
Вычисления в выборке
��© М.Л. Цымблер
��24&#x/BBo;&#xx [1;.44;v 3;c.0;Ѧ ;̱.;癡&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;Ѧ ;̱.;癡&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать название деталей и цену
деталей в
��select
distinct
P.Name
,
P.Price
/70
Price_EUR
from
Name
City
Weight
Price
Болт
Париж
P34
Шуруп
Москва
P22
Гайка
Челябинск
P45
Шуруп
Одесса
Результат
Name
Price_EUR
Болт
1.02
Шуруп
1.54
Гайка
Выборка из нескольких таблиц
��© М.Л. Цымблер
��25&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;Β.;牆&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;Β.;牆&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать список всех
пар поставщиков и
деталей, размещенных в одном городе.
select
S.SID,
S.SName
,
S.City
, P.PID,
P.PName
from
where
S.City
P.City
PID
PName
City
Weight
Price
Болт
Париж
Шуруп
Челябинск
Гайка
Челябинск
P.PID
P.PName
P.City
P.Weight
P.Price
S.SID
S.SName
S.City
S.Rating
Болт
Париж
Бендер
Черноморск
Болт
Париж
КГБ
Челябинск
Шуруп
Челябинск
Бендер
Черноморск
Шуруп
Челябинск
КГБ
Челябинск
Гайка
Челябинск
Бендер
Черноморск
Гайка
Челябинск
КГБ
Челябинск
SID
SName
City
Rating
Бендер
Черноморск
КГБ
Челябинск
Соединение таблиц
P
и
Выборка из нескольких таблиц
��© М.Л. Цымблер
��26&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;Β.;牆&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;Β.;牆&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать список всех
пар поставщиков и
деталей, размещенных в одном городе.
select
S.SID,
S.SName
,
S.City
, P.PID,
P.PName
from
where
S.City
P.City
PID
PName
City
Weight
Price
Болт
Париж
Шуруп
Челябинск
Гайка
Челябинск
P.PID
P.PName
P.City
P.Weight
P.Price
S.SID
S.SName
S.City
S.Rating
Болт
Париж
Бендер
Черноморск
Болт
Париж
КГБ
Челябинск
Шуруп
Челябинск
Бендер
Черноморск
P34
Шуруп
Челябинск
КГБ
Челябинск
Гайка
Челябинск
Бендер
Черноморск
P22
Гайка
Челябинск
КГБ
Челябинск
SID
SName
City
Rating
Бендер
Черноморск
КГБ
Челябинск
Выборка строк по условию
S.City
P.City
Выборка из нескольких таблиц
��© М.Л. Цымблер
��27&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;Β.;牆&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;Β.;牆&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать список всех
пар поставщиков и
деталей, размещенных в одном городе.
select
S.SID,
S.SName
,
S.City
, P.PID,
P.PName
from
where
S.City
P.City
PID
PName
City
Weight
Price
Болт
Париж
Шуруп
Челябинск
Гайка
Челябинск
P.PID
P.PName
P.City
P.Weight
P.Price
S.SID
S.SName
S.City
S.Rating
Шуруп
Челябинск
КГБ
Челябинск
Гайка
Челябинск
КГБ
Челябинск
SID
SName
City
Rating
Бендер
Черноморск
КГБ
Челябинск
«Отбрасывание» лишних столбцов:
Результат
S.SID
S.SName
S.City
P.PID
P.PName
КГБ
Челябинск
Шуруп
КГБ
Челябинск
Гайка
Выборка из нескольких таблиц
��© М.Л. Цымблер
��28&#x/BBo;&#xx [1;.44;v 3;g.6;e ;Β.;牆&#x 418;&#x.993; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;g.6;e ;Β.;牆&#x 418;&#x.993; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Выдать список всех
пар поставщиков и
деталей, размещенных в одном городе.
select
S.SID,
S.SName
,
S.City
, P.PID,
P.PName
from
where
S.City
P.City
select
S.SID,
S.SName
,
S.City
, P.PID,
P.PName
from
join
using
City
select
S.SID,
S.SName
,
S.City
, P.PID,
P.PName
from
natural join
PID
PName
City
Weight
Price
Болт
Париж
Шуруп
Челябинск
Гайка
Челябинск
Шуруп
Одесса
Результат
SID
SName
City
PID
PName
КГБ
Челябинск
Шуруп
КГБ
Челябинск
Гайка
SID
SName
City
Rating
Бендер
Черноморск
S34
монстр
Москва
КГБ
Челябинск
Соединение таблицы с собой
��© М.Л. Цымблер
��29&#x/BBo;&#xx [1;.44;v 3;@.3;٥ ;Α.;䤉&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;@.3;٥ ;Α.;䤉&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Получить все пары кодов поставщиков,
таких, что оба поставщика в каждой
паре из одного и того же
города.
��select
First.SID
SA, Second.SID
from
First, S
Second
where
First.City
Second.City
and
SA<>SB
SID
Name
City
Rating
Бендер
Черноморск
монстр
Москва
КГБ
Челябинск
Разноимпорт
Москва
Саспенс
Челябинск
Horns&Hoofs
Черноморск
SB
S1
S4
S4
S1
S3
S
S3
S2
S5
S5
S2
Результат
Выборка с соединением по ключу
��© М.Л. Цымблер
��30&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̐.;Ԙ&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̐.;Ԙ&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Получить имена поставщиков,
поставляющих деталь
P2
select distinct
S.Name
from
S, SP
where
S.SID=SP.SID
and
SP.PID='P2';
SID
PID
Qty
SP
Name
монстр
Разноимпорт
Результат
SID
Name
Саспенс
монстр
Разноимпорт
МакроХард
Овощторг
Разноимпорт
Агрегирующие функции языка
SQL
count
определяет количество записей данного поля в группе
строк.
sum
вычисляет арифметическую сумму всех выбранных
значений данного поля.
avg
рассчитывает арифметическое среднее (усреднение) всех
выбранных значений данного поля.
max
находит наибольшее из всех выбранных значений данного
поля.
min
находит наименьшее из всех выбранных значений данного
поля
Выборка с агрегацией данных
��© М.Л. Цымблер
��32&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;ɀ.;垗&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;ɀ.;垗&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Получить общее число
поставщиков.
��select
Общее число
поставщиков
Text,
count
) as
CountS
from
SID
Name
City
Rating
Бендер
Черноморск
монстр
Москва
КГБ
Челябинск
Разноимпорт
Москва
Саспенс
Челябинск
Horns&Hoofs
Черноморск
Text
CountS
Общее
число поставщиков
Результат
Выборка
с агрегацией данных
��© М.Л. Цымблер
��33&#x/BBo;&#xx [1;.44;u 3;c.0;ѥ ;Ѐ.;梉&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;u 3;c.0;ѥ ;Ѐ.;梉&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Получить сумму рейтингов поставщиков
из
города
Черноморск
select
sum
S.Rating
RatingChe
from
where
S.City
= ‘
Черноморск
’;
RatingChe
Результат
SID
Name
City
Rating
Бендер
Черноморск
монстр
Москва
КГБ
Челябинск
Разноимпорт
Москва
Саспенс
Челябинск
Horns&Hoofs
Черноморск
Выборка
с агрегацией данных
��© М.Л. Цымблер
��34&#x/BBo;&#xx [1;.44;v 3;….7;ɥ ;Ʌ.;∉&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;….7;ɥ ;Ʌ.;∉&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Получить минимальное
максимальное
и среднее количество поставок для
детали
P1
select
max
SP.Qty
MaxQ
,
min
SP.Qty
MinQ
avg
SP.Qty
AvgQ
from
where
SP.PID='P1';
SID
PID
Qty
SP
MaxQ
MinQ
AvgQ
Результат
Выборка с подзапросом
��© М.Л. Цымблер
��35&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̐.;Ԙ&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;&#x/BBo;&#xx [1;.44;v 3;c.0;ѥ ;̐.;Ԙ&#x 416;&#x.953; ]/;&#xSubt;&#xype ;&#x/Foo;&#xter ;&#x/Typ; /P; gin; tio;&#xn 00;•Получить имена поставщиков,
поставляющих деталь
P2
��select distinct
S.Name
from
where
S.SID
select
SP.SID
from
where
SP.PID='P2
��select distinct
S.Name
from
,
where
S.SID = SP.SID
and
SP.PID=
'P2
SID
PID
Qty
SP
Name
монстр
Разноимпорт
Результат
SID
Name
Саспенс
монстр
Разноимпорт
МакроХард
Овощторг
Разноимпорт

Приложенные файлы

  • pdf 7066473
    Размер файла: 449 kB Загрузок: 0

Добавить комментарий