Что Такое MySQL: Объяснение MySQL Для Начинающих. Язык PHP и работа с базой данных MySQL Построение интерфейса для добавления информации


Есть в веб-программировании такие дисциплины, основы которых обязан знать любой человек, связанный с всемирной паутиной. Поэтому, так или иначе, а изучать PHP и MySQL вам придется. А если не хотите, то жадность все равно заставит:

Зачем изучать php и MySQL?

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

Хотя в наше время значение PHP немного уменьшилось. И все из-за большого количества движков, которые (по иронии ) также построены на основе этого языка.

В современном веб-мире под движками понимают любую систему управления контентом (Content management system, CMS). Большая часть из них написана на PHP и MySQL.

Каждая CMS представляет собой программную основу, снабженную пользовательским интерфейсом. Его инструментарий во многом облегчает процесс администрирования сайта. Но тогда зачем заниматься изучением PHP с нуля? Ведь можно просто зайти в административную часть ресурса и произвести все манипуляции с помощью встроенных в нее средств.

Начнем с того, что не у многих хватает терпения, времени или сил заниматься изучением PHP и MySQL . К этому человек должен прийти сам. Но тот, кто решится постигнуть эти дисциплины, получит:

  • Востребованную профессию – на рынке труда толковые программисты всегда были нарасхват. Но даже неопытные новички с хорошими теоретическими знаниями PHP и небольшим опытом в веб-программировании смогут найти работу с достойной оплатой;
  • Удаленную работу – для того чтобы заниматься программированием не обязательно рано вставать, добираться на работу и соблюдать дресскод. Все это можно оставить за порогом, и создавать программный код, сидя дома в комнатных тапочках;
  • Экономию денег – если вы являетесь владельцем сайта, то конечно знаете, что услуги профессиональных веб-программистов стоят дорого. А для начинающего свое дело в интернете дорога каждая копейка. Самостоятельное обучение MySQL и PHP позволит сэкономить средства и пустить их в нужное русло.

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

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

  • Интересное хобби – веб-программирование это не только средство зарабатывания денег или их экономии. Это еще и увлекательное занятие, которое совмещает в себе как техническое начало, так и творческую составляющую.

Изучение PHP и MySQL для многих может стать средством самовыражения.

Что такое PHP

PHP относится к скриптовым языкам программирования. Чаще всего он применяется для создания веб-приложений и веб-сервисов. Данный язык поддерживается большинством хостингов в интернете. На его основе написана основная часть динамических сайтов.

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


Популярность PHP объясняется его следующими характеристиками:

  • Поддержка большинства популярных СУБД (Систем Управления Базами Данных );
  • Автоматическая отправка заголовков HTTP ;
  • Встроенная поддержка работы с сессиями и cookies;
  • Средства работы с удаленными файлами;
  • Поддержка XForms (формы, созданные на основе XML );
  • Приближенность синтаксиса PHP к языку C;
  • Отсутствие строгой типизации – типизация переменных осуществляется динамически.

Типы данных – это то, с чего начинают изучение PHP

  • Поддержка ООП (объектно-ориентированного программирования );
  • Большой набор суперглобальных (предопределенных) массивов, предназначенных для работы с веб-пространством.

Что такое MySQL?

MySQL – это свободно распространяемая СУБД от компании Oracle . Вместе с бесплатной версией ведется разработка и коммерческих выпусков под заказ. Именно благодаря этому все новые разработки корпорации обязательно внедряются и в бесплатные выпуски СУБД :

Особенности СУБД MySQL :

  • Поддержка механизма репликации данных, начиная с первых выпусков MySQL .

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

  • Поддерживается работа, как с локальными источниками, так и с удаленными;
  • Встроенная поддержка большого количества типов таблиц. Причем благодаря открытому коду список поддерживаемых типов таблиц увеличивается;
  • Широкий диапазон кроссплатформенности;
  • Размер таблиц баз данных MySQL ограничивается лишь возможностями операционной системы, на которой развернута СУБД ;
  • Поддержка большинства популярных языков программирования с помощью API (интерфейса прикладного приложения ).

Более подробную информацию о возможностях СУБД можно узнать из любого самоучителя или справочника по MySQL.

С чего начать?

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

Несколько оптимальных вариантов:

  • Apache HTTP Server – можно скачать на официальном сайте разработчика;
  • Денвер – наиболее оптимальный вариант для установки и дальнейшего использования. Пакет инсталляции включает в себя сервер Apache, PHP и MySQL . В первом варианте вам бы пришлось все это скачивать и устанавливать по отдельности.
  • XAMPP – набор, включающий в себя PHP и MySQL . А также встроенный самоучитель по PHP :

