Практическая работа Работа с готовой таблицей Откройте базу данных Учебники odb
Скачать 0.84 Mb.
|
Практическая работа № 16-Access.Язык SQL (MicrosoftAccess) Язык SQL (StructuredQueryLanguage) – это специальный язык для управления данными. С его помощью можно полностью контролировать базу данных и выполнять все операции, посылая запросы (команды) в текстовом виде. Таким образом, например, можно управлять базой данных с удаленного компьютера. В этой работе вы познакомитесь с основными командами языка SQL: CREATE TABLE создать таблицу SELECT выбрать данные UPDATE изменить данные DELETE удалить данные DROP удалить таблицу Создайте новую пустую базу данных SQLbase.accdb. Создание и заполнение таблицСоздайте запрос в режиме конструктора и перейдите в режим SQL. Введите следующую команду для создания таблицы: INTEGER_NOT_NULL_PRIMARY_KEY,_[_Страна_]_VARCHAR(50)_NOT_NULL,_['>CREATE TABLE [Туры] ( [Код] INTEGER NOT NULL PRIMARY KEY, [Страна] VARCHAR(50) NOT NULL, [Транспорт] VARCHAR(20) NOT NULL, [Цена] MONEY NOT NULL ) В этой команде требуется создать таблицу (CREATE TABLE) c именем «Туры». В таблице должно быть 4 поля: Код – целое число (INTEGER), непустое (NOT NULL), первичный ключ таблицы (PRIMARY KEY) Страна – строка длиной до 50 символов, непустое Транспорт – строка длиной до 20 символов, непустое Цена – поле для хранения денежной суммы (MONEY) Названия таблиц и полей заключаются в квадратные скобки! Если эти названия состоят из одного слова, скобки можно не ставить: CREATE TABLE Туры ( Код INTEGER NOT NULL PRIMARY KEY, Страна VARCHAR(50) NOT NULL, Транспорт VARCHAR(20) NOT NULL, Цена MONEY NOT NULL) Выполните эту команду (вкладка Конструктор – Выполнить). Проверьте, что таблица действительно создана. Выполните команду для добавления в базу новой записи: INSERT INTO Туры VALUES (1, 'Финляндия', 'автобус', 1200) Эта команда вставляет (INSERT) в таблицу «Туры» одну запись. После ключевого слова VALUES в скобках перечислены через запятую значения полей в том порядке, в котором они задавались при создании таблицы. Символьные строки в значениях полей заключаются в апострофы или двойные кавычки! Выполните ещё одно добавление записи: INSERT INTO Туры VALUES (1, 'Норвегия', 'самолёт', 15000) Какая ошибка произошла? В чём её причина? Ответ: Не удалось внести изменения.Из-за повторяющихся значений в индексе. Исправьте ошибку и добавьте новую запись правильно. В ответе запишите SQL-запрос. Ответ: INSERT INTO Туры VALUES (2, 'Норвегия', 'самолёт', 15000) Аналогично добавьте в таблицу ещё несколько записей:
Выбор и сортировка данныхВыполните запрос на выборку данных: SELECT__Страна,_Цена_FROM__Туры'>SELECT__*_FROM__Туры_Посмотрите_на_результат._Этот_оператор_выберет_все_поля_(*)_всех_записей_из_таблицы_«_Туры_»._Вместо_*'>SELECT * FROM Туры Посмотрите на результат. Этот оператор выберет все поля (*) всех записей из таблицы «Туры». Вместо * можно указать через запятую список нужных полей: SELECT Страна, Цена FROM Туры Проверьте результат выполнения этого запроса. Чаще всего нужно выбрать только записи, удовлетворяющие некоторому условию отбора. Для этого используется ключевое слово WHERE, после которого стоит условие: SELECT * FROM Туры WHERE Страна = 'Норвегия' Проверьте работу этого оператора. Составьте запрос, который выбирает из таблицы «Туры» значения полей «Страна», «Транспорт» и «Цена» для всех автобусных туров: Ответ: SELECT Страна, Транспорт, Цена FROM Туры2 WHERE Транспорт = 'автобус' Составьте запрос, который выбирает из таблицы «Туры» значения всех полей для туров c ценой меньше 10000 руб: Ответ: SELECT Страна, Транспорт, Цена FROM Туры WHERE Цена < 10000 Для того, чтобы отсортировать данные по некоторому полю, в запросе после ключевых слов ORDER BY (англ. «упорядочить по») указывают название этого поля: SELECT * FROM Туры ORDER BY Цена Проверьте работу этого запроса. Если в конце предыдущего запроса добавить слово DESC (англ. «descending» – нисходящий), сортировка выполняется в обратном порядке. Составьте запрос, который выбирает из таблицы «Туры» значения всех полей для туров c ценой больше 10000 руб. и сортирует результаты по убыванию цены: Ответ: SELECT Страна, Транспорт, Цена FROM Туры WHERE Цена > 10000 ORDER BY Цена DESC В запросах можно использовать стандартные функции. Например, функция MIN определяет минимальное значение заданного поля среди всех записей: SELECT MIN(Цена) FROM Туры Результат этого запроса – одно число. Составьте запрос, который находит минимальную цену для туров в Норвегию: Ответ: SELECT MIN(Цена) FROM Туры WHERE Страна = 'Норвегия' Результаты запросов можно использовать в других запросах – получается вложенный запрос. Например, запрос SELECT * FROM Туры WHERE Цена = (SELECT MIN(Цена) FROM Туры WHERE Страна = 'Норвегия') вернет данные о самом дешевом туре. Составьте запрос, который находит тур минимальной цены на самолёте: Ответ: SELECT Страна, Транспорт, Цена FROM Туры WHERE Цена = (SELECT MIN(Цена) FROM Туры WHERE Транспорт = 'самолет') Изменение и удаление данныхДля изменения записей используется оператор UPDATE. Запрос, приведенный ниже, увеличивает цены всех туров на 10%: UPDATE Туры SET Цена = Цена*1.1 Проверьте, что данные в таблице «Туры» действительно изменились. Запишите запрос, который вернёт цены в исходное состояние, и выполните его. Ответ: UPDATE Туры SET Цена = Цена(я не понял!) Авиакомпании в данный момент представляют скидку на билеты, так что цены всех туров на самолётах составляют 80% от исходных. Составьте и выполните соответствующий запрос. Ответ: UPDATE Туры SET Цена = Цена*0.8 WHERE Транспорт = 'самолет' Какая стоимость получилась у тура в Грецию? Ответ: 18 400,00 ₽ Скопируйте таблицу «Туры», назвав копию «Туры2». Удалите все туры в Германию с помощью запроса DELETE FROM Туры2 WHERE Страна = 'Германия' Проверьте, что данные в таблице «Туры2» действительно изменились. Удалите таблицу «Туры2», которая больше не нужна, с помощью запроса DROP TABLE Туры2 Проверьте, что таблица «Туры2» удалена из списка таблиц. |