- •Базы данных Методические указания к выполнению лабораторных работ
- •Методические указания к выполнению лабораторных работ Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. Инсталляция MySql и создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Тема №2. Инструментальная среда phpmyadmin
- •5. Указания к выполнению работы
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •Тема №2. Создание пользователей базы данных
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •Лабораторная работа № 3 Программирование с использованием php и MySql
- •1. Цель работы
- •2. Основные сведения
- •3. Указания к выполнению работы
- •4. Содержание отчета
- •5. Примеры реализации тем Тема №1. Создание форм
- •Задание 1. Разработать html-форму с переключателями
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структуры switch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле. Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива. Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции. Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций. Lab8_0.Php
- •Задание 3. Возврат значений функцией. Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией. Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин. Lab8_3.Php
- •Задание 6. Рекурсивные функции . Lab8_4.Php
- •Задание 7. Функции-переменные. Lab8_5.Php
- •Задание 8. Построение библиотек функций. Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта. Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файле Lab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файле Lab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12. Работа с базой через монттор MySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данных select
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14. Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксиса php
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •191186, Санкт-Петербург, ул. Миллионная, 5
Задание 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.