﻿
<h1 class=p1>Работа с сервером MySQL</h1>
<br>
<br>

<p class=text>В этом разделе мы поговорим о том, как работать с клиентской программой mysql, с помощью которой можно подсоединяться к MySQL-серверу, выполнять SQL-запросы и просматривать результаты этих запросов.  Текст этого раздела рассчитан на то, что на вашем компьютере уже установлена утилита mysql и существует связь с  сервером MySQL.</p>
<p class=text>При подключении к серверу MySQL с помощью программы mysql нужно ввести имя пользователя, и, как правило, пароль. Если сервер и клиент находятся на разных машинах, необходимо также указать имя хоста, на котором запущен сервер MySQL:</p>
<blockquote><pre>
  shell> mysql -h host -u user -p
</pre></blockquote>
<p class=text>После этого на экране появится запрос Enter password:, и вам нужно будет ввести свой пароль. Если соединение прошло нормально, то на экране появляется следующая информация и метка командной строки mysql>:</p>
<blockquote><pre>
  Welcome to the MySQL monitor. Commands end with ; or \g.
  Your MySQL connection id is 459 to server version: 
  Type 'help' for help.
  mysql>
</pre></blockquote>
<p class=text>Появление метки mysql> означает, что программа mysql готова к работе.</p>
<p class=text>Отсоединиться от сервера можно в любой момент, набрав команду QUIT:</p>
<blockquote><pre>
  mysql> QUIT
  Bye
</pre></blockquote>
<p class=text>Кроме этого, разорвать соединение с сервером можно также, одновременно нажав клавиши <Ctrl>+<D>.</p>
<p class=prim><b><i>Замечание</i></b></p>
<p class=text><i>Как правило, на только, что установленном MySQL на локальной машине доступ осуществляется без ввода пароля и хоста, вводом команды mysql в командной строке.</i></p>
<p class=text>После того, как вы подсоединитесь к серверу, для того, чтобы освоиться с синтаксисом команд, можно выполнить несколько простых запросов. Поскольку пока еще никакой базы данных не выбрано, приводимые ниже запросы носят общий характер.</p>
<p class=text>Ниже приведена простая команда, запрашивающая у сервера информацию об его версии и текущей дате:</p>
<blockquote><pre>
  mysql> SELECT VERSION(), CURRENT_DATE;
</pre></blockquote>
<p class=text>Ответом MySQL на этот запрос будет следующая таблица:</p>
<blockquote><pre>
  +--------------+--------------------+
  | version() | current_date |
  +--------------+--------------------+
  1 row in set (0.02 sec)
</pre></blockquote>
<p class=text>На примере выполнения этого запроса можно увидеть следующие основные особенности работы с MySQL:</p>
<ul>
  <li>Команда, посылаемая серверу, обычно состоит из SQL-выражения, за которым следует точка с запятой. Из этого правила есть несколько исключений, когда после команды точка с запятой не ставится, к примеру, уже упомянутая команда QUIT; </li>
  <li>MySQL выводит результаты запроса в виде таблицы;</li>
  <li>После вывода таблицы с результатами запроса, mysql сообщает количество возвращаемых строк и время выполнения запроса. Это удобно, поскольку позволяет оценить как производительность сервера, так и эффективность выполняемого запроса;</li>
  <li>После вывода результатов запроса и времени его выполнения, mysql выводит новую строку mysql>, что означает готовность к выполнению новых команд.</li>
</ul>
<p class=text>Заметим, что команды MySQL не чувствительны к регистру, поэтому приведенные ниже запросы абсолютно идентичны:</p>
<blockquote><pre>
  mysql> select version(), current_date;
  mysql> SELECT VERSION(), CURRENT_DATE;
  mysql> Select Version(), Сurrent_DATE;
</pre></blockquote>
<p class=text>MySQL позволяет на одной строчке разместить несколько команд, но каждая из них должна заканчиваться точкой с запятой. К примеру:</p>
<blockquote><pre>
  mysql> SELECT VERSION(); SELECT NOW();
</pre></blockquote>
<p class=text>На такой запрос мы получим следующий результат:</p>
<blockquote><pre>
  +---------------+
  |  version() |
  +---------------+
  | 4.0.13-nt |
  +---------------+
  1 row in set (0.00 sec)
  +----------------------------------+
  | NOW()                        |
  +----------------------------------+
  | 2004-01-25 16:57:00 |
  +----------------------------------+
  1 row in set (0.03 sec)
</pre></blockquote>
<p class=text>Однако помещать все команды на одной строке совершенно необязательно:</p>
<blockquote><pre>
  mysql> SELECT USER(),
      -> CURRENT_DATE;
</pre></blockquote>
<p class=text>И вот результат:</p>
<blockquote><pre>
  +----------------------------+---------------------+
  | user()                    | current_date |
  +----------------------------+---------------------+
  | ODBC@localhost | 2004-01-25   |
  +----------------------------+---------------------+ 
  1 row in set (0.00 sec)
</pre></blockquote>
<p class=text>Заметьте, что после того, как мы перешли на новую строку, метка командной строки изменилась с mysql> на ->. Таким образом mysql показывает, что завершенного запроса не получено и она ожидает конца запроса. Эта метка весьма полезна, так как позволяет избежать некоторых ошибок. К примеру, если вы забудете поставить точку с запятой в конце запроса, mysql сообщит вам об этом, выведя метку ->:</p>
<blockquote><pre>
  mysql> select user()
      -> 
</pre></blockquote>
<p class=text>В завершение этого раздела, продемонстрируем, как можно использовать MySQL в качестве простого калькулятора, введя, к примеру, такой запрос:</p>
<blockquote><pre>
  mysql> select cos(pi()/10), (2*5)-5;
</pre></blockquote>
