28
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО «УФИМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЭКОНОМИКИ И СЕРВИСА» Кафедра «Информатика и ИКТ» БАЗЫ ДАННЫХ: МАНИПУЛИРОВАНИЕ ДАННЫМИ НА ЯЗЫКЕ SQL в СУБД MS Aсcess 2007 Практикум Уфа 2013 Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

484.базы данных манипулирование данными на языке sql в субд ms access 2007

Embed Size (px)

Citation preview

Page 1: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ФГБОУ ВПО «УФИМСКИЙ ГОСУДАРСТВЕННЫЙ

УНИВЕРСИТЕТ ЭКОНОМИКИ И СЕРВИСА»

Кафедра «Информатика и ИКТ»

БАЗЫ ДАННЫХ: МАНИПУЛИРОВАНИЕ ДАННЫМИ

НА ЯЗЫКЕ SQL в СУБД MS Aсcess 2007

Практикум

Уфа 2013

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 2: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

2

Составитель: М.А. Абросимова

УДК 004.9 А16

Базы данных: Манипулирование данными на языке SQL в СУБД MS Aсcess 2007: Практикум / Сост.: М.А. Абросимова. – Уфа: Уфимский государ-

ственный университет экономики и сервиса, 2013. – 26 с.

Практикум подготовлен в соответствии с федеральным государственным стандартом высшего профессионального образования для направления подго-

товки 080500.62 Бизнес-информатика и 230700.62 Прикладная информатика.

Практикум содержит пошаговое описание технологии создания и вы-полнения инструкций SQL в СУБД MS Access для выборки, соединения и объ-единения данных, а также включает задания для самостоятельного выполне-

ния.

Илл.: 11. Табл.: 5. Библиогр.: 7.

Рецензенты: Галиаскаров Ф.М., д-р физ.-мат. наук, профессор, заведующий кафед-

рой «Информатика и ИТ» УФ РГТУ Абрамова М.В., канд. техн. наук, доцент доцент кафедры «Информаци-

онные технологии в управлении» БАГСУ

© Абросимова М.А., 2013 © Уфимский государственный университет

экономики и сервиса, 2013

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 3: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

3

ОГЛАВЛЕНИЕ

ОСНОВНЫЕ ПОНЯТИЯ .............................................................................. 4 НАЧАЛО РАБОТЫ........................................................................................ 5 ЭЛЕМЕНТЫ SQL........................................................................................... 5

ИНСТРУКЦИИ И ИМЕНА В SQL ............................................................................ 6 ТИПЫ ДАННЫХ SQL ........................................................................................... 8

СИНТАКСИС SQL ............................................................................................... 8 РЕЛЯЦИОННЫЕ ОПЕРАЦИИ .................................................................................. 8

ИНТЕРФЕЙС СОЗДАНИЯ ЗАПРОСОВ SQL ............................................................. 10 ВЫБОРКА ДАННЫХ .................................................................................. 11

Ограничение отношения ................................................................................ 11 Проекция отношения ..................................................................................... 11

СОЗДАНИЕ ЗАПРОСА НА ВЫБОРКУ ДАННЫХ ........................................................ 11 СОХРАНЕНИЕ ЗАПРОСА ..................................................................................... 13

МОДИФИКАЦИЯ ЗАПРОСА ................................................................................. 13 ИСПОЛЬЗОВАНИЕ ЛОГИЧЕСКИХ ВЫРАЖЕНИЙ ..................................................... 14

Поиск в диапазоне .......................................................................................... 14 Поиск в списке ................................................................................................ 15 Неточный поиск ............................................................................................. 15

Вычисления в запросе ..................................................................................... 16 Группировка данных в запросе ....................................................................... 17

ВЫБОРКА ИЗ НЕСКОЛЬКИХ ТАБЛИЦ .................................................................... 19 СОЕДИНЕНИЕ ОТНОШЕНИЙ ................................................................. 19

ОБЪЕДИНЕНИЕ ДАННЫХ........................................................................ 21 УДАЛЕНИЕ ЗАПРОСОВ ............................................................................ 22

КОНТРОЛЬНЫЕ ВОПРОСЫ .................................................................... 23 ЛИТЕРАТУРА .............................................................................................. 23

ПРИЛОЖЕНИЕ............................................................................................ 25 ТИПЫ ДАННЫХ В ЯЗЫКЕ SQL MS ACCESS ......................................................... 25

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 4: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

4

Практикум нацелен на формирование компетенции студента манипули-ровать информационными ресурсами средствами СУБД, представлять содер-

жание прикладных и информационных процессов.

Основные понятия

База данных (БД) - поименованная совокупность взаимосвязанных дан-ных, отображающая состояние объектов и их отношений в некоторой пред-

метной области, и используемая для удовлетворения информационных по-требностей пользователей. Базы данных в СУБД МS Access принадлежат к ти-

пу реляционных баз данных. Объект предметной области – любой различимый объект реального

мира, информацию о котором нужно хранить в базе данных. Например, объект «Сотрудники», объект «Товары».

Реляционная база данных - база данных, состоящая из связанных таблиц - отношений. К таблицам баз данных можно обращаться с запросами и

выводить найденную информацию на экран. Реляционная модель управления данными была предложена Эдгаром Коддом (1923 – 2003) в начале 1970-х го-

дов. Подавляющее количество баз данных в сфере экономики и управления построено по реляционной модели данных.

Реляционная алгебра - набор операций над отношениями базы данных,

результатом каждой из которых является отношением: объединение, пересе-чение, разность, декартово произведение, ограничение (выборка), проекция,

соединение, деление. Операции реляционной алгебры также называют реляци-онными операциями.

СУБД – программная система, предназначенная для создания баз дан-ных и централизованного управления их ресурсами с целью предоставления

данных пользователям и программным средствам по их запросам. База данных в СУБД - файл, состоящий из таблиц и других информа-

