Статьи

Все, что вам нужно для начала работы с MySQL

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

С постоянным расширением веб-приложений и веб-сайтов, управляемых пользователями, становится необходим способ хранения данных в
организованная мода, которой можно извлекать и манипулировать на лету; то, что невозможно со статическим контентом.
Для этого необходимо использовать базу данных!
База данных в ее самой простой форме — это сбор данных организованным образом, независимо от того, использует ли она шкаф для хранения документов или компьютеризированную базу данных.
Интеграция базы данных в ваш веб-сайт или веб-приложение позволяет хранить и извлекать данные с помощью определенных команд.
В этой статье мы будем использовать пакет системы управления реляционной базой данных MySQL.
Это программное обеспечение с открытым исходным кодом, доступное под общедоступной лицензией GNU, что, конечно, делает его бесплатным!
Веб-сайт MySQL можно найти по адресу http://www.mysql.com/. Любое слово, которое вы видите подчеркнутым в этой статье, обозначает функцию MySQL, полную документацию по этим функциям можно найти на веб-сайте MySQL.

СОВЕТ: Для поиска функции на веб-сайте MySQL просто добавьте имя функции в URL MySQL. Например, http://www.mysql.com/SELECT этот пример будет искать для выбора.

Я подготовил модифицированную версию поискового буклета Google Джесси Рудермана для поиска документации по MySQL 5.1. Чтобы использовать это, просто выделите подчеркнутое слово, затем нажмите букмарклет, чтобы перейти к результатам поиска. Либо запустите букмарклет, где ничего не выделено, и появится окно с просьбой ввести то, что вы хотите найти.
букмарклет: > ПОИСК MySQL

Для того, чтобы хранить данные в базе данных, сначала необходимо создать базу данных. В этой базе данных может храниться много таблиц (представьте, что картотека хранит много файлов); каждая таблица должна иметь определенные столбцы, и эти столбцы создаются для хранения определенных данных (представьте форму ввода данных). Можно ограничить то, что можно вводить в них, например, числовые данные или ограничения символов.
Как только данные введены в базу данных, они будут сохранены в соответствующей таблице, затем таблица будет состоять из строк и столбцов, очень похожих на электронную таблицу, поскольку данные сохраняются и отображаются в виде таблицы. MySQL может управлять несколькими базами данных, которые могут содержать несколько таблиц. Уровни доступа могут предоставляться различным пользователям для предоставления или отмены определенных привилегий.
MySQL использует команды / функции на основе SQL (язык структурированных запросов). Это позволяет нам использовать ключевые слова, чтобы указать, какие данные мы хотим вернуть. MySQL затем реализует некоторые дополнительные функции для расширения доступных функций. Ключевые слова, как правило, легко понять и часто относятся к английскому слову или фразе (например, SELECT , UPDATE , WHERE ).

В этой части мы рассмотрим:

  • Установка MySQL на вашем локальном компьютере (Windows)
  • Настройка вашей локальной установки MySQL (windows)
  • Подключение к вашей локальной базе данных
  • Подключение к удаленной базе данных
  • Ввод и форматирование запросов
  • Форматирование и регистрация результатов
  • Резервное копирование базы данных
  • Восстановление базы данных

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

Сегодня мы будем использовать пакет Essentials, который доступен на веб-сайте MySQL по адресу http://dev.mysql.com/downloads/ .
На момент написания текущей стабильной версии является 5.1, и я буду обсуждать, как установить его в операционной системе Windows. Во-первых, найдите программное обеспечение, которое вам требуется, я буду использовать 64-битную версию Windows, но вы можете выбрать другое в зависимости от архитектуры вашей системы. Для этой статьи я решил использовать пакет базовых компонентов, поскольку он включает в себя все необходимые функции. Вы можете сравнить различия между версиями Windows по адресу http://dev.mysql.com/doc/refman/5.1/en/windows-choosing-package.html .

После того, как вы загрузили соответствующий установочный исполняемый файл, запустите его, и вам будет предложено в окне выше. Как видите, я устанавливаю версию 5.1.30. Нажмите Далее, чтобы перейти к следующему экрану.

Я выбрал типичную установку, однако не стесняйтесь выбирать, какие компоненты вы хотите установить. Вам понадобится сервер MySQL и файлы данных, если вы работаете на своем локальном компьютере; однако, если у вас есть удаленная база данных, которую вы хотите использовать, вы можете не устанавливать эти функции. Вам понадобится оболочка командной строки MySQL, так как это приложение, которое мы будем использовать. Опять же, если вы не используете локальную базу данных, вы можете пропустить утилиты командной строки и конфигурацию экземпляра сервера. Эта статья не охватывает использование C с MySQL, однако, если вы разрабатываете с использованием C, вы можете установить его. Нажмите Далее, чтобы перейти к следующему экрану.

