Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Методические указания по изучению языка SQL




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

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

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

MySQL - это система управления базами данных. База данных представляет собой структурированную совокупность данных. Эти данные могут быть любыми: от простого списка предстоящих покупок до перечня экспонатов картинной галереи или огромного количества информации в корпоративной сети. Для записи, выборки и обработки данных, хранящихся в компьютерной базе данных, необходима система управления базой данных, каковой и является программное обеспечение (ПО) MySQL. Поскольку компьютеры замечательно справляются с обработкой больших объемов данных, управление базами данных играет центральную роль в вычислениях. Реализовано такое управление может быть по-разному: как в виде отдельных утилит, так и в виде кода, входящего в состав других приложений.

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

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

Методические указания представляют собой обучающий курс по MySQL: демонстрируется использование клиентской программы mysql для создания несложной базы данных и работы с ней. Утилита mysql (иногда называемая также “терминальным монитором”, или просто “монитором”) представляет собой интерактивную программу, позволяющую подсоединяться к MySQL-серверу, запускать запросы и просматривать результаты. Программа mysql может работать и в пакетном режиме; для этого необходимо записать все запросы в файл, а затем передать его содержимое на исполнение mysql.

Запуск MySQL

Управление сервером обычно осуществляется из командной строки. Запуск в Windows 95/98/2000 осуществляется через сеанс DOS выполнением следующей команды:

D:\usr\local\Mysql\bin>mysqld --standalone

Эта команда запустит демон mysql в фоновом режиме. В Windows 95/98 не предусмотрен запуск mysqld в виде службы. В Windows 2000 демон mysql запускается в виде службы.

Можно осуществить запуск winmysqladmin.exe, в этом случае все настройки перечисляются в файле my.ini

При запуске mysqld можно указывать следующие опции:

-?, --help Справка
-b, --basedir=[path] Путь к каталогу, в котором установлен mysql
-h, --datadir [homedir] Путь к каталогу, в котором хранятся базы данных
-l, --log=[filename] Имя журнала транзакций
-L, --language=[language] Язык по умолчанию (обычно English)
-P, --port=[port] Порт для соединения
--skip-grant-tables Игнорировать таблицы привилегий. Это дает любому ПОЛНЫЙ доступ ко всем таблицам. Не следует предоставлять обычным пользователям разрешений на запуск mysqld
--skip-name-resolve Позволяет предоставлять доступ только тем хостам, чьи IP-адреса указаны в таблицах привилегий. Ипользуется для более высокого уровня защиты
--skip-networking Использовать подключения только через интерфейс localhost
-V, --version Вывести информацию о версии

Наличие в статусной строке иконки светофора с активным зеленым цветом указывает на то, что сервер запущен (рис. 9).

Рис. 9. Приложение winmysqladmin запущено

Если же активен красный цвет, то необходимо запустить сервер, как показано на рис. 10, нажав на иконку правой клавишей мышки.

Рис. 10. Активизация сервера MySQL

Теперь можно попытаться войти в сервер. В случае если предполагается управление сервером через консоль, то необходимо использовать команду mysql. Изначально существует единственный пользователь, которому предоставляется право входа - root, который не имеет пароля. Первое, что нужно сделать - войти под именем root, зарегистрировать нового пользователя и установить для него пароль. Команда mysql может использовать следующие опции:

-?, --help Справка
-h,--hostname=[hostname] Имя сервера mysql
-u, --user=[user] Имя пользователя для доступа к mysql
-p, --password=[password] Пароль пользователя для доступа к mysql
-P, --port=[port] Порт для соединения с сервером
-V, --version Информация о версии

Примечание. Команды mysqld и mysql имеют еще некоторые опции, но в данный момент они особого интереса не представляют.

Запуск из сеанса ДОС осуществляется, как показано ниже (в указанном случае осуществляется подключение к БД MySQL – рис. 11,12).

Рис. 11. Запуск консоли MYSQL

Рис. 12. Успешный запуск консоли

