399.базы данных описание данных и работа с записями на...

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

Upload: ivanov156666889958

Post on 13-Feb-2017

215 views

Category:

Documents


4 download

TRANSCRIPT

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

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

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

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

БАЗЫ ДАННЫХ: ОПИСАНИЕ ДАННЫХ И РАБОТА С ЗАПИСЯМИ

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

Практикум

Уфа 2013

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

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

2

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

УДК 004.9 А16

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

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

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

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

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

задания для самостоятельного выполнения.

Илл.: 4. Табл.: 2. Библиогр.: 5.

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

рой «Информатика и ИТ» УФ РГТУ Лехмус М.Ю., канд. техн. наук, доцент кафедры «Экономическая ин-

форматика» УГАТУ

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

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

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

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

3

ОГЛАВЛЕНИЕ

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

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

СИНТАКСИС SQL ............................................................................................... 8 ИНТЕРФЕЙС СОЗДАНИЯ ЗАПРОСОВ SQL ............................................................... 9

СОЗДАНИЕ И МОДИФИКАЦИЯ СТРУКТУР ДАННЫХ ...................... 10 СОЗДАНИЕ ТАБЛИЦЫ ........................................................................................ 10

СОХРАНЕНИЕ ЗАПРОСА ..................................................................................... 12 ЗАКРЫТИЕ И ОТКРЫТИЕ ОКНА ЗАПРОСА ............................................................. 12

МОДИФИКАЦИЯ ТАБЛИЦЫ ................................................................................ 13 СОЗДАНИЕ ИНДЕКСА ......................................................................................... 14

ОБЕСПЕЧЕНИЕ ЦЕЛОСТНОСТИ ДАННЫХ.............................................................. 15 РАБОТА С ЗАПИСЯМИ ТАБЛИЦЫ......................................................... 18

ДОБАВЛЕНИЕ ЗАПИСЕЙ ..................................................................................... 18 МОДИФИКАЦИЯ ЗАПИСЕЙ ................................................................................. 19 УДАЛЕНИЕ ЗАПИСЕЙ ......................................................................................... 20

УДАЛЕНИЕ ТАБЛИЦ ................................................................................. 20 КОНТРОЛЬНЫЕ ВОПРОСЫ .................................................................... 20

ЛИТЕРАТУРА .............................................................................................. 21

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

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

4

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

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

Основные понятия База данных (БД) - поименованная совокупность взаимосвязанных дан-

ных, отображающая состояние объектов и их отношений в некоторой пред-

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

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

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

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

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

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

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

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

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

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

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

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

Редактирование (модификация) структуры данных – процесс внесе-

ния изменений в структуру данных. Вставка / удаление записей – процесс добавления (удаления) в таблицу

данных новой записи в виде строки данных. Целостность базы данных – свойство базы данных хранить данные, в

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

Ограничение целостности (ограничение) - правило, налагающее неко-торое ограничение на возможное состояние базы данных. Например, год обра-

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

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

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

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

5

Запрос адресуется к таблице. Язык запросов – язык программирования в СУБД, обеспечивающий

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

данными в реляционных СУБД.

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

выполняемая СУБД по команде пользователя. Практикум содержит пошаговое описание технологии создания и вы-

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

задания для самостоятельного выполнения.

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

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

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

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

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

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

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

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

которого также входит в состав этой СУБД.

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

Элементы SQL

SQL (Structured Query Language - язык структурированных запросов) - язык, используемый для взаимодействия с данными в реляционных СУБД .

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

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

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

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

данных, управление доступом к данным и пр.

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

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

6

В SQL определены несколько подмножеств языка: DDL (Data Definition Language) - язык определения структур и ограниче-

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

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

циями. DQL (Data Query Language) – язык выборки данных: формирование за-

просов DCL Data Control Language) - язык управления данными: управление до-

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

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

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

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

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

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

CREATE создать

INSERT добавить

DELETE удалить

SELECT выбрать

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

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

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

WHERE где

FROM откуда

INTO куда

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

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

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

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

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

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

7

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

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

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

вила таковы:

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

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

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

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

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

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

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

<имя_таблицы>.<имя_поля>

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

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

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

языках.

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

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

