|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PHP и WEB для новичков (часть 8)Базы данныхАвтор: Владислав Демьянишин
Ранее, когда я рассказывал о работе с файлами, мы рассматривали их как средство для хранения данных. В большинстве случаев хранить данные в файлах действительно удобно, особенно, если это сайты документации, библиотеки, контент-сайты вроде простых блогов, простенькие гостевые книги и т.д.
Но существуют куда более сложные случаи, где данные необходимо структурировать (разбивать на однотипные части), сортировать, быстро находить по многим условиям, добавлять, удалять, изменять. Как пример - форумы, чаты, магазины, порталы, поисковые системы и др. Тут для хранения данных целесообразнее использовать базы данных (БД).
Поскольку с этого момента мы начинаем разработку практического проекта, то далее все примеры будут касаться именно его. Для начала создадим базу данных.
Если у вас web-сервер (Денвер, можно скачать тут: http://www.denwer.ru/base.html или старая ссылка http://dklab.ru/chicken/web/base.html размер 5.7 Мб) уже запущен, то в строке адреса в браузере набираем строку http://localhost/phpMyAdmin и видим страницу системы управления базами данных phpMyAdmin (рис. 5). Рекомендую для этого адреса сделать ярлык - он нам еще не раз пригодится.
Рис. 5
Чтобы создать новую базу данных введем ее название "multimedia" в поле и кликнем на кнопке Создать. Тогда получим следующий ответ (рис. 6):
Рис. 6
Это означает, что база успешно создана, но она пуста и не содержит ни одной таблицы. Теперь немного о том, что представляет собой база данных и сервер баз данных.
База данных - совокупность упорядоченной информации. Она содержит структурированные данные, разбитые на таблицы. Каждая таблица содержит строки с данными определенной структуры. Т.е. каждая строка таблицы состоит из нескольких полей.
Сервер баз данных выполняет операции с базами данных: создание, удаление, разграничение прав доступа к базам. Доступны операции и над таблицами: создание, удаление, редактирование структуры таблиц, поиск по одной или нескольким таблицам, вставка строк в таблицу, удаление строк, редактирование данных.
Все эти операции выполняются при помощи языка SQL (Structured Query Language - структурированный язык запросов). Он обеспечивает стандартный способ запросов к серверу баз данных. Это достаточно простой язык, и мы его быстро выучим.
Поскольку на серверах Apache применяется сервер баз данных MySQL, будем говорить именно о нем.
ТаблицыПоскольку мы еще не знаем SQL, то разбираться будем, пользуясь phpMyAdmin. Запустим phpMyAdmin: http://localhost/phpMyAdmin (разумеется, если Денвер уже запущен). Перейдем к созданной нами ранее базе multimedia (база выбирается в списке слева в окне, рис. 7) .
Рис. 7
После перехода к этой базе нам предложат создать таблицы. Давайте разберемся, что такое таблицы и какие таблицы нам нужны для проекта.
Таблицы - это упорядоченные данные в виде строк и полей в этих строках. Каждая строка (еще ее называют записью) имеет определенное число полей, постоянное для всех строк данной таблицы. Например (см. таблицу 6):
Таблица 6.
Эта таблица состоит из трех строк, каждая из которых имеет четыре поля: ФИО, год рождения, пол и должность. Каждое поле имеет свой тип. Типы в SQL отличаются от типов PHP, поэтому рассмотрим основные типы, с которыми будем иметь дело дальше.
Поля и их типы в MySQLБаза данных с точки зрения MySQL (и некоторых других СУБД) - это обыкновенный каталог, содержащий двоичные файлы определенного формата - таблицы. Таблицы состоят из записей, а записи, в свою очередь, состоят из полей. Поле имеет два атрибута - имя и тип. Тип поля может быть:
Возможные типы данных, диапазоны и описания представлены в последующих таблицах 7, 8, 9, 10 и 11.
Таблица 7. Целочисленные типы данных
INT - обычное целое число. Для большинства задач и индексирования записей вполне достаточно типа INT.
Вещественные типы записываются в виде:
ТИП (длина, знаки) [UNSIGNED]
где, длина - это количество знакомест, в которых будет размещено все число при его передаче, а знаки - это количество знаков после десятичной точки, которые будут учитываться. Если указан модификатор UNSIGNED, знак числа учитываться не будет.
FLOAT - обычное число с плавающей точкой (вещественное или дробное);
DECIMAL (синоним NUMERIC) - тип данных используется для хранения величин, для которых важно сохранить повышенную точность, например для денежных данных.
Например, DECIMAL (5,2), где 5 - (точность) представляет собой общее количество значащих десятичных знаков, с которыми будет храниться данная величина, а цифра 2 - (масштаб) задает количество десятичных знаков после запятой.
Следовательно, в этом случае интервал величин, которые могут храниться в поле такого типа, составляет от -99,99 до 99,99. В действительности для данного столбца MySQL обеспечивает возможность хранения чисел вплоть до 999,99, поскольку можно не хранить знак для положительных чисел.
Таблица 8. Вещественные числа
Любая строка - это массив символов. При поиске с помощью оператора SELECT (мы рассмотрим его далее) не учитывается регистр символов: строки "HELLO" и "Hello" считаются одинаковыми.
Можно настроить MySQL на автоматическое перекодирование символов - в этом случае в базе данных строки будут храниться в одной кодировке, а выводиться - в другой.
VARCHAR - строка текста переменной длины. Максимальная длина строки указывается в круглых скобках после слова VARCHAR, например, VARCHAR(32).
CHAR - строка текста фиксированной длины. Длина указывается в круглых скобках, например, CHAR(32). Максимальная длина 255 символов.
Максимальная длина такого поля не может быть больше 255 и при записи длинная строка урезается до указанной длины. В большинстве случаев применяется тип VARCHAR или просто CHAR.
TEXT - строка текста большой длины (до 64 Кб, т.е. 65536 знаков). Если 255 символов для вашей задачи недостаточно, можно использовать другие типы, например, TEXT.
Бывают случаи, когда в БД необходимо хранить очень большие документы, например, веб-страницы, содержащие кроме текста еще и HTML-теги гипертекстовой разметки, увеличивающие общую длину текста в записи в разы.
Поэтому, для большинства задач рекомендую применять тип MEDIUMTEXT. Тогда не столкнетесь в один прекрасный момент с проблемой, когда большая статья сохранилась в БД не полностью. Поверьте мне, в конце концов вы с этим столкнетесь.
Таблица 9. Строки
Бинарные типы данных также можно использовать для хранения текста, но при поиске будет учитываться регистр символов. К тому же, любой текстовый тип можно преобразовать в бинарный, указав модификатор BINARY:
VARCHAR(30) BINARY;
Таблица 10. Бинарные типы данных
Замечу, что бинарные данные не перекодируются "на лету", если установлена перекодировка символов.
Таблица 11. Дата и время
DATE и DATETIME - типы для хранения даты и даты с временем.
Другие типы данных MySQL рассматривать не имеет смысла, поскольку применение их в PHP нецелесообразно.
На самом деле, типов больше, но на данном этапе знакомства с БД нам и этого хватит. Рассмотрим вышеуказанную таблицу.
Очевидно, что для хранения ФИО и должности нам необходим тип VARCHAR длиной, скажем, 128 и 64 символа (с запасом) соответственно, для года рождения - тип INT, а для пола - тип CHAR(1).
Для теста попробуем создать и заполнить эту таблицу в phpMyAdmin. Введем в поле "Создать новую таблицу в БД multimedia" имя таблицы, например, "personal", а в "поля" число 4 - это количество полей и нажмем кнопку Пошел. В появившихся полях укажем названия и типы полей для нашей таблицы. Должно получиться так (рис. 8):
Рис. 8
Нажимаем Сохранить и создастся таблица (рис. 9):
Рис. 9
Теперь попробуем добавить строки (записи) в уже созданную нами таблицу. Для этого выберем созданную таблицу в левой части окна браузера и кликнем по закладке Вставить. Тогда появится форма добавления записи в таблицу (рис. 10):
Рис. 10
куда мы можем вводить значения полей добавляемой в таблицу строки.
Теперь мы научились работать с таблицами в phpMyAdmin, пришло время создать таблицу для нашего мультимедийного проекта. Как пример, создадим таблицу для MP3-файлов:
Имя файла (filename, VARCHAR(64))
Название песни (title, VARCHAR(64))
Битрейт (bitrate, INT)
Размер файла (filesize, INT)
Год (year, INT)
Создаем таблицу mp3 в базе данных (рис. 11):
Рис. 11
В дальнейшем мы научимся работать с этой таблицей при помощи языка SQL.
Продолжение следует…
© Владислав Демьянишин
Вы находитесь на официальном сайте Владислава Демьянишина - разработчика игры Dune IV (Dune 4). На нашем сайте Вы можете бесплатно скачать игры Dune IV (Dune 4), Battle City (Танчики с Dendy/Nintendo), читы к играм и многое другое. Также Вы можете скачать бесплатно программы и полезные утилиты. Все программы чистые, т.е. не содержат вирусов и иного вредоносного ПО.
Среди доступных программ есть мобильная читалка книг, менеджер переноса файлов с фото- и видеокамер на компьютер, текстовый редактор, WYSIWYG редактор, 3D аниматор, GIF аниматор, AVI аниматор, пакетный конвертор изображений, редактор электрических схем, программа для скриншотов, диспетчер тем рабочего стола и другие.
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на MIDLetPascal, Turbo Pascal 6, Turbo Pascal 7, Borland Pascal, по программированию устройств Sound Blaster, Adlib, VESA BIOS, справочник Norton Guide и много другой полезной информации для программистов, включая примеры решения реальных задач по созданию резидентных программ.
Журнал > Программирование > PHP и WEB для новичков (HTML, JavaScript, PHP, MySQL) > PHP и WEB для новичков (часть 8): Базы данных
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||