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

Тема № 12.Работа с базой через монтторMySql и PhpMyAdmin

Цель работы: Изучение команд MySQL для хранения, выборки и обработки данных с использованием монитора MySQL и средств PhpMyAdmin.

Интернет ресурс http://www.php.ru/mysql/

Задание 1. Создать базу данных через командную строку

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

В последнем случае можно воспользоваться командным (пакетным) файлом Cmysql.bat, листинг которого приведен ниже (рис. 3.162).

CLS

rem Cmysql.bat Input in MySQL Запуск с любого диска

c:\Webservers\usr\local\mysql5\bin\mysql --user=root --character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets"

Рис. 3.162. Командный файл Cmysql.bat для запуска монитора MySQL.

После запуска Cmysql.bat появится приглашение в MySQL вида: mysql> (рис. 3.163):

Рис. 3.163. Окно монитора MySQL с приглашением mysql > для ввода команды при использовании Cmysql.bat.

Если после приглашения указать: create database <имя базы>;

, где <имя базы> - имя новой базы, а “;” – признак конца команды, то если имя такой базы отсутствует в справочнике баз MySQL и присутствует точка с запятой в конце команды, то система создаст новую базу.

Пусть, например, Вы указали в приглашении следующее:

mysql> create database books;

(создать базу с именем books (книги)) и нажали Enter (ответ показан ниже).

Рис. 3.164. Окно монитора MySQL после создания базы books.

Появление нового приглашения mysql> означает, что предыдущее действиe выполнено правильно. В скобках указывается время затрачиваемое на выполнение команды.

Если Вы не выйдете из монитора командой Quit, и запуститите утилиту PhpMyAdmin (указав в адресной строке: рис. 3.165), то реакция утилиты будет подобна, как это показано на рисунке 3.165.

Для правильной работы утилиты, окно монитора MySQL должно быть закрыто командой MySQL exit или Quit.

(выход из монитора MySQL).

Рис. 3.165 12.4. Окно утилиты PhpMyAdmin при неуспешном создании базы books.

Если монитор будет закрыт , то перевывод окна браузераприведет к стандартному окнуPhpMyAdmin (на рис. 3.166 – показана часть окна PhpMyAdmin и раскрыт список баз, использованных в СУБД MySQL в данный момент времени). Среди доступных баз данных также будет находиться и созданная база данных с именем books (если Вы раскроете список ).

Если возникает необходимость создать таблицы базы данных не используя средства PhpMyAdmin, то можно подготовить в любом текстовом редакторе SQL-код, показанный на рис. 3.169 (тема №12. Задание 2.) и использовать командный файл Hmysql.bat представленный на рис. 3.171, который используя содержимое файла Lab13_00.sql создает таблицы в базе данных автоматически.

Рис. 3.166. Окно браузера PhpMyAdmin после создания базы books.

Обратите внимание, что база данных не содержит таблиц.

Создать таблицы внутри базы можно непосредственно средствами PhpMyAdmin.

Однако цель, в данном задании, научиться работать с MySQL через ее монитор (через строку приглашение mysql> монитора MySQL).

Пусть например, Вы решили создать в базе таблицу с именемcustomers, атрибуты которой описываются следующими именами:

Customers (CustomerId, Name, Address, City) - Клиент

Каждому столбцу таблицы необходимо присвоить тип и другие характеристики, определяющие поведение создаваемого объекта как в СУБД, так и в реальном мире, фрагмент которого Вы описываете (моделируете) в таблицах (отношениях) базы данных.

Первый столбец в схеме модели CustomerId - это первичный ключ (m key), позволяющий однозначно отделять объекты, подлежащие хранению в базе данныъх друг от друга. Пусть это будет целое (int) беззнаковое (unsigned) число, которое должно присутствовать в каждой записи таблицы (not null). Учитывая, что значение должно быть уникально и автоматически формироваться системой MySQL, укажем для него характеристику - auto_increment.

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

Ниже (рис. 3.167) приведены характеристики столбцов таблицы.

Customers

