SlideShare a Scribd company logo
Структурированный
язык SQL
Основные дидактические единицы
Домены, базовые таблицы,
информационные схемы, табличные
выражения, условные выражения.
Введение
Большинство современных СУБД
построено на реляционной модели
данных. Для получения информации из
отношений (таблиц) базы данных в
качестве языка манипулирования
данными в теоретическом плане
используются три абстрактных языка:
Введение
o
Язык реляционной алгебры1
Язык реляционного исчисления на кортежах2
o
Язык реляционного исчисления на доменах3
 В качестве практического языка работы с данными
в середине 70-х годов фирмой IBM разработан язык
структурных запросов [SQL], ставший впоследствии
стандартом [de-facto] при работе с базами данных.
 Наметившееся в настоящее время переход к
крупным корпоративным СУБД типа [Oracle],
[Informix],[Sybase], [DB2], [Progress] делает
актуальным изучение языка SQL как в
практическом плане, так и чисто теоретически,
поскольку в основе элементов языка SQL лежат
положения теории отношений, теории множеств и
логики.
SQL
SQLSQL
Будем исходить из того, что в нашем
распоряжении имеется база данных поставщиков,
деталей и поставок, таблицы которой описаны
следующим образом:
SQL
SQL
P
Таблица деталей Р:
Create table P (n_det
char(6) ,
name char(20),
cvet char(7),
ves smallint,
town char(15))ю
SP
Таблица поставок SP:
Create table SP (n_post
char(5) ,
n_det char(6),
date_post date,
kol smallint)ю
S
Таблица поставщиков
S:
Create table S (n_post
char(5) not NULL,
name char(20),
reiting smallint,
town char(15))
Атенс30АдамсS5
Лондон20КларкS4
Париж30БлейкS3
Париж10ДжонсS2
Лондон20СмитS1
ГоpодРейтингФамилияHомеp
поставщика
Лондон19КрасныйБлюмP6
Париж12ГолубойКулачокP5
Лондон14КрасныйВинтP4
Рим17ГолубойВинтP3
Париж17ЗеленыйБолтP2
Лондон12КрасныйГайкаP1
ГоpодВесЦветНазваниеНомер
детали
SQL
40008/22/95P5S4
30006/17/95P4S4
20003/23/95P2S4
20004/04/95P2S3
40006/12/95P2S2
30003/03/95P1S2
10008/13/95P6S1
10007/22/95P5S1
20006/15/95P4S1
40005/12/95P3S1
20004/05/95P2S1
30002/01/95P1S1
КоличествоДата
поставки
Номер
детали
Номер
поставщика
S
P
SP
Простые запросы на языке SQL
• для выборки
данных из
базы данных;
• для
получения
новых строк в
составе
оператора
Insert;
• для
обновления
информации в
составе
оператора
Update.
Оператор
Select
• спецификатор Select;
• спецификатор From;
• спецификатор Where;
• спецификатор Group by;
• спецификатор Having;
• спецификатор Order by;
• спецификатор Into temp.
SQLSQL Обязательными являются
только спецификаторы Select и From.
Эти два спецификатора составляют основу
каждого запроса к базе данных, поскольку они
определяют таблицы, из которых выбираются данные,
и столбцы, которые требуется выбрать.
SQL
SQLSQL Спецификатор Where добавляется для выборки
определенных строк или указания условия соединения.
Спецификатор Order by добавляется для изменения
порядка получаемых данных. Спецификатор Into temp
добавляется для сохранения этих результатов в виде
таблицы с целью выполнения последующих запросов.
Два дополнительных спецификатора
оператора Select - Group by (спецификатор группирования)
и Having (спецификатор условия выборки группы) - позволяют
выполнять более сложные выборки данных.
SQL
Простые запросы на языке SQL
Запрос
Выдать полную
информацию о
поставщиках.
Select * from S
Результат: таблица S
в полном объеме.
Атенс30АдамсS5
Лондон20КларкS4
Париж30БлейкS3
Париж10ДжонсS2
Лондон20СмитS1
ГоpодРейтингФамилияHомеp
поставщика
Простые запросы на языке SQL
Запрос
Выдать таблицу S в следующем порядке: фамилия, город,
рейтинг, номер_поставщика.
Select фамилия, город, рейтинг, номер_поставщика from
S
Результат: таблица S в требуемом порядке.
Простые запросы на языке SQL
Запрос
Выдать номера всех поставляемых деталей.
Select номер_детали from SP
Результат: столбец номер_детали таблицы SP
Простые запросы на языке SQL
Запрос
Выдать номера всех поставляемых
деталей, исключая дублирование.
Select distinct номер_детали from SP
P6 
P5 
P4 
P3 
P2 
P1 
Номер_деталиРезультат:
Простые запросы на языке SQL
Запрос
Select номер_детали,
"вес в граммах", вес*454 from P
P6 вес в граммах=8226 
--------------------- 
--------------------- 
P1 вес в граммах=5448Результат:
Простые запросы на языке SQL
Запрос
Выдать сокращение фамилий до двух
букв и рейтинг поставщика.
Select фамилия[1,2], рейтинг from S
30Ад 
20Кл 
30Бл 
10Дж 
20СмРезультат:
Простые запросы на языке SQL
Запрос
Выдать список поставщиков,
упорядоченных по городу, в пределах
города - по рейтингу.
Select * from S order by 4, 3
Париж30БлейкS3
Париж10ДжонсS2
Лондон20КларкS4
Лондон20СмитS1
Атенс30АдамсS5
ГоpодРейтингФамилияHомеp
поставщика
Обозначения
SQLSQL
Включение в выражение ключевого
слова NOT порождает условие c обратным смыслом.
Ключевое слово LIKE соответствует стандарту ANSI,
а MATCHES является расширением INFORMIX.
  
