http://sulfurzona.ru/
News
Service
Magazine
Software (Battle City Game, Wallpaper manager, Superpad, VG-NOW, Puzzle Game, Netler Internet Browser, ..)
Wing-Thunder Game (fly simulator)
Dune Game (Dune III, Dune IV, Cheats, Forum, ..)
Games free
Turbo Pascal (Assembler, Docs, Sources, Debbugers, ..)
Books (Docs for developers)
Guest book
Компьютерная диагностика двигателя автомобиля (адаптер К-линии)Компьютерная диагностика двигателя автомобиля (адаптер К-линии)
 
 
Скачать игру Крыло-Гром (Wing-Thunder) бесплатно
 
 

PHP и WEB для новичков (часть 8)

 

Базы данных

 
Автор: Владислав Демьянишин
 
PHP и WEB для новичковРанее, когда я рассказывал о работе с файлами, мы рассматривали их как средство для хранения данных. В большинстве случаев хранить данные в файлах действительно удобно, особенно, если это сайты документации, библиотеки, контент-сайты вроде простых блогов, простенькие гостевые книги и т.д.
 
Но существуют куда более сложные случаи, где данные необходимо структурировать (разбивать на однотипные части), сортировать, быстро находить по многим условиям, добавлять, удалять, изменять. Как пример - форумы, чаты, магазины, порталы, поисковые системы и др. Тут для хранения данных целесообразнее использовать базы данных (БД).
 