Затем вам будет предложено подтвердить ваш выбор, нажмите «Установить», если вы счастливы, в противном случае нажмите «Назад», чтобы внести какие-либо изменения.

Начнется установка, в этот момент вы можете получить прерывание от антивируса или системы контроля учетных записей Windows Vista, в которой будет указано, что программа запрашивает установку или доступ к определенным файлам. Это будет подписано MySQL AB; это компания, которая работает и поддерживает MySQL, о которой вы можете прочитать на http://www.mysql.com/about/ .

После установки убедитесь, что у вас установлен флажок Настроить MySQL Server (если установлен) и нажмите Готово. Поздравляем, вы успешно установили MySQL Server / компоненты. Далее должен загрузиться мастер настройки экземпляра сервера MySQL. Однако, если он не запускается, не беспокойтесь, вы можете получить к нему доступ в папке программ MySQL (если она установлена).

Теперь мы собираемся настроить вашу установку (если вы установили сервер), нажмите Далее, чтобы перейти к следующему экрану.

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

Я выбрал это как машину разработчика; однако вы можете выбрать, какой вариант вы предпочитаете. Машина разработчика позволит использовать ее в полной мере, однако не позволит использовать слишком много ресурсов. Нажмите Далее, чтобы перейти к следующему экрану.

Поскольку эта установка предназначена для целей разработки, а не для конкретного проекта, я выбрал многофункциональную базу данных, которая позволяет использовать механизм хранения InnoDB и MyISAM. Вы можете прочитать больше о механизмах хранения на http://dev.mysql.com/doc/refman/5.1/en/storage-engines.html . Нажмите Далее, чтобы перейти к следующему экрану.

Теперь вы должны выбрать, где вы хотите хранить файл данных InnoDB, в зависимости от доступного пространства хранения, вы можете изменить это, если у вас есть больший объем или более быстрый доступный диск. Нажмите Далее, чтобы перейти к следующему экрану.

Теперь вы должны установить количество одновременных подключений, которые вы собираетесь подключить к вашей базе данных одновременно. Выбор DSS допускает до 100 соединений, но предполагает в среднем 20 одновременных соединений. OLTP допускает до 500 одновременных подключений. Однако для нашей машины разработчика мы часто собираемся установить только одно соединение; поэтому я установил ручную настройку на 5. Нажмите Далее, чтобы перейти к следующему экрану.

