trySQLЗубков. Практическая работа 18. Язык s ql (sqlite) Язык sql ( Structured Query
Скачать 97 Kb.
|
И нформатика, 11 класс К.Ю. Поляков, Е.А. Еремин Практическая работа № 18. Язык SQL (SQLite) Язык SQL (StructuredQueryLanguage) – это специальный язык для управления данными. С его помощью можно полностью контролировать базу данных и выполнять все операции, посылая запросы (команды) в текстовом виде. Таким образом, например, можно управлять базой данных с удаленного компьютера. В этой работе вы познакомитесь с основными командами языка SQL: CREATE TABLE создать таблицу INSERT добавить данные SELECT выбрать данные UPDATE изменить данные DELETE удалить данные DROP удалить таблицу Введите имя новой базы данных SQLbase.db. Просмотрите структуру базы данных (она должна быть пустая), щёлкнув по кнопке или выполнив SQL-запрос SELECT * FROM SQLITE_MASTER; Здесь SQLITE_MASTER – это название специальной таблицы, в которой хранится информация обо всех объектах базы данных SQLite (таблицах, индексах и т.п.). Если базы нет, движок SQLite создаёт ее в момент первого обращения. Создание и заполнение таблицВведите следующую команду для создания таблицы: 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) Выполните эту команду (клавиша F9). Проверьте, что таблица действительно создана. Выполните команду выборки данных из этой таблицы. SELECT * FROM Туры Этот оператор выберет все поля (*) всех записей из таблицы «Туры». Таблица должна быть пустой. Выполните команду для добавления в базу новой записи: INSERT INTO Туры VALUES (1, 'Финляндия', 'автобус', 1200) Эта команда вставляет (INSERT) в таблицу «Туры» одну запись. После ключевого слова VALUES в скобках перечислены через запятую значения полей в том порядке, в котором они задавались при создании таблицы. Символьные строки в значениях полей заключаются в апострофы или двойные кавычки! Выполните ещё одно добавление записи: INSERT INTO Туры VALUES (1, 'Норвегия', 'самолёт', 15000) Какая ошибка произошла? В чём её причина? Ответ: PRIMARY KEY must be unique – код совпадает с Финляндией Исправьте ошибку и добавьте новую запись правильно. В ответе запишите SQL-запрос. Ответ: INSERT INTO Туры VALUES (2, 'Норвегия', 'самолёт', 15000) Аналогично добавьте в таблицу ещё несколько записей:
Выбор и сортировка данныхВыполните запрос на выборку всех данных из таблицы Туры: SELECT__Страна,_Цена_FROM__Туры'>SELECT__*_FROM__Туры_Проверьте,_чтобы_в_таблицу_были_добавлены_все_нужные_записи.__Вместо_*'>SELECT * FROM Туры Проверьте, чтобы в таблицу были добавлены все нужные записи. Вместо * можно указать через запятую список нужных полей: SELECT Страна, Цена FROM Туры Проверьте результат выполнения этого запроса. Чаще всего нужно выбрать только записи, удовлетворяющие некоторому условию отбора. Для этого используется ключевое слово WHERE, после которого стоит условие: SELECT * FROM Туры WHERE Страна = 'Норвегия' Проверьте работу этого оператора. Составьте запрос, который выбирает из таблицы «Туры» значения полей «Страна», «Транспорт» и «Цена» для всех автобусных туров: Ответ: SELECT Страна, Транспорт, Цена FROM Туры WHERE Транспорт = 'автобус' Составьте запрос, который выбирает из таблицы «Туры» значения всех полей для туров c ценой меньше 10000 руб: Ответ: SELECT * FROM Туры WHERE Цена < '10000' Для того, чтобы отсортировать данные по некоторому полю, в запросе после ключевых слов ORDER BY (англ. «упорядочить по») указывают название этого поля: SELECT * FROM Туры ORDER BY Цена Проверьте работу этого запроса. Если в конце предыдущего запроса добавить слово DESC (англ. «descending» – нисходящий), сортировка выполняется в обратном порядке. Составьте запрос, который выбирает из таблицы «Туры» значения всех полей для туров c ценой больше 10000 руб. и сортирует результаты по убыванию цены: Ответ: В запросах можно использовать стандартные функции. Например, функция MIN определяет минимальное значение заданного поля среди всех записей: SELECT MIN(Цена) FROM Туры Результат этого запроса – одно число. Составьте запрос, который находит минимальную цену для туров в Норвегию: Ответ: Результаты запросов можно использовать в других запросах – получается вложенный запрос. Например, запрос SELECT * FROM Туры WHERE Цена = (SELECT MIN(Цена) FROM Туры WHERE Страна = 'Норвегия') вернет данные о самом дешевом туре. Составьте запрос, который находит тур минимальной цены на самолёте: Ответ: Изменение и удаление данныхДля изменения записей используется оператор UPDATE. Запрос, приведенный ниже, увеличивает цены всех туров на 10%: UPDATE Туры SET Цена = Цена*1.1 Проверьте, что данные в таблице «Туры» действительно изменились. Запишите запрос, который вернёт цены к исходным значениям, и выполните его: Ответ: Авиакомпании в данный момент представляют скидку на билеты, так что цены всех туров на самолётах составляют 80% от исходных. Составьте и выполните соответствующий запрос. Ответ: Какая стоимость получилась у тура в Грецию? Ответ: Создайте новую таблицу «Туры 2», имеющую точно такую же структуру, как и таблица «Туры». Запишите соответствующий запрос: Ответ: Просмотрите содержание таблицы «Туры 2». Какой запрос нужно ввести для этого? Ответ: Сколько записей вы обнаружили? Ответ: Скопируйте все данные из таблицы «Туры» в новую таблицу «Туры 2» INSERT INTO Туры2 SELECT * FROM Туры; Проверьте, что данные в таблице «Туры2» действительно появились. Удалите из таблицы «Туры2» все туры в Германию с помощью запроса DELETE FROM Туры2 WHERE Страна = 'Германия' Проверьте, что данные в таблице «Туры2» действительно изменились. Удалите таблицу «Туры2», которая больше не нужна, с помощью запроса DROP TABLE Туры2 Проверьте, что таблица «Туры2» удалена из списка таблиц. http://kpolyakov.spb.ru |