Поскольку с этого момента мы начинаем разработку практического проекта, то далее все примеры будут касаться именно его. Для начала создадим базу данных.
Если у вас web-сервер (Денвер, можно скачать тут: http://www.denwer.ru/base.html или старая ссылка http://dklab.ru/chicken/web/base.html размер 5.7 Мб) уже запущен, то в строке адреса в браузере набираем строку http://localhost/phpMyAdmin и видим страницу системы управления базами данных phpMyAdmin (рис. 5). Рекомендую для этого адреса сделать ярлык - он нам еще не раз пригодится.
 
PHP и WEB для новичков (часть 8): Базы данных 
Рис. 5
 
Чтобы создать новую базу данных введем ее название "multimedia" в поле и кликнем на кнопке Создать. Тогда получим следующий ответ (рис. 6):
 
PHP и WEB для новичков (часть 8): Базы данных
Рис. 6
 
Это означает, что база успешно создана, но она пуста и не содержит ни одной таблицы. Теперь немного о том, что представляет собой база данных и сервер баз данных.
 
База данных - совокупность упорядоченной информации. Она содержит структурированные данные, разбитые на таблицы. Каждая таблица содержит строки с данными определенной структуры. Т.е. каждая строка таблицы состоит из нескольких полей.
Сервер баз данных выполняет операции с базами данных: создание, удаление, разграничение прав доступа к базам. Доступны операции и над таблицами: создание, удаление, редактирование структуры таблиц, поиск по одной или нескольким таблицам, вставка строк в таблицу, удаление строк, редактирование данных.
 
Все эти операции выполняются при помощи языка SQL (Structured Query Language - структурированный язык запросов). Он обеспечивает стандартный способ запросов к серверу баз данных. Это достаточно простой язык, и мы его быстро выучим.
Поскольку на серверах Apache применяется сервер баз данных MySQL, будем говорить именно о нем.
 

Таблицы

 
Поскольку мы еще не знаем SQL, то разбираться будем, пользуясь phpMyAdmin. Запустим phpMyAdmin: http://localhost/phpMyAdmin (разумеется, если Денвер уже запущен). Перейдем к созданной нами ранее базе multimedia (база выбирается в списке слева в окне, рис. 7) .
 
PHP и WEB для новичков (часть 8): Базы данных
Рис. 7
 
После перехода к этой базе нам предложат создать таблицы. Давайте разберемся, что такое таблицы и какие таблицы нам нужны для проекта.
Таблицы - это упорядоченные данные в виде строк и полей в этих строках. Каждая строка (еще ее называют записью) имеет определенное число полей, постоянное для всех строк данной таблицы. Например (см. таблицу 6):
 
Таблица 6.
ФИО год рождения Пол должность
Иванов Иван Кузьмич 1967 М директор
Петрова Ирина Сергеевна 1972 Ж офис-менеджер
Сидорова Василиса Григорьевна 1975 Ж бухгалтер
 
Эта таблица состоит из трех строк, каждая из которых имеет четыре поля: ФИО, год рождения, пол и должность. Каждое поле имеет свой тип. Типы в SQL отличаются от типов PHP, поэтому рассмотрим основные типы, с которыми будем иметь дело дальше.
 

Поля и их типы в MySQL

 
База данных с точки зрения MySQL (и некоторых других СУБД) - это обыкновенный каталог, содержащий двоичные файлы определенного формата - таблицы. Таблицы состоят из записей, а записи, в свою очередь, состоят из полей. Поле имеет два атрибута - имя и тип. Тип поля может быть:
  • Целым;
  • Вещественным;
  • Строковым;
  • Бинарным;
  • Дата и время;
  • Перечисления и множества.
Возможные типы данных, диапазоны и описания представлены в последующих таблицах 7, 8, 9, 10 и 11.
 
Таблица 7. Целочисленные типы данных
Тип Диапазон значений
TINYINT -128...+127
SMALLINT -32768...+32767
MEDIUMINT -8 388 608...+8 388 607
INT -2 147 483 648...+2 147 483 647
BIGINT -9 223 372 036 854 775 808...+9 223 372 036 854 775 807
 
INT - обычное целое число. Для большинства задач и индексирования записей вполне достаточно типа INT.
Вещественные типы записываются в виде:
 
ТИП (длина, знаки) [UNSIGNED]
 
где, длина - это количество знакомест, в которых будет размещено все число при его передаче, а знаки - это количество знаков после десятичной точки, которые будут учитываться. Если указан модификатор UNSIGNED, знак числа учитываться не будет.
FLOAT - обычное число с плавающей точкой (вещественное или дробное);
DECIMAL (синоним NUMERIC) - тип данных используется для хранения величин, для которых важно сохранить повышенную точность, например для денежных данных.
 
Например, DECIMAL (5,2), где 5 - (точность) представляет собой общее количество значащих десятичных знаков, с которыми будет храниться данная величина, а цифра 2 - (масштаб) задает количество десятичных знаков после запятой.
 
Следовательно, в этом случае интервал величин, которые могут храниться в поле такого типа, составляет от -99,99 до 99,99. В действительности для данного столбца MySQL обеспечивает возможность хранения чисел вплоть до 999,99, поскольку можно не хранить знак для положительных чисел.
 
Таблица 8. Вещественные числа
Тип Описание
FLOAT Небольшая точность
DOUBLE Двойная точность
REAL То же, что и DOUBLE
DECIMAL
Дробное число, хранящееся в виде строки
NUMERIC То же, что и DECIMAL
 
Любая строка - это массив символов. При поиске с помощью оператора SELECT (мы рассмотрим его далее) не учитывается регистр символов: строки "HELLO" и "Hello" считаются одинаковыми.
Можно настроить MySQL на автоматическое перекодирование символов - в этом случае в базе данных строки будут храниться в одной кодировке, а выводиться - в другой.
 
VARCHAR - строка текста переменной длины. Максимальная длина строки указывается в круглых скобках после слова VARCHAR, например, VARCHAR(32).
CHAR - строка текста фиксированной длины. Длина указывается в круглых скобках, например, CHAR(32). Максимальная длина 255 символов.
Максимальная длина такого поля не может быть больше 255 и при записи длинная строка урезается до указанной длины. В большинстве случаев применяется тип VARCHAR или просто CHAR.
 
TEXT - строка текста большой длины (до 64 Кб, т.е. 65536 знаков). Если 255 символов для вашей задачи недостаточно, можно использовать другие типы, например, TEXT.
Бывают случаи, когда в БД необходимо хранить очень большие документы, например, веб-страницы, содержащие кроме текста еще и HTML-теги гипертекстовой разметки, увеличивающие общую длину текста в записи в разы.
 
Поэтому, для большинства задач рекомендую применять тип MEDIUMTEXT. Тогда не столкнетесь в один прекрасный момент с проблемой, когда большая статья сохранилась в БД не полностью. Поверьте мне, в конце концов вы с этим столкнетесь.
 
Таблица 9. Строки
Тип Описание
TINYTEXT Максимальная длина 255 символов
TEXT Максимальная длина 65535 символов (64 Кб)
MEDIUMTEXT Максимальная длина 16 777 215 символов
LONGTEXT Максимальная длина 4 294 967 295 символов
 
Бинарные типы данных также можно использовать для хранения текста, но при поиске будет учитываться регистр символов. К тому же, любой текстовый тип можно преобразовать в бинарный, указав модификатор BINARY:
 
VARCHAR(30) BINARY;
 
Таблица 10. Бинарные типы данных
Тип Описание
TINYBLOB Максимум 255 символов
BLOB Максимум 65535 символов
MEDIUMBLOB Максимум 16 777 215 символов
LONGBLOB Максимум 4 294 967 295
 
Замечу, что бинарные данные не перекодируются "на лету", если установлена перекодировка символов.
 
Таблица 11. Дата и время
Тип Описание
DATE Дата в формате ГГГ-ММ-ДД
TIME Время в формате ЧЧ:ММ:СС
TIMESTAMP Дата и время в формате timestamp, выводится в виде ГГГГММДДЧЧММСС
DATETIME Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС
 
DATE и DATETIME - типы для хранения даты и даты с временем.
 
Другие типы данных MySQL рассматривать не имеет смысла, поскольку применение их в PHP нецелесообразно.
На самом деле, типов больше, но на данном этапе знакомства с БД нам и этого хватит. Рассмотрим вышеуказанную таблицу.
Очевидно, что для хранения ФИО и должности нам необходим тип VARCHAR длиной, скажем, 128 и 64 символа (с запасом) соответственно, для года рождения - тип INT, а для пола - тип CHAR(1).
 
Для теста попробуем создать и заполнить эту таблицу в phpMyAdmin. Введем в поле "Создать новую таблицу в БД multimedia" имя таблицы, например, "personal", а в "поля" число 4 - это количество полей и нажмем кнопку Пошел. В появившихся полях укажем названия и типы полей для нашей таблицы. Должно получиться так (рис. 8):
 
PHP и WEB для новичков (часть 8): Базы данных
Рис. 8
 
Нажимаем Сохранить и создастся таблица (рис. 9):
 
PHP и WEB для новичков (часть 8): Базы данных
Рис. 9
 
Теперь попробуем добавить строки (записи) в уже созданную нами таблицу. Для этого выберем созданную таблицу в левой части окна браузера и кликнем по закладке Вставить. Тогда появится форма добавления записи в таблицу (рис. 10):
 
PHP и WEB для новичков (часть 8): Базы данных
Рис. 10
 
куда мы можем вводить значения полей добавляемой в таблицу строки.
Теперь мы научились работать с таблицами в phpMyAdmin, пришло время создать таблицу для нашего мультимедийного проекта. Как пример, создадим таблицу для MP3-файлов:
 
Имя файла (filename, VARCHAR(64))
Название песни (title, VARCHAR(64))
Битрейт (bitrate, INT)
Размер файла (filesize, INT)
Год (year, INT)
 
Создаем таблицу mp3 в базе данных (рис. 11):
 
PHP и WEB для новичков (часть 8): Базы данных
Рис. 11
 
В дальнейшем мы научимся работать с этой таблицей при помощи языка SQL.
 
Продолжение следует…
 
© Владислав Демьянишин
 
 
На нашем сайте можно не только бесплатно скачать игры, но и документацию и книги по программированию на 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): Базы данных
 
 
 
 
 
 
На главную страницу На предыдущую страницу На начало страницы