42329

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

Лабораторная работа

Информатика, кибернетика и программирование

Внесение изменений в базу данных Цель работы Изучить используемые в реляционных СУБД операторы изменения данных. Заполнить таблицы разрабатываемой базы данных тестовыми данными для последующего использования. Исходные данные Студент получает индивидуальный вариант исходных данных с кратким описанием предметной области который используется при выполнении всех лабораторных работ. Теоретические сведения В SQL имеется три оператора относящиеся к группе операторов DML Dt Mnipultion Lnguge которые предназначены для выполнения запросов...

Русский

2013-10-29

96 KB

17 чел.

10     

  1.  Лабораторная работа №6. Внесение изменений в базу данных
    1.  Цель работы

Изучить используемые в реляционных СУБД операторы изменения данных. Получить навыки работы с SQL-операторами INSERT, DELETE и UPDATE. Заполнить таблицы разрабатываемой базы данных тестовыми данными для последующего использования.

Время выполнения: 2 часа.

  1.   Исходные данные

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

  1.  Используемые программы

Все операции выполняются с помощью приложения "IBExpert". Отчет создается в редакторе "OpenOffice.pro".

  1.  Теоретические сведения

В SQL имеется три оператора, относящиеся к группе операторов DML (Data Manipulation Language), которые предназначены для выполнения запросов на добавление, удаление и обновление данных.

  1.  Добавление новых данных

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

Немного упрощенный синтаксис оператора INSERT имеет вид:

INSERT INTO Имя_Таблицы [(Колонка [, Колонка ])]

   {VALUES(<величина> [, <величина> …])

   | <оператор SELECT>};

<величина> = {:Переменная | <константа> | <выражение>

   |  <функция> | udf([<величина> [, <величина> ...]])


   | NULL | USER}

<константа> = Число | 'Строка'

<функция> = CAST(<величина> AS <тип данных>)

   | UPPER(<величина>)

   | GEN_ID(Имя_Генератора, <величина>)

<выражение> = SQL выражение, возвращающее единичное значение

В этом описании можно выделить два варианта оператора:

  1.  Вставка одной строки. Для этого после ключевого слова VALUES в круглых скобках указывают вставляемые величины.
  2.  Вставка в таблицу нескольких строк, выбранных с помощью оператора SELECT *.

В этой лабораторной работе рассматривается только первый вариант оператора INSERT.

Если не задан список столбцов (или вместо списка указан символ "*"), то значения вставляются в столбцы по порядку их следования, определенном при создании таблицы. Поскольку порядок столбцов может изменяться, то такая конструкция является потенциально опасной и ее лучше не применять. Если список столбцов задан на множестве всех доступных столбцов, то во все не перечисленные столбцы автоматически вставляется или значения по умолчанию, или NULL.

Если список столбцов опущен, предложение VALUES должно содержать значения для всех столбцов таблицы по порядку их следования.

Чтобы вставить одну строку данных, в SQL запросе должно присутствовать предложение VALUES, содержащее определенный список значений.

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

Пример, когда в качестве вставляемых величин применены константы:

INSERT INTO Person(Pr_ID, Pr_LastName, Pr_FirstName)

   VALUES(150, 'Иванов', 'Петр');

Пример использования для вставки значений переменных:

DECLARE Person_Number INTEGER; -- объявление

DECLARE LastName VARCHAR(30); -- локальных

DECLARE FirstName VARCHAR(30); -- переменных

BEGIN


  Person_Number = 150;

  LastName = 'Иванов';

  FirstName = 'Петр';

  INSERT INTO Person(Pr_ID, Pr_LastName, Pr_FirstName)

      VALUES(:Person_Number, :LastName, :FirstName);

END;

  1.  Удаление существующих данных

Для удаления строк из таблицы используется оператор DELETE. Вот его упрощенный синтаксис:

DELETE FROM Имя_Таблицы

  [WHERE <условие поиска>];

<условие поиска> = как в операторе SELECT

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

-- Удаление всех служащих:

DELETE FROM Employee;

-- Удаление всех людей с номерами 150 и больше:

