Скачать 61.63 Kb.
|
Работа в mySQL Workbench 3. Заполнение базы данных, модификация данных На предыдущем этапе мы создали базу данных. Теперь будем ее заполнять данными. Подключимся к серверу, в секции щелкнем по ссылке Open Connection to Start Querying. В открывшемся окне нужно задать username и password, и нажать на кнопку «ОК». Мы подключились к MySQL server. В этом режиме работы рабочая область MySQL Workbench разделена на 3 окна:
Для заполнения базы данных в MySQL Workbench есть несколько возможностей. Рассмотрим три из них. 1-ый способ заполнения базы данных – используем команду INSERT Самый универсальный и гибкий способ создания данных состоит в использовании SQL-команды INSERT. Формат у нее такой: INSERT INTO ИмяТаблицы (СписокСтолбцовТаблицы) VALUES (СписокЗначений); Если в этой команде пропустить СписокСтолбцовТаблицы, то имеются в виду ВСЕ столбцы, и именно в таком порядке, в каком они были определены при создании таблицы. SQL-команды нужно набирать в окне SQL statement. Для выполнения команд нужно выбрать меню Query – Execute или кнопку на панели инструментов или нажать Ctrl+Enter. Можно набрать несколько команд и выполнить их все вместе, или выделить отдельную команду (как для копирования) и выполнить только ее. Текст SQL-команд, который также называют SQL-сценарием, можно (и нужно!) сохранять в файл. По умолчанию тип файла sql. Заполним таблицу Предприятия: # выберем базу данных USE kontora; # добавим строки INSERT INTO k_firm (firm_name, firm_addr) VALUES('Альфа', 'Москва'); INSERT INTO k_firm (firm_name, firm_addr) VALUES('Бета', 'Казань'); INSERT INTO k_firm (firm_name, firm_addr) VALUES('Гамма', 'Париж'); INSERT INTO k_firm (firm_name, firm_addr) VALUES('Дельта', 'Лондон'); INSERT INTO k_firm (firm_name, firm_addr) VALUES('Омега', 'Токио'); # посмотрим результат SELECT * FROM k_firm; Обратите внимание, что мы не задавали значения для столбца firm_num, поскольку этот столбец имеет свойство Auto increment, и сервер его заполняет сам, натуральными числами. Заполним Отдел INSERT INTO k_dept (dept_short_name, dept_full_name) VALUES('Sales', 'Отдел продаж'); INSERT INTO k_dept (dept_short_name, dept_full_name) VALUES('Mart', 'Отдел маркетинга'); INSERT INTO k_dept (dept_short_name, dept_full_name) VALUES('Cust', 'Отдел гарантийного обслуживания'); SELECT * FROM k_dept; Заполним таблицу Сотрудник. Обратите внимание, что в этой таблице можно указывать только такой номер отдела, который существует в таблице Отдел! (Оставить это поле пустым тоже можно.) INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post) VALUES('Иванов', 1, '1999-01-01', 'Менеджер'); INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post) VALUES('Петров', 2, '2010-10-13','Менеджер'); INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post) VALUES('Сидоров', 3, '2005-12-01','Менеджер'); INSERT INTO k_staff (staff_name, staff_hiredate, staff_post) VALUES('Семенов', '1990-01-01','Директор'); INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post) VALUES('Григорьев', 3, '2008-12-19','Программист'); SELECT * FROM k_staff; Что же будет, если указать несуществующий номер отдела? INSERT INTO k_staff (staff_name, K_dept_dept_num, staff_hiredate, staff_post) VALUES('Смит', 10, '2013-01-01','Консультант'); Будет получена следующая ошибка: Error code: 1452 Cannot add or update a child row: a foreign key constraint fails (`kontora`,`k_staff`, CONSTRAINT `fk_staff_k_dept` FOREIGN KEY (`k_dept_dept_num`) REFERENCES `k_dept` (`dept_num`) … Заполним таблицу Договор INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 1, 1,'2011-11-01'); INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('B', 1, 2,'2011-10-01'); INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('C', 1, 1,'2011-09-01'); INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 2, 2,'2011-11-15'); INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('B', 2, 2,'2011-08-01'); INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('C', 3, 1,'2011-07-15'); INSERT INTO k_contract (contract_type, k_firm_firm_num, k_staff_staff_num, contract_date) VALUES('A', 4, 1,'2011-11-12'); SELECT * FROM k_contract; Заполним таблицу Счет INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(1, '2011-11-12', '2011-12-12', 1000); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(1, '2011-12-12', '2012-01-12', 2000); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(1, '2012-01-12', '2012-02-12',2000); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(2, '2011-12-12', '2012-01-12', 6000); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(2, '2012-01-12', '2012-02-12', 2000); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(3, '2012-01-12', '2012-02-12', 2500); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(4, '2011-12-12', '2012-01-12', 1500); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(5, '2011-12-12', '2012-01-12', 1200); INSERT INTO k_bill (k_contract_contract_num, bill_date, bill_term, bill_sum) VALUES(5, '2012-01-12', '2012-02-12', 10000); SELECT * FROM k_bill; И остальные таблицы: SELECT * FROM k_payment; SELECT * FROM k_price; 'У' означает услугу, 'Т' – товар. SELECT * FROM k_protokol; Кроме команды добавления данных INSERT, есть полезные команды изменения данных UPDATE и удаления данных DELETE. Формат команды UPDATE: UPDATE [INTO] ИмяТаблицы SET ИмяСтолбца=НовоеЗначение [WHERE Условие]; Квадратные скобки означают необязательную часть команды. Если условия нет, то изменяются ВСЕ строки заданной таблицы. Применим эту команду на практике. Если вы обратили внимание, в таблице Отдел остался незаполненным столбец k_staff_staff_num, означающий номер сотрудника – руководителя отдела. UPDATE k_dept SET k_staff_staff_num=2 WHERE dept_short_name='Mart'; UPDATE k_dept SET k_staff_staff_num=3 WHERE dept_short_name='Cust'; UPDATE k_dept SET k_staff_staff_num=1 WHERE dept_short_name='Sales'; Результат: Формат команды DELETE: DELETE [FROM] имя_таблицы [WHERE условие]; Квадратные скобки означают необязательную часть команды. Если условия нет, то удаляются ВСЕ строки заданной таблицы. Пример: удаляем фирму с номером 5: DELETE FROM k_firm WHERE firm_num=5; Результат успешный. А что будет, если попробовать удалить фирму с номером 1? У этой фирмы есть подчиненные строки в таблице Договор. Ошибка: Error Code 1451 Cannot delete or update a parent row: a foreign key constraint fails (`kontora`, `k_contract`, CONSTRAINT `fk_contract_k_firm` FOREIGN KEY (`k_firm_firm_num`) REFERENCES `k_firm` (`firm_num`) … 2-ой способ заполнения базы данных – используем визуальные средства Чтобы заполнять базу данных с помощью визуальных средств, в окне сервера нужно дваждыщелкнуть по нужной таблице (или выполнить команду EDIT ИмяТаблицы). Откроется окно редактирования, в котором можно изменять и добавлять данные. Не забывайте сохранять изменения нажатием на кнопку «галочка»! Этот способ добавления данных очень легкий – проблема возникает только при необходимости переноса данных на другой компьютер. Простых путей для копирования данных нет. Можно использовать выгрузку в текстовые файлы. 3-ий способ заполнения базы данных – данные хранятся в EER-модели Без этого способа заполнения можно вполне обойтись, но для полноты картины расскажем о нем тоже. Для применения этого способа придётся вернуться на шаг назад и открыть EER-диаграмму. Как вы помните, если в диаграмме дваждыщелкнуть по имени таблицы, то открывается окно ее свойств: При разработке структуры таблицы мы использовали вкладку Columns. Теперь переключимся на вкладку Inserts и заполним данные в таблице. НомерФирмы можем не заполнять, у него есть свойство Auto Increment. Телефон мы тоже не заполнили, он необязательный. После заполнения данных не забудьте нажать на кнопку «галочка», чтобы сохранились изменения в модели. При использовании этого способа есть очень существенная проблема. При заполнении таблиц не проверяются никакие ограничения, ни на типы полей, ни на внешние ключи. Поэтому очень легко сделать ошибку. Этот режим работы похож на предыдущий способ заполнения базы данных, но у него есть очень важное отличие! Заполненные таким образом данные хранятся только в EER-модели, на стороне сервера их нет. Для того чтобы данные появились на стороне сервера, нужно заново выполнить генерацию базы данных из EER-модели, как во втором задании. При этом обязательно нужно отметить флажок Generate INSERT Statements for Tables: В этот момент проявят себя все ранее сделанные ошибки при вводе данных. Разумеется, при этом старая база данных удаляется, вместе со всеми ранее введенными данными. Задание. Заполните вашу базу данных. В каждой таблице создайте по несколько строк. Дополнительная информация. Подробнее о SQL-командах модификации данных можно почитать в [3, Глава 5], [1, Глава 2, параграф 2.4] . |
Инструкция по установке и работе с программой заполнение базы данных В настоящем документе представлена краткая инструкция пользователю по установке и работе с программой Заполнение базы данных студентов... |
Пояснительная записка Студент Организация данных. Sql дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между... |
||
Пояснительная записка Студент Организация данных. Sql дает пользователю возможность изменять структуру представления данных, а также устанавливать отношения между... |
Аис поз Установка. Обновление версии. Резервное копирование базы данных. Восстановление базы данных. 5 |
||
Лекция Язык sql 46 вставка одного запроса внутрь другого 68 как работает... Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами... |
Пер с англ. — М. Издательский Архитектура системы баз данных 65 Глава Введение в реляционные базы данных 92 |
||
Лабораторная работа №1: Создание баз данных В этой утилите можно выполнить типовые задачи обслуживания баз данных, такие как резервирование и восстановление. Здесь можно настраивать... |
Методические указания для выполнения лабораторных работ и «Базы данных» Лабораторная работа №1 «Организация хранения данных в субд ms access» |
||
Инструкция по конвертированию данных из формата seed в формат wsg (или css 0) Занесите параметры используемых станций в базу данных wsg. Для этого воспользуйтесь утилитой SetSta (SetStationParam) |
Инструкция по конвертированию данных из формата seed в формат wsg (или css 0) Занесите параметры используемых станций в базу данных wsg. Для этого воспользуйтесь утилитой SetSta (SetStationParam) |
||
Windows Банк Клиент Инструкция по переходу на версию 1 Для перехода на версию 1 с предыдущих версий системы Банк-Клиент нужно сначала выполнить установку новой версии с созданием пустой... |
Инструкция по обновлению фк цз Фк цз в администрирование, в авторизации набрать admin, пароль hcadmin. В главном меню выбрать «Операции» – «Резервное копирование... |
||
Для выполнения обновления программы самсон-виста необходимо: Необходимо... Необходимо скачать обновления базы данных в формате sql (*. sql) и обновление программы (*. exe) |
О защите персональных данных информационной системы персональных данных Оператор – Государственное учреждение – Новосибирское региональное отделение Фонда социального страхования Российской Федерации осуществляющее... |
||
Тема: Изучение языка Transact sql. Модификация данных Представление может с одной стороны упростить, а с другой ограничить доступ к данным. На данном занятии вы поймете все тонкости работы... |
Многокритериальный выбор оптимальной системы управления базы данных... Одной из главных проблем разработки приложения баз данных является выбор системы управления базами данных (далее субд). Выбранная... |
Поиск |