МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE ТЕМА 4 ПРАКТИЧЕСКОЕ ЗАНЯТИЕ 1. Цель: изучить язык манипулирования данными Data Manipulation Language (DML). Операторы языка манипулирования данными позволяют изменять содержимое базы данных. Для изучения данного языка необходимо предоставить пользователям права на изменение содержимого базы данных. Для достижения данной цели необходимо решить следующие задачи: изучить технологию переноса баз данных на серверах под управлением сервера баз данных MSSQL Server 2000. используя технологию восстановления баз данных, перенести данные из базы данных сессия в свою базу данных. В своей базе данных выполнить предлагаемые запросы на модификацию данных. Оглавление. Задание 1.....................................................................................................................................1 Задание 2. Перенести содержимое базы данных sessia во вновь созданную БД. ...............3 Задание 3.Восстановление содержимого базы данных .........................................................6 Задание 4. Изучение языка манипулирования данными DML. ...........................................9 Задание 1. Создать свою пустую базу данных. Имя вновь создаваемой базы данных должно подчиняться следующим правилам: <код преподавателя>_<номер по журналу> <код преподавателя> - это либо bnv – Богословская Наталья Валентиновна kts – Карпова Татьяна Сергеевна Не забудьте знак подчеркивания, который используется как разделитель в имени БД. Порядок создания: Установить курсор на папку Databases Выбрать из контекстного меню New database… и перейти в экран описания новой базы данных МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Нажимайте “OK” и мы создали новую БД с именем kts_15. При создании базы данных создаются 2 файла – один с расширением .MDF – это файл данных и файл c журналом транзакций с расширением .LDF Для переноса содержимого базы нам будет необходимо знать физическое расположение 2-х файлов, соответствующих вновь созданной БД – это файл с данными, для нашей базы он будет иметь имя kts_15_Data и файл с журналом транзакций, куда заносятся все операции над базой данных, для нашей базы это файл с именем kts_15_Log. Для этого после создания нужно установить курсор на Вашу БД, в контекстном меню выбрать «Свойства» и там выбрать последовательно сначала закладку Data Files, а потом Transaction Log и запомнить полный путь к вашим файлам МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Запишите, этот путь вам понадобится!!!!!!!!!!!!!! Задание 2. Перенести содержимое базы данных sessia во вновь созданную БД. Порядок выполнения. Получить Backup-копию БД sessia. Для получения резервной копии Вашей БД, необходимо выбрать в контекстном меню для выбранной БД все задачи /Backup Database МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Далее указать, что Вы будете создавать копию задать ей имя, нажать кнопку ADD . Выбрать место расположения файла копии БД Вам разрешено делать копии в специальной папке StudBackUp. Задайте имя файла, который будет содержать копию БД и нажимайте кнопку OK. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE В конце Ваших нажиманий Вы получите сообщение о том, что копия успешно создана. Теперь можете забрать эту копии домой и восстановить Вашу БД на вашем домашнем компьютере. А мы будем восстанавливать БД sessia на нашем институтском сервере в Вашей уже созданной БД. Поэтому Вы можете не делать новую backup-копию sessia, а взять из папки StudBackup файл с последней копией sessia_1006. Задание 3.Восстановление содержимого базы данных Порядок выполнения Установить курсор на ранее созданную БД , в нашем примере kts_15 Для этой базы выбрать в контекстном меню все задачи/ restore Database Выбрать способ from device Далее выбрать устройство (нажать на кнопку Select devices) МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Нажать «ОК» МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE нажать кнопку Add и выбрать файл где хранится копия БД после этого нажимайте кнопку OK , но не до конца, в самом конце Вам надо указать, что Вы восстанавливайте БД поверх существующей (force restore over existing database), для этого выберите закладку Options и поставьте галочку в соответствующем месте. МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Кроме того, во второй графе таблицы, которая называется Move to physical file name Вам необходимо в ручную записать путь к физическим файлам Вашей новой БД, которую Вы создали на Вашем домашнем компьютере. Вы должны были записать эти имена после выполнения задания 1. Теперь спокойно жмите на ОК. Задание 4. Изучение языка манипулирования данными DML. Язык DML содержит 3 оператора модификации данных, допустимые для реляционной базы данных. Оператор вода данных INSERT . Он имеет две модификации: ввод одной строки и ввод сразу множества строк. Формат оператора для ввода одной строки – следующий: МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Insert into <имя таблицы> [ (<список полей ввода>)] values (<список вводимых значений>). <список полей ввода > содержит имена полей (атрибутов) таблицы, разделенные запятыми, в которые будет вводиться очередная строка данных. <список значений> - содержит список вводимых значений, так же разделенных запятыми. Оба списка должны быть согласованы по порядку следования. Например Ввести в таблицу Groops новую группу 145 с кодом специальности 2201. При этом так же, как и во всех операторах языка SQL – символьные константы заключаются в одинарные кавычки. insert into Groops (kod_spec,N_groop)values (2201,'145') При выполнении данного оператора в среде MS SQL Server – вы получите сообщение: (1 row(s) affected) А как посмотреть появилась ли новая строка в таблице? Оператор ввода данных позволяет ввести сразу множество строк, если их можно выбрать из некоторой другой таблицы. Формат оператора вода для множества строк. Insert into <имя таблицы> Select <список столбцов> From <имя таблицы 2> <условия отбора строк> Пример INSERT INTO READER (NAME_READER, ADRESS, HOOM_PHONE, BIRTH_DAY) SELECT (NAME_STUDENT, ADRESS, HOOM_PHONE, BIRTH_DAY) FROM STUDENT Оператор удаления данных DELETE Оператор удаления данных позволяет удалить одну или несколько строк из таблицы в соответствии с условиями, которые задаются для удаляемых строк. Синтаксис оператора DELETE следующий: DELETE FROM имя_таблицы [WHERE условия_отбора] Если условия отбора не задаются, то из таблицы удаляются все строки, однако это не означает, что удаляется вся таблица. Исходная таблица остается, но она остается пустой, незаполненной Оператор обновления данных UPDATE МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE Оператор обновления данных позволяет изменить данные в одном или нескольких столбцах таблицы для одной или множества строк. Формат оператора UPDATE имя_таблицы SET {имя_столбца = новое_значение [,…]} [WHERE условие_отбора] Например, переход студента Иванова А.П. из одной группы в другую можно реализовать оператором обновления данных для поля группа в таблице студент, где строка соответствует как раз нашему Иванову А.П. Однако надо помнить, что если у нас первичным ключом таблицы является не ФИО студента, а номер его зачетной книжки, то для того, чтобы именно требуемый студент Иванов перешел в новую группу необходимо задать его однозначный идентификатор в системе, а именно номер зачетной книги, например “1008/05”. В этом случае оператор замены будет выглядеть следующим образом: UPDATE groops SET N_groop=4807 Where N_zach=“1008/05”. В своей новой базе с использованием операторов манипулирования данными в интерактивном трансляторе SQL, реализуйте пожалуйста следующие действия: (написать операторы манипулирования данными ) 1. Введите новую специальность с кодом 6400 и название «Финансы и кредит» 2. Добавить новую группу 122, которая бы училась по вновь введенной специальности 3. Зачислить в новую группу трех студентов со следующими параметрами: Номер зачетной Фамилия Имя Отчество книги 16/06 Иванов Иван Иванович 17/06 Петрова Мария Степановна 18/06 Кузнецов Андрей Степанович 4. Введите новый учебный план для новой специальности, который включает следующий перечень дисциплин: сети экономика информатика 5. Промоделируте сдачу экзаменов по сетям Ивановым на 5, Петровой на 4 и Кузнецовым на 2 По экономике Ивановым на 5, Петровой на 5 МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ INTERNATIONAL BANKING INSTITUTE По информатике Ивановым на 5 6. Выполните запросы на выбор 10,12, 13,14, 16,17,20,22 из практической работы 2 на вашей новой БД. Оцените результат и сделайте выводы! 7. Напишите оператор удаления (Delete) студентов, которые имеют 2 и более задолженности на текущий момент по сессии. 8. Предъявите все выполненные запросы преподавателю и получите ЗАЧЕТ по результатам работы. Вопросы для самопроверки 1. Можно ли одним оператором удаления (DELETE) удалить данные из нескольких таблиц? Если «Да», то приведите пример, если нет, то обоснуйте ответ. 2. Всегда ли выполним оператор ввода данных Insert? Если «Да», то обоснуйте, если «Нет», то приведите примеры, когда этот оператор не будет работать. 3. Можно ли одним оператором изменить данные сразу в нескольких или во всех строках таблицы? Если «Да», то приведите пример, если нет, то обоснуйте ответ. 4. Как можно проверить выполнение операторов манипулирования данными в Query Analyzer? 5. Можно ли не сохранять изменения, которые были выполнены операторами DML и восстановить исходное стояние БД? 6. Зачем перед выполнением операторов DML Вы копировали БД? Могли бы Вы провести все изменение в БД Sessia, так же как Вы выполняли запросы?