DELETE FROM Person WHERE Pr_ID >= 150;

  1.  Обновление существующих данных

Оператор UPDATE обновляет значения одного или нескольких столбцов в выбранных строках одной таблицы. Строки для обновления указываются в предложении WHERE. Если пропустить предложение WHERE, то изменятся все строки таблицы.

UPDATE Имя_Таблицы

   SET Колонка = <величина> [,

           Колонка = <величина> ...]

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

<величина> = { Колонка | :Переменная | <константа>

  | <выражение> | <функция>

  | udf([<величина> [, <величина> ...]]) | NULL | USER}

<выражение> = SQL выражение, возвращающее единичное значение

<условие поиска> = как в операторе SELECT


Примеры:

-- Увеличить зарплату всем служащим на 10%:

UPDATE Employee

  SET Salary = 1.1*Salary;

/* Увеличить зарплату всем служащим, которые имеют зарплату меньше 10000 на 15%: */

UPDATE Employee

  SET Salary = 1.15*Salary;

  WHERE Salary <= 10000; 

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

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

  1.   Порядок выполнения работы

Лабораторную работу следует выполнять в следующем порядке:

  1.  Создать аналогично предыдущим лабораторным работам рабочую папку и назвать ее "ЛР6".
  2.  Открыть окно "Редактор скриптов" в приложении "IBExpert".
  3.  Используя кнопку   [Загрузить из файла] на панели инструментов, открыть диалоговое окно "Open SQL File" и с его помощью открыть файл сценария,  созданный при выполнении лабораторной работы №5.
  4.  Используя кнопку [Save as] на панели инструментов, сохранить загруженный сценарий в папке "sqledu02:\D:\Data\ЛР6".  
  5.  Изменить в сценарии путь до файла с базой данных, чтобы база данных создавалась в папке "ЛР6".   
  6.  Вызвать SQL-редактор приложения IBExpert (Инструменты > SQL редактор). Добавить в конец сценария для каждой имеющейся таблицы по три оператора, выполняющих операции INSERT, UPDATE и DELETE.
  7.  Выполнить сценарий и сохранить его в папке "ЛР6".
  8.  Зарегистрировать созданную базу данных в программе "IBExpert" и подключиться к ней.
  9.  Заполнить созданные ранее таблицы согласованными данными в диалоговом режиме программы "IBExpert". В каждой таблице должно быть не менее 10 строк (кроме справочников с ограниченным количеством данных).


  1.  С помощью SQL-редактора изменить содержимое любого поля всех записей, удовлетворяющих условию.
  2.  С помощью SQL-редактора удалить все записи, удовлетворяющие условию.
  3.  Создать в папке "ЛР6" резервную копию базы данных.
  4.  Создать и сохранить в папке "ЛР6" файл с отчетом о выполнении лабораторной работы №6, который должен называться "Отчет6-xx.odt", где xx — это номер варианта задания.
    1.  Варианты заданий

Вариант задания (Таблица 1) выбирается по формуле (N mod 24)+1, где N – последние две цифры зачетной книжки студента.

Таблица : Варианты заданий к лабораторной работе №6

№ варианта

Имя пользователя

Имя файла БД

Имя таблицы

Условие

1

TEAM001

SALARY.FDB

Рабочий

Цех ID

2

TEAM002

STUFF.FDB

Собрано

Количество

3

TEAM003

STUFFPLUS.FDB

Изделия

Стоимость_сборки

4

TEAM004

TELEPHONE.FDB

Разговоры

Дата

5

TEAM005

TOOLS.FDB

Поставщик

Город

6

TEAM006

EXAMIN.FDB

Студент

Фамилия

7

TEAM007

LIBRARY.FDB

Книга

Дата_поступления

8

TEAM008

AVIA.FDB

Рейс

Время_вылета

9

TEAM009

SHOP.FDB

Ассортимент

Наименование

10

TEAM010

HCOMMAND.FDB

Спортсмен

Забитых_голов

11

TEAM011

STUDENT.FDB

Студент

Общежитие

12

TEAM012

SERVIS.FDB

Исполнитель

Фамилия

13

TEAM013

REGION.FDB

Регион

Численность