ционных объектов (запросов, форм, отчетов, индексов и пр.). Таблица базы данных (отношение) - информационная объект базы

данных, состоящий из записей. Запись (кортеж) - это полный набор данных об объекте предметной об-

ласти: клиенте, книге, событии и т.д. Запись представляется в виде строки.

Структура всех записей таблицы одинакова. Количество записей в таблице яв-ляется переменным.

Поле (домен) – это набор данных одного типа в таблице, представляю-щих значения атрибутов (свойств) объекта предметной области. Например,

фамилии всех сотрудников. Для представления поля используется столбец. Поле имеет имя и значения.

Тип данных — атрибут, определяющий, какого рода данные могут хра-ниться в поле: целые числа, символы, данные денежного типа, метки времени

и даты, двоичные строки и пр. Реляционные операции – операции над отношениями в реляционных

базах данных, совершаемые по запросу пользователя: выборка, проекция,

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 5: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

5

объединение, соединение и пр. Запрос – сообщение, направляемое СУБД пользователем или приложе-

нием, которое активизирует действия выборки, вставки или удаления данных. Запрос адресуется к таблице.

Язык запросов – язык программирования в СУБД, обеспечивающий

извлечение данных из базы данных. SQL – стандартный язык запросов, используемый для взаимодействия с

данными в реляционных СУБД. Инструкция (оператор) - наименьшая автономная часть языка про-

граммирования, описывающая действие с данными, создаваемая пользовате-лем и выполняемая СУБД по команде пользователя.

Результирующая таблица - временная таблица базы данных, образо-ванная на основе информации, хранящейся в базовых таблицах, в результате

работы запроса.

Агрегатная функция – функции, которая совершает действие над сово-

купностью одинаковых полей в группе записей Практикум содержит пошаговое описание технологии создания и вы-

полнения инструкции SQL в СУБД MS Access для создания запросов на вы-борку данных (записей), а также включает задания для самостоятельного вы-

полнения.

Начало работы

СУБД – программная система, предназначенная для создания баз дан-

ных и централизованного управления их ресурсами с целью предоставления данных пользователям и программным средствам по их запросам.

Основным инструментарием СУБД MS Access являются конструкторы таблиц, запросов, экранных форм, отчётов, макросов и модулей. Арсенал этих средств позволяет создавать все информационные объекты баз данных, а так-

же создавать скрипты на языке VBA и, следовательно, разрабатывать неболь-шие приложения баз данных. Профессиональному использованию MS Access

мешает отсутствие ряда механизмов, необходимых в многопользовательских БД (например, триггеров, генератора exe-файлов и др.). На сегодняшний день

MS Access является файл-серверной СУБД со всеми ограничениями, характер-ными для данного класса СУБД.

Однако в силу доступности MS Access удобно использовать для приоб-ретения первых навыков работы с базой данных и языком SQL, конструктор

которого также входит в состав этой СУБД. Для получения представления о SQL будем использовать учебную базу

данных СУБД MS Access «Борей 2007».

Задание 1. Запустите СУБД MS Access.

Элементы SQL

SQL (Structured Query Language - язык структурированных запросов) -

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 6: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

6

язык, используемый для взаимодействия с данными в реляционных СУБД [1]. SQL является единственным стандартным языком для реляционных СУБД,

официальный стандарт языка был опубликован в 1986 г., разработан IBM. SQL - это язык программирования, предназначенный для работы с

наборами фактов и отношениями между ними. Как любой язык программиро-

вания, хотя он не объявляется полноценным языком программирования, а ха-рактеризуется как язык взаимодействия с СУБД, включает множество ин-

струкций, предписывающих СУБД выполнить определенное действие с дан-ными: создание новых или изменение существующих данных, извлечение

данных, управление доступом к данным и пр. [3]. В SQL определены несколько подмножеств языка:

DDL (Data Definition Language) - язык определения структур и ограничений целостности баз данных. Сюда относятся команды создания и удаления баз

данных; создания, изменения и удаления таблиц; управления пользователями и т.д.

DML (Data Manipulation Language) - язык манипулирования данными: добав-ление, изменение, удаление и извлечение данных, управления транзакциями.

DQL (Data Query Language) – язык выборки данных: формирование запросов. DCL Data Control Language) - язык управления данными: управление доступом к информации, находящейся внутри базы данных.

SQL характеризуется как непроцедурный язык (описательный, деклара-тивный), в нем нет операторов проверки условий и ветвления, перехода, цик-

лов и т.д. Запрос к базе данных не содержит инструкций по выполнению кон-кретных операций, а содержит лишь информацию о желаемом результате.

Примечание. В СУБД МS Access доступен также язык запросов QBE (Query By Example - запрос по образцу). QBE – также непроцедурный язык, но это

язык запросов для начинающих пользователей. QBE можно характеризовать как визуальный язык, т.к. он основан на использовании бланка, заполняемого с

использованием визуальных средств МS Access, в результате чего создается структура таблицы, удовлетворяющей критерию отбора записей из исход-

ной таблицы. При создании такого запроса автоматически формируется за-прос на стандартном для СУБД языке SQL. Инструкции и имена в SQL

Инструкция SQL начинается с команды.

Команда - ключевое слово, описывающее действие с данными в инструкции. Типичные ключевые слова, представляющие команды в инструкциях:

CREATE создать

INSERT добавить

DELETE удалить

SELECT выбрать

Далее за командой указывается одно или несколько предложений.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 7: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

7

Предложение описывает данные, с которыми должна работать инструкция, или уточняет действие, выполняемое инструкцией [2].

Каждое предложение начинается с ключевого слова. Ключевые слова в предложениях инструкций:

WHERE где

FROM откуда

INTO куда

Многие предложения в качестве параметров содержат имена таблиц или

