// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Подключение к базе данных MySQL
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Подключение к базе данных MySQL - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Подключение к базе данных MySQL

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

link:http://www.mysql.com/[+MySQL+] является распространенной системой управления реляционной базой данных с открытым исходным кодом (СУРБД), широко используемой в веб-приложениях благодаря своей скорости, гибкости и надежности. MySQL использует SQL (_язык структурированных запросов_) для доступа к данным в базе данных и их обработки.

*Предполагаемая продолжительность: _30_ минут*


*Для работы с этим учебным курсом требуется следующее программное обеспечение и ресурсы.*

|===
|Программное обеспечение или материал |Требуемая версия 

|link:https://netbeans.org/downloads/index.html[+IDE NetBeans+] |7.2, 7.3, 7.4, 8.0, Java 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Комплект для разработчика на языке Java (JDK)+] |Версия 7 или 8 

|Сервер базы данных MySQL |link:http://dev.mysql.com/downloads/mysql/[+версия 5.x+] 
|===

NOTE:  В этом руководстве предполагается, что уже имеется СУБД MySQL, которая установлена и настроена на компьютере. Если система устанавливается впервые, ознакомьтесь с официальной link:http://dev.mysql.com/doc/refman/5.0/en/installing-cs.html[+документацией по MySQL+] для получения справки. Также подробные сведения по этой теме можно найти в разделе link:install-and-configure-mysql-server.html[+Настройка сервера баз данных MySQL в операционной системе Windows+].


== Настройка свойств сервера MySQL

IDE NetBeans поставляется с включенной поддержкой для MySQL RDBMS. До получения доступ к серверу баз данных MySQL в IDE NetBeans, необходимо настроить свойства сервера MySQL.

1. Щелкните правой кнопкой мыши узел Databases ("Базы данных") в окне Services ("Службы") и выберите Register MySQL Server ("Зарегистрировать MySQL") для открытия диалогового окна свойств сервера MySQL.

image::images/mysql-props1.png[]

[start=2]
. Убедитесь, что имя узла и порт сервера указаны правильно.

Обратите внимание, что среда IDE вводит `localhost` как имя узла сервера по умолчанию и `3306` как номер порта сервера по умолчанию.

[start=3]
. Введите имя администратора (если оно не отображается).

NOTE:  Необходим доступ с правами администратора, чтобы иметь возможность создавать и удалять базы данных.

[start=4]
. Введите пароль администратора. По умолчанию установлено пустое значение.

NOTE:  Пустой пароль является допустимым.

[start=5]
. Нажмите вкладку "Свойства администратора" в верхней части диалогового окна.

Отобразится соответствующая вкладка, предоставляющая возможность ввода сведений для управления сервером MySQL.

[start=6]
. В поле "Путь/URL-адрес к средству администрирования" введите путь к средству администрирования MySQL (например, MySQL Admin Tool, PhpMyAdmin или другому подходящему веб-средству) или найдите его при помощи кнопки "Обзор".

NOTE: `mysqladmin` является инструментов администрирования MySQL, который находится в папке `bin` каталога установки MySQL. Это средство командной строки не подходит для использования в среде IDE.

Введите аргументы для средства администрирования в соответствующее поле.

[start=7]
. В поле "Путь к команде запуска" введите соответствующий путь MySQL или найдите его при помощи кнопки "Обзор". Для получения команды запуска найдите файл `mysqld` в папке `bin` каталога установки MySQL.

NOTE:  Рекомендуемый двоичный файл для Unix и NetWare: `mysql_safe`. Также может потребоваться другая команда запуска при установке MySQL в составе установки AMP.

Введите значение аргументов для команды запуска в соответствующее поле.

[start=8]
. В поле "Путь к команде остановки" введите путь к команде остановки MySQL или найдите его при помощи кнопки "Обзор". Обычно требуется ввести путь к файлу `mysqladmin` в папке `bin` каталога установки MySQL. При использовании команды `mysqladmin` введите `-u root stop` в поле "Аргументы" для получения прав пользователя `root` на остановку сервера.
. На рисунке ниже изображен внешний вид вкладки "Свойства администратора" по завершении настройки. Если настройка выполнена корректно, нажмите кнопку "ОК".

image::images/mysql-props2.png[]


== Запуск сервера MySQL

Перед попыткой подключения к серверу базы данных MySQL необходимо убедиться в том, что он запущен на компьютере. Если сервер базы данных не подключен, вы увидите *(disconnected)* рядом с именем пользователя в узле MySQL Server в окна 'Служба' и не сможете развернуть узел.

