Главная страница

Анатолий Мотев СанктПетербург бхвпетербург 2006 удк 681 06 ббк 32. 973. 26018. 2 М85


Скачать 4.25 Mb.
НазваниеАнатолий Мотев СанктПетербург бхвпетербург 2006 удк 681 06 ббк 32. 973. 26018. 2 М85
Дата12.10.2022
Размер4.25 Mb.
Формат файлаpdf
Имя файлаuroki_mysql_samouchitel_3642745.pdf
ТипКнига
#730460
страница7 из 14
1   2   3   4   5   6   7   8   9   10   ...   14
Самой СУБД MySQL для инсталляции требуется около 100 Мбайт дискового пространства.

ÓÐÎÊ
4
Óñòàíîâêà MySQL
ïîä Windows
Дистрибутив MySQL вы можете загрузить из Интернета (http://www.mysql.com
/downloads/index.html или http://www.mysql.ru). Откройте браузер, перей- дите по указанному адресу и выберите рекомендованную версию MySQL —
MySQL x.x -- Production release (recommended)
(на момент написания кни- ги рекомендованной являлась MySQL версии 4.1).
Загрузите дистрибутив на свой жесткий диск в какой-нибудь каталог (пап- ку). После окончания загрузки в выбранном каталоге появится архив
MYSQL-X.X.X-WIN32.ZIP. Его нужно распаковать и запустить файл
SETUP.EXE. Откроется окно программы установки MySQL Servers and
Clients (рис. 4.1).
Нажмите кнопку Next > для продолжения установки.
На втором этапе необходимо выбрать тип установки (рис. 4.2). Выберите пе- реключатель Custom (выборочная установка) и нажмите кнопку Next >.
В следующем окне (рис. 4.3) нужно указать каталог для установки MySQL.
Для удобства использования установим MySQL в корневой каталог диска С:.
Нажмите кнопку Change и задайте C:\MYSQL\ в качестве каталога для уста- новки.
Чтобы перейти к следующему шагу установки, нажмите кнопку Next >.
В открывшемся окне (рис. 4.4) нажмите кнопку Install, чтобы начать процесс установки.
На следующем этапе (рис. 4.5) предлагается создать новую учетную запись на сайте MySQL.com. Мы не будем этого делать и выберем переключатель
Skip Sign-Up
(пропустить). Для продолжения установки нажмем кнопку
Next >
После окончания установки предлагается настроить MySQL Server (рис. 4.6).
Нажмите кнопку Finish.

×àñòü II. MySQL
62
Рис. 4.1. Установка, этап 1
Рис. 4.2. Установка, этап 2

Óðîê 4. Óñòàíîâêà MySQL ïîä Windows
63
Рис. 4.3. Установка, этап 3
Рис. 4.4. Установка, этап 4

×àñòü II. MySQL
64
Рис. 4.5. Установка, этап 5
Рис. 4.6. Установка, этап 6 (последний)

Óðîê 4. Óñòàíîâêà MySQL ïîä Windows
65
Программа сервера базы данных расположена на том компьютере, где хра- нится БД. Она получает запросы клиентов (программ, передающих запросы) через сеть и осуществляет доступ к содержимому БД, для предоставления запрошенной информации.
Итак, мы решили настроить сервер. Программа установки запустила мастер конфигурации (рис. 4.7). Для продолжения нажмите кнопку Next >.
Рис. 4.7. Настройка, этап 1
На втором этапе конфигурации (рис. 4.8) вам предложат выбрать один из двух типов конфигурации. Выберите переключатель Standard Configuration и нажмите кнопку Next > для продолжения настройки.
На следующем этапе (рис. 4.9) вы можете установить флажок Install As
Windows Service
, если хотите запускать сервер автоматически при загрузке
Windows. Нажмите кнопку Next > для продолжения.
Мастер конфигурации готов к внесению изменений (рис. 4.10). Нажмите кнопку Execute.
Конфигурация закончена (рис. 4.11), все настройки внесены в файл MY.INI.

×àñòü II. MySQL
66
Рис. 4.8. Настройка, этап 2
Рис. 4.9. Настройка, этап 3

Óðîê 4. Óñòàíîâêà MySQL ïîä Windows
67
Рис. 4.10. Настройка, этап 4
Рис. 4.11. Настройка, этап 5 (последний)

ÓÐÎÊ
5
Óòèëèòû MySQL
Теперь у вас установлена СУБД MySQL. Запустите Проводник Windows и откройте папку C:\MYSQL\BIN\ (рис. 5.1). Здесь вы найдете утилиты, неко- торые из них мы рассмотрим далее.
Утилита MYSQLD.EXE предназначена для запуска сервера MySQL. Запуск сервера — первое, что нужно сделать перед началом работы с БД.
Сделайте двойной щелчок на имени файла MYSQLD.EXE в окне bin
(рис. 5.1) — и сервер запущен. После этого можно использовать остальные утилиты.
Рис. 5.1. Утилиты в папке C:\MYSQL\BIN\

Óðîê 5. Óòèëèòû MySQL
69
Утилита MYSQLSHOW.EXE
при запуске без параметров выводит список баз данных, хранящихся на сервере. Если при запуске утилиты указать имя БД, то будет выведен список таблиц, имеющихся в этой БД. При указании имени конкретной таблицы выводится информация о ее структуре.
Формат запуска утилиты с параметрами: mysqlshow.exe [опции] [имя_БД [имя_таблицы]]
[ ] — условное обозначение того, что параметр не является обязательным.
Допустимые опции:
-hхост
,
-uпользователь
,
-pпароль
. Например: mysqlshow.exe –hlocalhost –uroot –p12345

ÓÐÎÊ
6
Èñïîëüçîâàíèå êîìàíäíîé ñòðîêè
äëÿ îáðàùåíèÿ ê ÁÄ
Для того чтобы увидеть, как работают описанные утилиты, перейдем в режим
DOS. Нажмите кнопку Пуск (Start) и выберите пункт Выполнить (Run).
В открывшемся окне введите команду cmd
(или command
) и нажмите кнопку
ОК. Введите cd \mysql\bin в командной строке открывшегося окна и нажми- те клавишу (рис. 6.1).
Рис. 6.1. Переход в каталог C:\MYSQL\BIN
Итак, давайте попробуем запустить утилиту MYSQLSHOW без указания ка- ких-либо параметров (рис. 6.2).
В MySQL есть две базы данных, имена которых вы видите в окне. База дан- ных test не содержит таблиц, поэтому для просмотра таблиц воспользуемся базой данных mysql
Введите в командной строке mysqlshow mysql
После запуска утилиты вы увидите список таблиц, имеющихся в БД
(рис. 6.3). Теперь можно просмотреть структуру любой из этих таблиц. Для этого введите в командной строке mysqlshow mysql func
(рис. 6.4).
Утилита MYSQL.EXE предназначена для запуска консоли (командной строки
MySQL). Введите в командной строке mysql и нажмите клавишу .

Óðîê 6. Èñïîëüçîâàíèå êîìàíäíîé ñòðîêè äëÿ îáðàùåíèÿ ê ÁÄ
71
Рис. 6.2. Результат запуска утилиты MYSQLSHOW без указания параметров
Рис. 6.3. Результат запуска утилиты MYSQLSHOW с указанием имени БД
Для просмотра команд, допустимых в консоли, введите в командной строке help
. Будет выведен список команд и их сокращенных вариантов (shortcut), начинающихся с обратного слэша (
\
) (рис. 6.5).
Каждая команда должна заканчиваться символом точки с запятой (
;
). Неко- торые команды выполняются и без этого символа (например, help
). Но если команда требует обязательного наличия точки с запятой, а вы ее не ввели и нажали клавишу , то система не выполнит команду, а будет ждать ввода символа ';'
(рис. 6.6).

×àñòü II. MySQL
72
Рис. 6.4. Результат запуска утилиты MYSQLSHOW с указанием имени таблицы
Рис. 6.5. Список всех команд MySQL
После того как вы введете ';'
, система выполнит команду. Команда show tables;
выведет список таблиц из БД mysql
, которую мы выбрали ранее с по- мощью команды use
(рис. 6.7).

Óðîê 6. Èñïîëüçîâàíèå êîìàíäíîé ñòðîêè äëÿ îáðàùåíèÿ ê ÁÄ
73
Рис. 6.6. Ожидание ввода ';'
Рис. 6.7. Выполнение команды
Для выхода из режима консоли MySQL введите в командной строке команду exit или quit
(рис. 6.8).
Рис. 6.8. Выход из режима консоли
Итак, продолжим рассмотрение утилит MySQL.
Утилита MYSQLADMIN.EXE предоставляет административные функции сервера. Полный список команд можно просмотреть, запустив утилиту без параметров.

×àñòü II. MySQL
74
Вот некоторые из них:
 create имя_БД
создать базу данных;
 drop имя_БД
— удалить базу данных;
 reload
— перезапустить сервер;
 shutdown
— окончание работы сервера;
 status
— информация о состоянии сервера.
Формат запуска утилиты с параметрами (опции те же, что и у
MYSQLSHOW.EXE): mysqladmin.exe [опции] [команды]
Утилита MYSQLDUMP.EXE предназначена для сохранения базы данных или ее таблицы (рис. 6.9). Формат запуска утилиты: mysqldump.exe [опции] [имя_БД [имя_таблицы]]
Рис. 6.9. Результат работы утилиты MYSQLDUMP (структура одной из таблиц)

Óðîê 6. Èñïîëüçîâàíèå êîìàíäíîé ñòðîêè äëÿ îáðàùåíèÿ ê ÁÄ
75
Здесь, кроме уже известных вам опций, можно упомянуть еще одну:
--add-drop-table
— добавляет в текстовый файл, содержащий структуру и данные БД, инструкцию для автоматического удаления существующей таб- лицы с этим же именем (
DROP TABLE IF EXISTS 'имя_таблицы'
).
Эта опция используется в ранних версиях MySQL, а в версии 4.1, установка которой рассмотрена в этой книге, данная инструкция добавляется автомати- чески.
Вы также можете перенаправить вывод в файл: введите в командной стро- ке mysqldump mysql>dump.txt и нажмите клавишу . В каталоге
C:\MYSQL\BIN будет создан файл DUMP.TXT, содержащий структуру и данные БД mysql
. Таким способом можно выполнять резервное копирование вашей базы.
Кроме этого данный файл можно перенести на другой компьютер для созда- ния на нем такой же БД (рис. 6.10). В этом случае после запуска сервера нуж- но выполнить следующие команды: mysqladmin create db_name (Создаем БД) mysql db_nameРис. 6.10. Создание БД
Напоминаю, что удалить БД можно с помощью команды drop
: mysqladmin drop db_name
Также вы можете создать БД, запустив команду create database db_name в режиме консоли (рис. 6.11).
Запустите режим консоли, введите команду create database и укажите имя
БД (например, mybase
). Поставьте точку с запятой (
;
) и нажмите клавишу
. Система создаст БД с указанным именем. После этого вы сможете просмотреть список баз данных, выполнив команду show databases;
. Для удаления БД введите команду drop database db_name;
(рис. 6.12).
Итак, теперь вы знаете, как создается база данных. Предлагаю вам создать БД library
, с которой мы и будем работать.

×àñòü II. MySQL
76
Рис. 6.11. Создание БД в режиме консоли MySQL
Рис. 6.12. Удаление БД

ЧАСТЬ
III
Ôîðìèðîâàíèå çàïðîñîâ ê ÁÄ.
ßçûê SQL
Óðîê 7.
Ñîçäàíèå è óäàëåíèå òàáëèö
Óðîê 8.
Èçìåíåíèå ñòðóêòóðû òàáëèöû
Óðîê 9.
Äîáàâëåíèå äàííûõ â òàáëèöó
Óðîê 10. Óäàëåíèå äàííûõ
Óðîê 11. Èçìåíåíèå äàííûõ
Óðîê 12. Âûáîðêà äàííûõ (îïåðàòîð SELECT)

Для чтения и записи в базах данных MySQL используется структурирован- ный язык запросов (Structured Query Language, SQL). С помощью SQL можно осуществлять ввод данных, их изменение, удаление, а также выборку. SQL является основополагающим инструментом, необходимым для взаимодейст- вия с MySQL и другими СУБД. Даже если для доступа к БД вы пользуетесь каким-то приложением или графическим интерфейсом пользователя (GUI), где-то "в глубине" это приложение генерирует SQL-команды.
Язык SQL "структурирован" в том отношении, что он придерживается опре- деленного набора правил. Он очень не похож на традиционные языки про- граммирования, такие как С++, Java, PHP или Perl, близок к "естественному языку". Пример SQL-запроса:
SELECT title FROM book WHERE year_issue=2003
Как видите, это напоминает фразу на ломаном английском: "Выбрать назва- ние из книг, где год выпуска равен 2003". У такого подхода есть как преиму- щества, так и недостатки.
Операторы языка SQL можно разбить на несколько групп:
Создание, удаление, изменение и выборка БД
Создание, удаление и изменение таблиц и индексов
Изменение данных в таблицах
CREATE DATABASE,
DROP DATABASE,
ALTER DATABASE, USE
CREATE TABLE, CREATE INDEX,
DROP TABLE, DROP INDEX,
ALTER TABLE
INSERT, DELETE,
UPDATE, LOAD DATA,
REPLACE
Выполнение транзакций
Просмотр информации о таблицах и БД
Администрирование Выборка данных из таблиц
BEGIN, COMMIT,
ROLLBACK,
SET AUTOCOMMIT
DESCRIBE (DESC), SHOW GRANT,
FLUSH,
REVOKE
SELECT,
UNION
Здесь приведены только операторы, поддерживаемые MySQL. Но следует заметить, что СУБД MySQL постоянно совершенствуется и с каждой новой версией в нее добавляются все новые и новые возможности.
Что касается чувствительности SQL-команд к регистру, то все зависит от час- ти этой команды и от ОС. Например, ключевые слова и имена функций не зависят от регистра и могут вводиться как угодно, а имена таблиц и баз дан- ных зависят от ОС, под управлением которой работает сервер (об этом мы уже говорили в части II). Имена полей и индексов не чувствительны к ре- гистру, а псевдонимы — чувствительны (псевдоним можно объявить в любом регистре, но в дальнейшем нужно обращаться к нему так, как он был объяв- лен). В этой книге я записывал ключевые слова и названия функций в верх- нем регистре, а все остальное (имена таблиц, полей и т. д.) — в нижнем.

ÓÐÎÊ
7
Ñîçäàíèå è óäàëåíèå òàáëèö
После создания общей структуры базы данных нам необходимо приступить к созданию таблиц. В этом уроке мы рассмотрим операторы языка SQL, позво- ляющие создавать и удалять таблицы.
Ñîçäàíèå òàáëèö
Создать таблицу можно с помощью оператора
CREATE TABLE
. Общий формат записи оператора
CREATE TABLE
:
CREATE TABLE имя_таблицы (описание_поля, ...)
Параметры: имя_таблицы
— имя создаваемой таблицы, описание_поля
— опи- сание поля таблицы. В MySQL 3.23 и более поздних версий в операторе
CREATE TABLE
можно использовать ключевые слова
IF NOT EXISTS
:
CREATE TABLE IF NOT EXISTS имя_таблицы (описание_поля, ...)
В этом случае не возникнет ошибка, если такая таблица уже существует. Но нужно учитывать, что идентичность структуры таблиц не проверяется. Во время создания таблицы можно установить ее тип (см. часть II), например:
CREATE TABLE mytable (...) TYPE=INNODB;
Если тип таблицы не задан, то сервер создает, как вы помните, таблицу типа
MyISAM
При описании поля указываются его имя, тип, а также дополнительные инст- рукции (если они нужны):

PRIMARY KEY
— данная инструкция говорит о том, что поле является пер- вичным ключом. Поле с такой инструкцией должно быть определено как
NOT NULL
. В таблице может быть только один первичный ключ. Если ключ

×àñòü III. Ôîðìèðîâàíèå çàïðîñîâ ê ÁÄ. ßçûê SQL
80 составной, то для каждого поля, входящего в составной ключ, не нужно указывать
PRIMARY KEY
(необходимо указать только
NOT NULL
), вместо это- го применяется синтаксис
PRIMARY KEY(имя_поля1,имя_поля2)
;

NULL
— поле с неопределенным значением (если не указывается ни
NULL
, ни
NOT NULL
, то поле интерпретируется так, как будто указано
NULL
);

NOT NULL
— непустое поле (при внесении записи в таблицу должно быть обязательно заполнено). Эта инструкция указывается для первичного ключа;
Инструкции NULL и NOT NULL не применяются к полям типа TIMESTAMP. При установке такого поля в значение NULL в него будут записаны текущие дата и время.

KEY
или
INDEX
— поле будет индексированным (в таких полях быстрее вы- полняются операции
SELECT
);

ZEROFILL
— эта инструкция добавляет к значению нули слева, чтобы его длина совпала с длиной поля. Например, если поле имеет тип smallint(5)
и вы заносите в него значение 1, то в результате получаете 00001;

UNSIGNED
— беззнаковое поле (для числовых типов);

AUTO_INCREMENT
— указывается для целочисленных полей. При записи ве- личины
NULL
(рекомендуется) или 0 в поле
AUTO_INCREMENT
получим значе- ние value+1
, где value представляет собой наибольшее для этого поля зна- чение в таблице на момент записи. Последовательность
AUTO_INCREMENT
начинается с 1. В таблице может быть только одно поле
AUTO_INCREMENT
, и оно должно быть индексировано. Кроме того, версия MySQL 3.23 будет правильно работать только с положительными величинами поля
AUTO_INCREMENT
. В случае внесения отрицательного числа оно интерпрети- руется как очень большое положительное число;

DEFAULT 'значение'
— значение по умолчанию. Величина
DEFAULT
должна быть константой, она не может быть функцией или выражением. Если для данного поля не задается никакой величины
DEFAULT
, то MySQL автомати- чески назначает ее. Если поле может принимать
NULL
как допустимую ве- личину, то по умолчанию ему присваивается значение
NULL
. Если поле объявлено как
NOT
NULL
, то значение по умолчанию зависит от типа поля:
• для числовых типов, за исключением объявленных с атрибутом
AUTO_INCREMENT
, значение по умолчанию равно 0. Для поля
AUTO_
INCREMENT
значением по умолчанию является следующее значение в по- следовательности для этого поля;

Óðîê 7. Ñîçäàíèå è óäàëåíèå òàáëèö
81
• для типов даты и времени, отличных от
TIMESTAMP
, значение по умолча- нию равно соответствующей нулевой величине для данного типа. Для первого поля
TIMESTAMP
в таблице значение по умолчанию представляет собой текущее значение даты и времени;
• для строковых типов, кроме
ENUM
, значением по умолчанию будет пус- тая строка. Для
ENUM
значение по умолчанию равно первой перечисляе- мой величине (если явно не задано другое значение по умолчанию с помощью директивы
DEFAULT
);

BINARY
— поле, чувствительное к регистру букв (для типов
CHAR
и
VARCHAR
);

UNIQUE
— поле с уникальными значениями. Если попытаться внести стро- ку, совпадающую с уже существующей строкой, то возникнет ошибка вы- полнения команды.
Ïîäðîáíåå îá èíäåêñèðîâàíèè
Есть множество методов оптимизации работы вашей системы, но самым эф- фективным остается индексирование. Индексирование таблиц позволит уменьшить время выполнения запросов. Рассмотрим неиндексированную таблицу (табл. 7.1).
Òàáëèöà 7.1. Íåèíäåêñèðîâàííàÿ òàáëèöà reader id_reader reader id_addr
12 Иванов
2 13 Петров
3 14 Васечкин
4 15 Смирнова
5 16 Дворников
6 17 Иванова
2 18 Мусин
7 19 Смирнов
5
Данная таблица не имеет индекса, поэтому при поиске читателей, живущих по определенному адресу, нужно будет проверить все строки на совпадение с нужным значением. Для этого потребуется просмотреть всю таблицу (она может быть в сотни раз больше), что займет значительное время. В табл. 7.2 представлена таблица индексов для поля id_addr таблицы reader

×àñòü III. Ôîðìèðîâàíèå çàïðîñîâ ê ÁÄ. ßçûê SQL
1   2   3   4   5   6   7   8   9   10   ...   14


написать администратору сайта