Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ACCESS_2010-ч2

.pdf
Скачиваний:
93
Добавлен:
20.02.2016
Размер:
1.79 Mб
Скачать

40

Исходя из форматов значений полей и требований языка SQL к

описанию данных, опишем поля таблицы ТУР, как в табл. 1.3.

Таблица 1.3.

Описание полей таблицы TUR

 

 

Код

Код

Дата

 

Стоимость

 

 

 

фирмы

тура

начала тура

 

тура, у.е.

 

 

 

 

 

 

 

 

 

 

Имя поля

KF

KT

DNT

 

ST

 

 

 

 

 

 

 

 

 

 

Тип данных

Целые

Целые

Дата/время

 

Целые

 

 

 

числа

числа

 

 

числа

 

 

 

 

 

 

 

 

 

 

Размер поля

 

 

 

 

 

 

 

 

 

 

 

Ограничения на

Внешний

Обязательно

 

 

 

поле

ключ

для

 

 

 

 

 

 

 

заполнения

 

 

 

 

 

 

 

 

 

 

 

 

Задание 1.1. Создать в СУБД Access файл базы данных

в своей папке с

именем ТУРИЗМ.

Выполнение задания

Загрузите СУБД Access и выполните создание файла базы данных, как это вы уже делали.

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

Запрос на создание структуры таблицы на языке SQL реализуется с помощью команды CREATE TABLE. Ее усеченный формат:

41

CREATE TABLE <таблица1> (<поле1> <тип> [(<размер>)] [PRIMARY

KEY] [NOT NULL] [, <поле2> <тип> [(<размер>)] [NOT NULL] [, ...]] [,

CONSTRAINT <поле> FOREIGN KEY (<поле>) REFERENCES <таблица2>])

Комментарии к ключевым словам этой команды:

Ключевое слово

Комментарии

PRIMARY KEY

Определяет первичный ключ

NOT NULL

Значения поля обязательны для заполнения

CONSTRAINT

Используется для задания внешнего ключа

FOREIGN KEY

Определяет внешний ключ

REFERENCES

Определяет главную таблицу

Выполнение задания

Откройте окно Конструктора SQL-запроса: на вкладке Создание

нажмите кнопку [Конструктор запросов], закройте окно Добавление

таблицы, на вкладке Конструктор нажмите кнопку [Режим].

В результате появится окно Конструктора SQL-запроса вида, как на рис.

1.1.

Рис. 1.1. Вид окна Конструктора SQL-запроса

В нем можно формировать и редактировать запрос на языке SQL,

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

в этом окне наберите команду для создания структуры таблицы FIRMA:

42

CREATE TABLE FIRMA (KF INT PRIMARY KEY, NF CHAR(15) NOT NULL)

Эта команда сформирована с учетом формата команды CREATE TABLE

и описания полей таблицы FIRMA в табл. 1.2;

выполните запрос, нажав кнопку [Выполнить];

сохраните запрос с именем Создание_ФИРМА, закрыв окно SQL-запроса или выполнив команду Файл/Сохранить;

откройте таблицу FIRMA в режиме Конструктора – ее структура создана.

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

Выполнение задания

Откройте окно Конструктора SQL-запроса и выполните следующее:

в этом окне наберите команду для создания структуры таблицы ТUR:

CREATE TABLE TUR (KF INT, KT INT, DNT DATETIME, ST INT,

CONSTRAINT KF FOREIGN KEY (KF) REFERENCES FIRMA)

выполните запрос;

сохраните запрос с именем Создание_ТУР;

откройте таблицу TUR в режиме Конструктора – ее структура создана.

Убедитесь, что произведенное описание структур таблиц привело к созданию схемы данных БД ТУРИЗМ вида, как на рис. 1.2. Для этого на вкладке Работа с базами данных в группе Отношения нажмите кнопку

[Схема данных].

Рис. 1.2. Схема данных БД ТУРИЗМ

43

Задание 1.4. Используя SQL-команду, добавить в таблицу FIRMA записи с данными, представленными в табл. 1.4.

Таблица 1.4.

Данные таблицы FIRMA

KF NF

11 КРАЙ

21 ЮГ

32МИР

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

INSERT INTO <имя таблицы>[({<имя поля>},...)]

VALUES({<значение>},...)

Если имена полей не указаны, то значения записываются согласно порядку полей в команде CREATE TABLE.