Для подключения к серверу баз данных убедитесь, что сервер базы данных MySQL запущен на компьютере, щелкните правой кнопкой мыши 'Базы данных' > узел 'MySQL Server' в окне 'Службы' и выберите 'Подключить'. Может отобразиться запрос на ввод пароля для подключения к серверу.

image::images/services-running.png[]

После подключения сервера вы сможете развернуть узел MySQL Server и просмотреть все доступные базы данных MySQL.


== Создание экземпляра базы данных и подключение к ней

Редактор SQL является широко распространенным способом взаимодействия с базами данных. Для этого в IDE NetBeans имеется встроенный редактор SQL. Обычно редактор SQL доступен с помощью параметра 'Выполнить команду' из контекстного меню узла подключения (или дочерних узлов узла подключения). После установления подключения к серверу MySQL, можно создать новый экземпляр базы данных в редакторе SQL. Для продолжения работы с данным учебным курсом создайте экземпляр с именем  ``MyNewDatabase`` :

1. В окне 'Службы' среды IDE щелкните правой кнопкой мыши узел сервера MySQL Server и выберите 'Создать базу данных'.

Откроется диалоговое окно "Создание базы данных MySQL".

[start=2]
. В диалоговом окне "Создание базы данных MySQL" введите имя новой базы данных. В этом учебном курсе используется имя `MyNewDatabase`. Не устанавливайте флажок. image:images/create-db-dbx.png[]

NOTE: Также определенному пользователю можно предоставить полный доступ. По умолчанию только администратор обладает правами на выполнение определенных команд. Раскрывающийся список позволяет присваивать эти права определенным пользователям.

[start=3]
. Нажмите кнопку "ОК".

В узле "Сервер MySQL" окна "Службы" будет выведена новая база данных.

[start=4]
. Щелкните узел новой базы данных правой кнопкой мыши и выберите 'Подключение', чтобы установить соединение с базой данных.

Открытые подключения к базе данных отображаются в узле 'Установленные подключения' (image:images/connection-node-icon.png[]) в окне 'Службы'.


== Создание таблиц баз данных

После установления подключения к базе данных  ``MyNewDatabase``  можно начинать изучение принципов создания таблиц, заполнения их данными и изменения данных в таблицах. Благодаря этому для пользователей обеспечивается возможность более глубокого анализа функций проводника баз данных, а также поддержки IDE NetBeans файлов SQL.

База данных  ``MyNewDatabase``  в настоящее время пуста. В среде IDE таблицу базы данных можно добавить при помощи диалогового окна "Создание таблицы" или посредством ввода запроса SQL и его запуска напрямую из редактора SQL. Можно использовать оба метода.

1. <<usingSQLEditor,Использование редактора SQL>>
2. <<usingCreateTable,Использование диалогового окна "Создание таблицы">>


=== Использование редактора SQL

1. В проводнике баз даннызх разверните узел подключения  ``MyNewDatabase``  (image:images/connection-node-icon.png[]) и обратите внимание, что там содержится три подпапки: 'Таблицы', 'Представления' и 'Процедуры'.
2. Щелкните правой кнопкой мыши папку Tables ("Таблицы") и выберите Execute Command ("Выполнить команду"). В главном окне редактора SQL отобразится пустой холст.
3. В редакторе SQL введите следующий запрос. Это определение создаваемой таблицы  ``Counselor`` .

[source,sql]
----
CREATE TABLE Counselor (
    id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
    firstName VARCHAR (50),
    nickName VARCHAR (50),
    lastName VARCHAR (50),
    telephone VARCHAR (25),
    email VARCHAR (50),
    memberSince DATE DEFAULT '0000-00-00',
    PRIMARY KEY (id)
            );
----

NOTE:  Запросы, сформированные в редакторе SQL, анализируются в соответствии с нормами языка структурированных запросов (Structured Query Language, SQL). Для SQL характерны строгие синтаксические правила, применяемые также при работе с редактором среды IDE. После выполнения запроса в окне 'Вывод' будет создан отклик от механизма SQL, указывающий на успешность выполнения или ошибку.