отменяет специальное назначение следующего за ним символа 
служит для замены одиночного символа или символа из диапазона[]
заменяет любой одиночный символ?
заменяет последовательность символов*
 MATCHES
отменяет специальное назначение следующего за ним символа
заменяет любой одиночный символ-
заменяет последовательность символов%
 LIKE
ЗНАЧЕНИЕСИМВОЛ
Обозначения
Запрос
Выбрать список деталей,
начинающихся с буквы «Б»
Select номер_детали, название, вес
from P
where название like "Б%"
19БлюмP6
12БолтP5
весназваниеномер_детали
Запросы на языке SQL
SQLSQL
count - число значений в столбце
sum - сумма значений по столбцу
avg - среднее значение в столбце
Агрегатные функции
Запрос
Выдать средний, минимальный и максимальный
объем поставок для
поставщика S1 с соответствующим заголовком.
Select avg(количество) average,
min(количество) minimum,
max(количество) maximum
from SP where номер_поставщика='S1'
Запросы на языке SQL
400100216.6
maximumminimumaverage
Временные функции
SQLSQL day - день месяца
current - текущая дата
month - значение месяца
Запрос
Выдать перечень поставок и их количество,
а также день, месяц, день недели и количество дней,
прошедших с момента поставки на сегодняшний день.
Select номер_детали, количество
Day(дата_поставки) day,
Month(дата_поставки) month,
Weekday(дата_поставки) weekday,
Day(дата_поставки) - -current
from SP
Запросы на языке SQL
. . .. . .. . .. . .. . .. . .
. . .345200P2
. . .321300P1
(Expression)
ю
weekdaymonthDayКоличествоНомер
детали
Другие функции
SQLSQL
length - размер в байтах
символьной строки ( поля таблицы )ю
hex - 16-й код выражения
round - округленное значение выражения
trunc - обрезание значения выражения
Выдать все комбинации информации о
поставщиках и деталях,
расположенных в одном городе.
Select S.*,P.*
from S, P
where S.город=P.город
Запросы на языке SQL
Запрос
. . .. . .. . .. . .. . .. . .. . .. . .. . .
Париж17зеленыйБолтP2Париж10ДжонсS2
Лондон19красныйБлюмP6Лондон20СмитS1
Лондон14красныйВинтP4Лондон20СмитS1
Лондон12красныйГайкаP1Лондон20СмитS1
p.городвесцветназв-ен_детs.городрейтингфам-ян_пост
Группирование
SQLSQL
Оператор group by группирует таблицу,
представленную фразой from в группы т.о.,
чтобы в каждой группе все строки имели одно
и тоже значение поля, указанного во
фразе group by. Далее, к каждой группе
перекомпанованной таблицы
( а не к каждой строке исходной таблицы)
применяется фраза select, в результате чего,
каждое выражение во фразе select принимает
единственное значение для группы.
Выдать для каждой поставляемой детали
ее номер и общий объем поставок,
за исключением поставок поставщика S1.
Select номер_детали, sum( количество)ю
from SP
where номер_поставщика
group by номер_детали
Запросы на языке SQL
Запрос
400P5
300P4
800P2
300P1
(Sum)юHомеp
поставщика
ОБЪЕДЕНЕНИЕ
SQLSQL Объединяемые оператором UNION
таблицы должны быть совместны по объединению:
• иметь одинаковое число столбцов;
• соответствующие столбцы должны иметь одинаковые типы.
Любое число предложений select может быть соединено оператором union.
Избыточные дубликаты исключаются из результата объединения.
Выдать номера деталей,
которые имеют вес более 16 фунтов,
либо поставляются поставщиком S2.
Select номер_детали
from P
where вес>16
union
Select номер_детали
from SP
where номер_поставщика='S2'
Запросы на языке SQL
Запрос
P6
P3
P2
P1
Номер_детали
Удалить все поставки для поставщиков из Лондона.
delete from SP
where 'Лондон'=
(Select город from S
where
S.номер_поставщика=SP.номер_поставщика)ю
Результат: таблица SP с отсутствующими строками о
поставках для поставщиков из Лондона.
Запрос
Удаление