вставить нижнюю черту, например, Код_студента. Типы данных SQL MS Access

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

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

В SQL MS Access используются следующие типы данных:

Таблица 1 Символьные типы данных

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

TEXT

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

Гбайт. Другое название — MEMO.

CHAR Символьные строки фиксированной длины. Длина строки определяется параметром n. CHAR

без параметра соответствует CHAR(1). Для хранения выделяется 2 байта на символ. Можно

ввести от 0 до 255 символов. Другое название — TEXT(n).

Графические типы данных

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

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

8

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, позволяющий сформировать уникальное значение (например,

для первичного ключа). При добавлении записи СУБД автоматически присваивает полю данно-

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

Для всех типов данных имеется общее значение NULL – «не определе-

но». Это значение имеет каждый элемент поля до тех пор, пока в него не будут введены данные. При создании таблицы можно явно указать СУБД могут ли

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

Синтаксис SQL

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

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

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

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

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

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

9

текст, набранный прописными (большими) буквами (например, SELECT, FROM, WHERE) является обязательным;

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

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

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

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

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

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

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

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

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

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

не вводить. Для получения представления о SQL будем создавать, используя инструк-

ции SQL, свою базу данных.

Задание 2. Создайте файл базы данных с именем «БД_проба_sql» в папке

«Мои документы». База данных открывается и автоматически устанавливается

режим таблицы с открытой пустой таблицей. Для дальнейшей работы с SQL она не нужна, и ее нужно закрыть.

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

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

сов» с вкладки меню «Создание».

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

создании запросов в целях безопасности. Для этого на Панели сообщений нажми-

те кнопку «Параметры» и выберите параметр «Включить это содержимое» (Рис.1).

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

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

3. Закрыть диалоговое окно «Добавление таблицы».

4. На вкладке «Конструктор» в группе «Тип запроса» нажмите кнопку «Управле-

ние». Бланк запроса будет скрыт, отобразится вкладка создаваемого объекта в

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

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

10

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

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

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

нить».

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

Задание 3. Перейдите в режим работы с SQL. Создание и модификация структур данных

Для создания и модификации структур данных используется язык опреде-

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

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

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

имен данных, их типов и ограничений, накладываемых на значения данных.

Основными командами языка DDL являются: CREATE TABLE, ALTER TABLE, DROP TABLE, CREATE INDEX, ALTER INDEX, DROP INDEX.

Создание таблицы

Для создания таблицы используется оператор CREATE TABLE.

Синтаксис инструкции создания таблицы:

CREATE TABLE <имя_таблицы> (<Определение_поля>ا<определение_ограничения_таблицы>…)

После задания имени таблицы через запятую перечисляются все предложе-

ния, определяющие отдельные элементы таблицы, - поля или ограниче-ния_таблицы. Определение_ограничения_таблицы – задание некоторого ограни-

чения целостности на уровне таблицы (более подробно ограничения рассматри-

ваются в разделе «Обеспечение целостности данных»).

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

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

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

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

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

11

Поля определяются заданием имени, типа данных (см. приведенную выше таблицу типов данных) и, возможно ([ ]), свойств поля, называемых ограничени-

ями и которых может быть несколько (жирным выделены обязательные элемен-

ты):

Синтаксис предложения определения поля:

<имя_поля> <тип_данных>[<ограничение_поля>….]

Ограничения (англ. constraint) приводятся через пробел после ти-

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

того, является поле ключевым (свойство PRIMARY KEY) или нет, обязанность поля хранить только допустимые значения (свойство NOT NULL), или это не ин-

тересует разработчика базы данных и пр.

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

нижней части окна на панели «Свойства поля» конструктора таблиц (Рис. 3).

Рис. 3. Окно свойств поля при создании таблицы в режиме конструктора

Определения полей разделяются запятыми.

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