Если Вы это получили, значит, Вы успешно вошли в консоль mysql, которая используется для администрирования сервера. Просмотр списка БД, доступных на сервере, осуществляется командой SHOW DATABASES.

Командой USE MYSQL; выбираем текущую БД, где MYSQL - имя БД.

При подключении к серверу с помощью mysql обычно нужно ввести имя пользователя MySQL и в большинстве случаев пароль. Если сервер запущен не на том компьютере, с которого Вы вошли в систему, необходимо также указать имя хоста. Параметры соединения (а именно - соответствующее имя хоста, пользователя и пароль) Вы сможете узнать у администратора. Получив соответствующие параметры, подсоединиться к серверу можно следующим образом:

shell> mysql -h host -u user -p

Enter password: ********

Символы ******** обозначают Ваш пароль; введите его, когда mysql выведет на экран запрос Enter password: Shell – это ДОС - оболочка.

Если все сработает, то на экране должна появиться информация и метка командной строки mysql>, как показано на рис. 4.

В некоторых вариантах установки MySQL возможно подсоединение к запущенному на локальном хосте серверу без ввода имени пользователя (пользователь anonymous). Если ваша система настроена именно так, подсоединиться к серверу Вы сможете, запустив mysql без параметров:

shell> MySQL

После установки соединения можно в любой момент отключиться от сервера, набрав в командной строке mysql> команду QUIT:

mysql> QUIT

Bye

Большая часть приведенных ниже примеров построена с учетом того, что соединение с сервером уже установлено. Это видно по наличию в них командной строки mysql>.

Указанные операции можно выполнить, используя специализированное программное обеспечение, например MySQL-Front, в котором также существует механизм, обеспечивающий наделение пользователей определенными правами (см. рис. 13, 14).

Рис. 13. Запуск MySQL-front

Рис. 14. Редактирование прав пользователя

Ввод запросов

Подсоединитесь к серверу, как было описано выше. Таким образом, никакая база выбрана не будет, но это не страшно. На данном этапе нам гораздо важней разобраться с созданием запросов, нежели сразу усложнять себе жизнь созданием таблиц, загрузкой в них данных и извлечением их оттуда. В этом разделе разъясняются основные принципы ввода команд; на примере нескольких запросов Вы можете поближе познакомиться с работой mysql.

Ниже приведена простая команда, запрашивающая у сервера информацию об его версии и текущей дате. Введите ее в командной строке mysql> и нажмите Enter:

 

mysql> SELECT VERSION(), CURRENT_DATE;

 

+--------------+--------------+

| VERSION() | CURRENT_DATE |

+--------------+--------------+

| 3.22.20a-log | 1999-03-19 |

+--------------+--------------+

1 row in set (0.01 sec)

mysql>


Этот запрос иллюстрирует следующие особенности mysql:

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

· Когда пользователь вводит команду, mysql отправляет ее серверу для выполнения и выводит на экран сначала результаты, а затем - новую строку mysql>, что означает готовность к выполнению новых команд.

· mysql выводит результаты работы запроса в виде таблицы (строк и столбцов). В первой строке этой таблицы содержатся заголовки столбцов, а в следующих строках - собственно результаты. Обычно заголовками столбцов становятся имена, полученные из таблиц базы. Если же извлекается не столбец таблицы, а значение выражения (как это происходит в приведенном выше примере), mysql дает столбцу имя запрашиваемого выражения.

· mysql сообщает количество возвращаемых строк и время выполнения запроса, что позволяет в некоторой степени составить представление о производительности сервера. Эти значения обычно весьма впечатляют, так как представляют обычное (а не машинное) время, кроме того, на них оказывает влияние загрузка сервера и скорость работы сети (для сокращения размеров листингов в остальных примерах этой глаВы строка "rows in set" удалена).

Для ввода ключевых слов можно использовать любой регистр символов. Приведенные ниже запросы абсолютно идентичны:

mysql> SELECT VERSION(), CURRENT_DATE;

mysql> select version(), current_date;

mysql> SeLeCt vErSiOn(), current_DATE;

А это - еще один запрос. В нем демонстрируется использование mysql в качестве несложного калькулятора:

