🗊Презентация Запросы. Язык SQL

Категория: Информатика
Нажмите для полного просмотра!
Запросы. Язык SQL, слайд №1Запросы. Язык SQL, слайд №2Запросы. Язык SQL, слайд №3Запросы. Язык SQL, слайд №4Запросы. Язык SQL, слайд №5Запросы. Язык SQL, слайд №6Запросы. Язык SQL, слайд №7Запросы. Язык SQL, слайд №8Запросы. Язык SQL, слайд №9Запросы. Язык SQL, слайд №10Запросы. Язык SQL, слайд №11Запросы. Язык SQL, слайд №12Запросы. Язык SQL, слайд №13Запросы. Язык SQL, слайд №14Запросы. Язык SQL, слайд №15Запросы. Язык SQL, слайд №16Запросы. Язык SQL, слайд №17Запросы. Язык SQL, слайд №18Запросы. Язык SQL, слайд №19Запросы. Язык SQL, слайд №20Запросы. Язык SQL, слайд №21Запросы. Язык SQL, слайд №22Запросы. Язык SQL, слайд №23Запросы. Язык SQL, слайд №24Запросы. Язык SQL, слайд №25Запросы. Язык SQL, слайд №26Запросы. Язык SQL, слайд №27Запросы. Язык SQL, слайд №28Запросы. Язык SQL, слайд №29Запросы. Язык SQL, слайд №30Запросы. Язык SQL, слайд №31Запросы. Язык SQL, слайд №32Запросы. Язык SQL, слайд №33Запросы. Язык SQL, слайд №34Запросы. Язык SQL, слайд №35Запросы. Язык SQL, слайд №36Запросы. Язык SQL, слайд №37Запросы. Язык SQL, слайд №38Запросы. Язык SQL, слайд №39Запросы. Язык SQL, слайд №40Запросы. Язык SQL, слайд №41Запросы. Язык SQL, слайд №42Запросы. Язык SQL, слайд №43Запросы. Язык SQL, слайд №44Запросы. Язык SQL, слайд №45Запросы. Язык SQL, слайд №46Запросы. Язык SQL, слайд №47Запросы. Язык SQL, слайд №48Запросы. Язык SQL, слайд №49Запросы. Язык SQL, слайд №50Запросы. Язык SQL, слайд №51Запросы. Язык SQL, слайд №52Запросы. Язык SQL, слайд №53Запросы. Язык SQL, слайд №54Запросы. Язык SQL, слайд №55Запросы. Язык SQL, слайд №56Запросы. Язык SQL, слайд №57Запросы. Язык SQL, слайд №58Запросы. Язык SQL, слайд №59Запросы. Язык SQL, слайд №60Запросы. Язык SQL, слайд №61Запросы. Язык SQL, слайд №62Запросы. Язык SQL, слайд №63Запросы. Язык SQL, слайд №64

Содержание

Вы можете ознакомиться и скачать презентацию на тему Запросы. Язык SQL. Доклад-сообщение содержит 64 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Тема 7
Описание слайда:
Тема 7

Слайд 2





Язык SQL
Язык структурированных запросов Structured Query Language (SQL) является стандартным языком обработки данных, используемым большинством СУБД.
Язык был предложен исследовательской лабораторией фирмы IBM в начале 1970-х годов для реализации реляционной модели данных Э.Ф.Кодда (E.F.Codd).
Язык SQL был разработан задолго до появления графических интерфейсов пользователя, поэтому он ориентирован на использование текста для написания команд. Использование SQL позволяет выполнять более гибкую обработку данных, например, путем встраивания команд SQL в текст программ на каком-либо языке программирования. С помощью SQL можно определять структуры данных, а также запрашивать и обновлять информацию в базе данных. Совокупность команд, служащих для определения данных, называют языком определения данных (Data Description Language, DDL), а совокупность команд для обновления и запроса данных – языком манипулирования данных (Data Manipulation Language, DML).
Описание слайда:
Язык SQL Язык структурированных запросов Structured Query Language (SQL) является стандартным языком обработки данных, используемым большинством СУБД. Язык был предложен исследовательской лабораторией фирмы IBM в начале 1970-х годов для реализации реляционной модели данных Э.Ф.Кодда (E.F.Codd). Язык SQL был разработан задолго до появления графических интерфейсов пользователя, поэтому он ориентирован на использование текста для написания команд. Использование SQL позволяет выполнять более гибкую обработку данных, например, путем встраивания команд SQL в текст программ на каком-либо языке программирования. С помощью SQL можно определять структуры данных, а также запрашивать и обновлять информацию в базе данных. Совокупность команд, служащих для определения данных, называют языком определения данных (Data Description Language, DDL), а совокупность команд для обновления и запроса данных – языком манипулирования данных (Data Manipulation Language, DML).

Слайд 3





Демонстрация языка выполнена с использованием следующей модели
Описание слайда:
Демонстрация языка выполнена с использованием следующей модели

Слайд 4





SQL в Access
Многие СУБД поддерживают интерактивный режим работы с интерфейсом в виде командной строки, в которой можно вводить команды языка SQL и выполнять их по нажатию Enter. Такого режима в Access нет, но возможность вводить и выполнять команды SQL имеется, например, в SQL-окне конструктора запросов. Команды SQL могут также быть частью программного кода на VBA.
На вкладке Создание выбираем Конструктор Запросов.  Закрываем окно Добавление таблицы и выбираем режим Управление. Далее вводится инструкцию SQL для управляющего запроса.
Описание слайда:
SQL в Access Многие СУБД поддерживают интерактивный режим работы с интерфейсом в виде командной строки, в которой можно вводить команды языка SQL и выполнять их по нажатию Enter. Такого режима в Access нет, но возможность вводить и выполнять команды SQL имеется, например, в SQL-окне конструктора запросов. Команды SQL могут также быть частью программного кода на VBA. На вкладке Создание выбираем Конструктор Запросов. Закрываем окно Добавление таблицы и выбираем режим Управление. Далее вводится инструкцию SQL для управляющего запроса.

Слайд 5





SQL в Access
Каждый управляющий запрос может содержать только одну управляющую инструкцию.
При описании языка используются термины инструкция и предложение. Инструкция – это полностью законченная команда языка SQL. Инструкции заканчиваются точкой с запятой. 
Предложение – это часть инструкции, имеющая самостоятельное значение.
Описание слайда:
SQL в Access Каждый управляющий запрос может содержать только одну управляющую инструкцию. При описании языка используются термины инструкция и предложение. Инструкция – это полностью законченная команда языка SQL. Инструкции заканчиваются точкой с запятой. Предложение – это часть инструкции, имеющая самостоятельное значение.

Слайд 6