полей, в общем, называемые идентификаторами. Идентификатор - имя, используемое для идентификации объекта.

Некоторые предложения могут содержать дополнительные ключевые слова, константы и выражения.

Константа - значение, которое не изменяется, например число или NULL.

Выражения - сочетание идентификаторов, операторов, констант и функций, предназначенное для вычисления одного значения. Например, для вычисления размера стипендии с учетом районного коэффициента нужно со-

здать выражение: Размер_стипендии_с_коэфф=Размер_стипендии*1,15. Для поиска студента с фамилией «Иванов» Вы используете выражение: Фами-

лия='Иванов' Имена таблиц и полей таблиц могут быть полными и краткими. Пра-

вила таковы:

полное имя таблицы включает имя пользователя и имя таблицы, раз-

деленные точкой:

<имя_пользователя>.<имя_таблицы> Примечание. Угловые скобки используются для описания шаблона имени таб-

лицы. При вводе конкретных имен они опускаются.

при однопользовательской работе с базой данных можно в инструкции

имя пользователя опустить и использовать краткое имя таблицы, т.е. только ее название.

полное имя поля состоит из полного (или краткого) имени таблицы,

которой принадлежит поле и имени поля, разделенных точкой:

<имя_таблицы>.<имя_поля> краткое имя поля, т.е. без указания имени таблицы в инструкциях SQL

недопустимо при выполнении действий с двумя или более таблицами.

имена таблиц и полей могут вводиться и на английском, и на русском

языках.

имена таблиц и полей могут вводится как с прописной буквы, так и со строчной (маленькой) буквы.

если имя поля состоит из нескольких слов, то между словами нужно

вставить нижнюю черту, например, Код_студента.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 8: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

8

Типы данных SQL Тип данных — атрибут, определяющий, какого рода данные могут хра-

ниться в поле: целые числа, символы, данные денежного типа, метки времени и даты, двоичные строки и пр. Тип данных влияет на правила указания крите-риев отбора. Типы данных, используемые в SQL MS Access, приведены в

ПРИЛОЖЕНИИ. Синтаксис SQL

Синтаксис языка — это набор правил, позволяющих правильно соче-

тать элементы языка. Синтаксис SQL основан на синтаксисе английского языка. Например,

простая инструкция SQL, извлекающая список фамилий студентов с именем Сергей, может выглядеть следующим образом:

SELECT Фамилия FROM Студенты WHERE Имя = 'Сергей'; При описании инструкций предполагается, что:

текст, набранный прописными (большими) буквами (например,

SELECT, FROM, WHERE) является обязательным;

текст, набранный строчными (маленькими) буквами и заключенный в

угловые скобки (например, <имя_базы_данных>) обозначает переменную, вводимую пользователем. При написании имени переменной они опускаются;

в квадратные скобки (например, [NOT NULL]) заключается необяза-

тельная часть инструкции;

взаимоисключающие элементы инструкции разделяются вертикальной

чертой (например, [UNIQUE | PRIMARY KEY]);

Access игнорирует разрывы строк в инструкции SQL. Чтобы инструк-

цию SQL было удобно читать как тому, кто ее написал, так и всем остальным,

можно каждое предложение рекомендуется начинать с новой строки;

каждая инструкция заканчивается точкой с запятой (;). Точка с запя-

той может стоять как в конце последнего предложения, так и на отдельной строке в конце инструкции SQL;

если в запросе указывается одна инструкция, то точку с запятой мож-

но не вводить.

Задание 2. Откройте учебную базу данных «Борей 2007». Закройте за-ставку базу данных «Борей 2007».

Реляционные операции

Операции, совершаемые над отношениями в базе данных, описываются с

помощью законов реляционной алгебры/ Реляционная алгебра - набор операций над отношениями базы данных,

результатом каждой из которых также является отношением. Операции реля-ционной алгебры также называют реляционными операциями. Реляционная

алгебра в том виде, в котором она была определена Э.Ф. Коддом, состоит из

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 9: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

9

двух групп по четыре оператора [4]. 1. Теоретико-множественные операции - традиционные операции над множе-

ствами (но модифицированные с учетом того, что их операндами являются от-ношения, а не произвольные множества): объединение, пересечение, разность и декартово произведение.

Таблица 1

Реляционная опера-ция

Описание

1. Объединение отношений

возвращает отношение, содержащее все кортежи, которые принад-лежат либо одному из двух заданных отношений, либо им обоим.

2. Пересечение

отношений

возвращает отношение, содержащее все кортежи, которые принад-

лежат одновременно двум заданным отношениям.

3. Вычитание от-ношений

возвращает отношение, содержащее все кортежи, которые принад-лежат первому из двух заданных отношений и не принадлежат вто-

рому.

4. Декартово про-изведение отноше-

ний

возвращает отношение, содержащее все возможные кортежи, кото-рые являются сочетанием двух кортежей, принадлежащих соответ-

ственно двум заданным отношениям.

2. Специальные реляционные операции: ограничение, проекция, соединение,

деление: Таблица 2

Реляционная опе-

рация Описание

1. Ограничение отношения (вы-

борка)

возвращает отношение, содержащее все кортежи из заданного отно-шения, которые удовлетворяют указанным условиям.

2. Проекция от-ношения

возвращает отношение, содержащее все кортежи (подкортежи) задан-ного отношения, которые остались в этом отношении после исключе-

ния из него некоторых атрибутов.

3. Соединение отношений

возвращает отношение, содержащее все кортежи, которые принадле-жат либо одному из двух заданных отношений, либо им обоим.

4. Деление отно-

шения

возвращает отношение, которое включает в себя атрибуты делимого

отношения, отличные от атрибутов отношения-делителя, и только те кортежи, декартовы произведения которых с отношением-делителем дают делимое отношение.

Часть операторов Кодда можно определить через другие операторы.

