
- •Практическая работа № 1 «Проектирование баз данных методом сущность-связь»
- •Ход работы Пример выполнения работы
- •Практическая работа № 2 «Создание базы данных и таблиц средствами MySql»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •Практическая работа № 3 «Модификация таблиц базы данных в MySql»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •Практическая работа № 4 «Использование индексов и обеспечение целостности данных в MySql»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •Практическая работа № 5 «Добавление данных в MySql»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •Практическая работа № 6 «Средства манипулирования данными в MySql с использованием операторов Replace, Update, Delete»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •Практическая работа № 7 «Простые выборки данных в MySql. Использование оператора where»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •Практическая работа № 8 «Простые выборки данных в MySql. Использование операторов group by, having, order by и логических операторов»
- •1. Тема, цель работы, задание
- •Ход работы Пример выполнения задания.
- •1. Тема, цель работы, задание
- •1. Тема, цель работы, задание
- •– Для таблицы (справочника) sprav_obj_type свойства Connection → adoConnection1, TableName → obj_type, Name → sprav_obj_type, Active → True;
- •Изменим в инспекторе объектов свойство Caption главной формы (Form1) на Стройка, а свойство Name → на Form_stroyka.
- •1. Тема, цель работы, задание
Практическая работа № 5 «Добавление данных в MySql»
Цель: отработать навыки добавления данных в таблицы базы данных в MySQL.
Задание:
1. Добавление данных с использованием однострочного оператора INSERT.
2. Добавление данных с использованием многострочного оператора INSERT.
3. Пакетная загрузка данных.
Задание на самостоятельную работу
4. Оформить отчет по практической работе и подготовиться к ее защите.
Содержание отчета
1. Тема, цель работы, задание
2. Описание выполняемых команд
3. Описание полученных результатов
Ход работы Пример выполнения задания.
5.1 Добавление данных с использованием однострочного оператора INSERT.
Однострочный оператор INSERT может использоваться в нескольких формах. Упрощенный синтаксис первой формы выглядит следующим образом:
INSERT [IGNORE] [INTO] tbl [(col_name ...)] VALUES (expression,...)
Просмотр данных, помещенных в таблицу, осуществляется при помощи запроса SELECT * FROM <table_name>.
Добавить новую запись в таблицу Рабочие (working) можно при помощи запроса, представленного на рисунке 5.1. Строковые значения необходимо помещать в кавычки, в то время как числовые значения допускается использовать без них.
Рисунок 5.1 – Добавление новой записи в таблицу Рабочие (working)
Рисунок 5.2 – Результат добавления данных
Список столбцов col_name, размещенный после имени таблицы, позволяет изменить порядок следования столбцов при добавлении (рисунок 5.3, 5.4).
Рисунок 5.3 – Изменение порядка следования столбцов при добавлении
Рисунок 5.4 – Результат добавления данных
Следует помнить, что первичный ключ таблицы является уникальным значением, и добавление уже существующего значения приведет к ошибке (рисунок 5.5).
Рисунок 5.5 – Сообщение об ошибке повторяющегося значения первичного ключа
Если необходимо, чтобы новые записи с дублирующим ключом отбрасывались без генерации ошибки, необходимо добавить после оператора INSERT ключевое слово IGNORE (рисунок 5.6).
Рисунок 5.6 – Использование ключевого слова IGNORE
При добавлении новой записи с уникальными индексами выбор такого уникального значения может быть непростой задачей. Для того чтобы не осуществлять дополнительный запрос, направленный на выявление максимального значения первичного ключа для генерации нового уникального значения, в MySQL введен механизм его автоматической генерации. Для этого достаточно снабдить первичный ключ атрибутом AUTO_INCREMENT. Тогда при создании новой записи в качестве значения ключевого поля достаточно передать NULL или 0 – поле автоматически получит значение, равное максимальному значению столбца, плюс единица.
На рисунке 5.7 отображено добавление данных в таблицу Объекты (objects) где поле kod_obj является AUTO_INCREMENT
Рисунок 5.7 – Использование AUTO_INCREMENT при добавления данных
Еще одной формой оператора INSERT является синтаксис с ключевым словом SET: INSERT [IGNORE] [INTO] tbl SET col_name=expressin, ...
На рисунке 5.8 отображено использование альтернативной формы оператора INSERT
Рисунок 5.8 – Использование альтернативной формы оператора INSERT
5.2 Добавление данных с использованием многострочного оператора INSERT.
Многострочный оператор INSERT совпадает по форме с однострочным оператором. В нем используется ключевое слово VALUES, после которого добавляется не один, а несколько списков expression. Так, на рисунке 5.9 отображено добавление сразу пяти записей при помощи одного оператора INSERT.
Так же как и в однострочной версии оператора INSERT, допускается использование ключевого слова IGNORE с целью игнорирования записей, которые имеют значения для уникальных индексов, совпадающие с одним из значений в таблице.
Рисунок 5.9 – Использованием многострочного оператора INSERT
Точно так же, как и в случае однострочного варианта, допускается изменять порядок и состав списка добавляемых значений.
5.3. Пакетная загрузка данных.
Для пакетной загрузки данных из текстового файла в таблицу в СУБД MySQL предназначен специальный оператор LOAD DATA. Данный оператор работает быстрее, чем оператор INSERT, т. к. СУБД не требуется дополнительного времени на анализ синтаксиса оператора. Оператор имеет следующий синтаксис:
LOAD DATA [LOCAL] INFILE 'filename' INTO TABLE tbl
Если задано необязательное ключевое слово LOCAL, то файл читается с клиентского хоста. Если же LOCAL не указывается, то файл должен находиться на сервере.
Пусть в каталоге D:\stroyka имеется текстовый файл objects.txt следующего содержания:
10 Здания ул. Марата 13
11 Жилье ул. Дарвина 15
12 Сооружение ул. Б.Садовая 88
Поля в файле должны быть разделены символом табуляции. Тогда выполнение запроса (рисунок 5.10), приводит к заполнению таблицы objects строками из файла objects.txt (рисунок 5.11).
Рисунок 5.10 – Запрос на пакетное добавление данных
Рисунок 5.11 – Результат выполнения запроса на пакетное добавление данных