Создание таблиц
Новая таблица создается инструкцией CREATE TABLE.
Синтаксис инструкции:
CREATE [TEMPORARY] TABLE таблица
(поле_1 тип [(размер)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [индекс_1]
[, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [, ...]]
[, CONSTRAINT составнойИндекс [, ...]]);
Ключевые слова при описании синтаксиса записываются заглавными буквами, необязательные элементы заключаются в квадратные скобки, вертикальная черта разделяет различные варианты написания предложений.
Описание слайда:
Создание таблиц Новая таблица создается инструкцией CREATE TABLE. Синтаксис инструкции: CREATE [TEMPORARY] TABLE таблица (поле_1 тип [(размер)] [NOT NULL] [WITH COMPRESSION | WITH COMP] [индекс_1] [, поле_2 тип [(размер)] [NOT NULL] [индекс_2] [, ...]] [, CONSTRAINT составнойИндекс [, ...]]); Ключевые слова при описании синтаксиса записываются заглавными буквами, необязательные элементы заключаются в квадратные скобки, вертикальная черта разделяет различные варианты написания предложений.

Слайд 7





Создание таблиц
Инструкция CREATE TABLE используется для описания новой таблицы, ее полей и индексов. Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать непустое значение.
Предложение CONSTRAINT устанавливает различные ограничения на поле и может быть использовано для определения ключа. Кроме того, для создания ключа или дополнительного индекса для существующей таблицы можно использовать инструкцию CREATE INDEX.
Допускается использование ограничения NOT NULL для одиночного поля, а также внутри именованного предложения CONSTRAINT, которое применяется к одиночному полю или к именованному предложению CONSTRAINT, предназначенному для создания составного индекса. Однако ограничение NOT NULL можно наложить на поле только один раз. При попытке применить это ограничение несколько раз возникает ошибка выполнения.
Создаваемая временная (TEMPORARY) таблица будет доступна только в том сеансе, где эта таблица была создана. По завершении данного сеанса она автоматически удаляется. Временные таблицы могут быть доступны для нескольких пользователей.
Использование атрибута WITH COMPRESSION допускается только для типов данных CHARACTER и MEMO (он же TEXT) и их синонимов.
Описание слайда:
Создание таблиц Инструкция CREATE TABLE используется для описания новой таблицы, ее полей и индексов. Если для поля добавлено ограничение NOT NULL, то при добавлении новых записей это поле должно содержать непустое значение. Предложение CONSTRAINT устанавливает различные ограничения на поле и может быть использовано для определения ключа. Кроме того, для создания ключа или дополнительного индекса для существующей таблицы можно использовать инструкцию CREATE INDEX. Допускается использование ограничения NOT NULL для одиночного поля, а также внутри именованного предложения CONSTRAINT, которое применяется к одиночному полю или к именованному предложению CONSTRAINT, предназначенному для создания составного индекса. Однако ограничение NOT NULL можно наложить на поле только один раз. При попытке применить это ограничение несколько раз возникает ошибка выполнения. Создаваемая временная (TEMPORARY) таблица будет доступна только в том сеансе, где эта таблица была создана. По завершении данного сеанса она автоматически удаляется. Временные таблицы могут быть доступны для нескольких пользователей. Использование атрибута WITH COMPRESSION допускается только для типов данных CHARACTER и MEMO (он же TEXT) и их синонимов.

Слайд 8





Создание таблиц
Атрибут WITH COMPRESSION был добавлен к столбцам CHARACTER вследствие перехода к формату представления знаков Юникод. Каждый знак в формате Юникод всегда кодируется с помощью двух байтов. Для существующих баз данных Microsoft Jet, содержащих в основном символьные данные, это может означать увеличение размера файла базы данных примерно в два раза после преобразования в формат Microsoft Jet версии 4.0. Тем не менее, для многих наборов символов, ранее обозначавшихся как однобайтовые наборы символов (SBCS), представление в формате Unicode (SBCS) может быть без труда сжато до одного байта. Если столбец CHARACTER был определен с этим атрибутом, то при сохранении в нем данных осуществляется их автоматическое сжатие, а при извлечении данных – обратная операция.
Столбцы MEMO также могут быть определены для хранения данных в сжатом формате. Однако при этом действует одно ограничение. Сжатию подвергаются только те столбцы типа MEMO, которые в сжатом виде имеют размер не более 4096 байтов. Все остальные столбцы MEMO не сжимаются. Это означает, что для данной таблицы и данного столбца MEMO этой таблицы одни данные могут быть сжаты, а другие – нет.
Описание слайда:
Создание таблиц Атрибут WITH COMPRESSION был добавлен к столбцам CHARACTER вследствие перехода к формату представления знаков Юникод. Каждый знак в формате Юникод всегда кодируется с помощью двух байтов. Для существующих баз данных Microsoft Jet, содержащих в основном символьные данные, это может означать увеличение размера файла базы данных примерно в два раза после преобразования в формат Microsoft Jet версии 4.0. Тем не менее, для многих наборов символов, ранее обозначавшихся как однобайтовые наборы символов (SBCS), представление в формате Unicode (SBCS) может быть без труда сжато до одного байта. Если столбец CHARACTER был определен с этим атрибутом, то при сохранении в нем данных осуществляется их автоматическое сжатие, а при извлечении данных – обратная операция. Столбцы MEMO также могут быть определены для хранения данных в сжатом формате. Однако при этом действует одно ограничение. Сжатию подвергаются только те столбцы типа MEMO, которые в сжатом виде имеют размер не более 4096 байтов. Все остальные столбцы MEMO не сжимаются. Это означает, что для данной таблицы и данного столбца MEMO этой таблицы одни данные могут быть сжаты, а другие – нет.

Слайд 9





Создание таблиц (упрощенная схема)
	CREATE  TABLE  таблица
	(столбец1 тип_данных1 [ограничение_столбца1],
	столбец2 тип_данных2 [ограничение_столбца2], …
	столбецN тип_данныхN [ограничение_столбцаN]
	[,  ограничение_таблицы1]
	[, ограничение_таблицы2]
	…
	[, ограничение_таблицыN]);
Создание новой таблицы без ограничений
	CREATE TABLE  таблица
	(столбец1 тип_данных1,
	столбец2 тип_данных2,  …
	столбецN тип_данныхN);
Присвоение названия ограничению:
CONSTRAINT  имя_ограничения
Описание слайда:
Создание таблиц (упрощенная схема) 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 - Не разрешает присваивать столбцу значение null
DEFAULT - Задает для столбца значение по умолчанию
PRIMARY KEY - Задает столбец (столбцы) первичного ключа для таблицы
FOREIGN KEY - Задает столбец (столбцы) вторичного ключа для таблицы
UNIQUE - Не разрешает добавлять в столбец повторяющиеся значения
CHECK - Ограничивает значения, которые могут добавляться в столбец, с помощью логических выражений
Ограничения бывают двух типов:
„ограничение столбца является частью описания столбца и действует только для данного столбца;
„ограничение таблицы не зависит от ограничений столбца и может влиять на несколько столбцов в таблице. Чтобы включить в ограничения требования для нескольких столбцов, следует использовать ограничение таблицы.
Описание слайда:
Ограничения NOT NULL - Не разрешает присваивать столбцу значение null DEFAULT - Задает для столбца значение по умолчанию PRIMARY KEY - Задает столбец (столбцы) первичного ключа для таблицы FOREIGN KEY - Задает столбец (столбцы) вторичного ключа для таблицы UNIQUE - Не разрешает добавлять в столбец повторяющиеся значения CHECK - Ограничивает значения, которые могут добавляться в столбец, с помощью логических выражений Ограничения бывают двух типов: „ограничение столбца является частью описания столбца и действует только для данного столбца; „ограничение таблицы не зависит от ограничений столбца и может влиять на несколько столбцов в таблице. Чтобы включить в ограничения требования для нескольких столбцов, следует использовать ограничение таблицы.

Слайд 11





Ограничения NOT NULL и DEFAULT.
Задание первичного ключа
Установка ограничения NOT NULL для столбца
[CONSTRAINT  имя_ограничения]
  [NOT] NULL
Присвоение значения по умолчанию для столбца с помощью ограничения DEFAULT
[CONSTRAINT  имя_ограничения]
  DEFAULT  выражение
Задание первичного ключа с помощью ограничения PRIMARY KEY
В качестве ограничения столбца:
[CONSTRAINT  имя_ограничения]
  PRIMARY KEY
В качестве ограничения таблицы:
[CONSTRAINT  имя_ограничения]
  PRIMARY KEY (ключевой_столбец)
Задание сложного первичного ключа в качестве ограничения таблицы:
[CONSTRAINT  имя_ограничения]
  PRIMARY KEY (ключевой_столбец1, ключевой_столбец2, …)
Описание слайда:
Ограничения 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





Задание внешнего ключа с помощью ограничения FOREIGN KEY
Создание простого внешнего ключа в качестве ограничения столбца
[CONSTRAINT имя_ограничения]
REFERENCES  связанная_таблица  (связанный_столбец)
Создание простого внешнего ключа в качестве ограничения таблицы
[CONSTRAINT  имя_ограничения]
FOREIGN KEY (ключевой_столбец)
REFERENCES связанная_таблица  (связанный_столбец)
Задание сложного внешнего ключа в качестве ограничения таблицы
[CONSTRAINT  имя_ограничения]
FOREIGN KEY (ключевые_столбцы)
REFERENCES связанная_таблица (связанные_столбцы)
Описание слайда:
Задание внешнего ключа с помощью ограничения FOREIGN KEY Создание простого внешнего ключа в качестве ограничения столбца [CONSTRAINT имя_ограничения] REFERENCES связанная_таблица (связанный_столбец) Создание простого внешнего ключа в качестве ограничения таблицы [CONSTRAINT имя_ограничения] FOREIGN KEY (ключевой_столбец) REFERENCES связанная_таблица (связанный_столбец) Задание сложного внешнего ключа в качестве ограничения таблицы [CONSTRAINT имя_ограничения] FOREIGN KEY (ключевые_столбцы) REFERENCES связанная_таблица (связанные_столбцы)

Слайд 13





Изменение и удаление значений ключа
При изменении или удалении значения ключа (в родительской таблице), на которое указывает значение внешнего ключа, для задания действия, в ограничении FOREIGN KEY указывается предложение:
ON  UPDATE  действие
ON DELETE действие
Виды действий:
„CASCADE заменит (удалит) значения внешних ключей в соответствии с новым (удаленным) значением первичного ключа;
„SET  NULL заменит значения внешних ключей на  NULL;
„SET DEFAULT заменит значения внешних ключей значениями по умолчанию;
„NO ACTION выдаст ошибку для внешнего ключа. Эта установка задается по умолчанию.
Описание слайда:
Изменение и удаление значений ключа При изменении или удалении значения ключа (в родительской таблице), на которое указывает значение внешнего ключа, для задания действия, в ограничении FOREIGN KEY указывается предложение: ON UPDATE действие ON DELETE действие Виды действий: „CASCADE заменит (удалит) значения внешних ключей в соответствии с новым (удаленным) значением первичного ключа; „SET NULL заменит значения внешних ключей на NULL; „SET DEFAULT заменит значения внешних ключей значениями по умолчанию; „NO ACTION выдаст ошибку для внешнего ключа. Эта установка задается по умолчанию.

Слайд 14





Уникальные значения и ограничения на столбцы
Присвоение уникальных значений с помощью ограничения UNIQUE
Создание простого ограничения уникальности в качестве ограничения столбца
[CONSTRAINT  имя_ограничения] UNIQUE
Создание простого ограничения уникальности в качестве ограничения таблицы
[CONSTRAINT  имя_ограничения]
UNIQUE (уникальный_столбец)
Задание сложного ограничения уникальности в качестве ограничения таблицы
[CONSTRAINT  имя_ограничения]
UNIQUE (уникальные_столбцы)
Проверка значений столбца с помощью ограничения CHECK
[CONSTRAINT  имя_ограничения]
CHECK (условия)
Описание слайда:
Уникальные значения и ограничения на столбцы Присвоение уникальных значений с помощью ограничения UNIQUE Создание простого ограничения уникальности в качестве ограничения столбца [CONSTRAINT имя_ограничения] UNIQUE Создание простого ограничения уникальности в качестве ограничения таблицы [CONSTRAINT имя_ограничения] UNIQUE (уникальный_столбец) Задание сложного ограничения уникальности в качестве ограничения таблицы [CONSTRAINT имя_ограничения] UNIQUE (уникальные_столбцы) Проверка значений столбца с помощью ограничения CHECK [CONSTRAINT имя_ограничения] CHECK (условия)

Слайд 15





Создание таблиц
Пример: создание таблица Друзья.
CREATE  TABLE Друзья
([Код] integer, [Фамилия] text, [Имя] text, [ДеньРождения] date,
[Телефон] text (10), [Примечания] memo,
CONSTRAINT [Индекс1] PRIMARY KEY ([Код]));
На рисунке показана созданная таблица в режиме конструктора. Свойству Индексированное поле поля Код установлено значение Да (Совпадение не допускаются). Размер текстовых полей инструкцией SQL установлен максимально возможный – 256.
Описание слайда:
Создание таблиц Пример: создание таблица Друзья. CREATE TABLE Друзья ([Код] integer, [Фамилия] text, [Имя] text, [ДеньРождения] date, [Телефон] text (10), [Примечания] memo, CONSTRAINT [Индекс1] PRIMARY KEY ([Код])); На рисунке показана созданная таблица в режиме конструктора. Свойству Индексированное поле поля Код установлено значение Да (Совпадение не допускаются). Размер текстовых полей инструкцией SQL установлен максимально возможный – 256.

Слайд 16





Создание индекса
При помощи индексов ускоряется сортировка и поиск записей. Индексы таблиц Microsoft Access используются так же, как предметные указатели в книгах: при поиске данных выполняется их поиск в индексе. Индексы можно создавать по одному или нескольким полям. Составные индексы позволяют пользователю различать записи, в которых первые поля могут иметь одинаковые значения. В основном требуется индексировать поля, в которых часто осуществляется поиск.
Однако индексы могут замедлить выполнение некоторых запросов на изменение, например, запросов на добавление, при выполнении которых требуется обновление индексов многих полей.
Поля первичного ключа таблиц индексируются автоматически, а поля с типом данных Поле объекта OLE индексировать нельзя. Для остальных полей индексирование используется, если выполняются следующие условия.
Если предполагается частое выполнение одновременной сортировки или поиска в нескольких полях, можно создать для этих полей составной индекс. Например, если в одном и том же запросе часто задаются условия для полей Имя и Фамилия, то для этих двух полей имеет смысл создать составной индекс.
При сортировке таблицы по составному индексу Microsoft Access сначала выполняет сортировку по первому полю, определенному для данного индекса. Если в первом поле содержатся записи с повторяющимися значениями, то выполняется сортировка по второму полю, определенному для данного индекса, и так далее.
Описание слайда:
Создание индекса При помощи индексов ускоряется сортировка и поиск записей. Индексы таблиц Microsoft Access используются так же, как предметные указатели в книгах: при поиске данных выполняется их поиск в индексе. Индексы можно создавать по одному или нескольким полям. Составные индексы позволяют пользователю различать записи, в которых первые поля могут иметь одинаковые значения. В основном требуется индексировать поля, в которых часто осуществляется поиск. Однако индексы могут замедлить выполнение некоторых запросов на изменение, например, запросов на добавление, при выполнении которых требуется обновление индексов многих полей. Поля первичного ключа таблиц индексируются автоматически, а поля с типом данных Поле объекта OLE индексировать нельзя. Для остальных полей индексирование используется, если выполняются следующие условия. Если предполагается частое выполнение одновременной сортировки или поиска в нескольких полях, можно создать для этих полей составной индекс. Например, если в одном и том же запросе часто задаются условия для полей Имя и Фамилия, то для этих двух полей имеет смысл создать составной индекс. При сортировке таблицы по составному индексу Microsoft Access сначала выполняет сортировку по первому полю, определенному для данного индекса. Если в первом поле содержатся записи с повторяющимися значениями, то выполняется сортировка по второму полю, определенному для данного индекса, и так далее.

Слайд 17





Создание индекса
Пример: создание составного индекса по полям Фамилия и Имя.
CREATE INDEX NewIndex ON Друзья ([Фамилия], [Имя]);
Для просмотра созданных индексов откроем таблицу Друзья в режиме конструктора и нажмем кнопку       .    Откроется окно с перечнем индексов и полей, по которым производится индексация.
Для создания индекса нужно ввести его имя в столбце Индекс, а в столбце Имя поля выбрать из списка поле таблицы, по которому будет производиться индексация. Для удаления индекса нужно очистить содержимое строк, содержащих описание индекса.
Описание слайда:
Создание индекса Пример: создание составного индекса по полям Фамилия и Имя. CREATE INDEX NewIndex ON Друзья ([Фамилия], [Имя]); Для просмотра созданных индексов откроем таблицу Друзья в режиме конструктора и нажмем кнопку . Откроется окно с перечнем индексов и полей, по которым производится индексация. Для создания индекса нужно ввести его имя в столбце Индекс, а в столбце Имя поля выбрать из списка поле таблицы, по которому будет производиться индексация. Для удаления индекса нужно очистить содержимое строк, содержащих описание индекса.

Слайд 18





Создание таблиц на основе существующей.
Создание новой таблицы на основе существующей с помощью команды SELECT INTO
SELECT  столбцы
INTO  новая_таблица
FROM  существующая_таблица
[WHERE  условия_поиска];
Описание слайда:
Создание таблиц на основе существующей. Создание новой таблицы на основе существующей с помощью команды SELECT INTO SELECT столбцы INTO новая_таблица FROM существующая_таблица [WHERE условия_поиска];

Слайд 19





Константы и 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 рассматриваются как одна группа
Описание слайда:
Константы и 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





Добавление строк
Добавление строки с помощью положения столбца
	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);
