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

Практическая работа № 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 – Результат выполнения запроса на пакетное добавление данных