Например, соединение – это проекция выборки произведения, пересечение

выражается через разность, деление выражается через операторы вычитания, декартового произведения и проекции/

Для описания реляционных операций в СУБД используются инструкции языка запросов SQL. Результатом выполнения инструкций является таблица,

называемая «результирующая таблица». Результирующая таблица - временная таблица базы данных, образо-

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 10: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

10

ванная на основе информации, хранящейся в базовых таблицах, в результате работы запроса.

В лабораторном практикуме рассматриваются наиболее часто использу-емые реляционные операции: выборка, проекция, объединение, соединение. Для их реализации используется инструкция SELECT языка манипулирования

данными SQL. Интерфейс создания запросов SQL

Создание и выполнение запросов SQL происходит с использованием

вкладки меню «Конструктор», доступной после команды «Конструктор запро-сов» с вкладки меню «Создание».

Для перехода в режим работы с SQL нужно: 1. Предварительно включить содержимое базы данных, которое отключено

при создании запросов в целях безопасности. Для этого на Панели сообщений нажмите кнопку «Параметры» и выберите параметр «Включить это содержи-

мое» (Рис.1).

Рис. 1. Панель сообщений

2. На вкладке «Создание» в группе «Другие» щелкнуть «Конструктор запро-сов».

3. Закрыть диалоговое окно «Добавление таблицы». Бланк запроса будет скрыт, отобразится вкладка создаваемого объекта в ре-

жиме SQL (Рис. 2).

Рис. 2. Окно конструктора запросов в режиме SQL

Примечание. Порядок создания запроса для извлечения данных аналогичен по-рядку создания запросов для работы со структурой таблицами с одной лишь

О Б Л А С Т Ь Р Е Д А К Т И Р О В А Н И Я

В к л а д к а з а п р о с а

д л я в в о д а и н -с т р у к ц и и S Q L

О Б Л А С Т Ь П Е Р Е Х О Д А

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 11: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

11

разницей. При создании запроса для извлечения данных SQL используется по прямому назначению, т.е. как язык запроса, поэтому при создании запроса

нет необходимости включать режим создания управляющего запроса и для перехода в режим SQL щелкать на кнопке «Управление» вкладки меню «Кон-структор».

4. Ввести инструкцию SQL. 5. На вкладке «Конструктор» в группе «Результаты» выбрать команду «Вы-

полнить». В области редактирования появляется результирующая таблица - резуль-

тат выполнения запроса в виде таблицы с записями, удовлетворяющими условию

запроса.

Задание 3. Перейдите в режим рабо-ты с SQL.

Выборка Ограничение отношения

Ограничение возвращает отношение, содержащее все кортежи из задан-ного отношения, которые удовлетворяют указанным условиям (Рис. 3) [4].

Синтаксис инструкции SELECT следующий:

SELECT * FROM <имя_таблицы> что означает: получить все записи указанной таблицы. Символ звездочка (*)

указывает на то, что выбираются все записи. Синтаксис инструкции SELECT может быть таким:

SELECT * FROM <имя_таблицы> WHERE <условие_отбора> что означает: получить все записи таблицы, но удовлетворяющие условию

обора. Проекция отношения

Операция проекции позволяет выделить подмножество полей таблицы (Рис. 4). Синтак-

сис инструкции SELECT в этом случае следу-ющий:

SELECT <список_выбора> FROM <имя_таблицы> Что означает: получить содержимое по-

лей, указанных в списке выбора. Создание запроса на выборку данных

Чаще всего в результате запроса требует-ся получить некое подмножество записей и по-лей таблицы, т.е. выполнить комбинацию вы-

борки и проекции.

Рис. 4. Проекция отношения

Рис. 3. Ограничение отношения

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 12: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

12

Полный синтаксис инструкции выборки данных

SELECT [ALL | DISTINCT] <список_выбора> FROM <имя_таблицы>, ... [ WHERE <условие_отбора1> ] [ GROUP BY <условие_группировки>,... ]

[ HAVING <условие_отбора2> ] [ORDER BY <условие_сортировки> [ASC | DESC],. ]

Описание разделов инструкции: Таблица 3

Раздел Описание

ALL | DISTINCT в случае ALL в результат запроса выводятся все записи, удовлетво-ряющие условиям отбора, в случае DISTINCT в результат запроса не

будут включаться повторяющиеся записи

<список_выбора> определяется поле или поля, включаемые в результат. Он может со-стоять из имен одного или нескольких столбцов, или из одного сим-вола * (звездочка), определяющего все поля. Элементы списка раз-

деляются запятыми.

FROM ключевое слово, определяющее источник данных, с которым будет работать запрос, т.е. таблицу.

WHERE ключевое слово, задающее правило отбора записей, включаемых в

результат выборки.

<условие_отбора1> условие отбора записей по значению элемента данного, например, записи, где значение поля «Фамилия» равно «Иванов». Синтаксис

раздела: <имя_поля><оператор><’значение_поля’> Операторы, используемые в выражениях приведены в табл. 2.

GROUP BY позволяет выполнять группировку по определенному критерию. Обычно в качестве условия_группировки указывается имя поля.

HAVING позволяет построить записи из значений полей указанных в GROUP BY и значений агрегатных функций, вычисленных для каждой

группы, образованной GROUP BY. Агрегатная функция – функция статистической обработки данных: MAX, SUM, AVG и т.д.

<условие_отбора2> условие отбора записей для обработки агрегатной функцией агре-

гатной функции. Например, HAVING AVG (Размер_платы_обучен) > 27,0

ORDER BY позволяет упорядочить данные, возвращаемые по результатам за-проса, т.е. отсортировать. Обычно в качестве условия_сортировки

указывается имя_поля.

ASC ключевое слово, задающее прямой порядок сортировки по полю.

DESC ключевое слово, задающее обратный порядок сортировки по полю.