More Related Content

PPT
Робота в Excel Excel 2007
PPT
раздел 3 реляционные модели данных
PDF
CityCamp & Hack 2014: Использование Open Refine для очистки и преобразования ...
PPTX
PPTX
24 25 запросы
PDF
Визуализация данных на географических картах в Tableau. Следующий уровень.
PPT
субд
Робота в Excel Excel 2007
раздел 3 реляционные модели данных
CityCamp & Hack 2014: Использование Open Refine для очистки и преобразования ...
24 25 запросы
Визуализация данных на географических картах в Tableau. Следующий уровень.
субд

Viewers also liked (11)

PPTX
Archetypes of prototyping
PPT
базы данных
PPTX
системы управления базами данных
PPTX
паттерны проектирования
PDF
Разработка приложений для android
PPTX
Язык программирования C#
PDF
Лекция 1. Введение в Android.
PPTX
Управление данными (Введение в СУБД)
PPT
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
PPT
4 особенности платформы microsoft .net для разработки корпоративных систем
Archetypes of prototyping
базы данных
системы управления базами данных
паттерны проектирования
Разработка приложений для android
Язык программирования C#
Лекция 1. Введение в Android.
Управление данными (Введение в СУБД)
ORM технологии в .NET (Nhibernate, Linq To SQL, Entity Framework)
4 особенности платформы microsoft .net для разработки корпоративных систем
Ad

Similar to Sql (20)

PPT
Базы данных лекция №7
PDF
Взаимодействие с источниками данных в GLPK
PDF
1. Типы данных. Операции. Ввод и вывод C#
PPT
0041
DOC
0039
PPT
Возможности сервера Oracle
PPTX
Управление данными (реляционная модель)
PPTX
How optimize PL/SQL by decrease overhead for context switching between SQL an...
PPTX
Расширение библиотеки Slick
PPTX
Управление Данными. Лекция 7
PPT
стандартные функции
PPTX
SQL________________________________.pptx
PPTX
А.Шаманин -- "Инженерия справочных данных промышленного каталога"
PDF
Дмитрий Долгов
PPT
лекции спрг 6_семестр (1)
PDF
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
PPTX
20151112 Что нового в DB PowerStudio 2016
PDF
Язык R в маркетинге и бизнесе
PDF
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
PPT
Однострочные функции
Базы данных лекция №7
Взаимодействие с источниками данных в GLPK
1. Типы данных. Операции. Ввод и вывод C#
0041
0039
Возможности сервера Oracle
Управление данными (реляционная модель)
How optimize PL/SQL by decrease overhead for context switching between SQL an...
Расширение библиотеки Slick
Управление Данными. Лекция 7
стандартные функции
SQL________________________________.pptx
А.Шаманин -- "Инженерия справочных данных промышленного каталога"
Дмитрий Долгов
лекции спрг 6_семестр (1)
Опыт разработки сложных клиент-серверных приложений на TypeScript и ASP.NET
20151112 Что нового в DB PowerStudio 2016
Язык R в маркетинге и бизнесе
Как не сделать врагами архитектуру и оптимизацию, Кирилл Березин, Mail.ru Group
Однострочные функции
Ad

More from Sai_17 (14)

PPT
работа с базами данных с использованием субд My sql
PPT
разработка информационных приложений в среде субд Open officebase
PPT
разработка информационных приложений в среде субд Open officebase
PPT
защита
PPT
защита
PPT
защита
PPT
субд
PPT
субд
PPT
проектирование баз данных
PPT
проектирование баз данных
PPT
операции реляционной алгебры
PPT
реляционная модель данных
PPT
введение
PPT
история развития бд1
работа с базами данных с использованием субд My sql
разработка информационных приложений в среде субд Open officebase
разработка информационных приложений в среде субд Open officebase
защита
защита
защита
субд
субд
проектирование баз данных
проектирование баз данных
операции реляционной алгебры
реляционная модель данных
введение
история развития бд1

Sql