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 изучается в следующей лабораторной работе.  

    ?


 

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

21174. СТРУКТУРНАЯ СХЕМА КОНСТРУКТОРСКО-ТЕХНОЛОГИЧЕСКОГО ПРОЕКТИРОВАНИЯ ПЕЧАТНОЙ ПЛАТЫ 74 KB
  Выбор типа конструкции блока и варианта конструктивного исполнения модуля I уровня ячейки. Выбор компоновочной структуры ячеек ЭА. Выбор типа конструкции ПП. Выбор класса точности ПП.
21175. Тепловые воздействия на конструкции СВТ 175.5 KB
  Комплекс технических средств реализующих тот или иной способ отвода тепла от аппаратуры в окружающую среду назовем системой охлаждения. В зависимости от характера контакта теплоносителя с поверхностью источника тепла различают системы охлаждения прямого и косвенного действия. Воздушные жидкостные и испарительные системы охлаждения могут работать по разомкнутому и замкнутому циклу. В первом случае отработанный нагретый теплоноситель удаляется из системы и больше в ней не используется во втором случае отработанный теплоноситель охлаждается...
21176. Тест начального включения — POST 67.5 KB
  POST выполняет тестирование процессора памяти и системных средств вводавывода а также конфигурирование всех программноуправляемых аппаратных средств системной платы. Часть конфигурирования выполняется однозначно часть управляется джамперами системной платы но ряд параметров позволяет или даже требует конфигурирования по желанию пользователя. Однако для использования такой диагностики необходима вопервых сама платаиндикатор и вовторых словарь неисправностей таблица специфическая для версии BIOS и системной платы. Если не...
21177. ТЕХНОЛОГИЧЕСКАЯ ДОКУМЕНТАЦИЯ. ЕСТД. ТЕХНОЛОГИЧЕСКАЯ ПОДГОТОВКА ПРОИЗВОДСТВА (ТПП). ТЕХНОЛОГИЧНОСТЬ 37 KB
  ТЕХНОЛОГИЧНОСТЬ Состав и правила выполнения технологической документации определяется ГОСТ 3.1001 81 Единой системой технологической документации ЕСТД. Она представляет собой комплекс государственных стандартов и руководящих нормативных документов устанавливающих взаимосвязанные правила и положения по порядку разработки комплектации оформления и обращения технологической документации применяемой при изготовлении и ремонте изделий контроль испытания и перемещения. Основное назначение ЕСТД в установлении во всех организациях и на...
21178. Алгебраїчні доповнення. Обчислення детермінантів 341.5 KB
  Означення алгебраїчного доповнення елементу детермінанта. Такий детермінант називається алгебраїчним доповненням елемента даного детермінанта і позначається як : 6. Детермінант дорівнює сумі добутків елементів будьякого рядка детермінанта на їх алгебраїчні доповнення.3 Доведення: Додамо до кожного елементу mго рядка детермінанта 6.
21179. Ранг матриці. Елементарні перетворення матриці 204 KB
  Елементарні перетворення матриці. Визначення рангу матриці. Такий детермінант називається мінором матриці kго порядка.
21180. Системи лінійних алгебраїчних рівнянь загального виду. Теорія Кронекера-Капеллі. Метод Гаусса 237.5 KB
  Система називається сумісною якщо вона має хоча б один розв язок тобто хоча б один стовпець який перетворює рівняння 9.1 в тотожність і несумісною якщо вона не має розв язків. Система називається означеною якщо вона має один розв язок і неозначеною якщо вона має розв язків більше одного. Аналіз систем рівнянь повинен дати відповідь на два питання чи сумісна система тобто чи має вона розв язок і якщо сумісна то чи вона означена чи ні.
21181. Лінійні простори. Базис. Розмірність. Ізоморфізм просторів 366 KB
  Але наприклад множина додатніх чисел не утворює лінійного простору по відношенню до звичайних операцій додавання та множення бо в цьому разі нема протилежного числа воно повинно бути від€ємним а значить не буде належати цій множині. Але множина векторів з якої вилучені вектори колінеарні заданій прямій не утворює лінійного простору бо завжди можна знайти такі два вектори які в сумі дадуть вектор колінеарний цій прямій тобто сума не буде належати множині. 4 Множина матриць заданого розміру якщо додавання матриць та множення на...
21182. Перехід до нового базису. Орієнтація базиса. Скалярний добуток. Евклідовий простір 361.5 KB
  Орієнтація базиса. Перехід до нового базиса. Хай в пвимірному лінійному просторі вибрані два базиса: та .2 Таким же чином і кожний вектор базиса можна розкласти по базису : .