Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическая работа_1 ER проектирование.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.91 Mб
Скачать

Практическая работа № 4 «Добавление данных в MySql»

Цель: отработать навыки добавления данных в таблицы базы данных в MySQL.

Задание:

1. Добавление данных с использованием однострочного оператора INSERT.

2. Добавление данных с использованием многострочного оператора INSERT.

3. Пакетная загрузка данных.

Задание на самостоятельную работу

4. Оформить отчет по практической работе и подготовиться к ее защите.

Содержание отчета

1. Тема, цель работы, задание

2. Описание выполняемых команд

3. Описание полученных результатов

Ход работы Пример выполнения задания.

4.1 Добавление данных с использованием однострочного оператора INSERT.

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

INSERT [IGNORE] [INTO] tbl [(col_name ...)] VALUES (expression,...)

Просмотр данных, помещенных в таблицу, осуществляется при помощи запроса SELECT * FROM <table_name>.

Добавить новую запись в таблицу Рабочие (working) можно при помощи запроса, представленного на рисунке 4.1. Строковые значения необходимо помещать в кавычки, в то время как числовые значения допускается использовать без них.

Рисунок 4.1 – Добавление новой записи в таблицу Рабочие (working)

Рисунок 4.2 – Результат добавления данных

Список столбцов col_name, размещенный после имени таблицы, позволяет изменить порядок следования столбцов при добавлении (рисунок 4.3, 4.4).

Рисунок 4.3 – Изменение порядка следования столбцов при добавлении

Рисунок 4.4 – Результат добавления данных

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

Рисунок 4.5 – Сообщение об ошибке повторяющегося значения первичного ключа

Если необходимо, чтобы новые записи с дублирующим ключом отбрасывались без генерации ошибки, необходимо добавить после оператора INSERT ключевое слово IGNORE (рисунок 4.6).

Рисунок 4.6 – Использование ключевого слова IGNORE

При добавлении новой записи с уникальными индексами выбор такого уникального значения может быть непростой задачей. Для того чтобы не осуществлять дополнительный запрос, направленный на выявление максимального значения первичного ключа для генерации нового уникального значения, в MySQL введен механизм его автоматической генерации. Для этого достаточно снабдить первичный ключ атрибутом AUTO_INCREMENT. Тогда при создании новой записи в качестве значения ключевого поля достаточно передать NULL или 0 – поле автоматически получит значение, равное максимальному значению столбца, плюс единица.

На рисунке 4.7 отображено добавление данных в таблицу Объекты (objects) где поле kod_obj является AUTO_INCREMENT

Рисунок 4.7 – Использование AUTO_INCREMENT при добавления данных

Еще одной формой оператора INSERT является синтаксис с ключевым словом SET: INSERT [IGNORE] [INTO] tbl SET col_name=expressin, ...

На рисунке 4.8 отображено использование альтернативной формы оператора INSERT

Рисунок 4.8 – Использование альтернативной формы оператора INSERT

4.2 Добавление данных с использованием многострочного оператора INSERT.

Многострочный оператор INSERT совпадает по форме с однострочным оператором. В нем используется ключевое слово VALUES, после которого добавляется не один, а несколько списков expression. Так, на рисунке 4.9 отображено добавление сразу пяти записей при помощи одного оператора INSERT.

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

Рисунок 4.9 – Использованием многострочного оператора INSERT

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

4.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

Поля в файле должны быть разделены символом табуляции. Тогда выполнение запроса (рисунок 4.10), приводит к заполнению таблицы objects строками из файла objects.txt (рисунок 4.11).

Рисунок 4.10 – Запрос на пакетное добавление данных

Рисунок 4.11 – Результат выполнения запроса на пакетное добавление данных