Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

metoda / Ml_ITIn_2013

.pdf
Скачиваний:
17
Добавлен:
16.03.2016
Размер:
6.66 Mб
Скачать

191

также будет находиться и созданная база данных с именем 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) - Клиент

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

192

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

Первый столбец в схеме модели 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).

193

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

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

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

194

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

.

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

CUSTOMERS).

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

CUSTOMERS из базы BOOKS.

195

Задание 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.

196

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.

197

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

-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):

198

Рис. 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).

199

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

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

(рис. 3.174).

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

Используя пиктограмму

(

) проанализируйте ее состав (рис.

3.184).

 

 

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

200

Рис. 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 дает возможность увидеть подробную

информацию о конкретной таблице хранимой в базе.

Соседние файлы в папке metoda