Оба набора включают в себя утилиту для создания и изменения баз данных на основе MySQL с помощью запросов на T-SQL . Но для написания кода на PHP понадобится редактор с поддержкой синтаксиса этого языка. Несколько наиболее подходящих вариантов:

  • PHPEdit ;
  • Microsoft WebMatrix ;
  • Kantharos PHP IDE ;
  • Adobe Dreamweaver .

И напоследок хотелось бы дать дельный совет всем начинающим. Не стоит думать, что у вас больше пядей во лбу, чем у всех остальных. Обучение нужно начинать с основ. Поэтому новичкам больше подойдет самоучитель PHP для чайников, а не продвинутый справочник для профессионалов. Тогда и камень веб-науки окажется не таким уж и твердым.

СУБД MySQL является основной при работе с базами данных. И освоить её придётся каждому, кто хочет использовать у себя на сайте базы данных.

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

Прочитав статьи по основам MySQL, Вы узнаете:

1) Какая разница между SQL и MySQL .

2) О структуре базы данных .

3) Какие типы полей имеются в MySQL .

4) Какие привилегии у пользователей в MySQL .

5) Какие возможности есть у ПО PHPMyAdmin .

6) Как управлять пользователями в PHPMyAdmin .

7) Как управлять базами данных в PHPMyAdmin .

8) Как управлять таблицами в PHPMyAdmin .

9) Как управлять записями в PHPMyAdmin .

10) Об индексах в MySQL .

11) Как подключиться к базе данных через PHP .

12) Как отправить запрос к базе данных в PHP .

13) Как импортировать базу данных через PHPMyAdmin .

14) Как узнать синтаксис SQL-запроса через PHPMyAdmin .

15) Как конвертировать CSV в SQL .

16) Как сделать регистрозависимый поиск для MySQL .

17) Как исправить ошибку max user connections в MySQL .

18) Как оптимизировать запросы к MySQL .

19) Как руссифицировать PHPMyAdmin в Denwer .

20) Как узнать последний ID в MySQL .

21) Как импортировать базы данных больших размеров.

22) Что такое репликация в MySQL .

23) Как правильно создавать структуру базы данных .

24) Стоит ли хранить изображения в базе данных.

25) Как создать триггер в MySQL .

26) Как исправить ошибку server has gone away .

27) Как нормализовать базу данных.

28) Какой движок для базы данных выбрать.

29) Зачем сайту MySQL ? Таблицы, строки, запросы.

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

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

Ещё один момент: что такое реляционная база данных? Реляционная - значит основанная на таблицах. Знаменитый редактор электронных таблиц Excel от Microsoft фактически является редактором реляционных баз данных.

Подключение к серверу MySQL

Для подключения к серверу MySQL в PHP используется функция mysqli_connect() . Данная функция получает три аргумента: имя сервера, имя пользователя и пароль.

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

Код подключения к серверу MySQL:

$link = mysqli_connect("localhost", "root", "");

В данном случае я работаю на локальном компьютере на Denwere, поэтому имя хоста localhost, имя пользователя root, а пароля нет.

Соединение также нужно закрыть, после завершения работы с MySQL. Для закрытия соединения используется функция mysqli_close() . Расширяем пример:

$link = mysqli_connect("localhost", "root", ""); if (!$link) die("Error"); mysqli_close($link);

Тут мы проверели идентификатор подключения на истинность, если с нашим подключением что-то не так, то и программа выполняться не будет, функция die() остановит её выполнение и выведет в браузер сообщение об ошибке.

Ошибки подключения

Для проверки подключения используются следующие функции:

  • mysqli_connect_errno() - возвращает код ошибки последней попытки соединения. При отсутствие ошибок возвращает ноль.
  • mysqli_connect_error() - возвращает описание последней ошибки подключения к серверу MySQL.
define ("HOST", "localhost"); define ("DB_USER", "root"); define ("DB_PASSWORD", ""); define ("DB", "tester"); $link = mysqli_connect(HOST, DB_USER, DB_PASSWORD, DB); /* проверка соединения */ if (mysqli_connect_errno()) { printf("Не удалось подключиться: %s\n", mysqli_connect_error()); exit(); } else { printf("Удалось подключиться: %s\n", mysqli_get_host_info($link)); }

Функция mysqli_get_host_info() возвращает строку, содержащую тип используемого соединения.

Также обратите внимание, при помощи команды define я все параметры подключения сохранил в константах. Когда вы будете писать большие проекты, и подключатся к серверу MySQL будут много файлов, то удобно хранить параметры соединения в отдельном файле и вставлять его при помощи функции include или require .

Выбор базы данных

На сервере MySQL может быть несколько баз данных. Первым делом нам нужно выбрать для работы нужную нам базу. В PHP для этого в функции mysqli_connect() есть ещё один параметр - имя базы данных.