Как правило, используются сокращенные формы инструкции, например, для отбора записей из таблицы «Студенты» по студентам из конкретной груп-пы с сортировкой по полю «Фамилия» нужно написать и выполнить инструк-

цию:

SELECT Фамилия, Имя, Отчество, Группа FROM Студенты WHERE Группа=’БИД-21’ ORDER BY Фамилия;

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 13: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

13

Необходимо помнить, что порядок предложений в операторе SELECT должен строго соблюдаться (например,

GROUP BY должно всегда предшество-вать ORDER BY), иначе это приведет к появлению ошибок.

Задание 12.

1. Откройте таблицу «Товары» и пере-именуйте поле «Цена по прейскуранту»

в «Цена_по_прейскуранту». 2. Создайте запрос по выборке товаров с

их категориями, наименованиями и це-ной по прейскуранту из таблицы «Това-

ры». 3. Выполните запрос.

4. Просмотрите результаты запроса в полученной в результате выполнения

запроса таблице. Сохранение запроса

Для сохранения запроса исполь-зуйте команду «Сохранить как» систем-

ного меню MS Access.

Задание. Сохраните запрос под именем «Дешевые товары SQL». За-кройте запрос.

Модификация запроса

Вы можете модифицировать созданные уже запросы и выполнять их. Для этого Вы должны:

1. открыть запрос; 2. перейти в режим SQL выбрав его на панели меню «Главная» в списке режи-мов (Рис.5).

Задание 13.

1. Модифицируйте запрос внесением условия отбора записей: цена по прейс-куранту должна быть меньшей 10 р.

2. Просмотрите результаты выполнения запроса. 3. Модифицируйте запрос внесением условия отбора записей: сделайте выбор-

ку товаров категории «Напитки» с ценой по прейскуранту меньше 15 р. 4. Сохраните запрос.

5. Модифицируйте запрос "Дешевые товары SQL" путем задания сортировки по возрастанию по полю «Цена_по_прейскуранту». Сохраните его под именем

«Дешевые товары: сортировка».

Рис. 5. Переход из режима про-

смотра результирующей табли-

цы в режим редактирования за-

проса

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 14: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

14

Использование логических выражений При составлении логических выражениях используются операторы:

Таблица 4

Операторы Описание

> , < , >= , <= , =

, <> , != операторы сравнения, могут применяться не только к чис-

ловым значениям, но и к строкам ("<" означает раньше, а

">" позже в алфавитном порядке) и датам ("<" раньше и

">" позже в хронологическом порядке).

IS NULL, IS NOT NULL операторы проверки поля на значение NULL

BETWEEN и NOT BE-TWEEN.

операторы проверки на вхождение в диапазон

IN и NOT IN операторы проверки на вхождение в список

LIKE и NOT LIKE операторы проверки на вхождение подстроки

AND, OR, NOT операторы соединения отдельных операций

Поиск в диапазоне

Для отбора записей, удовлетворяющих некоторому диапазону значений, существует несколько способов:

с использованием оператора AND и операторов сравнения

SELECT <список_выбора> FROM <имя_таблицы> WHERE <имя_поля> >=Значение_1 AND <имя_поля> <= Значение_2

Например,

SELECT Краткое_наимен, Год_образования FROM Институты WHERE Год_образования >=1934 AND <= 1976;

с использованием оператора BETWEEN AND

SELECT <список_выбора> FROM <имя_таблицы> WHERE <имя_поля> BETWEEN Значение_1 AND Значение_2

Например,

SELECT Краткое_наимен, Год_образования FROM Институты WHERE Год_образования BETWEEN 1934 AND 1976;

при использовании этих предложений с оператором NOT, указанным

перед определением диапазона, т.е., например, используется предложение NOT BETWEEN AND, находятся все строки, не входящие в указанный диапа-

зон.

Задание 14. 1. Создайте новый запрос к таблице «Товары» для выборки товаров с мини-

мальным запасом не менее 10 единиц и с ценами в интервале от 10 до 80 руб.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 15: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

15

Используйте для этого оператор AND и операторы сравнения. В выборке отобразить категорию, наименование цену по прейскуранту, минимальный за-

пас. 2. Сохраните запрос под именем «Товары умеренной стоимости». Не забудьте прежде внести изменения в имена полей таблицы «Товары», если они состоят

из нескольких, еще несоединенных нижней чертой. 3. Модифицируйте запрос «Товары умеренной стоимости» под использование

оператора BETWEEN AND. Сохраните запрос. 4. Модифицируйте запрос «Товары умеренной стоимости» под использование

оператора NOT BETWEEN AND. Сохраните запрос. Поиск в списке

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

дение в список значений.

SELECT <список_выбора> FROM <имя_таблицы> WHERE <имя_поля> IN (значение_1,… значение_N);

Например,

SELECT Краткое_наимен, Год_образования FROM Институты WHERE Год_образования IN (1934, 1967,1976);

Задание 15. Создайте новый запрос к таблице «Товары» для выборки то-

варов с ценой по прейскуранту 10 и 30 руб. Сохраните запрос под именем «Товары из списка».

Неточный поиск

Для поиска с символьным критерием, когда неизвестно точное написа-

ние подстроки, например, наименования института, фамилии и пр., использу-ется оператор LIKE.

SELECT <список_выбора> FROM <имя_таблицы> WHERE <имя_поля> LIKE <образец>;

Образец заключается в кавычки и должен содержать шаблон подстроки

для поиска. Обычно в шаблонах используются два символа:

*(звездочка) - заменяет любое количество символов;

_ (подчеркивание) - заменяет одиночный символ.

Символы в шаблонах можно указывать как в начале подстроки, так и в конце. Например,

SELECT Краткое_наимен, Год_образования FROM Институты WHERE Краткое_наимен LIKE ‘ИТ*’;

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 16: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

16