Замечание: в записях названия «тире» не воспринимается, то есть вместо 
Штрих-код нужно писать Штрих_код.
Описание слайда:
Добавление строк Добавление строки с помощью положения столбца 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





Операторы
Оператор – это символ или имя, обозначающий действие, выполняемое над одним или несколькими выражениями.
Арифметические операторы
   +  -  *  /   (+ и – можно применять к датам)
Оператор конкатенации (&) соединяет две отдельных текстовых строки в одно строковое значение.
Оператор присваивания (=)
Унарные операторы
 + числовое значение становится положительным
 - числовое значение становится отрицательным
Описание слайда:
Операторы Оператор – это символ или имя, обозначающий действие, выполняемое над одним или несколькими выражениями. Арифметические операторы + - * / (+ и – можно применять к датам) Оператор конкатенации (&) соединяет две отдельных текстовых строки в одно строковое значение. Оператор присваивания (=) Унарные операторы + числовое значение становится положительным - числовое значение становится отрицательным

Слайд 22





Операторы
Операторы сравнения
TRUE,    FALSE,   UNKNOWN,    NULL
Описание слайда:
Операторы Операторы сравнения TRUE, FALSE, UNKNOWN, NULL

Слайд 23





Операторы
Логические операторы
Описание слайда:
Операторы Логические операторы