mysql> SELECT SIN(PI()/4), (4+1)*5;

+-------------+---------+

| SIN(PI()/4) | (4+1)*5 |

+-------------+---------+

| 0.707107 | 25 |

+-------------+---------+

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

mysql> SELECT VERSION(); SELECT NOW();

+--------------+

| VERSION() |

+--------------+

| 3.22.20a-log |

+--------------+

+---------------------+

| NOW() |

+---------------------+

| 1999-03-19 00:15:33 |

+---------------------+

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

Вот пример несложного выражения, занимающего несколько строк:

mysql> SELECT

-> USER()

->,

-> CURRENT_DATE;

+--------------------+--------------+

| USER() | CURRENT_DATE |

+--------------------+--------------+

| joesmith@localhost | 1999-03-18 |

+--------------------+--------------+

Обратите внимание на то, как изменилась метка командной строки (с mysql> на ->) после ввода первой строки этого запроса. Таким образом программа mysql показывает, что завершенного выражения она пока что не получила и ожидает его полного ввода. Эта метка очень полезна, так как предоставляет весьма ценную информацию о состоянии программы. С ее помощью всегда можно узнать, чего ждет mysql.

Если Вы решите отменить исполнение набираемой команды, наберите \c:

mysql> SELECT

-> USER()

-> \c

mysql>

Обратите внимание на метку: после ввода команды \c она снова принимает вид mysql>, показывая, что программа mysql перешла в режим ожидания указаний.

В этой таблице приведены все возможные варианта вида метки командной строки и соответствующие им состояния mysql:

Метка Значение
mysql> Ожидание новой команды
-> Ожидание следующей строки многострочной команды
'> Ожидание следующей строки, сбор строкового выражения, начинающегося с одиночной кавычки (')
"> Ожидание следующей строки, сбор строкового выражения, начинающегося с двойной кавычки ('')

 

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

 

mysql> SELECT USER()

->

Если с Вами произошло подобное (Вы думаете, что завершили команду, но программа выдает только метку ->), то mysql, вероятнее всего, ждет точки с запятой. Не обратив внимание на метку командной строки, можно довольно долго ждать выполнения команды, не понимая в чем дело. А достаточно лишь поставить точку с запятой, завершив команду, которую mysql и выполнит:

mysql> SELECT USER()

->;

+--------------------+

| USER() |

+--------------------+

| joesmith@localhost |

+--------------------+

Метки '> и "> используются при сборе строк. В MySQL строки можно заключать как в одинарные ('), так и в двойные ('') кавычки (можно, например, написать 'hello' или "goodbye"), к тому же, mysql позволяет вводить строковые выражения, состоящие из нескольких строчек текста. Метка '> или "> обозначает, что Вы ввели строку, открывающуюся символом кавычек (') или (''), но еще не ввели завершающую строковое выражение закрывающую кавычку.

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

 

mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30;

">

Если ввести команду SELECT, нажать Enter и подождать результатов, ничего не произойдет. Тут-то и нужно обратить внимание на метку командной строки, выглядящую вот так: ">. Это значит, что mysql ждет ввода завершающей части строки. (Теперь заметили ошибку в команде? В строке "Smith нет закрывающей кавычки.)

Что делать в этом случае? Проще всего было бы отменить команду. Однако теперь просто набрать \c нельзя, так как mysql примет эти символы за часть собираемой строки. Вместо этого нужно ввести закрывающие кавычки (тем самым дав mysql понять, что строка закончилась) и лишь затем набрать \c:

 

mysql> SELECT * FROM my_table WHERE name = "Smith AND age < 30;

"> "\c

mysql>

 

Метка командной строки снова примет вид mysql>, показывая готовность mysql к выполнению команд.

Знать значение меток '> и "> необходимо, так как при вводе незавершенной строки все последующие строки будут игнорироваться MySQL, включая строку с командой QUIT. Это может основательно сбить с толку, особенно если не знать, что для отмены команды перед соответствующей последовательностью символов необходимо поставить закрывающую кавычку.






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных