1. Модуль 4:SQL – запросы Александр Бабич Alexander.taurus@gmail.com
2. О чемпойдетречь Ввод SQL выражений. Основные конструкции языка Оператор SELECT . Построение простых запросов с условиями отбора Статистические функции COUNT, FIRST, LAST Статистические функции MIN, MAX, AVG. Функция SUM Запросы на добавление, обновление, удаление, создание таблицы
3. Урок 1: Что такое SQL Ввод SQL выражений. Основные конструкции языка Оператор SELECT . Построение простых запросов с условиями отбора Статистические функции COUNT, FIRST, LAST Статистические функции MIN, MAX, AVG. Функция SUM
4. Что такое SQL StructuredQueryLanguage — язык структурированных запросов универсальный язык, для создания, модификации и управления данными в реляционных БД 70-е - средствоработы конечного пользователя не являетсяязыкомпрограммирования! Но есть возможность процедурных расширений
5. Microsoft Access и SQL поддержкадвухстандартовSQL: ANSI MS Jet SQL Отличия: разные наборы зарезервированных слов и типов данных разные правила для оператора Between … And … разные подстановочные знаки оператора Like (? и _, * и %) JetSQL - разрешается группировка и сортировка по выражениям JetSQL – более сложные выражения и дополнительные инструкции
12. Разделители и символы запятые используются для разделения членов списков Имя, Фамилия, Отчество, Год рождения, Адрес, Город, Индекс; для задания имен полей, которые содержат пробелы применяются квадратные скобки [Дата размещения]; если в запрос включены поля нескольких таблиц, то включается полное имя поля состоит из двух частей: имени таблицы и имени поля, между которыми используется точка Заказы. КодЗаказа; строки заключаются как в одиночные('), так и в двойные кавычки ( ") при использовании инструкций SQL в процедурах VBA рекомендуется ставить одиночные кавычки в конце инструкции Jet SQL обязательно ставится точка с запятой;
15. Примеры SELECT TOP 25 * FROM Заказы IN "С:ои Документыорей.mdb"; SELECT Заказано.*, Заказы.КодКлиента, Заказы.ДатаИсполнения,Заказы.КодЗаказаFROM Заказы, ЗаказаноWHERE (((Заказы.ДатаИсполнения)>=#1/1/1998#) AND((Заказы.КодЗаказа)=[Заказано].[КодЗаказа])) OR(((Заказы.ДатаИсполнения) Is Null) AND((Заказы.КодЗаказа)=[Заказано].[КодЗаказа])); SELECT Клиенты.Название, Клиенты.Город, Клиенты.Адрес FROM КлиентыWHERE (((Клиенты.Страна)IN ('США','Канада',Мексика')));
16. Исключение повторений DISTINCTROW и DISTINCT в инструкции SELECT позволяют исключить из результирующего множества повторяющиеся строки DISTINCTROW – для сравнения записей применяются все поля исходной таблицы независимо от того, какие из полей включены в запрос DISTINCT – для сравнения записей используются только те поля, которые включены в запрос
17. Аггрегирующие функции AVG() – среднее значение COUNT() – количество строк FIRST() – первое значение LAST() – последнее значение MAX() – наибольшее значение MIN() – наименьшее значение SUM() – сумма
18. Скалярные функции UCASE() – верхний регистр LCASE() – нижний регистр MID() – извлечение символов из текста LEN() – длина текста ROUND() – округление значения NOW() – текущая дата-время FORMAT() – форматирование значения
19. Примеры SELECT Count(*) AS [Number of Invoices] FROM tblInvoices SELECT Avg(Amount) AS [Average Invoice Amount] FROM tblInvoices SELECT Last(Amount) AS [Last Invoice Amount] FROM tblInvoices
20. Урок 2: SQL-запросы в Access Запросы на добавление, обновление, удаление, создание таблицы
21. Запросы на добавление INSERT INTO назначение [(поле_1[, поле_2[, ...]])] [IN внешняяБазаДанных]SELECT [источник.]поле_1[, поле_2[, ...]FROM выражение [, ...] [IN внешняяБазаДанных][WHERE...][GROUP BY...][HAVING...][ORDER BY...][WITH OWNERACCESS OPTION] Примеры: INSERT INTO Доставка (Название, Телефон)VALUES («Аэрофлот", "(095) 211-9988"); INSERT INTO Временная ( КодКлиента, [Стоимостьзаказа] )SELECT Заказы.КодКлиента, sum([Цена]*[Количество])FROM Заказано, ЗаказыIN "С:ои ДокументыataBasel.mdb"WHERE («Заказано.КодЗаказа)=[Заказы].[КодЗаказа]))GROUP BY Заказы.КодКлиентаORDER BY Sum([Цена]*[Количество])DESC;
22. Запросы на обновление UPDATE таблица SET поле=новоеЗначение WHERE условиеОтбора Примеры: UPDATE [Товары] SET [Товары].ПоставкиПрекращены = False WHERE ((([Товары].ПоставкиПрекращены)=Тruе)); UPDATE Заказы INNER JOIN Заказано ON Заказы.КодЗаказа = Заказано.КодЗаказа SET Заказано.Скидка = 0 WHERE (((Заказы-ДатаИсполнения) Is Null));
23. Запросы на удаление DELETE [таблица.]*, поле1 [,...] FROM таблицаWHERE условиеОтбора Пример: DELETE [Товары].ПоставкиПрекращены FROM [Товары] WHERE ((([Товары].ПоставкиПрекращены)=Тruе)); DROP {TABLE таблица | INDEX индексON таблица| PROCEDURE процедура | VIEW представление}
24. Запросы на создание таблицы CREATE [TEMPORARY] TABLE таблица (поле_1 тип [(размер)][NOT NULL] [WITH COMPRESSION | WITH COMP][индекс_1] [, поле_2 тип [(размер)] [NOT NULL][индекс_2] [, ...]] [, CONSTRAINT составнойИндекс [, ...]])
26. Подводимитоги Ввод SQL выражений. Основные конструкции языка Оператор SELECT . Построение простых запросов с условиями отбора Статистические функции COUNT, FIRST, LAST Статистические функции MIN, MAX, AVG. Функция SUM Запросы на добавление, обновление, удаление, создание таблицы
28. Контрольные вопросы Какие стандарты SQL поддерживаются Microsoft Access? В чем различия между ними? Как создать SQL-запрос в Access? Перечислите типы SQL-запросов Access
29. Использованные источники Иллюстрированный самоучитель по MicrosoftAccesshttp://www.taurion.ru/access Microsoft Accesshttp://matveev.kiev.ua/macceass/index.htm SQLhttp://ru.wikipedia.org/wiki/SQL SQL Functionshttp://www.w3schools.com/sql/sql_functions.asp