Слайд 24





Приоритет операторов
() (выражения, стоящие в скобках)
+, - (унарные операторы)
*, / (математические операторы)
+, - (арифметические операторы)
=, >, <, >=, <=, <> (операторы сравнения)
IS NULL
NOT
AND
ALL,  ANY,  BETWEEN,  IN,  LIKE,  OR,  SOME
= (присваивание значения переменной)
Описание слайда:
Приоритет операторов () (выражения, стоящие в скобках) +, - (унарные операторы) *, / (математические операторы) +, - (арифметические операторы) =, >, <, >=, <=, <> (операторы сравнения) IS NULL NOT AND ALL, ANY, BETWEEN, IN, LIKE, OR, SOME = (присваивание значения переменной)

Слайд 25





Изменение и удаление строк
Изменение строк с помощью команды UPDATE
	UPDATE  таблица
	SET  столбец  =  новое_значение
	[WHERE  условия_выбора_строк];
Пример: запрос, меняющий фамилии
	UPDATE  Покупатель
	SET  Фамилия  = 'Иванченко'
	WHERE  Фамилия='Иванов';
Удаление строк с помощью команды DELETE
	DELETE FROM  таблица
	[WHERE  условия_выбора_строк];
Пример: удалить все записи заданного чека
	DELETE FROM  Товар_в_чеке
	WHERE  Номер_чека=1;
Описание слайда:
Изменение и удаление строк Изменение строк с помощью команды UPDATE UPDATE таблица SET столбец = новое_значение [WHERE условия_выбора_строк]; Пример: запрос, меняющий фамилии UPDATE Покупатель SET Фамилия = 'Иванченко' WHERE Фамилия='Иванов'; Удаление строк с помощью команды DELETE DELETE FROM таблица [WHERE условия_выбора_строк]; Пример: удалить все записи заданного чека DELETE FROM Товар_в_чеке WHERE Номер_чека=1;

Слайд 26





Инструкция SELECT
По этой инструкции ядро базы данных Microsoft Jet возвращает данные из базы данных в виде набора записей.
Синтаксис структуры оператора SELECT имеет вид:
	SELECT список столбцов, которые включаются в результат выборки
	{INTO новая таблица}
	FROM список таблиц, из которых производится выборка
	[WHERE условия выборки]
	[GROUP BY список столбцов, по которым происходит группировка]
	[HAVING условия группировки]
	[ORDER BY выражение, в соответствии с которым выполняется сортировка 	возвращаемых данных];
В квадратные скобки заключены необязательные выражения оператора SELECT. 
Если не указано имя таблицы для вывода, то результат формируется во временную таблицу.
При выполнении этой операции ядро базы данных находит указанную таблицу или таблицы, извлекает заданные столбцы, выделяет строки, соответствующие условию отбора, и сортирует или группирует результирующие строки в указанном порядке. Инструкции SELECT не изменяют данные в базе данных.
Обычно слово SELECT является первым словом инструкции SQL. Большая часть инструкций SQL является инструкциями SELECT или SELECT...INTO.
Описание слайда:
Инструкция SELECT По этой инструкции ядро базы данных Microsoft Jet возвращает данные из базы данных в виде набора записей. Синтаксис структуры оператора SELECT имеет вид: SELECT список столбцов, которые включаются в результат выборки {INTO новая таблица} FROM список таблиц, из которых производится выборка [WHERE условия выборки] [GROUP BY список столбцов, по которым происходит группировка] [HAVING условия группировки] [ORDER BY выражение, в соответствии с которым выполняется сортировка возвращаемых данных]; В квадратные скобки заключены необязательные выражения оператора SELECT. Если не указано имя таблицы для вывода, то результат формируется во временную таблицу. При выполнении этой операции ядро базы данных находит указанную таблицу или таблицы, извлекает заданные столбцы, выделяет строки, соответствующие условию отбора, и сортирует или группирует результирующие строки в указанном порядке. Инструкции SELECT не изменяют данные в базе данных. Обычно слово SELECT является первым словом инструкции SQL. Большая часть инструкций SQL является инструкциями SELECT или SELECT...INTO.

Слайд 27





Отбор данных из одной таблицы.
Простая выборка
Вывод нескольких столбцов таблицы (проекция).
	SELECT столбец 1, …, столбец N
	FROM таблица;
Замечание: порядок столбцов может быть произвольный.
Пример: получение ФИО всех покупателей и их даты рождения.
	SELECT  Имя, Отчество,  Фамилия,Год_рождения
	FROM Покупатель;
Описание слайда:
Отбор данных из одной таблицы. Простая выборка Вывод нескольких столбцов таблицы (проекция). SELECT столбец 1, …, столбец N FROM таблица; Замечание: порядок столбцов может быть произвольный. Пример: получение ФИО всех покупателей и их даты рождения. SELECT Имя, Отчество, Фамилия,Год_рождения FROM Покупатель;

Слайд 28





Отбор данных из одной таблицы.
Простая выборка
Вывод всей таблицы
	SELECT *
	FROM таблица;
Замечание: * обозначает все имена столбцов таблицы, при этом порядок вывода столбцов соответствует порядку, в котором они определялись при создании таблицы.
Пример: Получение полной информации о покупателях.
	SELECT *
	FROM Покупатель;