Я создал у себя на компьютере через phpMyAdmin с именем tester. Подключаемся к ней:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Error"); mysql_close($link);

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

Создаём таблицу

В названии баз данных MySQL часть SQL обозначает Structured Query Language, что переводится как структурированный язык запросов. На языке SQL мы будем писать запросы и из программы PHP посылать их серверу MySQL.

Чтобы создать таблицу нам просто нужно указать команду CREATE TABLE . Давайте создадим таблицу с именем users в столбцах которой будут храниться логины (столбец login) и пароли (столбец password) пользователей.

$query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))";

В этом коде мы присвоили переменной $query строку текста, которая представляет собой запрос SQL. Мы создаём таблицу с именем users, которая содержит два столбца login и password, у обоих тип данных VARCHAR(20). О типах данных мы поговорим позже, сейчас только отмечу, что VARCHAR(20) - это строка максимальной длины 20 символов.

Чтобы отправить наш запрос на сервер MySQL мы используем PHP функцию mysqli_query() . Эта функция возвращает положительное число, если операция прошла успешно и false, если произошла ошибка (синтаксис запроса ошибочный или у программы нет прав на выполнение запроса).

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Error"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; mysqli_query($query); mysqli_close($link);

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

У этого скрипта есть один недостаток - он ничего не выводит в браузер. Давайте добавим сообщение:

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Error"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; if (mysqli_query($query)) echo "Таблица создана."; else echo "Таблица не создана."; mysqli_close($link);

Если мы повторно запустим этот скрипт на выполнение, то увидим в браузере сообщение: "Таблица не создана". Дело в том, что таблица была создана при первом запуске, а повторно невозможно создать таблицу с таким же именем. Мы столкнулись с ситуацией возникновения ошибки, значит настало время поговорить об обработке ошибок при работе с MySQL.

Обработка ошибок

При отладке программы нам может понадобиться точная информация о ошибке. Когда в MySQL происходит ошибка, то сервер базы данных устанавливает номер ошибки и строку с её описанием. Для доступа к этим данным в PHP есть специальные функции.

  • mysqli_errno() - возвращает номер ошибки.
  • mysqli_error() - возвращает строку с описанием ошибки.

Теперь давайте добавим функцию mysql_error() в наш скрипт:

$link = mysql_connect("localhost", "root", "", "tester"); if (!$link) die("Error"); $query = "CREATE TABLE users(login VARCHAR(20), password VARCHAR(20))"; if (mysqli_query($query)) echo "Таблица создана."; else echo "Таблица не создана: ".mysqli_error(); mysqli_close($link);

Теперь наш скрипт вернёт в браузер строку: "Таблица не создана: Table "users" already exists".

Удаление таблицы

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

Для удаления таблицы используется команда DROP TABLE , за которой следует имя таблицы.

$link = mysqli_connect("localhost", "root", "", "tester"); if (!$link) die("Error"); $query = "DROP TABLE users"; if (!mysqli_query($query)) echo "Ошибка при удалении таблицы: ".mysqli_error(); else echo "Таблица удалена."; mysqli_close($link);

Итоги

Итак, мы освоили основы MySQL. Что мы научились делать:

  • Подключаться к базе данных MySQL при помощи функции mysqli_connect() .
  • Закрывать соединение с сервером MySQL при помощи функции mysqli_close() .
  • Отправлять SQL запросы серверу MySQL при помощи функции mysqli_query() .
  • Мы узнали SQL запрос создания таблицы: create table.
  • Мы узнали SQL запрос удаления таблицы: drop table.
  • Мы узнали как обрабатывать ошибки при помощи функций mysqli_errno() и mysqli_error() .

Потом мы подробно рассмотрим типы данных MySQL.

Читаем следующий урок:

MySQL 8. Designing and creating databases

MySQL - один из популярных серверов реляционных баз данных. Используется на огромном количестве сайтов и системах управления контентом (CMS). Wordpress, Joomla, Drupal, Bitrix и другие CMS могут работать и работают с СУБД MySQL. Самые популярные PHP-фреймворки умеют работать с MySQL: Laravel, Symfony, yii и другие. Чтобы использовать MySQL эффективно, нужно знать его инструментарий, возможности и особенности.

На курсе «MySQL 8. Проектирование и создание баз данных для web» вы овладеете основными приемами и методами эффективной работы с сервером MySQL 8. В ходе обучения вы рассмотрите этапы проектирования и создания баз данных, подробно изучите SQL-операторы, научитесь управлять транзакциями на сервере MySQL. Вы сможете создавать хранимые процедуры и триггеры, научитесь эффективно использовать хранилища («движки») сервера MySQL. Этот курс необходим любому разработчику сайтов.