14

TEAM014

OPTSHOP.FDB

Товар

Количество

15

TEAM015

OPTLEKI.FDB

Лекарства

Срок_годности

16

TEAM016

SPORTSMEN.FDB

Спортсмен

Классификация

17

TEAM017

DANCING.FDB

Танцор

Возрастная_группа

18

TEAM018

BIRTHDOM.FDB

Мать

Дата_выписки

19

TEAM019

TENNIS.FDB

Спортсмен

Возраст

20

TEAM020

CURSES.FDB

Расценки

Стоимость

21

TEAM021

TEACHER.FDB

Преподаватель

Ученое_звание

22

TEAM022

HOSPITAL.FDB

Больной

Выписан

23

TEAM023

SOLDAT.FDB

Призывник

Здоровье


24

TEAM024

YUSHOP.FDB

Изготовитель

Стаж

  1.   Ход работы 

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

  1.  Подключиться к базе данных.
  2.  Открыть окно с таблицей, в которую будет заноситься информация.
  3.  Перейти на вкладку "Данные" (Рис. 1). На этой вкладке располагается сетка со строками и столбцами, а также навигатор.

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

  1.  Ввести данные, используя для добавления строки клавишу [Insert] или кнопку Insert навигатора, а для удаления строки – клавиши [Ctrl+Delete] или кнопку Delete Навигатора.
  2.  После ввода данных для сохранения их в базе данных необходимо зафиксировать изменения кнопкой [Подтвердить транзакцию] (Ctrl+Alt+C). Чтобы отменить сделанные изменения, можно воспользоваться кнопкой [Откатить транзакцию] (Ctrl+Alt+R).

  1.  Отчет о выполнении работы

Отчет о выполнении лабораторной работы №6 необходимо оформить на листах формата A4. Для создания отчета следует использовать шаблон отчета для соответствующей лабораторной работы, который необходимо открыть с помощью приложения OpenOffice.


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

  1.  Цель работы.
  2.  Краткое описание предметной области в соответствии с вариантом.
  3.  Данные о версии СУБД, использованной в лабораторной работе.
  4.  Перечисление всех использованных при выполнении лабораторной работы команд главного меню приложения "IBExpert" с краткими пояснениями выполняемых действий.
  5.  Перечень файлов, полученных при выполнении лабораторной работы с указанием их имен, места расположения, даты изменения и размеров (сценарий, база данных, резервная копия базы данных, файл с отчетом).
  6.  Письменные ответы на контрольные вопросы.
  7.  Выводы.
  8.  Распечатку сценария создания базы данных с комментариями, которые должны содержать сведения об авторе, дате создания, всех выполняемых действиях и пояснения к выполняемым действиям.

 

  1.  Контрольные вопросы
  2.  Что такое DML?
  3.  Какие бывают разновидности оператора вставки новых данных?
  4.  Как удалить из таблицы сразу все строки?
  5.  Как удалить из таблицы только некоторые строки?
  6.  Как изменить все строки таблицы?
  7.  Как изменить только некоторые строки?
  8.  Написать синтаксис оператора вставки данных.
  9.  Написать синтаксис оператора удаления данных.
  10.  Написать синтаксис оператора обновления данных.
  11.  Привести примеры операторов INSERT, DELETE, UPDATE.
  12.  Как добавить данные в несколько таблиц?
  13.  Как удалить данные из нескольких таблиц?
  14.  Как изменить данные в нескольких таблицах?
  15.  Как запретить уменьшать значение какого-либо поля, но разрешить его увеличивать?
  16.  Как разрешить вносить изменения в базу данных только в определенные дни недели?
  17.  Как разрешить вносить изменения только определенным пользователям?


* Оператор SELECT изучается в следующей лабораторной работе.  

    ?


 

А также другие работы, которые могут Вас заинтересовать

52773. Мандрівка до країни Десяткових дробів 121 KB
  Виконуючи різні завдання ми з вами побуваємо в різних містах країни Десяткових дробів і успішно прийдемо в місто гарних оцінок. Щоб потрапити до міста Усної лічби треба відгадати загадку: На базарі їх не купити На дорозі не зайдеш Їх не зважиш на терезах І ціни не підбереш знання Подивіться які гарні квіти ростуть в цьому місті. Щоб потрапити до міста Кмітливих треба відновити запис: 35 5 04 0 4187...