Описание слайда:
Отбор данных из одной таблицы. Простая выборка Вывод всей таблицы SELECT * FROM таблица; Замечание: * обозначает все имена столбцов таблицы, при этом порядок вывода столбцов соответствует порядку, в котором они определялись при создании таблицы. Пример: Получение полной информации о покупателях. SELECT * FROM Покупатель;

Слайд 29





Отбор данных из одной таблицы.
Простая выборка
Исключение дублирующей информации
	SELECT DISTINCT  столбец1,… , столбец N
	FROM Покупатель;
Замечание: DISTINCT исключает дублирование кортежей при проекции столбцов, в случае его отсутствия кортежи могут дублироваться.
Пример: получить разные фамилии клиентов.
SELECT DISTINCT Фамилия
FROM Покупатель;
SELECT Фамилия
FROM Покупатель;
Описание слайда:
Отбор данных из одной таблицы. Простая выборка Исключение дублирующей информации SELECT DISTINCT столбец1,… , столбец N FROM Покупатель; Замечание: DISTINCT исключает дублирование кортежей при проекции столбцов, в случае его отсутствия кортежи могут дублироваться. Пример: получить разные фамилии клиентов. SELECT DISTINCT Фамилия FROM Покупатель; SELECT Фамилия FROM Покупатель;

Слайд 30





Запросы с вычисляемыми полями
Пример: узнать суммарную стоимость за 4 единицы товара.
SELECT Название, 4 AS  Количество, Цена, "=" AS Равно, Количество*Цена 	AS Сумма
FROM Товар;
Замечания:
Конструкция типа «Значение переменной AS  Имя столбца» означает, что создается столбец (Имя столбца), в каждой ячейке которого лежит значение (Значение переменной).
«Количество*Цена 	AS Сумма» означает, что в столбец Сумма будет помещено значение, являющееся результатом вычисления Количество*Цена для соответствующей строки.
Описание слайда:
Запросы с вычисляемыми полями Пример: узнать суммарную стоимость за 4 единицы товара. SELECT Название, 4 AS Количество, Цена, "=" AS Равно, Количество*Цена AS Сумма FROM Товар; Замечания: Конструкция типа «Значение переменной AS Имя столбца» означает, что создается столбец (Имя столбца), в каждой ячейке которого лежит значение (Значение переменной). «Количество*Цена AS Сумма» означает, что в столбец Сумма будет помещено значение, являющееся результатом вычисления Количество*Цена для соответствующей строки.

Слайд 31





Запросы с соединением данных
	 SELECT Название &': сумма за 4 единицы равна ' & 4*Цена AS Сумма
	FROM Товар;
Описание слайда:
Запросы с соединением данных SELECT Название &': сумма за 4 единицы равна ' & 4*Цена AS Сумма FROM Товар;

Слайд 32





Запросы с условием отбора
	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 – или выполняется первое или не выполняется второе
Описание слайда:
Запросы с условием отбора 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 – или выполняется первое или не выполняется второе

Слайд 33





Запросы с условием отбора
Пример: найти всех покупателей, у которых фамилия Иванченко и которых зовут Иван.
	SELECT *
	FROM Покупатель
	WHERE Фамилия='Иванченко' AND Имя='Иван';
Описание слайда:
Запросы с условием отбора Пример: найти всех покупателей, у которых фамилия Иванченко и которых зовут Иван. SELECT * FROM Покупатель WHERE Фамилия='Иванченко' AND Имя='Иван';

Слайд 34





Запросы с условием отбора
Пример: найти всех покупателей, у которых фамилия Иванченко или которых не зовут Иван.
	SELECT *
	FROM Покупатель
	WHERE Фамилия='Иванченко' OR NOT Имя='Иван';
Описание слайда:
Запросы с условием отбора Пример: найти всех покупателей, у которых фамилия Иванченко или которых не зовут Иван. SELECT * FROM Покупатель WHERE Фамилия='Иванченко' OR NOT Имя='Иван';

Слайд 35





Запросы с условием отбора
Оператор BETWEEN…AND…
Нахождение значений в интервале от и до.
Пример: вывести товары, ценовая категория которых от 22 до 56 рублей.
SELECT *
FROM Товар
WHERE Цена BETWEEN 22 AND 56;
Описание слайда:
Запросы с условием отбора Оператор BETWEEN…AND… Нахождение значений в интервале от и до. Пример: вывести товары, ценовая категория которых от 22 до 56 рублей. SELECT * FROM Товар WHERE Цена BETWEEN 22 AND 56;

Слайд 36





Запросы с условием отбора
Оператор BETWEEN…AND…
Пример: вывести покупателей в заданные годы рождения.
	SELECT *
	FROM Покупатель
	WHERE Год_рождения BETWEEN #01/01/2000# AND #01/01/2012#;
Описание слайда:
Запросы с условием отбора Оператор BETWEEN…AND… Пример: вывести покупателей в заданные годы рождения. SELECT * FROM Покупатель WHERE Год_рождения BETWEEN #01/01/2000# AND #01/01/2012#;

Слайд 37





Запросы с условием отбора
Оператор IN
Определяет набор значений с помощью соответствующего набора данных, заключенные в круглые скобки и отделенные запятой.
Пример: найти покупателей с заданными фамилиями.
	SELECT *
	FROM Покупатель
	WHERE Фамилия IN('Иванов','Иванова','Иванченко');
Описание слайда:
Запросы с условием отбора Оператор IN Определяет набор значений с помощью соответствующего набора данных, заключенные в круглые скобки и отделенные запятой. Пример: найти покупателей с заданными фамилиями. SELECT * FROM Покупатель WHERE Фамилия IN('Иванов','Иванова','Иванченко');

Слайд 38





Запросы с условием отбора
Оператор LIKE
Применяется только к текстовым данным, используется для нахождения подстрок, совпадающих с заданным образцом.
Замечание: символ ‘?’ заменяет любой одиночный символ, знак ’*’ заменяет последовательность произвольного числа символов (в том числе и их отсутствие).
Пример: найти покупателей, начинающихся на ‘Иван…’.
SELECT *
FROM Покупатель
WHERE Фамилия LIKE 'Иван*';
Описание слайда:
Запросы с условием отбора Оператор LIKE Применяется только к текстовым данным, используется для нахождения подстрок, совпадающих с заданным образцом. Замечание: символ ‘?’ заменяет любой одиночный символ, знак ’*’ заменяет последовательность произвольного числа символов (в том числе и их отсутствие). Пример: найти покупателей, начинающихся на ‘Иван…’. SELECT * FROM Покупатель WHERE Фамилия LIKE 'Иван*';

Слайд 39





Запросы с условием отбора
Оператор LIKE
Пример: найти покупателей, у которых первая буква неизвестна, потом идет ‘?ванов…’, в дальнейшем идут символы, или они могут отсутствовать.
SELECT *
FROM Покупатель
WHERE Фамилия LIKE '?ванов*';
Описание слайда:
Запросы с условием отбора Оператор LIKE Пример: найти покупателей, у которых первая буква неизвестна, потом идет ‘?ванов…’, в дальнейшем идут символы, или они могут отсутствовать. SELECT * FROM Покупатель WHERE Фамилия LIKE '?ванов*';

Слайд 40





Обобщение данных с помощью агрегатных функций
SUM – сумма
AVG – среднее значение
MAX – максимальное значение
MIN – минимальное значение
COUNT – количество
	SELECT агрегатная_функция (название столбца)
	FROM таблица;
Описание слайда:
Обобщение данных с помощью агрегатных функций SUM – сумма AVG – среднее значение MAX – максимальное значение MIN – минимальное значение COUNT – количество SELECT агрегатная_функция (название столбца) FROM таблица;

Слайд 41





Обобщение данных с помощью агрегатных функций
	SELECT SUM(Цена) AS Сумма,AVG(Цена) AS Среднее, MAX (Цена) AS 	Максимум, MIN(Цена) AS Минимум, COUNT (Цена) AS Количество
	FROM Товар;
