include("compteur.php"); ?>
Урок 15. Основы MySQL.Человек - единственное животное на свете, Вот мы и дошли с вами до этого долгожданного для многих момента, когда наши веб-приложения (а уже не просто скрипты), разрастаясь, уже не могут удовлетвориться теми средствами, которые использовались ранее. Работа с файлами становится непомерно мучительной, те разбухают до необыкновенных размеров, делая невозможным их дальшейшее использование. Команды работы с файлами и содержащимися в них данными занимают сотни строк кода, и вы в конце концов понимаете, что так продолжаться больше не может. Требуется более удобное и надежное хранилище для многомегабайтной информации. И в итоге приходите к использованию баз данных, что вполне закономерно. При программировании на PHP наиболее часто используемой базой данных является MySQL. И это неспроста. Их взаимодействие реализовано на высшем уровне, так что иногда кажется, что они были специально созданы друг для друга. Установка MySQL.Прежде, чем мы начнем знакомство с MySQL, вам необходимо установить эту базу данных на своей машине. Скачать дистрибьютив можно с этой страницы. Рекомендуется выбирать те версии, напротив которых написано "stable release". В помощь прочтите главу из официальной документации "MySQL Installation". Итак, надеясь, что инсталляция MySQL прошла успешно, продолжаем наш урок и сейчас научимся без посредников в лице PHP, через консоль взаимодействовать с этой базой данных. Для этого зайдите в директорию, в которую вы установили MySQL, найдите там папку bin и откройте в ней файл mysql.exe. В этом окне мы и будем обучаться MySQL. Краткий справочник по командам MySQL.Прежде всего настоятельно рекомендуется прочитать главу из документации "Tutorial Introduction",где изложены основы взаимодействия с MySQL, и статью "Реализация языка SQL в СУБД MySQL". Мы же рассмотрим лишь небольшую часть команд MySQL. Сначала давайте рассмотрим структуру баз данных. Схематично она выглядит следующим образом: база данных 1 таблица 1.1 таблица 1.2 таблица 1.n база данных 2 таблица 2.1 ... база данных n таблица n.1 Таким образом, данные по сути содержатся в таблицах, которые в свою очередь объединены в группу базы данных. Тем самым, чтобы начать работу с MySQL нам требуется прежде всего создать базу данных, с которой мы будем взаимодействовать. CREATE.Итак, в консоли пишем запрос:
Мы говорим MySQL создать базу данных с именем "myphp", причем регистр ключевых слов несущественен, но порядок слов в запросе не может быть изменен. Теперь выберем только что созданную базу для работы с ней:
И, как вы наверное уже догадались, нам необходимо создать таблицу, с которой мы будем работать. Пусть это будет таблица "lessons".
Заметьте: то, сколько строк занимает запрос, несущественно: концом запроса является лишь символ ";". Итак, мы создали таблицу lessons с 5 полями: id урока, представяющий собой уникальное число большее нуля, которое будет генерироваться автоматически при добавлении новой записи в таблицу путем увеличения максимального id на единицу (auto_increment); title - название урока длиной до 250 символов; body - собственно, сам урок, представляющий собой текст; pub_date - дата и время публикации урока; enable - флаг, который указывает, доступен ли урок посетителям, поле может иметь только два значения: '0' и '1', причем по умолчанию установлено '1'. INSERT.Теперь все готово, и мы можем приступить непосредственно к работе с данными. Сначала добавим в таблицу новую запись:
Итак, в таблице lessons у нас появилась новая запись, значения которой для каждого поля указываются в скобках после слова values (...). Причем заметьте, что мы пропустили ("") поле, которое заполняется автоматически - это поле id. Обратите внимание, на MySQL-функцию now(), которая возвращает текущее значение времени. Но чтобы не писать пустых строк, также можно указать MySQL, в какие именно поля таблицы мы хотим сохранить данные. Например, введем таким образом данные урока 2:
Все остальные поля, не указанные нами, будут заполнены автоматически, причем для полей pub_date и enable применятся значения по умолчанию. SELECT.Теперь давайте посмотрим, что у нас оказалось в базе данных. Для этого применем команду SELECT, которая выводит указанные данные на экран.
Значок "*" указывает, что мы хотим увидеть все поля таблицы lessons. Но также можно производить и выборочный вывод:
Также возможно выбирать не все записи в таблице, а удовлетворяющие определенным условиям:
Тем самым мы выберем название только первого урока. Также мы можем отсортировать данные перед выводом, используя команду ORDER.
Сортировка в обратном порядке производиться путем указания директивы DESC. MySQL позволяет ограничить количество записей для вывода. Для примера выведем id и название последнего добавленного урока, подразумевая, что мы не знаем, какой id он имеет:
Сначала мы отсортировали все записи по id в обратном порядке, так что запись с максимальным id оказалась первой, и вывели только одну эту запись. Должна возвратиться таблица с id, равным 2, и title "Формы всего сущего". MySQL также предоставляет функции COUNT(поле) для подсчета элементов, занесенных в указанное поле, MAX(поле) и MIN(поле) для определения максимального и минимального элемента соответственно, а также SUM(поле) для подсчета суммы элементов поля. К примеру:
UPDATE.Предположим, что по какой-либо причине мы хотим на время скрыть урок 2 от посетителей. Для этого изменим поле enable, установив его равным нулю.
Таким образом можно изменить любое поле таблицы. ALTER. Команда ALTER TABLE позволяет изменить уже созданную таблицу. Например, в нашей таблице lessons после поля body вставим поле author.
А теперь удалим эту колонку:
Тем самым мы свободно можем манипулировать как создаваемыми объектами, так и уже давно созданными. Как видите, синтаксис MySQL не отличается сложностью. Если вы более или менее владеете английским языком, вы без проблем освоите команды MySQL, к тому же они вполне интуитивно понятны. Мы разобрали лишь часть из них, для получения полной информации прочтите соответствующую официальную документацию. А на следующем уроке мы займемся уже работой с MySQL посредством PHP. До встречи! |