[start=4]
. Чтобы выполнить запрос нажмите кнопку 'Выполнить SQL' (image:images/run-sql-button.png[]) на панели задач в верхней части (Ctrl-Shift-E) или щелкните правой кнопкой мыши в редакторе SQL Editor и выберите 'Выполнить оператор'. В среде IDE будет создана таблица базы данных  ``Counselor`` , а в окне "Вывод" появится сообщение, подобное сообщению на рисунке ниже.

image::images/create-counselor-query.png[]

[start=5]
. Для проверки изменений щелкните правой кнопкой мыши узел 'Таблицы' в проводнике баз данных и выберите 'Обновить'. При выборе пункта "Обновить" компоненты интерфейса пользователя в проводнике данных будут приведены в соответствие с текущим состоянием указанной базы данных. Обратите внимание, что новый узел таблицы  ``Counselor``  (image:images/table-node.png[]) теперь отображается ниже 'Таблицы' в проводнике баз данных. Если развернуть узел таблицы, можно увидеть созданные столбцы (поля), начинающиеся с первичным ключом (image:images/primary-key-icon.png[]).

image::images/counselor-table.png[]


=== Использование диалогового окна "Создание таблицы"

1. В проводнике баз данных щелкните правой кнопкой мыши узел 'Таблицы' и выберите 'Создать таблицу'. Откроется диалоговое окно "Создание таблицы".
2. Введите  ``Subject``  в текстовое поле "Имя таблицы".
3. Нажмите кнопку "Добавить столбец".
4. В поле Name ("Имя") столбца введите  ``id`` . Выберите  ``SMALLINT``  в качестве типа данных из раскрывающегося списка Type. Нажмите кнопку "ОК".

image::images/add-column-dialog.png[]

[start=5]
. Установите флажок Primary Key ("Первичный ключ") в диалоговом окне Add Column. В этом действии выполняется определение первичного ключа таблицы. Все таблицы, созданные в реляционных базах данных, должны содержать первичный ключ. Обратите внимание, что при выборе флажка "Ключ" выполняется автоматическая установка флажков "Индекс" и "Уникальный", при этом отменяется выбор флажка "Значение отсутствует". Это объясняется тем, что первичные ключи применяются для определения уникальной строки базы данных и по умолчанию используются в индексе таблицы. Поскольку все строки должны иметь уникальный идентификатор, первичные ключи не могут иметь значение Null.
. Повторите эту процедуру, добавив оставшиеся столбцы, как показано в следующей таблице.

|===
|Ключ |Индекс |Значение отсутствует |Уникальный |Имя таблицы |Тип данных |Размер 

|[установлен] |[установлен] |[установлен] |идентификатор |SMALLINT |0 

|[установлен] |"name" – имя |VARCHAR |50 

|[установлен] |"description"– описание |VARCHAR |500 

|[установлен] |FK_counselorID |SMALLINT |0 
|===

Выполняется создание таблицы  ``Subject`` , в которой будут содержатся данные для каждой из следующих записей.

* *Имя: *тема
* *Описание:* описание темы
* * Идентификатор таблицы Counselor: * идентификатор, соответствующий идентификатору в таблице Counselor

image::images/create-table-subject.png[]

Убедитесь, что все поля в диалоговом окне "Создание таблицы" соответствуют полям в примере выше и нажмите кнопку "ОК". IDE создает таблицу  ``Subject``  в базе данных и можно увидеть, что новый узел таблицы  ``Subject``  (image:images/table-node.png[]) отображается непосредственно под 'Таблицы' в проводнике баз данных.


== Работа с данными в таблице

Для работы с табличными данными можно использовать редактор SQL в IDE NetBeans. Выполняя запросы SQL в базе данных, можно добавлять, изменять и удалять данные в структурах баз данных. Для добавления новой записи (строки) в таблицу  ``Counselor``  необходимо выполнить действия, описываемые ниже.

1. Выберите элемент "Выполнение команды" в папке "Таблицы" проводника баз данных. В главном окне редактора SQL отобразится пустой холст.
2. В редакторе SQL введите следующий запрос.

[source,sql]
----
INSERT INTO Counselor
VALUES (1, 'Ricky', '"The Dragon"', 'Steamboat','334 612-5678', 'r_steamboat@ifpwafcad.com', '1996-01-01')
----