Описание слайда:
Обобщение данных с помощью агрегатных функций SELECT SUM(Цена) AS Сумма,AVG(Цена) AS Среднее, MAX (Цена) AS Максимум, MIN(Цена) AS Минимум, COUNT (Цена) AS Количество FROM Товар;

Слайд 42





Оператор GROUP BY
Производит вывод таблицы по группам, каждая из которых имеет одинаковые значения в столбце (столбцах), указанных в GROUP BY.
	SELECT столбцы-критерии объединения в группу
	FROM Таблица
	GROUP BY столбцы, по которым идет объединение;
Пример: получение минимальной цены по всем товарам.
	SELECT Название, MIN (Цена) AS МинЦена
	FROM Товар
	GROUP BY Название;
Описание слайда:
Оператор GROUP BY Производит вывод таблицы по группам, каждая из которых имеет одинаковые значения в столбце (столбцах), указанных в GROUP BY. SELECT столбцы-критерии объединения в группу FROM Таблица GROUP BY столбцы, по которым идет объединение; Пример: получение минимальной цены по всем товарам. SELECT Название, MIN (Цена) AS МинЦена FROM Товар GROUP BY Название;

Слайд 43





Оператор GROUP BY
Пример: получение минимальной цены по всем товарам с учетом наличия акции.
	SELECT Название, MIN (Цена) AS МинЦена, Наличие_акции
	FROM Товар
	GROUP BY Название, Наличие_акции;
Описание слайда:
Оператор GROUP BY Пример: получение минимальной цены по всем товарам с учетом наличия акции. SELECT Название, MIN (Цена) AS МинЦена, Наличие_акции FROM Товар GROUP BY Название, Наличие_акции;

Слайд 44





Оператор GROUP BY с условием HAVING
HAVING – условия группировки (аналог WHERE  в случае группировки).
	SELECT столбцы-критерии объединения в группу
	FROM Таблица
	GROUP BY столбцы, по которым идет объединение
	HAVING наложенные условия;
Пример: вывести минимальную цену товаров, которые продаются по акции.
SELECT Название, MIN (Цена) AS МинЦена
	FROM Товар
GROUP BY Название, Наличие_акции
HAVING Наличие_акции=TRUE;
Описание слайда:
Оператор GROUP BY с условием HAVING HAVING – условия группировки (аналог WHERE в случае группировки). SELECT столбцы-критерии объединения в группу FROM Таблица GROUP BY столбцы, по которым идет объединение HAVING наложенные условия; Пример: вывести минимальную цену товаров, которые продаются по акции. SELECT Название, MIN (Цена) AS МинЦена FROM Товар GROUP BY Название, Наличие_акции HAVING Наличие_акции=TRUE;

Слайд 45





Упорядочивание вывода полей.
Оператор ORDER BY
SELECT столбцы-критерии объединения в группу
FROM Таблица
ORDER BY столбец1 критерий_упорядочивания,…, столбецN критерий_упорядочивания;
Критерий упорядочивания:
	ASC –  по возрастанию (по умолчанию)
	DESC – по убыванию
Пример: получение минимальной цены по всем товарам с учетом наличия акции так, чтобы товары располагалась по убыванию, а цена – по возрастанию.
	SELECT Название, MIN (Цена) AS МинЦена, Наличие_акции
	FROM Товар
	GROUP BY Название, Наличие_акции
	ORDER BY Название, MIN (Цена) DESC;
Описание слайда:
Упорядочивание вывода полей. Оператор ORDER BY SELECT столбцы-критерии объединения в группу FROM Таблица ORDER BY столбец1 критерий_упорядочивания,…, столбецN критерий_упорядочивания; Критерий упорядочивания: ASC – по возрастанию (по умолчанию) DESC – по убыванию Пример: получение минимальной цены по всем товарам с учетом наличия акции так, чтобы товары располагалась по убыванию, а цена – по возрастанию. SELECT Название, MIN (Цена) AS МинЦена, Наличие_акции FROM Товар GROUP BY Название, Наличие_акции ORDER BY Название, MIN (Цена) DESC;

Слайд 46





Особенности работы с несколькими таблицами
Использование уточненных имен:
                                 Таблица.Столбец
Использование объединений – предложение JOIN
1) Таблицы всегда объединяются построчно при выполнении всевозможных условий, определенных в вашем запросе.
2) Строки, несоответствующие заданным условиям, могут быть как включены в объединение, так и исключены из него, в зависимости от типа этого объединения.
Объединением по равенству называется такое объединение, в условии которого применяется оператор равенства (=), чтобы группировать строки, имеющие равные значения в определенных столбцах, называемых связанными.
Тэта-объединение – более общий случай когда значения связанных столбцов сравнивают с применением любого оператора сравнения.
Связанные столбцы любого объединения чаще всего оказываются связанными ключевыми столбцами, но можно связывать любые столбцы, если их типы данных совместимы.
Описание слайда:
Особенности работы с несколькими таблицами Использование уточненных имен: Таблица.Столбец Использование объединений – предложение JOIN 1) Таблицы всегда объединяются построчно при выполнении всевозможных условий, определенных в вашем запросе. 2) Строки, несоответствующие заданным условиям, могут быть как включены в объединение, так и исключены из него, в зависимости от типа этого объединения. Объединением по равенству называется такое объединение, в условии которого применяется оператор равенства (=), чтобы группировать строки, имеющие равные значения в определенных столбцах, называемых связанными. Тэта-объединение – более общий случай когда значения связанных столбцов сравнивают с применением любого оператора сравнения. Связанные столбцы любого объединения чаще всего оказываются связанными ключевыми столбцами, но можно связывать любые столбцы, если их типы данных совместимы.

Слайд 47





Создание объединений с помощью синтаксиса 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 – для полного внешнего объединения.
Описание слайда:
Создание объединений с помощью синтаксиса 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





Последовательность выполнения запроса
Когда СУБД обрабатывает объединения, она подчиняется определенной последовательности шагов, которая не только относится к обработке объединений, но и определяет алгоритм выполнения всего запроса:
1)Применить условия объединения, заданные предложением JOIN.
2) Применить условия объединения и поиска, заданные предложением WHERE.
3) Сгруппировать строки в соответствии с предложением GROUP BY.
4) Применить к группам условия поиска, заданные предложением HAVING.
5) Отсортировать результат в соответствии с предложением ORDER BY.
Описание слайда:
Последовательность выполнения запроса Когда СУБД обрабатывает объединения, она подчиняется определенной последовательности шагов, которая не только относится к обработке объединений, но и определяет алгоритм выполнения всего запроса: 1)Применить условия объединения, заданные предложением JOIN. 2) Применить условия объединения и поиска, заданные предложением WHERE. 3) Сгруппировать строки в соответствии с предложением GROUP BY. 4) Применить к группам условия поиска, заданные предложением HAVING. 5) Отсортировать результат в соответствии с предложением ORDER BY.

Слайд 49





Декартово произведение на языке SQL
CROSS JOIN – перекрестное соединение, которое просто формирует декартово произведение таблиц (это все возможные комбинации строк двух таблиц так, что каждая строка первой таблицы объединяется с каждой строкой второй таблицы).
SELECT Покупатель.*,Товар.*
FROM Покупатель,Товар;
Замечания:
В случае запроса с несколькими таблицами указание столбцов таблицы имеет вид: Название_таблицы.Название_стобца .
Синтаксис Название_таблицы.* означает использование всех столбцов в таблице.
В MS ACCESS данная конструкция не используется, а просто перечисляются таблицы.
Описание слайда:
Декартово произведение на языке SQL CROSS JOIN – перекрестное соединение, которое просто формирует декартово произведение таблиц (это все возможные комбинации строк двух таблиц так, что каждая строка первой таблицы объединяется с каждой строкой второй таблицы). SELECT Покупатель.*,Товар.* FROM Покупатель,Товар; Замечания: В случае запроса с несколькими таблицами указание столбцов таблицы имеет вид: Название_таблицы.Название_стобца . Синтаксис Название_таблицы.* означает использование всех столбцов в таблице. В MS ACCESS данная конструкция не используется, а просто перечисляются таблицы.