Курс предназначен для веб-разработчиков и веб-мастеров, которые планируют использовать сервер MySQL в своей практике. Особенно курс будет интересен специалистам, использующим PHP и Perl.

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

Программа курса соответствует требованиям профессионального стандарта «Программист». После успешного окончания курса выдается престижное удостоверение центра о повышении квалификации.

SQL - Урок 1. Создание базы данных и таблиц

Итак, вы установили MySQL, и мы начинаем осваивать язык SQL. В уроке 3 по основам баз данных , мы создали концептуальную модель маленькой БД для форума. Пришло время реализовать ее в СУБД MySQL.

Для этого прежде всего надо запустить сервер MySQL. Идем в системное меню Пуск - Программы - MySQL - MySQL Server 5.1 - MySQL Command Line Client. Откроется окно, предлагающее ввести пароль.

Нажимаем Enter на клавиатуре, если вы не указывали пароль при настройке сервера или указываем пароль, если вы его задавали. Ждем приглашения mysql>.

Нам надо создать базу данных, которую мы назовем forum. Для этого в SQL существует оператор create database

Create database имя_базы_данных;


Максимальная длина имени БД составляет 64 знака и может включать буквы, цифры, символ "_" и символ "$". Имя может начинаться с цифры, но не должно полностью состоять из цифр. Любой запрос к БД заканчивается точкой с запятой (этот символ называется разделителем - delimiter). Получив запрос, сервер выполняет его и в случае успеха выдает сообщение "Query OK ..."

Итак, создадим БД forum:

Нажимаем Enter и видим ответ "Query OK ...", означающий, что БД была создана:

Вот так все просто. Теперь в этой базе данных нам надо создать 3 таблицы: темы, пользователи и сообщения. Но перед тем, как это делать, нам надо указать серверу в какую именно БД мы создаем таблицы, т.е. надо выбрать БД для работы. Для этого используется оператор use . Синтаксис выбора БД для работы следующий:

Use имя_базы_данных;


Итак, выберем для работы нашу БД forum:

Нажимаем Enter и видим ответ "Database changed" - база данных выбрана.

Выбирать БД необходимо в каждом сеансе работы с MySQL.

Для создания таблиц в SQL существует оператор create table . Создание базы данных имеет следующий синтаксис:

Create table имя_таблицы (имя_первого_столбца тип, имя_второго_столбца тип, ..., имя_последнего_столбца тип);


Требования к именам таблиц и столбцов такие же, как и для имен БД. К каждому столбцу привязан определенный тип данных, который ограничивает характер информации, которую можно хранить в столбце (например, предотвращает ввод букв в числовое поле). MySQL поддерживает несколько типов данных: числовые, строковые, календарные и специальный тип NULL, обозначающий отсутствие информации. Подробно о типах данных мы будем говорить в следующем уроке, а пока вернемся к нашим таблицам. В них у нас всего два типа данных - целочисленные значения (int) и строки (text). Итак, создадим первую таблицу - Темы:

Нажимаем Enter - таблица создана:

Итак, мы создали таблицу topics (темы) с тремя столбцами:
id_topic int - id темы (целочисленное значение),
topic_name text - имя темы (строка),
id_author int - id автора (целочисленное значение).

Аналогичным образом создадим оставшиеся две таблицы - users (пользователи) и posts (сообщения):

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

show databases - показать все имеющиеся БД,

show tables - показать список таблиц текущей БД (предварительно ее надо выбрать с помощью оператора use ),

describe имя_таблицы - показать описание столбцов указанной таблицы.

Давайте попробуем. Смотрим все имеющиеся базы данных (у вас она пока одна - forum, у меня 30, и все они перечислены в столбик):

Теперь посмотрим список таблиц БД forum (для этого ее предварительно надо выбрать), не забываем после каждого запроса нажимать Enter:

В ответе видим названия наших трех таблиц. Теперь посмотрим описание столбцов, например, таблицы topics:

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

А сегодня мы рассмотрим последний оператор - drop , он позволяет удалять таблицы и БД. Например, давайте удалим таблицу topics. Так как мы два шага назад выбирали БД forum для работы, то сейчас ее выбирать не надо, можно просто написать:

Drop table имя_таблицы;


и нажать Enter.

Теперь снова посмотрим список таблиц нашей БД:

Наша таблица действительно удалена. Теперь давайте удалим и саму БД forum (удаляйте, не жалейте, ее все равно придется переделывать). Для этого напишем:

Drop database имя_базы данных;


и нажмем Enter.

И убедитесь в этом, сделав запрос на все имеющиеся БД:

У вас, наверно, нет ни одной БД, у меня их стало 29 вместо 30.

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