52774. Десяткові дроби і дії над ними 2.75 MB
  Дробова частина містить стільки цифр скільки нулів в запису знаменника звичайного дробу. 02 = 020 = 0200 = 5400 = 54 125080 = 12508 00980 = 0098 З двох десяткових дробів більше та у якої більша ціла частина. 32 41 092 102 45 3947 Для порівняння двох дробів з однаковими цілими частинами необхідно за допомоги приписування нулів праворуч зрівняти кількість цифр в дробовій частині після чого порівняти отриманні дроби порозрядно. З двох десяткових дробів більше та у якої більша ціла частина 32 41 092 102...
52775. Подорож до країни дробів. Позакласний навчально-виховний захід 1.35 MB
  Мета: прищеплювати інтерес до математики; формувати навички роботи з додатковою літературою; поглиблювати знання про дроби та розвивати навички виконання дій зі звичайними дробами. Селище ІСТОРИЧНЕ Дроби в Древнем Египте Необходимость в дробных числах возникла в результате практической деятельности человека. Первые дроби с которыми нас знакомит история зто дроби вида ; ; так называемые единичные дроби. Эти дроби мы находим прежде всего в египетских папирусах около 2000 лет до н.
52776. МНОЖЕННЯ ДЕСЯТКОВИХ ДРОБІВ 380.5 KB
  А як це зробити Отже мета уроку навчитися виконувати множення десяткових дробів та застосовувати набуті знання на практиці. Пояснювати правила множення десяткових дробів краще на конкретних прикладах розглянувши різні випадки. Звертаю увагу учнів на той випадок коли в результаті множення вийшла відповідь яка закінчується нулем.
52777. Розв’язання вправ з теми: «Дроби і ділення. Мішані числа» 583.5 KB
  Завдання учням: стрілочками встановити відповідність між номером завдання і відповідями. Самоперевірка завдання за наданим зразком. А б в Учні самостійно виконують завдання в зошитах під час перевірки пояснюють виконання завдань 2 3 2.
52778. Звичайні дроби. Розв’язування вправ 330.5 KB
  Аукціон розпродажу перепусток Хто швидше порахує Кожне завдання оцінюється в 1 бал з врахуванням швидкості виконання; хто перший виконав завдання додатково до загальної суми балів додає 3 бали другий 2 бали третій 1 бал. Що означають чисельник і знаменник дробів 3 5 і 7 12 взаємоперевірка в парах оцінку виставляє опонент; кількість балів 2 2. Математика 5 клас розділ Дробові числа рубрика Хочеш знати ще більше хто перший згадаєкількість балів 3 Третя зупинка: Стародавній Рим. Підсумок уроку Підрахунок балів...
52779. Звичайні дроби 109.5 KB
  Обладнання: макет Замок вислови таблиці картки ключі. Перед вами мурований страшний на вигляд замок злої чаклунки Трінкокс жорстокість якої не мала меж. Пуск А от і замок. Поїхали А ось і замок.
52780. Додавання і віднімання десяткових дробів 45 KB
  Завдання Переведи звичайні дроби у десяткові та заповни таблицю. Кожній групі учнів учитель видає аркуш ватману кольорові маркери завдання записані на аркушах кольорового паперу. Суть методу Графіті: кожен учень виконує завдання свого кольору на ватмані та в зошиті. Коли всі учні однієї команди виконали свої завдання завдання мають різний рівень складності вони обмінюються ватманами з другою командою яка виконувала інший варіант перевіряють...
52781. Властивості додавання і віднімання десяткових дробів 1.02 MB
  Сума і різниця картки з завданнями для самостійної і естафетної роботи. Вона одержала завдання приготувати запитання і вправи для уроку. Дівчинка виконала його але вранці йдучи до школи була не уважною читала бігборди то ворон рахувала і загубила підготовлені завдання. Потрібно відірвати пелюстку прочитати завдання і виконати його.