CREATE TABLE <таблица> (<имя_поля1> <тип_данных> [(размер)][NOT NULL], (<имя_поля2> <тип_данных> [(размер)][NOT NULL], (<имя_поля2> <тип_данных> [(размер)][NOT NULL], PRIMARY KEY (<имя_поля1>));

Текст инструкции по созданию таблицы «Авто» с полями: «ИД_авто», «Модель», «Год выпуска», «Цена», где ключевым является поле ИД_авто», будет иметь следующий вид:

CREATE TABLE Авто (ИД_авто INTEGER, Модель TEXT(30), Год выпуска TEXT(4), Цена CURRENCY, PRIMARY KEY (ИД_авто));

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

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

12

Задание 3. 1. Введите в окне программного кода инструкцию по созданию таблицы «Сту-

денты» с 7 полями: Поле Тип_ данных Ограничения

ИД_студент длинное целое число первичный ключ Фамилия символьная строка 30 символов Имя символьная строка 15 символов

Отчество символьная строка 20 символов Группа символьная строка 7 символов

Телефон символьная строка 11 символов

2. Откройте созданную таблицу в режиме таблицы.

3. Введите данные в таблицу «Студенты» по 10-ти студентам. Возможно указание на ключевое поле путем размещения свойства

PRIMARY KEY при определении поля через пробел после задания типа дан-ных. В этом случае инструкции по созданию таблицы «Авто» будет иметь сле-

дующий вид:

CREATE TABLE Авто (ИД_авто INTEGER PRIMARY KEY, Модель TEXT(30), Год вы-пуска TEXT(4), Цена CURRENCY); Сохранение запроса

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

ного меню MS Access.

Задание 4. Сохраните запрос под именем «Студенты_создание». После операции сохранения в Области перехода появляется имя сохра-

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

значки:

Управляющий запрос

Запрос на добав-ление записей

Запрос на обнов-ление записей

Запрос на уда-ление записей

Запрос на вы-борку

Закрытие и открытие окна запроса

Окно запроса, являющееся вкладкой области редактирования, закрыва-ется, как обычно, при щелчке на кнопке <X> в правом верхнем углу вкладки.

Задание 5. Закройте окно запроса. Для того, чтобы открыть окно запроса в режиме SQL, нужно:

1. Выделить имя запроса в Области перехода; 2. Вызвать контекстное меню и выбрать в нем команду «Конструктор».

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

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

13

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

Задание 6. 1. Откройте запрос «Студенты_создание» в режиме SQL.

2. Закройте окно запроса «Студенты_создание». 3. Создайте новую таблицу «Институты» следующей структуры, указывая при

этом на первичный ключ при определении полей: Поле Тип_ данных Ограничения

ИД_института длинное целое число первичный ключ Краткое_наимен символьная строка 7 символов, NOT NULL

Полное_наимен символьная строка 30 символов, NOT NULL Год_образования дата и время NOT NULL Размер_оплаты_обуч денежный NOT NULL

Контингент вещественное число NOT NULL

4. Выполните запрос. 5. Введите данные в таблицу «Институты» по трем институтам.

6. Сохраните запрос под именем «Институты_создание». Модификация таблицы Добавление нового поля

Для добавления поля используется инструкция ALTER TABLE ADD.

Синтаксис инструкции добавления нового поля:

ALTER TABLE <имя_таблицы> ADD <имя_поля> <тип_данных> [<ограничение_поля>….]

Задание 7.

1. Создайте новый управляющий запрос для изменения структуры таблицы «Студенты». Добавьте в таблицы «Студенты» новое поле «Гражданство_РФ»

логического типа. 2. Выполните запрос, убедитесь, что в таблице «Студенты» это поле появилось.

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

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

14

3. Введите в него данные. 4. Сохраните запрос под именем «Доб_гражд_студенты». Закройте окно запроса.

Удаление поля

Для удаления поля используется инструкция ALTER TABLE DROP.

Синтаксис инструкции удаления поля:

ALTER TABLE <имя_таблицы> DROP <имя_поля> <тип_данных>

Если удаляется несколько поле, то перечисление идет через запятую и

заключается в скобки.

Задание 8.

1. Создайте новый управляющий запрос для изменения структуры таблицы «Студенты». Удалите из таблицы поле «Телефон».

2. Выполните запрос. Откройте таблицу «Студенты» и убедитесь, что поле «Телефон» удалено из таблицы.

3. Сохраните запрос под именем «Удал_тел_студенты». Закройте окно запроса.

Изменение типа данных поля Для изменения типа данных поля используется оператор ALTER TABLE

ALTER COLUMN

Синтаксис инструкции изменения типа данных поля:

ALTER TABLE <имя_таблицы> ALTER COLUMN <имя_поля> <новый тип_данных> [<ограни-чение_поля> ….]

Задание 9. 1. Создайте новый управляющий запрос для изменения структуры таблицы

«Институты». Измените тип данных поля «Год образования» на целочислен-ный тип.

2. Выполните запрос. Откройте таблицу «Институты» в режиме конструктора и убедитесь, что тип данных поля «Год образования» изменился. 3. Сохраните запрос под именем «Изм_тип_год_образ_институты». Закройте

окно запроса. Создание индекса

Индекс – вспомогательная структура данных, служащая для повыше-

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

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

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

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

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

15

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

ходит это автоматически при создании первичного ключа. Задание 10. Откройте таблицу «Студенты» в режиме конструктора. По-

смотрите на свойства поля «ИД_студента». Убедитесь, что оно значится как индексированное поле.

Также целесообразно включать в индекс те поля, по которым чаще всего идет обработка данных при запросах. Например, поля «Фамилия», «Модель» и

пр. Создание индекса

Для создания индекса в SQL используется инструкция CREATE INDEX.

Синтаксис инструкции создания индекса таблицы

CREATE [UNIQUE] INDEX <имя_индекса> ON <имя_таблицы> (<имя_столбца>,...)

Например, при создании индекса с именем «Авто_индекс» в таблице

«Авто» можно включить в индекс поля «Ид_авто» и «Модель». Для этого нужно создать управляющий запрос:

CREATE INDEX Авто_индекс ON Авто (Ид_авто, Модель) Параметр UNIQUE запрещает появление повторяющихся значений в

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

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

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

Задание 11. Создайте управляющий запрос для создания индекса в таб-лице «Студенты». Сохраните запрос под именем «Созд_индекса_студенты».

Закройте окно запроса.

Удаление индекса Для создания индекса в SQL используется инструкция DROP INDEX.

Синтаксис инструкции создания индекса таблицы:

DROP INDEX <имя_индекса>

Задание 12. Создайте управляющий запрос для удаления индекса в таб-лице «Студенты». Сохраните запрос под именем «Удал_индекса_студенты».

Закройте окно запроса.

Обеспечение целостности данных Целостность базы данных (англ. database integrity) — соответствие

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

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

16

имеющейся в БД информации её внутренней логике, структуре и всем явно заданным правилам. Каждое правило, налагающее некоторое ограничение на

возможное состояние базы данных, называется ограничением целостности (англ. integrity constraint).

В теории баз данных различают несколько видов целостности данных, в

т.ч. таблиц, ссылок, полей, бизнес-логики. Обеспечение целостности таблиц

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

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

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

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

Для задания первичного ключа используется либо команда «Ключевое поле» в режиме конструктора таблиц, либо параметр PRIMARY KEY в ин-

струкции CREATE TABLE. Параметр PRIMARY KEY представляет собой ограничение целостности таблицы БД.

Первичный ключ уже создан Вами при создании управляющего запроса

CREATE TABLE с параметром PRIMARY KEY. При исполнении этого запро-са MS Access создает уникальный индекс по первичному ключу и это гаранти-

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

Ссылочная целостность (англ. referential integrity) — свойство БД не иметь в таблицах внешних ключей, ссылающихся на несуществующие записи.

Внешний ключ (англ. foreign key) это один или несколько полей табли-цы, значения которых должны совпадать со значениями первичного ключа

другой таблицы. Например, если есть две таблицы

Авто (ИД_авто INTEGER PRIMARY KEY, Модель TEXT(30), Год выпуска TEXT(4), Цена CURRENCY, ИД_автоцентр INTEGER) Автоцентры (ИД_автоцентр INTEGER PRIMARY KEY, Название TEXT(30), Адрес TEXT(40))

то внешним ключом в таблице «Авто» может быть поле «ИД_автоцентр» таб-

лицы «Автоцентры».

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

Синтаксис инструкции создания внешнего ключа:

FOREIGN KEY (<поле_внешний_ ключ> REFERENCES <ссылочная_таблица> (<ссылоч-

ное_поле>)

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

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

17

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

CREATE TABLE Авто (ИД_авто INTEGER PRIMARY KEY, Модель TEXT(30), Год вы-пуска TEXT(4), Цена CURRENCY, ИД_автоцентр INTEGER, FOREIGN KEY (ИД_автоцентр) REFERENCES Авто (ИД_автоцентр))

Если Вы хотите создать внешний ключ в уже имеющейся таблице, то нужно:

1. Создать новый управляющий запрос по модификации структуры таблицы. 2. Ввести инструкцию по добавлению нового поля (см. предыдущий раздел) с

ограничением: новое поле объявляется внешним ключом (см. синтаксис при-веденный выше).

3. Выполнить запрос. В дальнейшем наложенное ссылочное ограничение не позволит Вам вве-

сти данные в таблицу, не соответствующие значениям ссылочного поля в ссы-лочной таблице. В нашем примере: Вы не сможете ввести данные в поле «ИД_ автоцентр» таблицы «Авто», не соответствующие значениям поля «ИД_

автоцентр» таблицы «Автоцентры».

Задание 13. 1. Создайте управляющий запрос по модификации таблицы «Студенты»: со-

здайте новое поле «ИД_института» с типом INTEGER и ограничением FOREIGN KEY для связи с одноименным полем таблицы «Институты».

2. Выполните запрос. Откройте таблицу «Студенты» и введите данные в новое поле «Ид_института» с учетом данных, хранящихся в одноименном поле таб-

лицы «Институты». 3. Закройте таблицу «Студенты».

4. Закройте запрос, сохраняя его под именем «Добавл_Ид_институт_Студенты» . 5. Откройте таблицу «Студенты», введите а поле «Ид_института» цифру, пре-

вышающую по значению идентификатор последнего по счету института в таб-лице «Институты», например, 5. Убедитесь, что MS Access не позволяет Вам

сделать это.

Обеспечение целостности полей Целостность полей гарантирует, что все значения некоторого поля при-

надлежат множеству допустимых значений (домену). Частично ограничения поля вводятся при создании таблиц (инструкция CREATE TABLE) или добав-лении в имеющиеся таблицы нового поля (инструкция ALTER TABLE ADD) в

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

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

пустимых значений (NOT NULL), что Вами было сделано при создании таблиц.

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

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

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

18

определения доменов. Домен (поле) - множество атомарных значений одного и того же типа. Первый состоит в использовании предложения CHECK, позво-

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

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

Обеспечение бизнес-целостности Бизнес-целостность гарантирует, что при работе с базой данных выпол-

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

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

и используется для обработки строк и возврата результатов. Триггер - это хранимая процедура особого типа, которую пользователь

не вызывает непосредственно, а исполнение которой обусловлено операцией модификации данных: добавлением (INSERT), удалением (DELETE) строки в

заданной таблице или изменением (UPDATE) данных в поле. Вопросы создания хранимых процедур и триггеров рассматриваются

позже.

Работа с записями таблицы

Для работы с записями таблицы используется язык манипулирования данными язык DML (Data Manipulation Language), позволяющий выполнять

действия с данными внутри объектов. Основными инструкциями являются: INSERT, UPDATE, DELETE.

Добавление записей

Добавить новую запись в таблицу используют оператор INSERT.

Синтаксис инструкции добавления новой записи в таблицу:

INSERT INTO <имя_таблицы> [(<имя_поля>)] VALUES (<’значение поля1’>, <’значение по-ля2’>, …)

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

ром. В этом случае должны быть указаны значения для всех полей таблицы в том порядке, как эти столбцы были перечислены в команде CREATE TABLE,

например:

INSERT INTO Институты VALUES (3, ‘ИЭУ’, ‘Институт экономики управления’,

2002, ‘35,6’, 900)

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

вводятся в кавычках.

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

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

19

Работа с записями таблицы на языке SQL не требует создания управля-ющих запросов. Поэтому при создании запросов, направленных на записи, не

щелкайте кнопку «Управление» на вкладке меню «Конструктор». Задание 14.

1. Создайте новый запрос для ввода новой записи в таблицу. «Студенты». Убедитесь, что новая запись добавлена в таблицу «Студенты».

2. Сохраните запрос под именем «Доб_записи_студенты».

Модификация записей Для модификации данных в таблице используют оператор UPDATE.

Синтаксис инструкции модификации записи в таблице:

UPDATE <имя_таблицы> SET <имя_поля>=<значение>,... [WHERE <условие>]

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

вие не задано, UPDATE применяется ко всем записям. Например,

UPDATE Институты SET Размер_оплаты_обучен='35,0’ Нужно помнить, что все значения, кроме данных целочисленного типа,

вводятся в кавычках.

Задание 15.

1. Создайте новый запрос для модификации записи в таблице «Институты»: измените значение поля «Размер_оплаты_обучен» для одного из институтов.

Убедитесь, что изменение произошло. 2. Сохраните запрос под именем «Изм_знач_поля_студенты».

В качестве условия в инструкции UPDATE используются логические выражения над константами и полями.

В логических выражениях используются операторы (табл. 2):

Таблица 2

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

> , < , >= , <= , = , <> ,

!= операторы сравнения, могут применяться не

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

("<" означает раньше, а ">" позже в алфавит-

ном порядке) и датам ("<" раньше и ">" позже в хронологическом порядке).

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

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

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

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

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

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

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

20

Задание 16. 1. Создайте новый запрос для модификации записи в таблице «Институты»:

измените значение поля «Размер_оплаты_обучен» в записи, где значение поля «Контингент» больше, чем 700. Убедитесь, что изменение произошло. 2. Сохраните запрос под именем «Изм_знач_поля_усл_студенты».

Удаление записей

Для удаления записей используется оператор DELETE.

Синтаксис инструкции удаления записи в таблице:

DELETE FROM <имя_таблицы> [ WHERE <условие> ]

Удаляются все записи, удовлетворяющие указанному условию. Если

ключевое слово WHERE и условие отсутствуют, из таблицы удаляются все запи-си. Например,

DELETE FROM Институты WHERE Размер_оплаты_обучен=’35,0’ Задание 17.

1. Создайте новый запрос для удаления записи в таблице «Студенты»: удалите записи по студентам, не имеющим гражданства РФ. Убедитесь, что удаление

произошло. 2. Сохраните запрос под именем «Удал_записи_студенты».

Удаление таблиц

Для удаления таблицы из базы данных используется инструкция DROP TABLE.

Синтаксис инструкции удаления таблицы:

DROP TABLE <имя_таблицы>

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

запросы в базе данных «БД_проба_sql» запросы на создание и модификацию таблиц и записей таблиц «Студенты» и «Институты».

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

давателем.

Контрольные вопросы 1. Дайте определение SQL

2. Охарактеризуйте подмножество языков SQL? 3. Что такое инструкция SQL? 4. Какие типы данных можно использовать для ввода текстовых данных?

5. Какие типы данных можно использовать для ввода целых и дробных чисел?

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

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

21

6. Дайте определения и приведите примеры следующих понятий SQL:

Инструкция

Предложение

Идентификатор

Выражение

Константа

7. Назовите операторы SQL для работы со структурой таблицы.

8. Приведите краткий синтаксис инструкции создания таблицы. 9. Приведите краткий синтаксис инструкции создания нового поля в таблице. 10.Как можно включить режим создания запроса для работы со структурой и

записями таблицы в MS Access? 11.Что такое целостность базы данных, какие виды целостности различают?

12.Дайте определение ограничения целостности. 13.Приведите пример ограничение целостности таблицы.

14.Приведите пример ограничения ссылочной целостности. 15.Что такое внешний ключ таблицы для чего он создается?

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

18.Что такой индекс и для чего он создается? 19.В чем отличие индекса от первичного ключа?

20.Приведите краткий синтаксис инструкции создания индекса таблицы. 21.Назовите оператор SQL для добавления записей в таблицу.

22.Приведите краткий синтаксис инструкции добавления новой записи в таблицу. 23.Назовите оператор SQL для удаления таблицы.

24.Какие подмножества языков использованы Вами при выполнении лабора-торного практикума?

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

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

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

ном-Пресс; КОРОНА принт, 2006. 4. http://www.citforum.ru/ - сервер центра информационных технологий.

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

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

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

22

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

БАЗЫ ДАННЫХ:

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

Практикум

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

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

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

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

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

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

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

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

23

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

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

24

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