Языки манипулирования данными. Общая характеристика Язык, в котором можно (по крайней мере) моделировать исчисление с переменными- кортежами, либо, что.

Презентация:



Advertisements
Похожие презентации
БАЗЫ ДАННЫХ ЛЕКЦИЯ 12. тема: ОСНОВЫ ЯЗЫКА SQL Общие сведения SQL структурированный язык запросов (Structured Query Language)
Advertisements

1 БАЗЫ ДАННЫХ Использование SQL для построения запросов. ЗАНЯТИЕ 6 ПУГАЧЁВ Ю.В. Учитель информатики Харьковская общеобразовательная школа І-ІІІ ступеней.
Бланк запроса. Создание списка специальностей Вид при конструирования запросов.
Выражения унарные (унарный минус) арифметические (+, -, *, /) сравнения (, =, =, , LIKE, BETWEEN...) конкатенации (||) логические (NOT, AND, OR)
1 Лекция 6 Команды категории извлечения данных языка структурированных запросов SQL План лекции Выборка определенных столбцов таблицы Устранение избыточных.
Реляционное исчисление. Общая характеристика Запрос – формула некоторой формально-логической теории; описывает свойства желаемого результата. Ответ –
1 Основы SQL: MySQL Будем использовать MySQL СУБД с открытым кодом Бесплатная версия (Community Edition) – на В Linux-дистрибутивах.
Вставка INSERT INTO table (column, column,...) VALUES (expr, expr...) LOAD DATA INFILE "C:\\tmp\\file.txt" INTO TABLE table.
СУБД 7. Использование подзапросов в языке запросов SQL.
СУБД Microsoft Access 2003 Элементы языка SQL. Язык SQL SQL (Structured Query Language) – структурированный язык запросов Язык SQL применяется во многих.
ЯЗЫК SQL Как и большинство современных реляционных языков, SQL основан на исчислении кортежей. В результате, каждый запрос, сформулированный с помощью.
Материал для самостоятельной проработки. Операции реляционной алгебры.
Базы данных. Введение Базы данных обеспечивают хранение информации. Доступ к базе данных осуществляется через специальную программу - систему управления.
SQL SQL (Structured Query Language Структурированный язык запросов) язык управления базами данных для реляционных баз данных.
Язык SQL Последовательности Представления Индексы.
СУБД Access Запросы Автор: Тутыгин В.С.. Назначение запросов Запросы обеспечивают простой доступ к определенному подмножеству записей одной или нескольких.
«Элементы языка SQL» Преподаватель: Французова Г.Н.
Язык SQL Операторы манипулирования данными. Операции манипулирования данными DELETE операция удаления записей INSERT операция добавления или ввода новых.
ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ УПРАВЛЕНИЯ Обработка и хранение информации.
«ИЗМЕНЕНИЕ ДАННЫХ В БД» Выполнил: студент 722 группы Специальности Информационные системы (по отрослям) Токарев Виктор.
Транксрипт:

Языки манипулирования данными

Общая характеристика Язык, в котором можно (по крайней мере) моделировать исчисление с переменными- кортежами, либо, что равносильно, реляционную алгебру или исчисление с переменными на доменах, называется полным 2

Обзор языков манипулирования данными (1) ISBL (Information System Base Language) – «чистый» язык реляционной алгебры. Разработан в исследовательском центре фирмы IBM в Питерли (Англия) для использования в экспериментальной системе PRTV (Peterlee Relational Test Vehicle). Нет агрегатных операций, а также средств для вставки, удаления и модификации кортежей 3

Обзор языков манипулирования данными (2) SEQUEL (Structured English Query Language) – разработан в 1974 г. в исследовательской лаборатории IBM в Сан-Хосе; использует реляционную алгебру, но имеет синтаксис, напоминающий реляционное исчисление с переменными-кортежами г. – СУБД System R; важнейший из результатов – разработка языка SQL (Structured Query Language) 4

Обзор языков манипулирования данными (3) QUEL – язык реляционного исчисления с переменными-кортежами, разработан в Калифорнийском университете в Беркли в конце 70-х г.г. для реляционной СУБД INGRES. Включает широкий спектр операторов реляционного исчисления с переменными-кортежами, агрегатные функции. Более структурирован, чем SQL 5

Обзор языков манипулирования данными (4) QBE (Query-By-Example) – язык исчисления с переменными на доменах; разработан в Исследовательском центре IBM в Йорктаун- Хейтсе. Предназначен для работы с терминала. Включены агрегатные функции 6

Обзор языков манипулирования данными (5) SQL (Structured Query Language) – язык, ориентированный на отображение; описывается отображение известного атрибута или множества атрибутов в искомый атрибут или множество атрибутов. Первая коммерческая СУБД – ORACLE (конец 70-х г.г.) 7

SQL 1982 г. – ANSI, 1983 г. – Международный комитет по стандартизации (ISO) 1987 г. – исходный вариант стандарта языка SQL (SQL-87, SQL 1-го поколения) 1992 г. – первая версия стандарта ISO, SQL-2 или SQL г. – стандарт SQL-1999 (SQL-3); реляционные и объектно-ориентированные свойства 8

Предложения SQL INSERT INTO имя таблицы (колонка 1, … ) VALUES (значение 1, … ) DELETE FROM имя таблицы WHERE условие отбора строк UPDATE имя таблицы SET колонка 1 = выражение, … WHERE условие отбора строк 9

Формирование запросов SELECT DISTINCT список вывода FROM источники WHERE условие отбора строк GROUP BY список для группирования HAVING условие отбора групп ORDER BY список для упорядочивания 10

Примеры запросов (1) Схема базы данных: S(Sid, SN, SC) – ПОСТАВЩИК ( Номер поставщика, Имя, Город) P(Pid, PN, PC) – ДЕТАЛЬ ( Номер детали, Название, Цена) SP(Sid(FK1), Pid (FK2), QTY) – ПОСТАВКА ( Номер поставщика, Номер детали, Количество) 11

Примеры запросов (2) 1. Получить имена поставщиков, поставляющих деталь с номером P1. 12 SSIdSNSCSPSIdPIdQty S1SmithLondonS1P1100 S2JonesParisS1P2150 S3ClarkParisS2P1200 S4AdamsLondonS3P1110 S5BlackAthensS3P220 S3P3180 S5P2140

Примеры запросов (3) SELECT SN Имя поставщика FROM S JOIN SP ON S.Sid = SP.Sid WHERE Pid = P1 13 Имя поставщика Smith Jones Clark

Примеры запросов (4) 2. Получить номера и имена поставщиков, не поставляющих деталь с номером P1 14 SSIdSNSCSPSIdPIdQty S1SmithLondonS1P1100 S2JonesParisS1P2150 S3ClarkParisS2P1200 S4AdamsLondonS3P1110 S5BlackAthensS3P220 S3P3180 S5P2140

Примеры запросов (5) SELECT Sid, SN FROM S WHERE Sid NOT IN ( SELECT Sid FROM SP WHERE Pid = P1 ) 15 SidSN S4Adams S5Black Sid S1 S2 S3

Примеры запросов (6) 3. Получить имена поставщиков, поставляющих только деталь с номером P1 16 SSIdSNSCSPSIdPIdQty S1SmithLondonS1P1100 S2JonesParisS1P2150 S3ClarkParisS2P1200 S4AdamsLondonS3P1110 S5BlackAthensS3P220 S3P3180 S5P2140

Примеры запросов (7) SELECT Sid, SN FROM S JOIN SP ON S.Sid = SP.Sid WHERE Pid = P1 AND S.Sid NOT IN ( SELECT Sid FROM SP WHERE Pid != P1 ) 17 Sid S1 S2 S3 Sid S1 S3 S5 SidSN S2Jones

Примеры запросов (8) 4. Получить имена поставщиков, поставляющих все детали 18 SSIdSNSCSPSIdPIdQtyPPIdPNPC S1SmithLondonS1P1100P1NutParis S2JonesParisS1P2150P2BoltRome S3ClarkParisS2P1200P3CamLondon S4AdamsLondonS3P1110 S5BlackAthensS3P220 S3P3180 S5P2140

Примеры запросов (9) SELECT SN FROM S WHERE NOT EXISTS ( SELECT Pid FROM P WHERE NOT EXISTS ( SELECT Sid FROM SP WHERE S.Sid = SP.Sid AND P.Pid = SP.Pid ) 19

Использование агрегатных функций (1) 1. Для всех поставщиков получить отчет в виде: 20 SSIdSNSCSPSIdPIdQty S1SmithLondonS1P1100 S2JonesParisS1P2150 S3ClarkParisS2P1200 S4AdamsLondonS3P1110 S5BlackAthensS3P220 S3P3180 S5P2140 SNTotal QTY

Использование агрегатных функций (2) SELECT SN, coalesce(sum(Qty),0) as Total QTY FROM S left outer join SP on S.Sid = SP.Sid GROUP BY SN 21 SNTotal QTY Smith250 Jones200 Clark310 Adams0 Black140

Использование агрегатных функций (3) 2. Для поставщиков, поставляющих более одной разновидности товара, получить отчет в виде: 22 SSIdSNSCSPSIdPIdQty S1SmithLondonS1P1100 S2JonesParisS1P2150 S3ClarkParisS2P1200 S4AdamsLondonS3P1110 S5BlackAthensS3P220 S3P3180 S5P2140 SNTotal QTYNumber of Products

Использование агрегатных функций (4) SELECT SN, sum(Qty) as Total QTY, count(Pid) as Number of Products FROM S join SP on S.Sid = SP.Sid GROUP BY SN HAVING count(Pid) > 1 23 SNTotal QTYNumber of Products Smith2502 Clark3103

Использование агрегатных функций (5) 3. Получить имена поставщиков, поставляющих все детали SELECT SN FROM S join SP on S.Sid = SP.Sid GROUP BY SN HAVING count(Pid) = ( SELECT count(Pid) FROM P) 24

Использование агрегатных функций (6) Для поставщиков, поставляющих максимальное суммарное количество товара, получить отчет в виде: 25 SNTotal QTY SSIdSNSCSPSIdPIdQtyV1SIdQty S1SmithLondonS1P1100S1250 S2JonesParisS1P2150S2200 S3ClarkParisS2P1200S3310 S4AdamsLondonS3P1110S5140 S5BlackAthensS3P220 S3P3180 S5P2140

Использование агрегатных функций (7) CREATE VIEW V1(Sid, Qty) as SELECT Sid, sum(Qty) from SP GROUP BY Sid go SELECT SN, Qty as Total QTY FROM S join V1 on S.Sid = V1. Sid WHERE Qty = (SELECT max(Qty) From V1) DROP VIEW V1 26

Использование агрегатных функций (8) WITH V1(Sid, Qty) as ( SELECT Sid, sum(Qty) from SP GROUP BY Sid ) SELECT SN, Qty as Total QTY FROM S join V1 on S.Sid = V1. Sid WHERE Qty = (SELECT max(Qty) From V1) 27