Задание 16. Создайте новый запрос к таблице «Товары» для выборки то-варов, в наименовании которых есть общий фрагмент «Ко». В выборке отобра-

зить категорию, наименование цену по прейскуранту, минимальный запас. Со-хранить запрос под именем «Товары на Ко». Вычисления в запросе

При создании запроса можно предусмотреть вычисления над полями. В конструкции <список_выбора> можно использовать константы, функции и их

комбинации с арифметическими операциями и скобками.

Выполнение арифметических операций

Синтаксис следующий:

SELECT <имя_поля1, f(имя_поля2) AS <новое_имя_поля2, имя_поля3,… > FROM <имя_таблицы>

Например, чтобы узнать, сколько стоит обучение в год, выполнить ко-манду:

SELECT Краткое_наимен, Год_образования, Размер_оплаты_обучен*2 AS Размер_оплаты_обучен_год FROM Институты

AS – квалификатор, обеспечивает создание нового имени поля. Если Вы

не используете его, то СУБД присвоит самостоятельно формальное имя. В арифметических выражениях допускаются операции сложения (+),

вычитания (-), деления (/), умножения (*), а также различные функции (COS, SIN, ABS - абсолютное значение и т.д.). Также в запрос можно добавить стро-

ковую константу:

Задание 17. Создайте новый запрос к таблице «Товары». Включите в бланк запроса поля «Категория», «Наименование», «Цена по прейскуранту» .

Введите формулу расчета новой цены при условии, что она повышается на 10%. сохраните запрос под именем «Повышение цен».

Использование агрегатных функций

В SQL также определены агрегатные функции – функции, которые со-

вершают действия над совокупностью одинаковых полей в группе записей:

Таблица 5 Агрегатная функция Описание

AVG(<имя поля>) среднее по всем значениям данного поля COUNT(<имя поля>) или

COUNT (*) число записей в группе

MAX(<имя поля>) максимальное из всех значений данного поля MIN(<имя поля>) минимальное из всех значений данного поля SUM(<имя поля>) сумма всех значений данного поля

FIRST(<имя поля>) значение поля в первой записи группы

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 17: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

17

LAST(<имя поля>) значение поля в последней записи группы

Следует учитывать, что каждая агрегатная функция возвращает един-

ственное значение. Поэтому синтаксис инструкции аналогичен предыдущее-му, за той лишь разницей, что вместо списка полей нужно указывать агрегат-

ные функцию от значения поля. Например, запрос

SELECT Min(Размер_оплаты_обучен) AS Минимальн_оплата FROM Институты; вернет результат:

Задание 18.

1. Подсчитайте количество записей в таблице «Товары», в которых в имени поля «Наименование» есть общий фрагмент «Ко».

2. Проверьте, правильно ли произведен расчет по результирующей таблице созданного Вами выше запроса «Товары на Ко».

Группировка данных в запросе

Группировка данных в операторе SELECT осуществляется с помощью ключевого слова GROUP BY и ключевого слова HAVING, с помощью которо-

го задаются условия разбиения записей на группы. GROUP BY неразрывно связано с агрегатными функциями, без них оно

практически не используется. GROUP BY разделяет таблицу на группы, а аг-регатными функция вычисляет для каждой из них итоговое значение.

Например, инструкция:

SELECT Категория FROM Товары GROUP BY Категория; вернет таблицу, где записи сгруппированы по категориям (Рис. 6а)

Для определения количества записей в каждой категории товаров нужно

определить агрегатную функцию COUNT(*) через запятую после определения имени_поля, по которому выполняется группировка:

SELECT Категория, COUNT(*) AS Количество_товаров FROM Товары GROUP BY Категория;

Тогда будет возвращена таблица, приведенная на Рис. 6б)

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 18: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

18

а) б)

Рис. 6. Результат выполнения операции выборки а) с группировкой данных;

б) с группировкой данных и применением агрегатной функции COUNT

Если требуется наложить ограничение на количество товаров в катего-

рии, то используется ключевое слово HAVING:

SELECT Категория, COUNT(*) AS Количество_товаров FROM Товары GROUP BY Категория HAVING COUNT(*)>2;

Результатом выполнения такой инструкции будет следующая таблица (Рис.7):

Рис. 7. Результат выполнения операции выборки с группировкой данных и

применением агрегатной функции COUNT и условием

на значение агрегатной функции

Задание 19. Создайте запрос с группировкой по полю «Должность» в

таблице «Сотрудники», при этом количество сотрудников с одной и той же

должностью в каждой группе должно быть > 3. Затем снимите ограничение.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 19: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

19

Сохраните запрос под именем «Сотрудники_группировка». Выборка из нескольких таблиц

Очень часто возникает ситуация, когда выборку данных надо произво-дить из нескольких связанных таблиц. В этом случае:

Синтаксис инструкции SELECT к связанным таблицам:

SELECT <список_ полных_ имен_ полей> FROM <список_ таблиц>; Задание 20.

1. Создайте запрос к связанным таблицам «Заказы» и «Доставка». Выберите данные по полю «Получатель из таблицы «Заказы» и полям «Организация» и

«Город» из таблицы «Доставка». Посмотрите результирующую таблицу. Со-храните запрос под именем «Заказы и доставка».

2. Модифицируйте запрос, дополнив условием выборки: получателем должен быть Березин.

3. Модифицируйте запрос, дополнив условием выборки: получателями долж-ны быть Березин и Тимофеева.

Соединение отношений

Соединение - это процесс, когда две или более таблицы объединяются в одну [5]. Операция соединения позволяет соединять строки из более чем од-ной таблицы (по некоторому условию) для образования новых строк данных.

По сути производится выборка данных из двух таблиц и включение их в одну результирующую таблицу, для чего используется инструкция SELECT.

Операция соединения возвращает отношение, кортежи которого являют-ся сцеплением кортежей первого и второго отношений и удовлетворяют неко-