Слайд 50





Декартово произведение на языке SQL
Пример: запрос, соединяющий данные о покупателях мужского пола и товаров, на которые не действуют акции.
SELECT Покупатель.*,Товар.*
FROM Покупатель,Товар
WHERE Покупатель.Пол='Муж' AND Товар.Наличие_акции=FALSE;
Описание слайда:
Декартово произведение на языке SQL Пример: запрос, соединяющий данные о покупателях мужского пола и товаров, на которые не действуют акции. SELECT Покупатель.*,Товар.* FROM Покупатель,Товар WHERE Покупатель.Пол='Муж' AND Товар.Наличие_акции=FALSE;

Слайд 51





Естественное соединение
NATURAL JOIN – естественное соединение, производится по всем столбцам таблиц, имеющим одинаковые имена.
Связанными столбцами считаются те, которые в двух таблицах имеют одинаковые имена. Остальные строки из объединения исключаются.
Пример: у каких покупателей какие чеки.
SELECT Покупатель.*,Чек.Номер_чека
FROM Покупатель NATURAL JOIN Чек;
Замечание: в MS ACCESS естественное соединение используется как декартово произведение при условии равенства значений в соответствующих столбцах (2 вариант).
Описание слайда:
Естественное соединение NATURAL JOIN – естественное соединение, производится по всем столбцам таблиц, имеющим одинаковые имена. Связанными столбцами считаются те, которые в двух таблицах имеют одинаковые имена. Остальные строки из объединения исключаются. Пример: у каких покупателей какие чеки. SELECT Покупатель.*,Чек.Номер_чека FROM Покупатель NATURAL JOIN Чек; Замечание: в MS ACCESS естественное соединение используется как декартово произведение при условии равенства значений в соответствующих столбцах (2 вариант).

Слайд 52





Естественное соединение
Пример: вывести покупателей и товары, которые они купили.
SELECT Покупатель.Фамилия,Товар.Название, Товар.Наличие_акции
FROM Покупатель, Чек,  Товар_в_чеке, Товар
WHERE Покупатель.Номер_карты=Чек.Номер_карты 
AND Чек.Номер_чека=Товар_в_чеке.Номер_чека 
AND Товар_в_чеке.Штрих_код=Товар.Штрих_код;
Описание слайда:
Естественное соединение Пример: вывести покупателей и товары, которые они купили. SELECT Покупатель.Фамилия,Товар.Название, Товар.Наличие_акции FROM Покупатель, Чек, Товар_в_чеке, Товар WHERE Покупатель.Номер_карты=Чек.Номер_карты AND Чек.Номер_чека=Товар_в_чеке.Номер_чека AND Товар_в_чеке.Штрих_код=Товар.Штрих_код;

Слайд 53





Внутреннее соединение
INNER JOIN – внутреннее соединение, при котором соединяются только те строки, для которых найдено совпадение  значений в таблицах  A и B.
Считывает результат, который включает только объединенные строки, соответствующие условиям объединения. Использует оператор сравнения (=, <>, <, <=, > или >=), чтобы сопоставить строки в двух таблицах на основании значений в общих столбцах каждой таблицы.
Замечание: в случае использования оператора = аналог естественного соединения.
Пример: у каких покупателей какие чеки.
SELECT Покупатель.*,Чек.Номер_чека
FROM Покупатель INNER JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты;
Описание слайда:
Внутреннее соединение INNER JOIN – внутреннее соединение, при котором соединяются только те строки, для которых найдено совпадение значений в таблицах A и B. Считывает результат, который включает только объединенные строки, соответствующие условиям объединения. Использует оператор сравнения (=, <>, <, <=, > или >=), чтобы сопоставить строки в двух таблицах на основании значений в общих столбцах каждой таблицы. Замечание: в случае использования оператора = аналог естественного соединения. Пример: у каких покупателей какие чеки. SELECT Покупатель.*,Чек.Номер_чека FROM Покупатель INNER JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты;

Слайд 54





Внутреннее соединение
Пример: вывести покупателей и товары, которые они купили по акции.
SELECT Покупатель.Фамилия,Товар.Название, Товар.Наличие_акции
FROM ((Покупатель INNER JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты) 
INNER JOIN  Товар_в_чеке ON Чек.Номер_чека=Товар_в_чеке.Номер_чека)
INNER JOIN Товар ON Товар_в_чеке.Штрих_код=Товар.Штрих_код
WHERE Товар.Наличие_акции=TRUE;
Описание слайда:
Внутреннее соединение Пример: вывести покупателей и товары, которые они купили по акции. SELECT Покупатель.Фамилия,Товар.Название, Товар.Наличие_акции FROM ((Покупатель INNER JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты) INNER JOIN Товар_в_чеке ON Чек.Номер_чека=Товар_в_чеке.Номер_чека) INNER JOIN Товар ON Товар_в_чеке.Штрих_код=Товар.Штрих_код WHERE Товар.Наличие_акции=TRUE;

Слайд 55





Внешние соединения
Внешнее соединение считывает все строки хотя бы из одной таблицы (если они соответствуют условию поиска).
Замечание: значение имеет порядок, в котором задаются таблицы.
Левое внешнее соединение включает все строки из левой таблицы, заданные в пункте  LEFT JOIN, а не только строки, которые совпадают для связанных столбцов. Если для строки в левой таблице нет соответствия в правой таблице, то в результате строка будет содержать NULL для всех столбцов в списке SELECT, которые были считаны из правой таблицы.
Правое внешнее соединение включает все строки из правой таблицы, заданные в пункте  RIGHT JOIN, а не только строки, которые совпадают для связанных столбцов. Если для строки в правой таблице нет соответствия в левой таблице, то в результате строка будет содержать NULL для всех столбцов в списке SELECT, которые были считаны из левой таблицы.
Полное соединение FULL JOIN является комбинацией левого и правого соединения.
Описание слайда:
Внешние соединения Внешнее соединение считывает все строки хотя бы из одной таблицы (если они соответствуют условию поиска). Замечание: значение имеет порядок, в котором задаются таблицы. Левое внешнее соединение включает все строки из левой таблицы, заданные в пункте LEFT JOIN, а не только строки, которые совпадают для связанных столбцов. Если для строки в левой таблице нет соответствия в правой таблице, то в результате строка будет содержать NULL для всех столбцов в списке SELECT, которые были считаны из правой таблицы. Правое внешнее соединение включает все строки из правой таблицы, заданные в пункте RIGHT JOIN, а не только строки, которые совпадают для связанных столбцов. Если для строки в правой таблице нет соответствия в левой таблице, то в результате строка будет содержать NULL для всех столбцов в списке SELECT, которые были считаны из левой таблицы. Полное соединение FULL JOIN является комбинацией левого и правого соединения.

Слайд 56





Левое соединения
Пример: вывести всех покупателей и указать, у кого какие чеки были.
SELECT Покупатель.*,Чек.Номер_чека
FROM Покупатель LEFT JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты;
Описание слайда:
Левое соединения Пример: вывести всех покупателей и указать, у кого какие чеки были. SELECT Покупатель.*,Чек.Номер_чека FROM Покупатель LEFT JOIN Чек ON Покупатель.Номер_карты=Чек.Номер_карты;

Слайд 57





Правое соединения
Пример: вывести всех покупателей и указать, у кого какие чеки были.
SELECT Чек.Номер_чека, Покупатель.*
FROM Чек RIGHT JOIN Покупатель ON Покупатель.Номер_карты=Чек.Номер_карты;
Описание слайда:
Правое соединения Пример: вывести всех покупателей и указать, у кого какие чеки были. SELECT Чек.Номер_чека, Покупатель.* FROM Чек RIGHT JOIN Покупатель ON Покупатель.Номер_карты=Чек.Номер_карты;