( customerid int unsigned not null auto_increment primary key,

name char(50) not null,

address char(100) not null,

city char(30) not null)

Рис. 3.167. Состав таблицы Customers.

Создание таблицы производится с помощью SQL-команды

CREATE TABLE, которая указывается в строке монитора.

Рис. 3.168. Окно монитора Mysql c командами создании базы books и создания в ней таблицы с именем Customers.

Обратите внимание, что перед созданием таблицы CREATE TABLE CUSTOMERS база данных должна быть открыта командой USE BOOKS;.

Если посмотреть в PhpMyAdmin созданную базу и таблицу, то увидим

следующее описание (рис. 3.169 и рис. 3.170).

Рис. 3.169. Часть окна PhpMyAdmin c базой данных books.

Рис. 3.170. Часть окна PhpMyAdmin c описанием таблицы Customers базы данных books.

Посмотреть список таблиц в базе можно командой SHOW TABLES если вурнуться в окно монитора MySQL.

Рис. 3.171. Окно монитора с списком таблиц базы BOOKS.

.

Если возникает необходимость удалить созданную таблицу через монитор системы, то после приглашения mysql> необходимо указать команду DROUP TABLE CUSTOMERS; (удалить таблицу с именем CUSTOMERS).

Рис. 3.172. Окно монитора MySQL с командой удаления таблицы CUSTOMERS из базы BOOKS.

Задание 2. Создание таблиц базы данных через командную строку.

Существует более удобный способ создания баз данных и таблиц ее составляющих, если их описание вынесено в отдельный файл (Lab13_00.sql) с расширением *.SQL (рис. 3.174).

Пусть в базе данных BOOKS (см. задание 1, тема 12) решено хранить следующие таблицы. Т.е. схема базы представлена в виде нормализованных таблиц (рис. 3.171 12.12).

Customers (CustomerId, Name, Address, City) - Клиент

Оrders (ОrderId, CustomerId, Аmount, Date) - Заказ

Books (ISBN, Author, Title, Price) - Книга

Оrder_items (ОrderId, ISBN, Quantity ) - Покупка

Рис. 3.171. Схема базы данных books.

Ниже на рис. 3.174 12. 15 приведен код Lab13_00.sql (наберите его в любом редакторе или скопируйте его из этого файла) создания таблиц. Учтите, что база данных books в нашем примере уже должна быть создана, но в ней не должно быть таблиц и она должна быть открыта.

База данных должна быть открыта командой USE BOOKS:

Рис. 3.172. Окно монитора с использованием команды открытия базы данных с именем books.

Рис. 3.173 12.14. Окно PhpMyAdmin после создания базы books.

Выполните следующие действия:

  1. Укажите CMD команду в командной строке (рис. 3.176 12.17).

  2. В полученном Dos окне введите имя командника Hmysql.bat (рис. 12.19).

  3. Используя команду Exit завершите работу в Dos окне CMD.exe.

Листинг SQL-кода создания таблиц базы, указанных в файле Lab13_00.sql.

create table customers

( customerid int unsigned not null auto_increment primary key,

name char(50) not null,

address char(100) not null,

city char(30) not null

);

create table orders

( orderid int unsigned not null auto_increment primary key,

customerid int unsigned not null,

amount float(6,2),

date date not null

);

create table books

( isbn char(13) not null primary key,

author char(50),

title char(100),

price float(4,2)

);

create table order_items

( orderid int unsigned not null,

isbn char(13) not null,

quantity tinyint unsigned,

primary key (orderid, isbn)

);

Рис. 3.174. Листинг Lab13_00.sql создания схемы базы данных books.

Обратите внимание на расширение (.SQL) в имени программы Lab13_00.sql, использованное в данной лабораторной работе.

Листинг командного файла Hmysql.bat.

CLS

rem Hmysql.bat Запуск с любого места диска

c:\Webservers\usr\local\mysql5\bin\mysql -h localhost -u root -D books -p --character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets" < lab13_00.sql

Рис. 3.175. Состав BAT файла для работы с командной строки Hmysql.bat.