торому условию. При этом является обязательным присутствие в кортежах одинаковых значений атрибутов. Общие значения в

результирующем кортеже появляются один раз, а не дважды (Рис. 8).

Операции соединения подразделяются на два вида: внешние и внутренние. Внешние соединения

поддерживаются стандартом ANSI-92 и задаются зарезервированным словом JOIN, в то время как

внутренние соединения (или просто соединения) мо-гут задаваться как без использования такого слова (в стандарте ANSI-89), так и с использованием слова JOIN (в стандарте ANSI-92).

Примечание. Стандарт ANSI-92 – стандарт SQL92. Сейчас действует стан-дарт SQL2003.

Условие соединения, то есть условие сопоставления строк исходных таблиц друг с другом, представляет собой логическое выражение.

Внешнее соединение возвращает все записи из первой таблицы и только те записи из второй таблицы, для которых условие соединения принимает зна-

Рис. 8. Соединение

отношений

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 20: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

20

чение TRUE. Строки второй таблицы, не удовлетворяющие условию соедине-ния (т.е. имеющие значение FALSE), получают значение NULL в результиру-

ющей таблице. Существует два вида внешнего соединения: левое и правое:

левое внешнее соединение выбирает все записи первой (левой) табли-

цы, даже если они не соответствуют записям во второй (правой) таблице. Ис-пользуется словосочетание LEFT JOIN.

правое внешнее соединение выбирает все записи второй (правой) таб-

лицы, даже если они не соответствуют записям в первой (левой) таблице. Ис-пользуется словосочетание RIGHT JOIN.

Внутренние соединения объединяет записи из двух таблиц, если в связу-

ющих полях этих таблиц содержатся одинаковые значения. Используется сло-восочетание INNER JOIN.

Синтаксис инструкции соединения в стандарте SQL92:

SELECT <список_ полных_ имен_ полей> FROM <имя_таблицы_1> {INNER | LEFT | RIGHT} JOIN <имя_таблицы_2>

ON <условие_соединения>

В СУБД MS Access не поддерживает использование слова JOIN. Поэто-му возможно реализовать операцию внутреннего соединения только с исполь-

зованием конструкции:

Синтаксис инструкции соединения в стандарте SQL89:

SELECT <список_ полных_ имен_ полей_таблицы_1>, <список_ полных_ имен_ полей_таблицы_2>

FROM <имя_таблицы_1>, <имя_таблицы_2> WHERE <условие_соединения>

Например, запрос:

SELECT Сотрудники.Фамилия, Поставщики.Фамилия, Поставщики.Имя, По-ставщики.Должность FROM Сотрудники, Поставщики WHERE Поставщи-ки.Должность='Маркетолог' позволяет получить новое отношение, содержащее соединенные записи:

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 21: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

21

Рис. 9. Результат выполнения операции соединения двух таблиц

Задание 21. Создайте запрос к таблицам «Сотрудники» и «Поставщики» для соединения данных по полям «Фамилия», «Имя», «»Отчество», «Долж-

ность», при этом в результирующую таблицу должны отобраться только начальники отдела сбыта. Сохраните запрос под именем «Объединение».

Объединение данных

Объединение возвращает отношение, содержащее все кортежи, которые принадлежат либо одному из двух заданных отношений, либо им обоим (Рис.

9). Для объединения используется инструкция UNION.

Синтаксис операции объединения:

SELECT <список_ выбираемых_ полных_ имен_ полей1> FROM <пол-ное_имя_таблицы1>[WHERE <условие_отбора>] UNION

SELECT <список_ полных_ имен_ полей2> FROM <полное_имя_таблицы2> [WHERE <условие_отбора>];

Чтобы к результатам запросов можно было применить операцию объединения, нужно, чтобы

они соответствовали следующим требованиям:

запросы должны возвращать одинаковый

набор полей, причем порядок следования полей в каждом запросе должен быть одинаковым;

типы данных соответствующих полей в

запросах должны совпадать. Рис. 10. Объединение

отношений

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 22: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

22

Например, запрос на объединение, обращенный к таблицам «Сотрудни-ки» и «Поставщики», содержащие одинаковые по смыслу и типу данных поля,

а именно «Фамилия», «Имя», «Должность»:

SELECT Сотрудники.Фамилия, Сотрудники.Имя, Сотрудники.Должность FROM Сотрудники UNION SELECT Поставщики.Фамилия, Поставщики.Имя, Поставщи-ки.Должность FROM Поставщики; позволяет получить список и тех, и других работников по указанным полям

(Рис. 11):

Рис. 11. Результат выполнения операции объединения двух таблиц

Задание 22. Создайте запрос к таблицам «Сотрудники» и «Поставщики» для объединения данных по полям «Фамилия», «Имя», «»Отчество», «Долж-

ность», при этом в результирующую таблицу должны отобраться только начальники отдела сбыта. Сохраните запрос под именем «Соединение».

Удаление запросов

При завершении лабораторного практикума у Вас должны быть созданы

запросы: 1. Дешевые товары SQL

2. Дешевые товары: сортировка 3. Товары умеренной стоимости

4. Товары из списка 5. Повышение цен

6. Товары на букву Ко 7. Сотрудники_группировка.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 23: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

23

8. Заказы и доставка. 9. Объединение

10. Соединение. Для удаления запроса, выделите его в области перехода и щелкните

«Удаление» на вкладке меню «Конструктор» или нажмите клавишу DELETE

на клавиатуре.

Задание 23. Все запросы удалять только ПОСЛЕ просмотра их препо-давателем.

Контрольные вопросы 1. Что такое результирующая таблица? 2. Что такое инструкция SQL?

3. Охарактеризуйте два вида SQL? 4. Приведите минимальную инструкцию оператора выборки данных. 5. Что означает в инструкции SELECT ключевое слово ORDER BY?

