Презентация Запросы. Язык SQL онлайн
На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Запросы. Язык SQL абсолютно бесплатно. Урок-презентация на эту тему содержит всего 64 слайда. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Информатика » Запросы. Язык SQL
Оцените!
Оцените презентацию от 1 до 5 баллов!
- Тип файла:ppt / pptx (powerpoint)
- Всего слайдов:64 слайда
- Для класса:1,2,3,4,5,6,7,8,9,10,11
- Размер файла:1.18 MB
- Просмотров:64
- Скачиваний:0
- Автор:неизвестен
Слайды и текст к этой презентации:
№2 слайд
![Язык SQL Язык](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img1.jpg)
Содержание слайда: Язык SQL
Язык структурированных запросов Structured Query Language (SQL) является стандартным языком обработки данных, используемым большинством СУБД.
Язык был предложен исследовательской лабораторией фирмы IBM в начале 1970-х годов для реализации реляционной модели данных Э.Ф.Кодда (E.F.Codd).
Язык SQL был разработан задолго до появления графических интерфейсов пользователя, поэтому он ориентирован на использование текста для написания команд. Использование SQL позволяет выполнять более гибкую обработку данных, например, путем встраивания команд SQL в текст программ на каком-либо языке программирования. С помощью SQL можно определять структуры данных, а также запрашивать и обновлять информацию в базе данных. Совокупность команд, служащих для определения данных, называют языком определения данных (Data Description Language, DDL), а совокупность команд для обновления и запроса данных – языком манипулирования данных (Data Manipulation Language, DML).
№4 слайд
![SQL в Access Многие СУБД](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img3.jpg)
Содержание слайда: SQL в Access
Многие СУБД поддерживают интерактивный режим работы с интерфейсом в виде командной строки, в которой можно вводить команды языка SQL и выполнять их по нажатию Enter. Такого режима в Access нет, но возможность вводить и выполнять команды SQL имеется, например, в SQL-окне конструктора запросов. Команды SQL могут также быть частью программного кода на VBA.
На вкладке Создание выбираем Конструктор Запросов. Закрываем окно Добавление таблицы и выбираем режим Управление. Далее вводится инструкцию SQL для управляющего запроса.
№5 слайд
![SQL в Access Каждый](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img4.jpg)
Содержание слайда: SQL в Access
Каждый управляющий запрос может содержать только одну управляющую инструкцию.
При описании языка используются термины инструкция и предложение. Инструкция – это полностью законченная команда языка SQL. Инструкции заканчиваются точкой с запятой.
Предложение – это часть инструкции, имеющая самостоятельное значение.
№6 слайд
![Создание таблиц Новая таблица](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img5.jpg)
Содержание слайда: Создание таблиц
Новая таблица создается инструкцией CREATE TABLE.
Синтаксис инструкции:
CREATE [TEMPORARY] TABLE таблица
(поле_1 тип [(размер)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [индекс_1]
[, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [, ...]]
[, CONSTRAINT составнойИндекс [, ...]]);
Ключевые слова при описании синтаксиса записываются заглавными буквами, необязательные элементы заключаются в квадратные скобки, вертикальная черта разделяет различные варианты написания предложений.
№7 слайд
![Создание таблиц Инструкция](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img6.jpg)
Содержание слайда: Создание таблиц
Инструкция CREATE TABLE используется для описания новой таблицы, ее полей и индексов. Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать непустое значение.
Предложение CONSTRAINT устанавливает различные ограничения на поле и может быть использовано для определения ключа. Кроме того, для создания ключа или дополнительного индекса для существующей таблицы можно использовать инструкцию CREATE INDEX.
Допускается использование ограничения NOT NULL для одиночного поля, а также внутри именованного предложения CONSTRAINT, которое применяется к одиночному полю или к именованному предложению CONSTRAINT, предназначенному для создания составного индекса. Однако ограничение NOT NULL можно наложить на поле только один раз. При попытке применить это ограничение несколько раз возникает ошибка выполнения.
Создаваемая временная (TEMPORARY) таблица будет доступна только в том сеансе, где эта таблица была создана. По завершении данного сеанса она автоматически удаляется. Временные таблицы могут быть доступны для нескольких пользователей.
Использование атрибута WITH COMPRESSION допускается только для типов данных CHARACTER и MEMO (он же TEXT) и их синонимов.
№8 слайд
![Создание таблиц Атрибут WITH](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img7.jpg)
Содержание слайда: Создание таблиц
Атрибут WITH COMPRESSION был добавлен к столбцам CHARACTER вследствие перехода к формату представления знаков Юникод. Каждый знак в формате Юникод всегда кодируется с помощью двух байтов. Для существующих баз данных Microsoft Jet, содержащих в основном символьные данные, это может означать увеличение размера файла базы данных примерно в два раза после преобразования в формат Microsoft Jet версии 4.0. Тем не менее, для многих наборов символов, ранее обозначавшихся как однобайтовые наборы символов (SBCS), представление в формате Unicode (SBCS) может быть без труда сжато до одного байта. Если столбец CHARACTER был определен с этим атрибутом, то при сохранении в нем данных осуществляется их автоматическое сжатие, а при извлечении данных – обратная операция.
Столбцы MEMO также могут быть определены для хранения данных в сжатом формате. Однако при этом действует одно ограничение. Сжатию подвергаются только те столбцы типа MEMO, которые в сжатом виде имеют размер не более 4096 байтов. Все остальные столбцы MEMO не сжимаются. Это означает, что для данной таблицы и данного столбца MEMO этой таблицы одни данные могут быть сжаты, а другие – нет.
№9 слайд
![Создание таблиц упрощенная](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img8.jpg)
Содержание слайда: Создание таблиц (упрощенная схема)
CREATE TABLE таблица
(столбец1 тип_данных1 [ограничение_столбца1],
столбец2 тип_данных2 [ограничение_столбца2], …
столбецN тип_данныхN [ограничение_столбцаN]
[, ограничение_таблицы1]
[, ограничение_таблицы2]
…
[, ограничение_таблицыN]);
Создание новой таблицы без ограничений
CREATE TABLE таблица
(столбец1 тип_данных1,
столбец2 тип_данных2, …
столбецN тип_данныхN);
Присвоение названия ограничению:
CONSTRAINT имя_ограничения
№10 слайд
![Ограничения NOT NULL - Не](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img9.jpg)
Содержание слайда: Ограничения
NOT NULL - Не разрешает присваивать столбцу значение null
DEFAULT - Задает для столбца значение по умолчанию
PRIMARY KEY - Задает столбец (столбцы) первичного ключа для таблицы
FOREIGN KEY - Задает столбец (столбцы) вторичного ключа для таблицы
UNIQUE - Не разрешает добавлять в столбец повторяющиеся значения
CHECK - Ограничивает значения, которые могут добавляться в столбец, с помощью логических выражений
Ограничения бывают двух типов:
ограничение столбца является частью описания столбца и действует только для данного столбца;
ограничение таблицы не зависит от ограничений столбца и может влиять на несколько столбцов в таблице. Чтобы включить в ограничения требования для нескольких столбцов, следует использовать ограничение таблицы.
№11 слайд
![Ограничения NOT NULL и](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img10.jpg)
Содержание слайда: Ограничения NOT NULL и DEFAULT.
Задание первичного ключа
Установка ограничения NOT NULL для столбца
[CONSTRAINT имя_ограничения]
[NOT] NULL
Присвоение значения по умолчанию для столбца с помощью ограничения DEFAULT
[CONSTRAINT имя_ограничения]
DEFAULT выражение
Задание первичного ключа с помощью ограничения PRIMARY KEY
В качестве ограничения столбца:
[CONSTRAINT имя_ограничения]
PRIMARY KEY
В качестве ограничения таблицы:
[CONSTRAINT имя_ограничения]
PRIMARY KEY (ключевой_столбец)
Задание сложного первичного ключа в качестве ограничения таблицы:
[CONSTRAINT имя_ограничения]
PRIMARY KEY (ключевой_столбец1, ключевой_столбец2, …)
№12 слайд
![Задание внешнего ключа с](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img11.jpg)
Содержание слайда: Задание внешнего ключа с помощью ограничения FOREIGN KEY
Создание простого внешнего ключа в качестве ограничения столбца
[CONSTRAINT имя_ограничения]
REFERENCES связанная_таблица (связанный_столбец)
Создание простого внешнего ключа в качестве ограничения таблицы
[CONSTRAINT имя_ограничения]
FOREIGN KEY (ключевой_столбец)
REFERENCES связанная_таблица (связанный_столбец)
Задание сложного внешнего ключа в качестве ограничения таблицы
[CONSTRAINT имя_ограничения]
FOREIGN KEY (ключевые_столбцы)
REFERENCES связанная_таблица (связанные_столбцы)
№13 слайд
![Изменение и удаление значений](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img12.jpg)
Содержание слайда: Изменение и удаление значений ключа
При изменении или удалении значения ключа (в родительской таблице), на которое указывает значение внешнего ключа, для задания действия, в ограничении FOREIGN KEY указывается предложение:
ON UPDATE действие
ON DELETE действие
Виды действий:
CASCADE заменит (удалит) значения внешних ключей в соответствии с новым (удаленным) значением первичного ключа;
SET NULL заменит значения внешних ключей на NULL;
SET DEFAULT заменит значения внешних ключей значениями по умолчанию;
NO ACTION выдаст ошибку для внешнего ключа. Эта установка задается по умолчанию.
№14 слайд
![Уникальные значения и](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img13.jpg)
Содержание слайда: Уникальные значения и ограничения на столбцы
Присвоение уникальных значений с помощью ограничения UNIQUE
Создание простого ограничения уникальности в качестве ограничения столбца
[CONSTRAINT имя_ограничения] UNIQUE
Создание простого ограничения уникальности в качестве ограничения таблицы
[CONSTRAINT имя_ограничения]
UNIQUE (уникальный_столбец)
Задание сложного ограничения уникальности в качестве ограничения таблицы
[CONSTRAINT имя_ограничения]
UNIQUE (уникальные_столбцы)
Проверка значений столбца с помощью ограничения CHECK
[CONSTRAINT имя_ограничения]
CHECK (условия)
№15 слайд
![Создание таблиц Пример](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img14.jpg)
Содержание слайда: Создание таблиц
Пример: создание таблица Друзья.
CREATE TABLE Друзья
([Код] integer, [Фамилия] text, [Имя] text, [ДеньРождения] date,
[Телефон] text (10), [Примечания] memo,
CONSTRAINT [Индекс1] PRIMARY KEY ([Код]));
На рисунке показана созданная таблица в режиме конструктора. Свойству Индексированное поле поля Код установлено значение Да (Совпадение не допускаются). Размер текстовых полей инструкцией SQL установлен максимально возможный – 256.
№16 слайд
![Создание индекса При помощи](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img15.jpg)
Содержание слайда: Создание индекса
При помощи индексов ускоряется сортировка и поиск записей. Индексы таблиц Microsoft Access используются так же, как предметные указатели в книгах: при поиске данных выполняется их поиск в индексе. Индексы можно создавать по одному или нескольким полям. Составные индексы позволяют пользователю различать записи, в которых первые поля могут иметь одинаковые значения. В основном требуется индексировать поля, в которых часто осуществляется поиск.
Однако индексы могут замедлить выполнение некоторых запросов на изменение, например, запросов на добавление, при выполнении которых требуется обновление индексов многих полей.
Поля первичного ключа таблиц индексируются автоматически, а поля с типом данных Поле объекта OLE индексировать нельзя. Для остальных полей индексирование используется, если выполняются следующие условия.
Если предполагается частое выполнение одновременной сортировки или поиска в нескольких полях, можно создать для этих полей составной индекс. Например, если в одном и том же запросе часто задаются условия для полей Имя и Фамилия, то для этих двух полей имеет смысл создать составной индекс.
При сортировке таблицы по составному индексу Microsoft Access сначала выполняет сортировку по первому полю, определенному для данного индекса. Если в первом поле содержатся записи с повторяющимися значениями, то выполняется сортировка по второму полю, определенному для данного индекса, и так далее.
№17 слайд
![Создание индекса Пример](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img16.jpg)
Содержание слайда: Создание индекса
Пример: создание составного индекса по полям Фамилия и Имя.
CREATE INDEX NewIndex ON Друзья ([Фамилия], [Имя]);
Для просмотра созданных индексов откроем таблицу Друзья в режиме конструктора и нажмем кнопку . Откроется окно с перечнем индексов и полей, по которым производится индексация.
Для создания индекса нужно ввести его имя в столбце Индекс, а в столбце Имя поля выбрать из списка поле таблицы, по которому будет производиться индексация. Для удаления индекса нужно очистить содержимое строк, содержащих описание индекса.
№19 слайд
![Константы и NULL-значение](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img18.jpg)
Содержание слайда: Константы и NULL-значение
Числовые значения
0 1 2 3 4 5 6 7 8 9 + - $ . E e
Булевы значения, строковые константы и даты
TRUE ‘Hello’ 12-04-2011 14:40 ‘Д’’Артаньян’
NULL – пустое или несуществующее значение
Значения типа NULL нельзя помещать в столбцы, определенные как NOT NULL
Значения типа NULL не равны друг другу
Игнорируется при вычислении агрегатных значений
При группировке все найденные значения NULL рассматриваются как одна группа
№20 слайд
![Добавление строк Добавление](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img19.jpg)
Содержание слайда: Добавление строк
Добавление строки с помощью положения столбца
INSERT INTO таблица
VALUES(значение1, значение2, …, значениеN);
Пример: добавление нового покупателя
INSERT INTO Покупатель
VALUES(11111,'Иванов','Николай','Петрович',1234565,'Муж','01-01-2001');
Добавление строки с помощью названий столбцов
INSERT INTO таблица
(Штрих-код, Номер_чека, Скидка)
VALUES(1, 1, 0);
Пример: добавление записи в таблицу Товар_в_чеке
INSERT INTO Товар_в_чеке
(Штрих_код, Номер_чека, Скидка)
VALUES(1, 1, 0);
Замечание: в записях названия «тире» не воспринимается, то есть вместо
Штрих-код нужно писать Штрих_код.
№21 слайд
![Операторы Оператор это символ](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img20.jpg)
Содержание слайда: Операторы
Оператор – это символ или имя, обозначающий действие, выполняемое над одним или несколькими выражениями.
Арифметические операторы
+ - * / (+ и – можно применять к датам)
Оператор конкатенации (&) соединяет две отдельных текстовых строки в одно строковое значение.
Оператор присваивания (=)
Унарные операторы
+ числовое значение становится положительным
- числовое значение становится отрицательным
№24 слайд
![Приоритет операторов](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img23.jpg)
Содержание слайда: Приоритет операторов
() (выражения, стоящие в скобках)
+, - (унарные операторы)
*, / (математические операторы)
+, - (арифметические операторы)
=, >, <, >=, <=, <> (операторы сравнения)
IS NULL
NOT
AND
ALL, ANY, BETWEEN, IN, LIKE, OR, SOME
= (присваивание значения переменной)
№25 слайд
![Изменение и удаление строк](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img24.jpg)
Содержание слайда: Изменение и удаление строк
Изменение строк с помощью команды UPDATE
UPDATE таблица
SET столбец = новое_значение
[WHERE условия_выбора_строк];
Пример: запрос, меняющий фамилии
UPDATE Покупатель
SET Фамилия = 'Иванченко'
WHERE Фамилия='Иванов';
Удаление строк с помощью команды DELETE
DELETE FROM таблица
[WHERE условия_выбора_строк];
Пример: удалить все записи заданного чека
DELETE FROM Товар_в_чеке
WHERE Номер_чека=1;
№26 слайд
![Инструкция SELECT По этой](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img25.jpg)
Содержание слайда: Инструкция SELECT
По этой инструкции ядро базы данных Microsoft Jet возвращает данные из базы данных в виде набора записей.
Синтаксис структуры оператора SELECT имеет вид:
SELECT список столбцов, которые включаются в результат выборки
{INTO новая таблица}
FROM список таблиц, из которых производится выборка
[WHERE условия выборки]
[GROUP BY список столбцов, по которым происходит группировка]
[HAVING условия группировки]
[ORDER BY выражение, в соответствии с которым выполняется сортировка возвращаемых данных];
В квадратные скобки заключены необязательные выражения оператора SELECT.
Если не указано имя таблицы для вывода, то результат формируется во временную таблицу.
При выполнении этой операции ядро базы данных находит указанную таблицу или таблицы, извлекает заданные столбцы, выделяет строки, соответствующие условию отбора, и сортирует или группирует результирующие строки в указанном порядке. Инструкции SELECT не изменяют данные в базе данных.
Обычно слово SELECT является первым словом инструкции SQL. Большая часть инструкций SQL является инструкциями SELECT или SELECT...INTO.
№27 слайд
![Отбор данных из одной](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img26.jpg)
Содержание слайда: Отбор данных из одной таблицы.
Простая выборка
Вывод нескольких столбцов таблицы (проекция).
SELECT столбец 1, …, столбец N
FROM таблица;
Замечание: порядок столбцов может быть произвольный.
Пример: получение ФИО всех покупателей и их даты рождения.
SELECT Имя, Отчество, Фамилия,Год_рождения
FROM Покупатель;
№28 слайд
![Отбор данных из одной](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img27.jpg)
Содержание слайда: Отбор данных из одной таблицы.
Простая выборка
Вывод всей таблицы
SELECT *
FROM таблица;
Замечание: * обозначает все имена столбцов таблицы, при этом порядок вывода столбцов соответствует порядку, в котором они определялись при создании таблицы.
Пример: Получение полной информации о покупателях.
SELECT *
FROM Покупатель;
№29 слайд
![Отбор данных из одной](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img28.jpg)
Содержание слайда: Отбор данных из одной таблицы.
Простая выборка
Исключение дублирующей информации
SELECT DISTINCT столбец1,… , столбец N
FROM Покупатель;
Замечание: DISTINCT исключает дублирование кортежей при проекции столбцов, в случае его отсутствия кортежи могут дублироваться.
Пример: получить разные фамилии клиентов.
SELECT DISTINCT Фамилия
FROM Покупатель;
SELECT Фамилия
FROM Покупатель;
№30 слайд
![Запросы с вычисляемыми полями](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img29.jpg)
Содержание слайда: Запросы с вычисляемыми полями
Пример: узнать суммарную стоимость за 4 единицы товара.
SELECT Название, 4 AS Количество, Цена, "=" AS Равно, Количество*Цена AS Сумма
FROM Товар;
Замечания:
Конструкция типа «Значение переменной AS Имя столбца» означает, что создается столбец (Имя столбца), в каждой ячейке которого лежит значение (Значение переменной).
«Количество*Цена AS Сумма» означает, что в столбец Сумма будет помещено значение, являющееся результатом вычисления Количество*Цена для соответствующей строки.
№32 слайд
![Запросы с условием отбора](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img31.jpg)
Содержание слайда: Запросы с условием отбора
SELECT столбец 1, …, столбец N
FROM таблица
WHERE условие отбора;
WHERE условие_поиска [{AND | OR | NOT} условие_поиска […],
условие_поиска:
значение { = | <> | < | <= | > | >= } { значение | (подзапрос) }
значение_1 [NOT] BETWEEN значение_2 AND значение_3
значение [NOT] IN { (константа [, константа]…) | (подзапрос) }
значение IS [NOT] NULL
[таблица.] столбец [NOT] LIKE ‘строка_символов’ [ESCAPE ‘символ’]
EXISTS (подзапрос)
Критерий отбора строк формируется из одного или нескольких условий, соединенных логическими операторами:
AND – выполняются оба условия
OR - выполняется одно из условий
AND NOT – выполняется первое, но не выполняется второе
OR NOT – или выполняется первое или не выполняется второе
№37 слайд
![Запросы с условием отбора](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img36.jpg)
Содержание слайда: Запросы с условием отбора
Оператор IN
Определяет набор значений с помощью соответствующего набора данных, заключенные в круглые скобки и отделенные запятой.
Пример: найти покупателей с заданными фамилиями.
SELECT *
FROM Покупатель
WHERE Фамилия IN('Иванов','Иванова','Иванченко');
№38 слайд
![Запросы с условием отбора](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img37.jpg)
Содержание слайда: Запросы с условием отбора
Оператор LIKE
Применяется только к текстовым данным, используется для нахождения подстрок, совпадающих с заданным образцом.
Замечание: символ ‘?’ заменяет любой одиночный символ, знак ’*’ заменяет последовательность произвольного числа символов (в том числе и их отсутствие).
Пример: найти покупателей, начинающихся на ‘Иван…’.
SELECT *
FROM Покупатель
WHERE Фамилия LIKE 'Иван*';
№42 слайд
![Оператор GROUP BY Производит](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img41.jpg)
Содержание слайда: Оператор GROUP BY
Производит вывод таблицы по группам, каждая из которых имеет одинаковые значения в столбце (столбцах), указанных в GROUP BY.
SELECT столбцы-критерии объединения в группу
FROM Таблица
GROUP BY столбцы, по которым идет объединение;
Пример: получение минимальной цены по всем товарам.
SELECT Название, MIN (Цена) AS МинЦена
FROM Товар
GROUP BY Название;
№44 слайд
![Оператор GROUP BY с условием](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img43.jpg)
Содержание слайда: Оператор GROUP BY с условием HAVING
HAVING – условия группировки (аналог WHERE в случае группировки).
SELECT столбцы-критерии объединения в группу
FROM Таблица
GROUP BY столбцы, по которым идет объединение
HAVING наложенные условия;
Пример: вывести минимальную цену товаров, которые продаются по акции.
SELECT Название, MIN (Цена) AS МинЦена
FROM Товар
GROUP BY Название, Наличие_акции
HAVING Наличие_акции=TRUE;
№45 слайд
![Упорядочивание вывода полей.](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img44.jpg)
Содержание слайда: Упорядочивание вывода полей.
Оператор ORDER BY
SELECT столбцы-критерии объединения в группу
FROM Таблица
ORDER BY столбец1 критерий_упорядочивания,…, столбецN критерий_упорядочивания;
Критерий упорядочивания:
ASC – по возрастанию (по умолчанию)
DESC – по убыванию
Пример: получение минимальной цены по всем товарам с учетом наличия акции так, чтобы товары располагалась по убыванию, а цена – по возрастанию.
SELECT Название, MIN (Цена) AS МинЦена, Наличие_акции
FROM Товар
GROUP BY Название, Наличие_акции
ORDER BY Название, MIN (Цена) DESC;
№46 слайд
![Особенности работы с](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img45.jpg)
Содержание слайда: Особенности работы с несколькими таблицами
Использование уточненных имен:
Таблица.Столбец
Использование объединений – предложение JOIN
1) Таблицы всегда объединяются построчно при выполнении всевозможных условий, определенных в вашем запросе.
2) Строки, несоответствующие заданным условиям, могут быть как включены в объединение, так и исключены из него, в зависимости от типа этого объединения.
Объединением по равенству называется такое объединение, в условии которого применяется оператор равенства (=), чтобы группировать строки, имеющие равные значения в определенных столбцах, называемых связанными.
Тэта-объединение – более общий случай когда значения связанных столбцов сравнивают с применением любого оператора сравнения.
Связанные столбцы любого объединения чаще всего оказываются связанными ключевыми столбцами, но можно связывать любые столбцы, если их типы данных совместимы.
№47 слайд
![Создание объединений с](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img46.jpg)
Содержание слайда: Создание объединений с помощью синтаксиса JOIN
SELECT столбцы
FROM таблица1 тип_JOIN таблица2
ON условие_объединения
[WHERE условие_поиска]
[GROUP BY условия_группировки]
[HAVING условия_поиска]
[ORDER BY столбец_сортировки];
Типы объединений JOIN:
1) CROSS JOIN – для перекрестного объединения;
2) NATURAL JOIN – для естественного объединения;
3) INNER JOIN – для внутреннего объединения;
4) LEFT [OUTER] JOIN – для левого внешнего объединения;
5) RIGHT [OUTER] JOIN – для правого внешнего объединения;
6) FULL [OUTER] JOIN – для полного внешнего объединения.
№48 слайд
![Последовательность выполнения](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img47.jpg)
Содержание слайда: Последовательность выполнения запроса
Когда СУБД обрабатывает объединения, она подчиняется определенной последовательности шагов, которая не только относится к обработке объединений, но и определяет алгоритм выполнения всего запроса:
1)Применить условия объединения, заданные предложением JOIN.
2) Применить условия объединения и поиска, заданные предложением WHERE.
3) Сгруппировать строки в соответствии с предложением GROUP BY.
4) Применить к группам условия поиска, заданные предложением HAVING.
5) Отсортировать результат в соответствии с предложением ORDER BY.
№49 слайд
![Декартово произведение на](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img48.jpg)
Содержание слайда: Декартово произведение на языке SQL
CROSS JOIN – перекрестное соединение, которое просто формирует декартово произведение таблиц (это все возможные комбинации строк двух таблиц так, что каждая строка первой таблицы объединяется с каждой строкой второй таблицы).
SELECT Покупатель.*,Товар.*
FROM Покупатель,Товар;
Замечания:
В случае запроса с несколькими таблицами указание столбцов таблицы имеет вид: Название_таблицы.Название_стобца .
Синтаксис Название_таблицы.* означает использование всех столбцов в таблице.
В MS ACCESS данная конструкция не используется, а просто перечисляются таблицы.
№51 слайд
![Естественное соединение](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img50.jpg)
Содержание слайда: Естественное соединение
NATURAL JOIN – естественное соединение, производится по всем столбцам таблиц, имеющим одинаковые имена.
Связанными столбцами считаются те, которые в двух таблицах имеют одинаковые имена. Остальные строки из объединения исключаются.
Пример: у каких покупателей какие чеки.
SELECT Покупатель.*,Чек.Номер_чека
FROM Покупатель NATURAL JOIN Чек;
Замечание: в MS ACCESS естественное соединение используется как декартово произведение при условии равенства значений в соответствующих столбцах (2 вариант).
№52 слайд
![Естественное соединение](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img51.jpg)
Содержание слайда: Естественное соединение
Пример: вывести покупателей и товары, которые они купили.
SELECT Покупатель.Фамилия,Товар.Название, Товар.Наличие_акции
FROM Покупатель, Чек, Товар_в_чеке, Товар
WHERE Покупатель.Номер_карты=Чек.Номер_карты
AND Чек.Номер_чека=Товар_в_чеке.Номер_чека
AND Товар_в_чеке.Штрих_код=Товар.Штрих_код;
№53 слайд
![Внутреннее соединение INNER](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img52.jpg)
Содержание слайда: Внутреннее соединение
INNER JOIN – внутреннее соединение, при котором соединяются только те строки, для которых найдено совпадение значений в таблицах A и B.
Считывает результат, который включает только объединенные строки, соответствующие условиям объединения. Использует оператор сравнения (=, <>, <, <=, > или >=), чтобы сопоставить строки в двух таблицах на основании значений в общих столбцах каждой таблицы.
Замечание: в случае использования оператора = аналог естественного соединения.
Пример: у каких покупателей какие чеки.
SELECT Покупатель.*,Чек.Номер_чека
FROM Покупатель INNER JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты;
№54 слайд
![Внутреннее соединение Пример](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img53.jpg)
Содержание слайда: Внутреннее соединение
Пример: вывести покупателей и товары, которые они купили по акции.
SELECT Покупатель.Фамилия,Товар.Название, Товар.Наличие_акции
FROM ((Покупатель INNER JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты)
INNER JOIN Товар_в_чеке ON Чек.Номер_чека=Товар_в_чеке.Номер_чека)
INNER JOIN Товар ON Товар_в_чеке.Штрих_код=Товар.Штрих_код
WHERE Товар.Наличие_акции=TRUE;
№55 слайд
![Внешние соединения Внешнее](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img54.jpg)
Содержание слайда: Внешние соединения
Внешнее соединение считывает все строки хотя бы из одной таблицы (если они соответствуют условию поиска).
Замечание: значение имеет порядок, в котором задаются таблицы.
Левое внешнее соединение включает все строки из левой таблицы, заданные в пункте LEFT JOIN, а не только строки, которые совпадают для связанных столбцов. Если для строки в левой таблице нет соответствия в правой таблице, то в результате строка будет содержать NULL для всех столбцов в списке SELECT, которые были считаны из правой таблицы.
Правое внешнее соединение включает все строки из правой таблицы, заданные в пункте RIGHT JOIN, а не только строки, которые совпадают для связанных столбцов. Если для строки в правой таблице нет соответствия в левой таблице, то в результате строка будет содержать NULL для всех столбцов в списке SELECT, которые были считаны из левой таблицы.
Полное соединение FULL JOIN является комбинацией левого и правого соединения.
№58 слайд
![Комбинирование строк с](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img57.jpg)
Содержание слайда: Комбинирование строк с помощью оператора UNION
Оператор UNION комбинирует результаты двух запросов в один результат, который объединяет строки, считанные двумя запросами.
Выражение UNION удаляет из результата повторяющиеся строки. Выражение UNION ALL сохраняет повторы.
Ограничения:
списки столбцов команды SELECT в двух запросах должны включать одинаковое число столбцов (названий столбцов, арифметических выражений, функций и т.д.);
соответствующие столбцы в двух запросах должны быть заданы в одинаковом порядке;
если имена соответствующих столбцов совпадают, то их название будет использовано в результате. Если названия соответствующих столбцов различаются, то СУБД самостоятельно определит имя столбца в результате;
предложение ORDER BY может использоваться только в последнем запросе команды UNION;
можно задавать предложения GROUP BY и HAVING только в отдельных запросах; их нельзя использовать для изменения конечного результата.
№60 слайд
![Подзапросы Подзапрос это](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img59.jpg)
Содержание слайда: Подзапросы
Подзапрос – это команда SELECT, встроенная в другую команду SQL.
Отличия структуры подзапросов:
1) подзапрос можно поместить в предложение SELECT, FROM, WHERE, HAVING или в другой запрос;
2) подзапрос всегда должен заключаться в круглые скобки;
3) подзапрос нельзя заканчивать точкой с запятой;
4) не помещайте в подзапрос предложение ORDER BY;
5) подзапрос включает одну команду SELECT;
6) подзапрос может использовать столбцы в таблицах, которые приводятся в предложении FROM самого подзапроса или другого подзапроса;
7) если таблица появляется во внутреннем, а не во внешнем запросе, вы не сможете включить столбцы этой таблицы в конечный результат (то есть в предложение SELECT внешнего запроса);
7) в зависимости от ситуации подзапрос может использоваться для считывания ограниченного количества строк или столбцов. Подзапрос может считывать пустую таблицу.
№61 слайд
![Подзапросы Чаще всего](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img60.jpg)
Содержание слайда: Подзапросы
Чаще всего подзапросы используются в предложении WHERE в одной из форм:
1) WHERE условие_поиска = (подзапрос);
2) WHERE условие_поиска [NOT] IN (подзапрос);
3) WHERE условие_поиска = ALL (подзапрос);
4) WHERE условие_поиска = ANY (подзапрос);
5) WHERE [NOT] EXISTS (подзапрос).
Замечание: большую часть подзапросов можно записать в виде объединений.
№64 слайд
![Подзапросы Пример вывести](/documents_6/64ca8acf96f16e12a51da751ed4929ad/img63.jpg)
Содержание слайда: Подзапросы
Пример: вывести товары, цена которых больше минимальной цены по всем товарам без акции, но меньше максимальной цены по всем товарам по акции.
SELECT Товар.Название, Товар.Цена,Товар.Наличие_акции
FROM Товар
WHERE Товар.Цена BETWEEN (SELECT MIN(Товар.Цена)
FROM Товар
WHERE Товар.Наличие_акции=FALSE) AND (SELECT MAX(Товар.Цена)
FROM Товар
WHERE Товар.Наличие_акции=TRUE);
Скачать все slide презентации Запросы. Язык SQL одним архивом:
Похожие презентации
-
Язык запросов SQL. Лекция 10
-
Язык запросов SQL. Общий синтаксис команды SELECT
-
Язык SQL. Сложноподчиненные запросы
-
Язык запросов SQL. Многотабличные запросы
-
Язык запросов SQL. Язык запросов к данным (DML)
-
SQL - структурированный язык запросов
-
Язык запросов SQL. Введение
-
Язык SQL. Подзапросы. (Лекция 10)
-
SQL Язык структурированных запросов, применяемый для создания и управления данными в реляционных базах данных
-
Язык SQL. Создание запросов в СУБД . Microsoft Access средствами SQL