Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




CLS

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. Окно монитора с информацией о текущем пользователе и текущей дате.

 

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

 

Задание 4.Создание командных файлов и файлов сценариев для вставки данных в базу данных.

 

Прямой ввод информации через монитор достаточно трудоемкая работа, поэтому на практике используются сценарии ввода информации.

Ниже приводится листинг сценария lab13_02.sql (рис. 3.204), выполняющий действия по автоматизации вставки информации в базу данных.

Листинг сценария ввода данных.

Рис. 3.204. Листинг lab13_02.sql ввода данных в таблицу customers базы данных books.

 

Сценарий, показанный на рис. 3.204, можно запустить через MySQL следующим образом (если путь к системе указан в Pach Вашей машины):

> mysql -h localhost -u root –p < lab13_02.sql

 

Однако, при выполнении лабораторных работ в дисплейных классах университета, чаще всего, доступ к системным ресурсам ЭВМ закрыт паролем.

 

Поэтому приходится исполнять ряд вспомогательных действий:

1. Перейти в командный процессор Cmd.exe.

Запустить консоль: Пуск -> Выполнить -> "cmd".

 

2. Указать путь, где находится исполняемый модуль MySQL.exe.

Перейти в каталог c:\webservers\usr\local\Mysql5\bin\, используя команду OC смены директория: cd.

 

3. Указать параметры входа в Mysql и путь к сценарию Lab13_02Ins.sql.

 

Запустить клиент: mysql -u root –p набрав на клавиатуре строку:

c:\Webservers\usr\local\mysql5\bin\mysql -h localhost -u root -D books -p --character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets" < C:\WebServers\home\localhost\www\php\Lab13_02Ins.sql

 

Введенная информация в Dos окне имеет плохо читаемый вид:

 

 

4. После ввода указанной строки в шаге 3 и нажатия Enter, подтвердить пароль.

 

5. Правильный ввод пароля выведет следующую информацию на экран в виде как показано на рис. 3.205.

 

Рис. 3.205. Таблица customers базы данных BOOKS.

 

Обратите внимание, что вывод содержимого таблицы на рис. 3.205 осуществляется за счет команды , вставленной в Lab13_02Ins.SQL сценарий, представленный на рис. 3.204. Кроме того, использование команды , позволяет согласовать кодировку с PhpMyadmin.

На рис. 3.206 показано состояние таблицы customers базы данных books средствами PhpMyAdmin.

 

Рис. 3.206. Таблица customers базы данных books в PhpMyAdmin.

 

Сценарий показанный на рис. 3.204 можно поместить в пакетный файл Insmysql.bat, как показано на рис. 3.207. В этом же файле указываются все необходимые данные, которые ранее вводились в окне Cmd.exe. Набрать содержимое файла Insmysql.bat можно в любом текстовом редакторе.

Рис. 3.207. Состав пакетного файла Insmysql.bat.

Заметьте, что содержимое файла, например в Блокноте, будет представлено в виде одной строки (конец строки на рис. 3.208 не виден).

 

Рис. 3.208. Изображение пакетного файла Insmysql.bat в Блокноте.

 

Использовать командный файл Insmysql.bat можно, указав его в командной строке менеджера файлов (например, Total Commander рис. 3.209).

 

Рис. 3.209. Вызов пакетного файла Insmysql.bat.

 

Вызов пакетного файла Insmysql.bat приведет к окну (рис. 3.210), указав в котором пароль, получим сообщение о составе таблицы customers (рис. 3.211).

Рис. 3.210. Этап работы пакетного файла Insmysql.bat.

 

В файле Insmysql.bat (рис. 3.207) использована команда перенаправления , приказывающая вызвать на обработку файл сценарий

Обратите внимание на путь к файлу сценарию, он может у Вас отличаться от использованного в примере.

В файле сценария (рис. 3.204) использована команда

,

которая осуществляет выборку (и вывод на экран в данном случае) всей информации из таблицы customers (рис. 3.211).

Заметьте, что строка с номером 6 (рис. 3.211) соответствует строке с номером 5 на этом же рисунке.

Рис. 3.211. Результат работы пакетного файла Insmysql.bat.

 

Проанализировать информацию, показанную на рис. 3.211, достаточно трудно, т.к. она только промелькнет на экране и окно с ней закроется автоматически. Чтобы увидеть и проанализировать информацию можно воспользоваться средствами PhpMyAdmin или прочитать ее через монитор MySQL.

Однако, если модифицировать файл Insmysql.bat (рис. 3.207) и вставить в нем команду вывода результатов во внешний файл (рис. 3.212), то результат работы (рис. 3.211) становится доступен через любой редактор.

 

Рис. 3.212. Модификация пакетного файла Insmysql.bat.

 

Далее (рис. 3.218) будет показано, как следует модифицировать пакетный файл (рис. 3.212), чтобы имя файла являлось в нем формальным параметром.

 

Ниже приводится листинг сценария lab13_03.sql (рис. 3.215), выполняющий действия по вставке информации в базу данных, схема которой представлена на рис. 3.212 и для удобства продублирована ниже (рис. 3.214).

 

Для продолжения работы очистите таблицу Customers. Для этого перейдите в монитор MySQL (CmySql.bat) и выполните команды USE BOOKS и DELETE FROM customers (рис. 3.213).

 

Рис. 3.213. Использование команды Delete - чистки таблицы базы.

 

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

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

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

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

Рис. 3.214. Схема тестовой базы.

 

Листинг (lab13_03.sql) ввода данных в таблицы базы данных для схемы рис. 3.214.

use books;

SET NAMES cp1251;




Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 906; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.115 сек.