Теперь вам предоставляется возможность настроить параметры TCP / IP. Я снял флажок, чтобы отключить это. Отключение этого предотвращает удаленные подключения к базе данных. Затем вы можете установить режим сервера, я оставил этот флажок (вы можете узнать больше о режимах сервера подробно на http://dev.mysql.com/doc/refman/5.1/en/server-sql-mode.html ) , Нажмите Далее, чтобы перейти к следующему экрану.

Теперь нам нужно выбрать, какой набор символов / кодировку мы будем использовать. Я выбрал UTF8, поскольку он позволяет вводить разные языки (международные читатели). Нажмите Далее, чтобы перейти к следующему экрану.

Теперь вам нужно решить, хотите ли вы запускать сервер как сервис, вы можете настроить имя сервиса с помощью выпадающего списка. При установке MySQL как службы по умолчанию сервер будет запущен автоматически и перезапустится даже в случае сбоя. Я рекомендую использовать настройку выше. Вы также можете включить файлы MySQL Bin в путь Windows. Это позволяет нам вызывать MySQL напрямую из командной строки, я также рекомендую это сделать. Нажмите Далее, чтобы перейти к следующему экрану.

Теперь вы должны предоставить пароль для учетной записи root. Это «главная» учетная запись с полными привилегиями (имя пользователя учетной записи будет «root»); Я не рекомендую оставлять это поле пустым! Выбор разрешения доступа с корневых компьютеров по умолчанию снят; Я сохранил его таким образом, так как отключил настройки TCP / IP, но он также доказывает более высокий потенциал риска безопасности, если детали попадают в чужие руки. Я также отключил возможность включения анонимной учетной записи, поскольку эта база данных предназначена для личного использования. Нажмите Далее, чтобы перейти к следующему экрану.

Ваша установочная конфигурация готова к применению, нажмите «Выполнить», чтобы начать процесс.
Вы должны получить сообщение об успешной конфигурации. После завершения нажмите Готово, чтобы выйти из этого мастера. Вы успешно завершили настройку.
Если вы устанавливаете MySQL в другой операционной системе или хотите вернуться к официальной документации, ее можно найти по адресу http://dev.mysql.com/doc/refman/5.1/ru/install.html .

Теперь, когда у вас установлен сервер, мы можем подключиться к нему!

Я собираюсь использовать интерфейс командной строки Windows (интерфейс командной строки) для инициализации соединения, но вы можете использовать интерфейс командной строки MySQL, находящийся в папке программ MySQL.
Сначала откройте командную строку, открыв диалоговое окно «Выполнить» в меню «Пуск», затем введите CMD и нажмите [ENTER]; на котором вам будет отображено окно, похожее на окно ниже.

Первая команда, которую мы собираемся ввести, будет подключаться к серверу с помощью нашего имени пользователя и пароля.
Существует несколько способов подключения к серверу, каждый из которых выполняет одну и ту же задачу.
Команда подключения MySQL использует следующий синтаксис:

1
mysql [host] [port] [username] [password] [database]

Каждый из этих аргументов может быть передан команде mysql следующим образом:

  • —host = host или -hhost
  • —port = порт или -P
  • —username = имя пользователя или -uusername
  • —password = пароль или -ppassword
  • база данных задается просто в виде строки (например, имя_базы_данных)

Примечание. Если вы введете полную строку пароля, как это, она будет отображаться на экране, если вы предпочитаете, вы можете просто ввести команду -p или -password без пароля, который будет отображаться в подсказке для скрытого ввода пароля. Нам также не нужен терминатор команд, так как в данный момент мы набираем Windows CLI, а не MySQL.

Так как мы хотим подключиться к нашему локальному компьютеру, чтобы мы могли исключить аргумент хоста (см. Подключение к удаленному хосту далее в этой статье). Мы хотим войти в систему как наша корневая учетная запись, чтобы предоставить нам полные привилегии, поэтому нам понадобятся наше имя пользователя и пароль; поскольку в настоящее время у нас нет настроенных баз данных, мы также не будем предоставлять аргумент базы данных.
Я буду подключаться к учетной записи «root» на моем локальном компьютере с паролем «secret» с помощью следующей команды:

1
mysql -uroot -psecret

Это соединяется с MySQL, используя пользователя root с секретным паролем. Следующие команды достигнут того же результата.

1
mysql —username=root —password=secret
1
mysql -uroot —password=secret
1
mysql —username=root -psecret

Учетная запись пользователя root является основной учетной записью MySQL, которая была создана во время установки; это тот же пользователь, к которому вы должны подключиться. Тем не менее, обратите внимание, что не рекомендуется оставлять корневую учетную запись включенной при веб-установке, обратитесь к пользовательским учетным записям и привилегиям на веб-сайте MySQL для получения дополнительной информации. ( http://dev.mysql.com/doc/refman/5.1/en/adding-users.html )

(пропустите это, если вы подключаетесь к локальной базе данных). Чтобы подключиться к удаленной базе данных, часто предоставляемой хостинг-провайдером, вы должны знать IP-адрес или имя хоста вашей базы данных (и, возможно, номер порта, если он был установлен). изменено по умолчанию 3306). Вы бы подключились к нему так же, как к локальной базе данных, просто заменив аргументы хоста и порта в зависимости от конфигурации вашего хостинга.

Чтобы отключиться от сеанса MySQL, отправьте команду QUIT (или \ q).

1
QUIT

Теперь, когда мы подключены (после получения сообщения «Welcome to the MySQL monitor.»), Мы готовы отправлять наши команды, однако есть еще несколько моментов, на которые следует обратить внимание.

MySQL позволяет использовать пробелы, не влияя на введенные команды. Это очень удобно для того, чтобы сделать наши запросы максимально удобочитаемыми (см. Изображение ниже). Оба эти запроса дают один и тот же результат, однако второй значительно легче читать.

Примечание: этот запрос не будет работать, так как у нас нет настроенной базы данных, это только для демонстрационных целей!
Вы можете увидеть код, который я использовал ниже, оба введенных запроса идентичны, однако, нажав [ENTER], CLI позволяет нам продолжить команду в отдельной строке. В MySQL реализована функция отмены ввода, если ваша команда занимает несколько строк, просто введите команду очистки «\ c».

1
SELECT fld_1longlonglong, fld_2longlonglong, fld_3longlonglong, fld_4longlonglong, fld_5longlonglong, fld_6longlonglong, fld_7longlonglong FROM tbl_name WHERE fld_1longlonglong = `datavalue`;

Это, однако, также означает, что специальная команда должна быть отправлена, чтобы указать, что это конец команды. Мы можем использовать любой из следующих:

  • ;
  • \грамм
  • \ГРАММ

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

Далее мы будем импортировать файл SQL, это тот же процесс, который вы сделали бы, если бы восстанавливали резервную копию базы данных. Этот файл просто содержит все команды, необходимые для создания копии базы данных в заданное время резервного копирования.
В идеале мы должны создать нашу собственную базу данных, однако создание базы данных может быть сложной темой, включающей отношения, соглашения об именах, механизмы хранения и настройки полей, которые выходят за рамки этой статьи.

Мы будем использовать предварительно подготовленную базу данных, доступную по адресу http://dev.mysql.com/doc/#sampledb, прокрутите вниз, пока вы не увидите примеры баз данных и не захотите скачать мировую базу данных.

(World.sql).

После подключения к MySQL мы собираемся восстановить мировую базу данных, поскольку она является резервной копией предыдущей базы данных. Этот файл — просто список команд MySQL, которые будут запущены для создания новой базы данных. Этот файл SQL содержит только данные таблиц и не хранит информацию о базе данных, поэтому мы должны сначала создать базу данных для хранения таблиц (см. Аналогию в начале статьи).
Примечание. Чтобы сохранить длину этой статьи, я буду размещать несколько команд в фрагментах кода, вы можете разделить эти команды или выполнить их вместе, просматривая терминаторы команд, показанные ранее в этой статье. Также имейте в виду, что функции MySQL не чувствительны к регистру, поэтому SELECT аналогичен select и SeLEcT. Я лично использую функции MySQL для того, чтобы сделать мои запросы как можно более легкими для чтения, поскольку запросы становятся длиннее и сложнее, это становится ценной функцией наряду с пробелами.

Чтобы создать базу данных, мы собираемся выполнить команду CREATE DATABASE , после создания мы собираемся использовать базу данных.

1
CREATE DATABASE db_world;

Время импортировать резервную копию, есть много способов сделать это, это известно как пакетная обработка ( http://dev.mysql.com/doc/refman/5.0/en/batch-commands.html ). Поскольку мы уже подключены к MySQL, мы собираемся использовать команду SOURCE, после которой следует имя нашего файла. Я извлек файл «world.sql» из папки zip и поместил его в мой корень диска C: вам нужно будет знать абсолютный путь к исходному файлу. Если вы укажете только имя вашего файла, MySQL будет искать источник в папке, в которой вы запустили командную строку из (C: \ USERS \ USERNAME на Vista C: \ Documents and Settings \ Username
на XP). Вы не можете перейти к другому каталогу при использовании интерфейса MySQL, поэтому убедитесь, что вы указали соответствующий абсолютный путь. После выполнения этой команды окно CLI выдаст каждую из команд в файле SQL, после завершения вы вернетесь к приглашению mysql>.

1
SOURCE C:\world.sql;

Нет, у вас есть полностью функциональная база данных в вашем распоряжении. Однако мы еще не знаем, что в нем содержится! Давайте немного покататься вокруг; мы собираемся использовать следующие команды:

  • ПОКАЗАТЬ СТОЛЫ; — это показывает таблицы в текущей базе данных.
  • ОПИСАТЬ tbl_name; — показывает, какие поля существуют в указанной таблице.
1
SHOW TABLES;

После выдачи команды мы теперь знаем, что база данных содержит три таблицы: «город», «страна» и «странаязык». Далее мы собираемся выяснить, какие поля хранят эти таблицы. Вы хотите выдать ОПИСАНИЕ tbl_name для каждой из таблиц.

После выполнения команды DESCRIBE для таблицы стран вы увидите ниже, что она вернула нечитаемый беспорядок, для решения этой проблемы просто используйте терминатор \ G вместо;.

1
2
3
4
DESCRIBE city;
DESCRIBE country;
DESCRIBE country \G
DESCRIBE countrylanguage;

Теперь у нас есть вся информация, которая нам нужна для того, чтобы манипулировать таблицами, как мы хотим, у нас есть имя пользователя базы данных, пароль, имя базы данных, имена таблиц и имена полей, если вы разрабатываете на другом языке, например PHP, это информация вам потребуется вернуть данные в вашу систему (см. http://php.net/mysql ).

Мы можем выбрать запись вывода интерфейса MySQL; мы делаем это, отправляя команду \ T filename.txt. Чтобы прекратить запись, мы запускаем команду \ t. Приведенный ниже пример сохраняет файл с именем log.txt в корневой каталог жесткого диска E :. На моей машине это запасной жесткий диск, обратите внимание, у вас должно быть разрешение на доступ к этому диску; вы не сможете записать в корневой каталог установочного диска Windows в Windows Vista без запуска MySQL из командной строки с повышенными привилегиями.

1
2
3
\TE:\log.txt
SHOW TABLES;
\t
01
02
03
04
05
06
07
08
09
10
11
12
E:\log.txt contents:
mysql> SHOW TABLES;
+———————+
|
+———————+
|
|
|
+———————+
3 rows in set (0.00 sec)
 
mysql> \t

Монитор MySQL поставляется с расширением, называемым mysqldump; как и следовало ожидать, выдает необходимую информацию из базы данных, чтобы иметь возможность создать точную копию. Команда mysqldump использует следующий синтаксис:

1
mysqldump [username] [password] [database name] > [dump file]

Чтобы запустить это, вы должны быть отключены от сеанса MySQL.

Следующий код входит в сеанс MySQL с учетной записью пользователя root с секретным паролем, а затем выводит таблицу db_world в файл db_worldbak.sql.

1
mysqldump -uroot -psecret db_world > db_worldbak.sql

После прочтения этой статьи, я надеюсь, вы получили четкое представление о том, как взаимодействовать с mysql на уровне командной строки. То, что может оказаться полезным в качестве команд, может быть отправлено непосредственно в базу данных MySQL, а не через другой язык сценариев. Пожалуйста, не останавливайтесь на достигнутом, http://dev.mysql.com/doc/ действительно отличный ресурс, и вы быстро создадите собственную базу данных. Ниже я написал несколько основных запросов для поиска в мировой базе данных и несколько примеров для вас. Давайте посмотрим, сможете ли вы их понять, если не снова вы узнаете, где находится документация.

1
2
3
4
5
SELECT Name, Population
FROM city
WHERE CountryCode=’GBR’
ORDER BY Population ASC
LIMIT 0,5\G

На английском языке этот запрос ВЫБИРАЕТ и возвращает имя и население из города таблицы. ГДЕ код страны — ГБР, затем результаты фильтруются с использованием ORDER BY Population ASC (восходящая совокупность), а затем ОГРАНИЧИВАЕТСЯ для возврата первых 5 результатов. Этот запрос показывает название и население наименее 5 населенных городов Великобритании.

И еще один для дороги

1
2
3
4
5
6
7
8
9
SELECT
CONCAT(city.Name,’ speak the ‘, countrylanguage.Language, ‘ language’)AS Detail,
city.Population
FROM city, countrylanguage
WHERE city.CountryCode = countrylanguage.CountryCode
AND city.countryCode = ‘GBR’
AND countrylanguage.Language = ‘English’
ORDER BY city.Population ASC
LIMIT 5,5 \G

На английском языке этот запрос SELECT s data, он CONCAT вводит Name из таблицы городов и Language из таблицы countrylanguage и отображает результаты AS Подробно запрос также SELECT s Population from table city. Опять же, этот запрос ВЫБРАТЬ свои данные ИЗ таблицы города и таблицы языка страны, он возвращает данные, в которых код страны города совпадает с кодом страны языка страны. Данные отфильтрованы для отображения стран. ГДЕ там код страны — GBR, а язык — английский, затем он ПОРЯДОК увеличивается из-за увеличения населения, и результаты ОГРАНИЧЕНЫ для отображения результатов с 6 по 10. Этот запрос называется INNER JOIN. , поскольку две таблицы связаны друг с другом в запросе. В этом запросе отображаются 6–10-е наименее населенные пункты с кодом страны GBR, которые говорят по-английски.

Откуда я знаю, какие данные для написания этих запросов вы просите! Запустив следующий запрос SELECT, он использует подстановочный знак, чтобы выбрать все поля и вернуть все данные в указанной таблице. По результатам запроса я получил представление о том, что было включено, и создал несколько сценариев, которые я хотел запросить.

1
SELECT * FROM tbl_name;

Вот несколько функций, которые вы можете рассмотреть более подробно, чтобы начать:

  • ВЫБРАТЬ
  • ИЗ
  • ГДЕ
  • ПРЕДЕЛ
  • СОРТИРОВАТЬ ПО
  • И
  • ИЛИ
  • CONCAT
  • ПОКАЗАТЬ БАЗЫ ДАННЫХ
  • ИСПОЛЬЗОВАНИЕ
  • СОЗДАЙТЕ
  • ПОКАЗАТЬ СТОЛЫ
  • ОПИСАНИЯ
  • ОБНОВИТЬ

Ищите последующее руководство по извлечению и обработке данных. Не стесняйтесь задавать любые вопросы в комментариях, и я сделаю все возможное, чтобы ответить на них. Убедитесь, что вы начали вопрос с #Q, чтобы я мог их найти!