- •Лекция 1,2. Основные понятия. Введение в базы данных.
- •2. Управление буферами оперативной памяти.
- •3. Управление транзакциями
- •4. Журнализация
- •5. Поддержка языков бд
- •Теоретические языки запросов.
- •1. Теоретико – множественные операции
- •2. Специальные операции:
- •Кортежные переменные и правильно построенные формулы
- •Целевые списки и выражения реляционного исчисления
- •Реляционное исчисление доменов
- •Лекция 6. Табличный язык запросов qbe
- •1. Запросы на выборку
- •2. Запросы на обновление
- •Запросы с использованием группировки и обобщающего набора функций:
- •Запрос для вычисления выражения
- •Лекция 7. Язык sql. Определение данных, манипулирование данными.
- •Раздел from
- •Раздел where
- •Раздел group by
- •Раздел having
- •Агрегатные функции и результаты запросов
- •Семантика агрегатных функций
- •Результаты запросов
- •Операторы определения и манипулирования данными.
- •Операторы определения данных. Определение таблицы.
- •Определение столбца
- •Операторы манипулирования данными.
- •Основные понятия модели Сущность-Связь.
- •Инфологическое проектирование.
- •Лекция 12.
1. Запросы на выборку
1.1 Указать имена и статус поставщиков в Париже.
1.2 Показать номера поставщиков, статус которых более 20 и которые находятся в Лондоне.
1.3 Показать имена поставщиков, расположенных в Лондоне или имеющих статус более 20 (или - две строки).
2. Запросы на обновление
Скорректировать статус поставщика S2 сделав его равным 77.
QBE запрос можно посмотреть из режима Конструктора в SQL
Запросы с использованием группировки и обобщающего набора функций:
SUM – суммирование значений по полю.
AVG – нахождение средне-арифметического.
MIN, MAX – минимальная и максимальная величины.
COUNT – количество строк.
FIRST – первая запись.
LAST – последняя запись.
Определить суммарное, максимальное, минимальное, а так же среднее значение поставок. Подсчитать количество строк в таблице SP.
QBE запрос в режиме Конструктора (табл. SP)
QTY |
QTY |
QTY |
QTY |
QTY |
SP |
SP |
SP |
SP |
SP |
SUM |
MAX |
MIN |
AVG |
COUNT |
Результат
SUM - QTY |
MAX - QTY |
MIN - QTY |
AVG - QTY |
COUNT - QTY |
1800 |
400 |
200 |
300 |
6 |
Запрос для вычисления выражения
Определить веса, количества и общий вес детали
Результат запроса:
Лекция 7. Язык sql. Определение данных, манипулирование данными.
Язык SQL для взаимодействия с БД появился в середине 70-х и был разработан в рамках проекта экспериментальной реляционной СУБД System R. Исходное название языка SEQUEL (Structered English Query Language) только частично отражает суть этого языка. Конечно, язык был ориентирован главным образом на удобную и понятную пользователям формулировку запросов к реляционной БД, но на самом деле уже являлся полным языком БД, содержащим помимо операторов формулирования запросов и манипулирования БД средства определения и манипулирования схемой БД; определения ограничений целостности и триггеров; представлений БД; возможности определения структур физического уровня, поддерживающих эффективное выполнение запросов; авторизации доступа к отношениям и их полям; точек сохранения транзакции и откатов. Рассмотрим эти свойства языка немного более подробно.
Общая характеристика языка
Язык SQL предназначен для выполнения операций над таблицами (создание, удаление, изменение структуры) и над данными таблиц (выборка, изменение, добавление и удаление), а также некоторых сопутствующих операций. SQL является непроцедурным языком и не содержит операторов управления, организации подпрограмм, ввода-вывода и т.п. в связи с этим SQL автономно не используется, обычно он погружен в среду встроенного языка программирования СУБД.
В современных СУБД с интерактивным интерфейсом можно создавать запросы, используя другие средства, например QBE. Однако применение SQL зачастую позволяет повысить эффективность обработки данных к базе. Например, при подготовке запроса в среде Access можно перейти из окна Конструктора запросов (формулировки запросов по образцу на языке QBE) в окно с эквивалентным оператором SQL. Подготовку нового запроса путем редактирования уже имеющегося в ряде случаев проще выполнить путем изменения оператора SQL. В различных СУБД состав операторов SQL может несколько отличаться.
Язык SQL не обладает функциями полноценного языка разработки, а ориентирован на доступ к данным, поэтому его включают в состав средств разработки программ. В этом случае его называют встроенным SQL. Стандарт языка SQL поддерживают современные реализации языков программирования. В специализированных системах разработки приложений типа клиент – сервер среда программирования, кроме того, обычно дополнена коммуникационными средствами (установление и разъединение соединений с серверами БД, обнаружение и обработка возникающих в сети ошибок и т.п.), средствами разработки пользовательских интерфейсов, средствами проектирования и отладки.
Основным назначением языка SQL (как и других языков работы с базами данных) является подготовка и выполнение запросов. В результате выборки данных из одной или нескольких таблиц может быть получено множество записей, называемое представлением.
Спецификация запроса
В запросе задается список выборки (список арифметических выражений над значениями столбцов результата табличного выражения и констант). В результате применения списка выборки к результату табличного выражения производится построение новой таблицы, содержащей то же число строк, но вообще говоря другое число столбцов, содержащих результаты вычисления соответствующих арифметических выражений из списка выборки. Кроме того, в спецификации запроса могут содержаться ключевые слова ALL или DISTINCT. При наличии ключевого слова DISTINCT из таблицы, полученной применением списка выборки к результату табличного выражения, удаляются строки-дубликаты; при указании ALL (или просто при отсутствии DISTINCT) удаление строк-дубликатов не производится.
Операция объединения.
Выражение запросов - это выражение, строящееся по указанным синтаксическим правилам на основе спецификаций запросов. Единственной операцией, которую разрешается использовать в выражениях запросов, является операция UNION (объединение таблиц) с возможной разновидностью UNION ALL. К таблицам-операндам выражения запросов предъявляется то требование, что все они должны содержать одно и то же число столбцов, и соответствующие столбцы всех операндов должны быть одного и того же типа. Выражение запросов вычисляется слева направо с учетом скобок. При выполнении операции UNION производится обычное теоретико-множественное объединение операндов, т.е. из результирующей таблицы удаляются дубликаты.
(SELECT * FROM S )
UNION (SELECT * FROM SS );
При выполнении операции UNION ALL образуется результирующая таблица, в которой могут содержаться строки-дубликаты.
Основные операторы SQL. Разделы SELECT, FROM, WHERE. Предикаты сравнения, BETWEEN, IN, EXISTS.