Выполнение задания

Откройте окно Конструктора SQL-запроса и выполните следующее:

наберите команду для добавления в таблицу ФИРМА записи с данными из первой строки табл. 8.4:

INSERT INTO FIRMA VALUES (11, "КРАЙ")

выполните запрос. На вопрос о добавлении ответьте [Да];

сохраните запрос с именем СТРОКА1_FIRMA;

откройте таблицу FIRMA и убедитесь в наличии первой записи;

аналогично набирайте в окне Конструктора SQL-запроса команду для добавления записи с данными из второй строки табл. 8.4, выполняйте запрос, сохраняйте его с именем СТРОКА2_FIRMA и т.д.

 

 

 

 

 

44

Задание 1.5. Используя SQL-команду, добавить в

таблицу TUR записи с

данными, представленными в табл. 1.5.

 

 

 

 

 

 

 

 

 

 

Таблица 1.5.

 

 

Данные таблицы TUR

 

 

 

 

 

 

 

 

 

 

 

 

KF

KT

 

DNT

 

ST

 

 

 

 

 

 

 

 

 

 

11

401

 

30/06/2013

 

500

 

 

 

 

 

 

 

 

 

 

11

34

 

15/07/2013

 

700

 

 

 

 

 

 

 

 

 

 

21

98

 

08/08/2013

 

950

 

 

 

 

 

 

 

 

 

 

21

34

 

23/08/2013

 

740

 

 

 

 

 

 

 

 

 

 

21

105

 

10/09/2013

 

320

 

 

 

 

 

 

 

 

 

 

32

98

 

13/09/2013

 

1000

 

 

 

 

 

 

 

 

 

Выполнение задания

Откройте окно Конструктора SQL-запроса и выполните следующее:

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