[start=3]
. Чтобы выполнить запрос щелкните правой кнопкой мыши в редакторе SQL Editor и выберите 'Выполнить оператор'. В окне "Вывод" будет выведено сообщение об успешном выполнении запроса.
. Чтобы убедиться, что новая запись добавлена к таблице  ``Counselor``  в проводнике баз данных щелкните правой кнопкой мыши узел таблицы  ``Counselor``  и выберите 'Просмотреть данные'. В главном окне редактора SQL откроется новая панель. При выборе команды "Просмотреть данные" в верхней части окна редактора SQL автоматически создается запрос на выбор всех данных таблицы. Результаты выполнения оператора отображаются в представлении таблицы в нижней части окна. В рассматриваемом примере будет отображена таблица  ``Counselor`` . Обратите внимание, что новая строка была добавлена с данными, предоставленными в запросе SQL.

image::images/sql-results.png[]


== Выполнение сценария SQL

Другим способом управления табличными данными в IDE NetBeans является запуск внешнего сценария SQL напрямую в IDE. Если сценарий SQL был создан в другом местоположении его можно просто открыть в IDE NetBeans и запустить его в редакторе SQL.

Для наглядности загрузите файл link:https://netbeans.org/project_downloads/samples/Samples/Java%20Web/ifpwafcad.sql[+ifpwafcad.sql+] и сохраните его на компьютере. Этот сценарий предназначен для создания двух таблиц, аналогичных только что созданным таблицам ( ``Counselor``  и  ``Subject`` ), и немедленного заполнения их данными.

Поскольку этот сценарий перезаписывает уже существующие таблицы, удалите  ``Counselor``  и  ``Subject`` , чтобы зафиксировать процесс создания таблиц при выполнении сценария. Удаление таблиц

1. Щелкните правой кнопкой мыши узлы таблиц  ``Counselor``  и  ``Subject``  в проводнике баз данных, после чего выберите Delete ("Удалить").
2. Нажмите кнопку Yes ("Да") в диалоговом окне Confirm Object Deletion ("Подтверждение удаления объекта"). Обратите внимание, что в диалоговом окне перечисляются таблицы, которые будут удалены.

При нажатии кнопки Yes ("Да") в диалоговом окне Confirm Object Deletion ("Подтверждение удаления объекта") узлы таблиц автоматически удаляются из проводника баз данных.

Выполнение сценария SQL в базе данных  ``MyNewDatabase`` 

1. В главном меню среды IDE выберите "Файл" > "Открыть". В браузере файлов перейдите к месту хранения  ``ifpwafcad.sql``  и выберите команду "Открыть". Сценарий автоматически откроется в редакторе SQL.
2. Убедитесь, что подключение к базе данных  ``MyNewDatabase``  выбрано в раскрывающемся списке "Соединение" на панели инструментов в верхней части редактора.

image::images/connection-drop-down.png[]

[start=3]
. Нажмите кнопку 'Выполнить SQL' (image:images/run-sql-button.png[]) на панели инструментов редактора SQL. Сценарий будет выполнен для выбранной базы данных, возвращаемые данные будут выведены в окне "Вывод".
. Чтобы проверить изменения щелкните правой кнопкой мыши узел подключения  ``MyNewDatabase``  в окне 'Среда выполнения' и выберите 'Обновить'. При выборе пункта "Обновить" компоненты интерфейса пользователя в проводнике данных будут приведены в соответствие с текущим состоянием указанной базы данных. Обратите внимание, что две новые таблицы из сценария SQL теперь отображаются как узлы таблицы в базе данных  ``MyNewDatabase``  обозревателя баз данных.
. Выберите 'Просмотреть данные' в контекстном меню выбранного узла таблицы для просмотра данных, содержащихся в новых таблицах. Таким образом можно сравнить данные в таблицах с данными сценария SQL, чтобы убедиться в их соответствии.
link:/about/contact_form.html?to=3&subject=Feedback:%20Connecting%20to%20a%20MySQL%20Database[+Мы ждем ваших отзывов+]



== Дополнительные сведения

Это заключительный раздел учебного курса "Подключение к базе данных MySQL". В этом документе демонстрируется настройка MySQL на компьютере пользователя и настройка соединения с сервером баз данных из IDE NetBeans. Также были рассмотрены методы работы с MySQL в обозревателе баз данных среды IDE при создании экземпляров баз данных и таблиц, заполнении их данными и выполнении запросов SQL.

Более подробные учебные курсы представлены на следующих ресурсах:

* link:../../docs/web/mysql-webapp.html[+Создание простого веб-приложения, использующего базу данных MySQL+]. Этот учебный курс предоставляет сведения о создании простых двухуровневых веб-приложений в среде IDE с использованием созданной базы данных MySQL.
