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

Задание 3. Вставка данных в базу данных

Каждая строка таблицы базы данных описывает какой-то реальный объект или отношение, а значения столбцов в этой строке хранят информацию о реальном объекте.

Вставка (добавление) строки в таблицу базы данных производится оператором INSERT.

Синтаксис оператора INSERT:

INSERT [INTO] table [(columnl, column2, column3, ...)] VALUES

(value1, value2, value3, . . .) ;

Например, чтобы вставить запись в таблицу Customers (Клиенты) базы данных BOOKS, можно набрать:

insert into customers values

(NULL, "Иван Иванов", "ул. Марата д.8, кв. 7", "С. Петербург");

Как видите, table заменяется реальным именем таблицы, в которую требуется внести данные, a values — необходимыми значениями. Значения в данном примере заключены в двойные кавычки. В MySQL строки в любом случае должны быть помещены в пару одинарных или двойных кавычек. Числа и даты в кавычках не нуждаются.

Если использовать командный файл CmySQL.bat (его содержимое см. на рис. 3.162) в командной строке ( рис. 3.188) Total Commander, то мы войдем в монитор MySQL (рис. 3.189).

Рис. 3.188. Вызов монитора MySQL с помощью CmySQL.bat.

Рис. 3.189. Приглашение на ввод команды в мониторе MySQL.

Указав, что нам необходимо работать с базой books (use books;), вводится команда INSERT с указанием имени таблицы и значениеми элементов вставляемой строки в таблицу.

Рис. 3.190. Использование команды вставки в мониторе MySQL.

Посмотреть введенные данные можно непосредственно из монитора, если использовать команду SELECT * FROM customers; (рис. 3.191).

Рис. 3.191. Использование команды SELECT (выбор) в мониторе MySQL.

Обратите внимание, что на рис. 3.190 столбцу customerid присвоено значение null, а в таблице на рис. 3.191 его значение равно единице. Т.е. система MySQL, анализируя описание таблицы customers находит в столбце customerid описатель auto_increment (см. рис. 3.174), что подразумевает автоматическое формирование значения этого поля – следующее по порядку число последовательности.

С оператором INSERT связано несколько интересных моментов.

Указанные значения в операторе INSERT into customers values

(NULL, "Иван Иванов", "ул. Марата д.8, кв. 7", "С. Петербург") будут использованы для того, чтобы заполнять столбцы таблицы по порядку указанному при создании таблицы. Если необходимо заполнить только отдельные столбцы, или если вы хотите сами указать их порядок — можно поместить список столбцов в ту часть оператора, которая относится к столбцам.

Например:

insert into customers (name, city) values

("Петр Петров", "Выборг");

Такой подход полезен, когда о какой-либо записи есть лишь частичная информация или если несколько полей записи необязательны. Аналогичного эффекта можно достичь, прибегнув к следующему синтаксису:

insert into customers

set name="Иван Иванов",address="ул. Победы",

city="Петербург";

Заметите, что, добавляя Петр Петров, столбец customerid просто игнорируется. Когда мы создавали базу данных поле customerid было объявлено первичным ключом для таблицы Customers и было обозначено как AUTOINCREMENT. Это значит, что если вставить строку с нулевым (Null) значением или без значения, MySQL сгенерирует следующее число в автоинкрементной последовательности и вставит его автоматически.

Если посмотреть содержимое таблицы Customers используя PhpMyadmin (указав в адресной строке браузера путь http://localhost/tools/phpmyadmin/), и состав таблицы будет как показан на рис. 3.192, то необходимо изменить кодировку (рис. 3.199) при работе в мониторе MySQL.

Рис. 3.192. Таблица при отсутствии команды SET NAMES cp866 при вставке из монитора.

Удалите введенную строку используя средства PhpMyAdmin (рис. 3.194).

Рис. 3.193. Пример использования пиктограммы - удалить для удаления записи из таблицы.

Рис. 3.194. Пример реакции оболочки PhpMyAdmin при нажатии .

Если запись будет удалена, то используя кнопку (рис. 3.195)

Рис. 3.195. Окно оболочки PhpMyAdmin после удаления единственной записи в таблице Customers.

добавьте запись (рис. 3.196)

Рис. 3.196. Вставка новой записи через PhpMyAdmin.

Результат вставки приведен на рис. 3.197.

Рис. 3.197. Результат вставки новой записи через PhpMyAdmin.

Если посмотреть таблицу (SELECT * FROM customers) после вставки через PhpMyAdmin в мониторе MySQL, то получим результат (рис. 3.198 12.39).

Рис. 3.198. Результат команды SELECT через монитор MySQL.

Чтобы привести результат к нормальному виду необходимо использовать в мониторе команду SET NAMES cp866 (Dos кодировка).

Результат использования команды приведен на рис. 3.199, на этом же рисунке указана команда выборки данных.

Рис. 3.199. Результат команды SET NAMES cp866 и SELECT, полученный через монитор MySQL.

Далее, если использовать команду INSERT into customers values

(NULL, "Иван Иванов", "ул. Марата д.8, кв. 7", "С. Петербург") в мониторе MySql, получим результат (рис. 3.200).

Рис. 3.200. Вставка второй записи в таблицу Customers через монитор MySQL.

Заметьте, что добавленная запись будет отображаться в PhpMyAdmin в необходимой нам кодировке (рис. 3.201).

Рис. 3.201. Состав таблицы Customers в окне PhpMyAdmin.

В таблицу можно также вставлять несколько строк сразу. Каждая строка должна быть заключена в скобки, разделенные запятыми.

insert into customers values

(NULL, "Петр Петров", "пр. Мира д.7", "Москва"),

(NULL, "Юлия Вонг", "ул. Шевченко д.1, кв 5", "Киев");

Например, вставка через монитор (рис. 3.202), указанных выше двух записей приведет к результату (рис. 3.203).

Рис. 3.202. Вставка двух записей в таблицу Customers через монитор.

Указание “;” в приглашении “->” и нажатие Enter даст результат.

Рис. 3.203. Состава таблицы Customers (Клиенты) в окне монитора Mysql.