INSERT INTO TUR VALUES (11, 401, #30/06/2013#, 500)

выполните запрос. На вопрос о добавлении ответьте [Да];

для добавления последующих записей корректируйте имеющуюся в окне Конструктора SQL-запроса команду INSERT – заменяйте в ней значения полей на значения полей соответствующей записи таблицы TUR и

выполняйте запрос;

сохраните SQL-запрос на добавление последней записи в таблицу TUR с

именем СТРОКА_TUR по команде Файл/Сохранить объект как.

1.3. Внесение изменений в базу данных

Задание 1.6. Используя SQL-команду, изменить в таблице TUR код тура 98

на 222.

Запрос на изменение значений полей таблицы реализуется с помощью команды UPDATE, имеющей следующий формат:

45

UPDATE <имя таблицы>

SET{<имя поля>=<выражение>},...

[WHERE <условие>]

Условие задается выражением типа сравнения или логическим выражением.

Если предложение WHERE отсутствует, то изменения выполняются во всех записях таблицы.

Выполнение задания

Откройте окно Конструктора SQL-запроса и выполните следующее:

наберите команду:

UPDATE TUR SET КТ =222 WHERE КТ=98

выполните запрос. На вопрос об обновлении записей ответьте [Да];

сохраните его с именем ОБНОВЛЕНИЕ;

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

Задание 1.7. Удалить с помощью SQL-команды из таблицы TUR запись о туре, начинающемся с 30.06.2013.

Запрос на удаление записей из таблицы формируется с помощью команды DELETE следующего формата:

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

Если предложение WHERE отсутствует, то удаляются все записи таблицы.

Выполнение задания

Откройте окно Конструктора SQL-запроса и выполните следующее:

наберите команду:

DELETE FROM TUR WHERE DNT=#30/06/2013#

выполните запрос. На вопрос об удалении ответьте [Да];

46

сохраните его с именем УДАЛЕНИЕ;

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

1.4.Выборка данных

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

SELECT. Будем использовать усеченный формат этой команды:

SELECT [ALL DISTINCT| DISTINCTROW | [TOP n [PERCENT]]] <список_полей> *

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

[ORDER BY {<имя_поля> [ASC] DESC},...] [GROUP BY {<имя_поля>},...]

Команда SELECT позволяет выводить все поля (*) или некоторые по указанному списку, в котором могут быть и вычисляемые поля, из (FROM)

одной или нескольких таблиц по некоторому условию (WHERE).

Можно выводить все значения полей (ALL) или только неповторяющиеся (DISTINCT). DISTINCTROW позволяет не отображать целиком повторяющиеся записи. Если не указаны эти ключевые слова, то выводятся все значения полей.

TOP n возвращает n записей, а TOP n PERCENT – n процентов записей, находящихся в начале диапазона, выбранного по условию.

Возможна сортировка записей (ORDER BY) по возрастанию (ASC)

или убыванию (DESC). Если не указан порядок сортировки, то назначается сортировка по возрастанию.

Возможна также группировка (GROUP BY) по некоторым полям и подведение итогов с помощью статистических функций.

Команда SELECT дает возможность выбора полей из таблиц, записей по условию; вычислений над полями БД, итоговых вычислений с

47

использованием статистических функций SUM, AVG, COUNT, MAX, MIN и др. Она позволяет также создавать вложенные запросы.

Задание 1.8. Просмотреть таблицу FIRMA, используя SQL-команду.

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM FIRMA

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

Откройте окно Конструктора SQL-запроса, наберите указанную команду SELECT, выполните запрос, сохраните его с именем ВЫБОРКА_1.

Задание 1.9. Выбрать для просмотра из таблицы TUR только поля КТ, SТ, используя SQL-команду.

Это задание реализуется с помощью следующей SQL-команды:

SELECT КТ, SТ FROM TUR

Данное и последующие задания выполняйте аналогично выполнению задания 1.8. Запросы сохраняйте в файлах с именами ВЫБОРКА_№, где № – это порядковый номер задания на выборку. Так, запрос к заданию 1.9 сохраните с именем ВЫБОРКА_2.

Задание 1.10. Выбрать для просмотра из таблицы TUR поля КТ, DNT, SТ. Записи рассортировать по возрастанию даты начала тура.

Это задание реализуется с помощью следующей SQL-команды:

SELECT КТ, DNT, SТ FROM TUR ORDER BY DNT

Задание 1.11. Выбрать для просмотра из таблицы FIRMA записи, относящиеся к фирме ЮГ.

48

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM FIRMA WHERE NF="ЮГ"

Задание 1.12. Выбрать для просмотра из таблицы TUR данные о турах со стоимостью менее 800 у.е.

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM TUR WHERE SТ < 800

Задание 1.13. Выбрать для просмотра из таблицы FIRMA данные о фирмах,

названия которых отличаются от ЮГ.

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM FIRMA WHERE NOT NF="ЮГ"

Задание 1.14. Выбрать для просмотра из таблицы TUR данные о турах с кодом 34 или 222.

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM TUR WHERE КТ =34 OR КТ=222

или:

SELECT * FROM TUR WHERE КТ IN(34,222)

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

а во втором – с помощью специального оператора IN.

Задание 1.15. Выбрать для просмотра из таблицы TUR данные о турах со стоимостью больше либо равно 600 у.е. и меньше либо равно 750 у.е.

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM TUR WHERE >=600 AND <=750

или

SELECT * FROM TUR WHERE BETWEEN 600 AND 750

49

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

AND, а во втором – с помощью специального оператора BETWEEN.

Задание 1.16. Выбрать для просмотра из таблицы FIRMA данные о фирмах с названиями, начинающимися с буквы К.

Это задание реализуется с помощью следующей SQL-команды:

SELECT * FROM FIRMA WHERE NF LIKE "К*"

Примечани е. Букву К наберите на русском регистре.

Задание 1.17. Рассчитать стоимость туров со скидкой 10% и вывести KT, ST

ирасчетную стоимость.

Это задание реализуется с помощью следующей SQL-команды:

SELECT KT, ST, (ST - 0.1*ST) FROM TUR

Задание 1.18. Подсчитать количество туров со стоимостью больше 900 у.е.

Это задание реализуется с помощью следующей SQL-команды:

SELECT COUNT(КТ) FROM TUR WHERE SТ >900

Задание 1.19. Рассчитать среднюю стоимость тура в каждой фирме.

Это задание реализуется с помощью следующей SQL-команды:

SELECT KF, AVG(ST) FROM TUR GROUP BY KF

Задание 1.20. Выбрать из таблиц FIRMA и TUR сведения о фирмах (NF) и

турах, организуемых ими (КТ и ST).

Это задание реализуется с помощью следующей SQL-команды:

SELECT NF, KT, ST FROM FIRMA, TUR WHERE FIRMA.KF=TUR.KF

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]