Слайд 58





Комбинирование строк с помощью оператора UNION
Оператор UNION комбинирует результаты двух запросов в один результат, который объединяет строки, считанные двумя запросами. 
Выражение  UNION удаляет из результата повторяющиеся строки. Выражение UNION  ALL сохраняет повторы. 
Ограничения:
списки столбцов команды SELECT в двух запросах должны включать одинаковое число столбцов (названий столбцов, арифметических выражений, функций и т.д.);
соответствующие столбцы в двух запросах должны быть заданы в одинаковом порядке;
 если имена соответствующих столбцов совпадают, то их название будет использовано в результате. Если названия соответствующих столбцов различаются, то СУБД самостоятельно определит имя столбца в результате;
предложение  ORDER BY может использоваться только в последнем запросе команды  UNION;
можно задавать предложения GROUP BY и HAVING только в отдельных запросах; их нельзя использовать для изменения конечного результата.
Описание слайда:
Комбинирование строк с помощью оператора UNION Оператор UNION комбинирует результаты двух запросов в один результат, который объединяет строки, считанные двумя запросами. Выражение UNION удаляет из результата повторяющиеся строки. Выражение UNION ALL сохраняет повторы. Ограничения: списки столбцов команды SELECT в двух запросах должны включать одинаковое число столбцов (названий столбцов, арифметических выражений, функций и т.д.); соответствующие столбцы в двух запросах должны быть заданы в одинаковом порядке; если имена соответствующих столбцов совпадают, то их название будет использовано в результате. Если названия соответствующих столбцов различаются, то СУБД самостоятельно определит имя столбца в результате; предложение ORDER BY может использоваться только в последнем запросе команды UNION; можно задавать предложения GROUP BY и HAVING только в отдельных запросах; их нельзя использовать для изменения конечного результата.

Слайд 59





Комбинирование строк с помощью оператора UNION
SELECT Покупатель.Фамилия
FROM Покупатель
UNION
SELECT Товар.Название
FROM Товар;
SELECT Покупатель.Фамилия
FROM Покупатель
UNION ALL
SELECT Товар.Название
FROM Товар;
Описание слайда:
Комбинирование строк с помощью оператора UNION SELECT Покупатель.Фамилия FROM Покупатель UNION SELECT Товар.Название FROM Товар; SELECT Покупатель.Фамилия FROM Покупатель UNION ALL SELECT Товар.Название FROM Товар;

Слайд 60





Подзапросы
Подзапрос – это команда SELECT, встроенная в другую команду SQL.
Отличия структуры подзапросов:
1) „подзапрос можно поместить в предложение SELECT, FROM, WHERE, HAVING или в другой запрос;
2)„ подзапрос всегда должен заключаться в круглые скобки;
3) „подзапрос нельзя заканчивать точкой с запятой;
4) не помещайте в подзапрос предложение ORDER BY;
5) подзапрос включает одну команду SELECT;
6) подзапрос может использовать столбцы в таблицах, которые приводятся в предложении FROM самого подзапроса или другого подзапроса;
7) „если таблица появляется во внутреннем, а не во внешнем запросе, вы не сможете включить столбцы этой таблицы в конечный результат (то есть в предложение SELECT внешнего запроса);
7) „в зависимости от ситуации подзапрос может использоваться для считывания ограниченного количества строк или столбцов. Подзапрос может считывать пустую таблицу.
Описание слайда:
Подзапросы Подзапрос – это команда SELECT, встроенная в другую команду SQL. Отличия структуры подзапросов: 1) „подзапрос можно поместить в предложение SELECT, FROM, WHERE, HAVING или в другой запрос; 2)„ подзапрос всегда должен заключаться в круглые скобки; 3) „подзапрос нельзя заканчивать точкой с запятой; 4) не помещайте в подзапрос предложение ORDER BY; 5) подзапрос включает одну команду SELECT; 6) подзапрос может использовать столбцы в таблицах, которые приводятся в предложении FROM самого подзапроса или другого подзапроса; 7) „если таблица появляется во внутреннем, а не во внешнем запросе, вы не сможете включить столбцы этой таблицы в конечный результат (то есть в предложение SELECT внешнего запроса); 7) „в зависимости от ситуации подзапрос может использоваться для считывания ограниченного количества строк или столбцов. Подзапрос может считывать пустую таблицу.

Слайд 61





Подзапросы
Чаще всего подзапросы используются в предложении WHERE в одной из форм:
1) WHERE   условие_поиска = (подзапрос);
2)„ WHERE условие_поиска  [NOT] IN (подзапрос);
3)„ WHERE условие_поиска = ALL (подзапрос);
4)„ WHERE условие_поиска =  ANY (подзапрос);
5)„ WHERE [NOT] EXISTS (подзапрос). 
Замечание: большую часть подзапросов можно записать в виде объединений.
Описание слайда:
Подзапросы Чаще всего подзапросы используются в предложении WHERE в одной из форм: 1) WHERE условие_поиска = (подзапрос); 2)„ WHERE условие_поиска [NOT] IN (подзапрос); 3)„ WHERE условие_поиска = ALL (подзапрос); 4)„ WHERE условие_поиска = ANY (подзапрос); 5)„ WHERE [NOT] EXISTS (подзапрос). Замечание: большую часть подзапросов можно записать в виде объединений.

Слайд 62





Подзапросы
Пример: вывести всех покупателей, у которых имеются чеки.
SELECT Покупатель.*
FROM Покупатель
WHERE Покупатель.Номер_карты IN (SELECT DISTINCT Чек.Номер_карты
                                                                   FROM Чек);
Описание слайда:
Подзапросы Пример: вывести всех покупателей, у которых имеются чеки. SELECT Покупатель.* FROM Покупатель WHERE Покупатель.Номер_карты IN (SELECT DISTINCT Чек.Номер_карты FROM Чек);

Слайд 63





Подзапросы
Пример: вывести товары, цена которых больше средней величины цен по всем товарам по акции.
SELECT Товар.Название, Товар.Цена,Товар.Наличие_акции
FROM Товар
WHERE Товар.Цена>(SELECT AVG(Товар.Цена)
FROM Товар
WHERE Товар.Наличие_акции=TRUE);
Описание слайда:
Подзапросы Пример: вывести товары, цена которых больше средней величины цен по всем товарам по акции. SELECT Товар.Название, Товар.Цена,Товар.Наличие_акции FROM Товар WHERE Товар.Цена>(SELECT AVG(Товар.Цена) FROM Товар WHERE Товар.Наличие_акции=TRUE);

Слайд 64





Подзапросы
Пример: вывести товары, цена которых больше  минимальной цены по всем товарам без акции, но меньше максимальной цены по всем товарам по акции.
SELECT Товар.Название, Товар.Цена,Товар.Наличие_акции
FROM Товар
WHERE Товар.Цена BETWEEN (SELECT MIN(Товар.Цена)
FROM Товар
WHERE Товар.Наличие_акции=FALSE) AND (SELECT MAX(Товар.Цена)
FROM Товар
WHERE Товар.Наличие_акции=TRUE);
Описание слайда:
Подзапросы Пример: вывести товары, цена которых больше минимальной цены по всем товарам без акции, но меньше максимальной цены по всем товарам по акции. SELECT Товар.Название, Товар.Цена,Товар.Наличие_акции FROM Товар WHERE Товар.Цена BETWEEN (SELECT MIN(Товар.Цена) FROM Товар WHERE Товар.Наличие_акции=FALSE) AND (SELECT MAX(Товар.Цена) FROM Товар WHERE Товар.Наличие_акции=TRUE);



Похожие презентации
Mypresentation.ru
Загрузить презентацию