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