ACCESS_2010-ч2
.pdf40
Исходя из форматов значений полей и требований языка 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 SТ>=600 AND SТ<=750
или
SELECT * FROM TUR WHERE SТ 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