6. Что означает в инструкции SELECT ключевое слово GROUP BY? 7. Что означают в инструкции SELECT ключевые слова ALL | DISTINCT?

8. Приведите инструкцию оператора выборки данных из списка. 9. В каком случае используются ключевые слова BETWEEN и NOT BE-

TWEEN в инструкции SELECT. 10.Приведите инструкцию оператора выборки данных при невозможности

точно указать поисковый текстовый контекст. 11.Какое ключевое слово в инструкции SELECT используется для создания

нового имени поля, в котором будут размещены данные после вычислений? 12.Объясните смысл выполнения инструкции SELECT с группировкой дан-

ных. Приведите синтаксис инструкции. 13.Приведите примеры агрегатных функций. 14.Приведите инструкцию оператора выборки данных с одновременным вы-

полнением вычислений. 15.В каком случае используются полные имена полей?

16.Что дает запрос на объединение, приведите синтаксис инструкции в стан-дарте ANSI 89?

17.Что дает запрос на объединение, какой оператор используется? Приведите синтаксис инструкции.

Литература 1. Агальцов В.П. Базы данных: Допущено УМО вузов по университетскому поли-техническому образованию в качестве учебника для вузов. В 2-х кн.; Кн. 1: Ло-

кальные базы данных. - 2-е изд., перераб. М.: ФОРУМ; ИНФРА-М, 2012. 2. Голицына О.Л., Максимов Н.В., Попов И.И. Базы данных. Учебное пособие -

М: ИНФРА-М, 2011. 3. Базы данных: Учебник. Под ред. Хомоненко А.Д. - 5-е изд., доп. М., СПб: Би-ном-Пресс; КОРОНА принт, 2006.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 24: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

24

4. http://www.citforum.ru/ - сервер центра информационных технологий. 5. http://www.intuit.ru/department/database/ - интернет-университет информацион-

ных технологий. 6. http://office.microsoft.com/ru-ru/access-help/ - справочная система MS Access. 7. http://ru.wikipedia.org/ - Свободная энциклопедия «Википедия».

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 25: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

25

ПРИЛОЖЕНИЕ

Типы данных в языке SQL MS Access Символьные типы данных

Содержат буквы, цифры и специальные символы.

TEXT

Текстовые данные большого размера. Выделяется 2 байта на символ. Объем текста от 0 до 2,14 Гбайт. Другое название — MEMO.

CHAR Символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR без параметра соответствует CHAR(1). Для хранения выделяется 2 байта на символ. Можно ввести от 0 до 255 символов. Другое название — TEXT(n).

Графические типы данных IMAGE Используется для объектов OLE.

Целые типы данных Поддерживают только целые числа (дробные части и десятичные точки не допускаются). Над этими типами разрешается выполнять арифметические операции и применять к ним агрегирующие функции (определение максимального, минимального, среднего и суммарного значения столбца реляционной

таблицы).

INTEGER или INT

Длинное целое число. Для хранения длинного целого числа отводится 4 байта.

TINYINT Целое число от 0 до 255. Для хранения целого числа отводится 1 байт.

SMALLINT Короткое целое (2 байта), интервал значений от - 32767 до +32768. Вещественные типы данных

Описывают числа с дробной частью. REAL Значения обычной точности с плавающей запятой. Для хранения отводится обычно 4

байта

FLOAT Числа с плавающей точкой (для хранения отводится обычно 8 байтов). DECIMAL Десятичные числа. Точный числовой тип данных, включающий значения от 1028 - 1

до -1028 - 1. Можно использовать при необходимости описания денежных величин.

Денежные типы данных Описывают денежные величины.

CURRENCY Тип с плавающей запятой с 4 десятичными числами, используемыми для финансовых значений

MONEY Масштабируемое целое число. Можно применять специальные методы форматирова-ния.

Дата и время Используются для хранения даты, времени и их комбинаций. Можно определять интервал между двумя датами, а также уменьшать или увеличивать дату на определенное количество времени.

DATETIME

Тип данных для хранения даты и времени, относящиеся к годам с 100 по 9999.

Двоичные типы данных Позволяют хранить данные любого объема в двоичном коде (оцифрованные изображения, исполняе-

мые файлы и т.д.).

BINARY В таком поле могут быть сохранены данные любого типа. Преобразование данных (например, в текст) не производится. От способа ввода данных в бинарное поле зави-сит способ вывода выходных данных.

Логические типы данных

BIT Для хранения значений «Да» и «Нет», или других двух возможных значений.

Последовательные типы данных Используются для представления возрастающих числовых последовательностей.

COUNTER Тип данных на основе INTEGER, позволяющий сформировать уникальное значение (например, для первичного ключа). При добавлении записи СУБД автоматически присваивает полю данного типа значение, получаемое из возрастающей последова-тельности целых чисел.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 26: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

26

АБРОСИМОВА Марина Александровна

БАЗЫ ДАННЫХ:

МАНИПУЛИРОВАНИЕ ДАННЫМИ НА ЯЗЫКЕ SQL в СУБД MS Aсcess 2007

Практикум

Технический редактор: С.А. Юдина

Подписано в печать 20.06.2013. Формат 60х84 1/16.

Бумага писчая. Гарнитура «Таймс». Усл. печ. л. 1,51. Уч.-изд. л. 2. Тираж 100 экз.

Цена свободная. Заказ № 69.

Отпечатано на ризографе в редакционно-издательском отделе Уфимского государственного университета экономики и сервиса

450078, г. Уфа, ул. Чернышевского, 145, к. 206; тел. (347) 241-69-85.

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 27: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

27

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»

Page 28: 484.базы данных манипулирование данными на языке sql в субд ms access 2007

28

Copyright ОАО «ЦКБ «БИБКОМ» & ООО «Aгентство Kнига-Cервис»