Символ < перед именем файла сценария lab13_00.sql для построения таблиц базы данных Books на рис. 3.175 обозначает операцию перенаправления для операционной системы. Монитор MySQL запустится из адреса:

c:\Webservers\usr\local\mysql5\bin\mysql.exe.

В качестве параметров запуска ему будет передана строка:

-h localhost -u root -D books –p.

Ключ –h используется для указания хоста, к которому надо подключиться (в нашем случае сервер Mysql находится на текущей машине).

Ключ –u указывает на имя пользователя, который подключается к серверу (в нашем случае сервер установлен на вашем собственном компьютере – поэтому имя его root, что обозначает привилигированного пользователя). Если Mysql используется на компьютере, администратором которого является кто-либо другой, применяйте имя пользователя выданное Вам администратором.

Ключ -D указвыает что будет проводится работа с базой данных books.

Ключ –p сообщает серверу о том, что Вы хотите соедениться с ним с использование пароля.

Строка

character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets"

необходима из-за того тем, что используется Денвер и путь к MySQL не указан в пути поиска машины.

Если Вы будете использовать командный файл Hmysql.bat. то прежде чем будут созданы таблицы базы данных (указанные в листинге 3.174) Вам необходимо ответить на вопрос следующего вида:

(см. рис. 3.179).

Рис. 3.176. Вызов командного процессора CMD.exe из командной строки файлового менеджера Total Commander.

Подтверждение команды на рис. 3.176 приведет к следующемуDos окну (рис. 3.177):

Рис. 3.177. Результат использования команды CMD.

Обратите внимание, что запуск CMD произведен из папки в которой находится командный файл HMYSQL.bat (рис. 3.175). Если в Dos приглашении указать имя этого файла (рис. 3.178), то его исполнение (Enter) приведет к созданию таблиц, указанных в сценарии файла lab13_00.sql (рис. 3.174).

Рис. 3.178. Уназание файла HMySQL.bat в Dos приглашении.

Если база данных с именем books открыта, то нажатие Enter в окне рис. 3.178 приведет к следующему окну Cmd.exe.

Рис. 3.179. Использование команды CMD и файла HMYSQL.bat в командной строке.

Правильное указание пароля приведет к следующему приглашению для ввода команды Dos (рис. 3.180) (создание таблиц будет выполнено).

Рис. 3.180. Окно Cmd.exe после исполнения сценария lab13_00.sql.

Выход из Cmd.exe возможен через команду

Рис. 3.181. Окно Cmd.exe после исполнения сценария lab13_00.sql.

Ниже (рис. 3.182) представлено окно PhpMyadmin с результатом работы HMYSQL.bat, т.е. с набором вновь созданных таблиц (рис. 3.183).

Рис. 3.182. Окно PhpMyadmin.

Если посмотреть (рис. 3.183) состав таблиц в базе данных, то Вы увидете именно перечень тех таблиц, которые указаны в файле lab13_00.sql (рис. 3.174).

Интересна таблица

Используя пиктограмму () проанализируйте ее состав (рис. 3.184).

Рис. 3.183. Окно PhpMyAdmin c составом таблиц базы BOOKS.

Рис. 3.184. Окно PhpMyAdmin c составом таблицы ORDER_ITEMS

базы BOOKS.

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

Использованный тип tinyint unsigned для столбца Quantity указывает, что значения в нем могут принимать значения от 0 до 255.

Если перейти в монитор MySQL, то набор следующих команд (рис. 3.185) дает состав таблиц интересующей нас базы данных.

Рис. 3.185. Окно монитора с составом таблиц базы BOOKS.

Отметьте что в базе BOOKS содержится одноименная таблица books.

Команда DESCRIBE дает возможность увидеть подробную информацию о конкретной таблице хранимой в базе.

Рис. 3.186. Окно монитора с описанием таблицы ORDER_ITEMS.

Примечание. Заметьте в одном и том же SQL-операторе нельзя одновременно применять строчные и прописные буквы.

Следующий пример показывает применение двух команд в одном приглашении.

Рис. 3.187. Окно монитора с информацией о текущем пользователе и текущей дате.