Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » Сoздание базы данных в&nb p;MySQL

 

Сoздание базы данных в&nb p;MySQL

 

 

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

загрузка...

 

 

Так как MySQL подчиняется стандарту ANSI SQL92, то описываемые SQL-команды можно использовать и в случае других серверов баз данных, не забывая, что они, возможно, используют другие диалекты SQL.

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

mysql> CREATE DATABASE catalog;

где catalog — имя вашей базы данных, которое мы будем использовать в дальнейшем. Использование прописных букв в командах SQL не является обязательным, но это облегчает их чтение и поиск ошибок в дальнейшем. Обратите внимание, что команды заканчиваются символом ";", который означает конец SQL-команды. С помощью команды

mysql> SHOW DATABASES;

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

mysql> USE catalog;

Команды SQL можно хранить в отдельном файле Можно и дальше вводить команды в строке приглашения программы-клиента, но на этапе создания и проектирования базы данных гораздо удобнее создать файл с командами SQL — например, create.sql — и передавать его на исполнение программе-клиенту:

% mysql < create.sql

Проанализируйте таблицы на избыточность Давайте попытаемся создать простую базу данных для каталога товара, который можно описать следующими характеристиками: наименование товара, категория товара, количество на складе, цена за единицу, страна-производитель. Можно добавить и другие характеристики, но всегда нужно анализировать, насколько они необходимы, и нельзя ли их вычислить на основе уже существующих данных. В представленных данных выделим такую характеристику, как «наименование товара», которую можно считать индивидуальной для каждого товара, все остальные так или иначе можно связать с этой характеристикой. Среди других характеристик можно выделить категорию и страну-производителя, связь которых с «наименованием» можно описать как «один ко многим». Если для каждого наименования товара записывать полностью категорию и страну-производителя, то во многих строках информация будет дублироваться (то есть будет избыточной). Есть смысл создать две дополнительные таблицы, где хранить информацию о странах и категориях. При дальнейшей разработке, если понадобится ввести дополнительные характеристики, привязанные к странам и категориям, то изменения надо будет внести только в эти таблицы. Таким образом, в нашей базе данных будет три таблицы — одна основная и две вспомогательных.

Первой командой в нашем файле будет команда выбора базы данных USE catalog;, а следующие за ней команды будут создавать таблицы. Начнем с создания вспомогательных таблиц, чтобы при создании основной таблицы нам было на что ссылаться. Создать таблицу можно с помощью команды CREATE TABLE, но так как, скорее всего, мы будем запускать наш файл несколько раз, пока не создадим оптимальную структуры, то второй командой мы сначала проверим существование таблиц и удалим их в случае необходимости:

DROP TABLE IF EXISTS countries, categories, items;

где countries, categories, items — имена таблиц, которые мы будем создавать.

Теперь мы можем создавать необходимые нам таблицы и начнем со стран:

CREATE TABLE IF NOT EXISTS countries (
country_id TINYINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
country_name VARCHAR(100) NOT NULL
);

Ключевые поля обеспечивают уникальность В команде создания таблице условно можно выделить несколько частей — саму команду на создание таблицы CREATE TABLE, проверку не-существования таблицы IF NOT EXISTS, название таблицы countries и в скобках — перечисление полей с их описанием. В описании полей на первом месте стоит его имя, а за ним — служебные слова, описывающие его; поля отделяются друг от друга запятыми. Название страны будет храниться в поле country_name, которое мы описали как VARCHAR(100), то есть символьное, длиной не более 100 символов; NOT NULL — означает, что отсутствовать значение у этого поля не может. Не путайте отсутствие значения — NULL, и значение поля — пустая строка «»: в действительности, возможность поля приобретать значение NULL ему нужна редко — например, она могла бы понадобиться в поле «дата смерти», когда надо как-то отобразить, что ее нет. Но у нас есть еще одно поле — country_id, описание которого гораздо сложнее, и информационного смысла для человека оно не несет. Это поле обеспечивает уникальность каждой записи в таблице, что позволяет точно ссылаться на каждую ее строку. Это поле, очевидно, должно быть описанием NOT NULL, ведь в поле, обеспечивающем уникальность, значение не может отсутствовать. Уникальность легко обеспечить, если каждое поле будет иметь разные числовые идентификаторы, поэтому мы описали его как TINYINT, то есть целочисленное поле с самым малым диапазоном, потому как количество стран вряд ли будет превышать число 256. Описанием UNSIGNED мы указываем, что нам будут не нужны отрицательные целые значения, и за счет этого мы увеличиваем диапазон значений больше нуля (если не указать, то диапазон значений будет от -128 до 127). Но что действительно обеспечивает нам уникальность этого поля, так это ключевое слово AUTO_INCREMENT. При добавлении каждой новой записи в таблицу значение поля с таким описанием устанавливается автоматически, увеличиваясь после занесения каждой записи на единицу. Так как именно это поле обеспечивает нам уникальность, то с помощью ключевого слова PRIMARY KEY мы определяем его как первичный ключ, и именно по нему будет осуществляться сортировка по умолчанию.

Теперь, когда есть таблица для стран, можно занести некоторые значения в нее, и следующей нашей командой будет INSERT — команда добавления строки в таблицу:

INSERT INTO countries (country_name) VALUES ("Россия"), ("Германия"), ("Франция");

Эта команда состоит из самой команды INSERT (вставить), указания, куда INTO countries, списка полей (countries) – если полей больше одного, они перечисляются через запятые — и значений, которые нужно вставить в строки таблицы, которые идут после VALUES; в скобках указываются значения для отдельных строк, строки перечисляются через запятые. Обратите внимание, что мы задаем только одно поле, значения для поля country_id будут устанавливаться автоматически. Таким же образом можно создать таблицу с категориями товара, только диапазон значений для уникального ключа зададим больше:

CREATE TABLE IF NOT EXISTS categories (
category_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
category_name VARCHAR(150) NOT NULL
); INSERT INTO categories (category_name) values ("Химия"), ("Игрушки"), ("Инструменты");

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

CREATE TABLE IF NOT EXISTS items (
item_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
item_name VARCHAR(255) NOT NULL,
category_id SMALLINT UNSIGNED NOT NULL,
item_price DECIMAL(6,2) NOT NULL,
item_quantity MEDIUMINT UNSIGNED NOT NULL,
country_id TINYINT UNSIGNED NOT NULL
);

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

INSERT INTO items (item_name, category_id, item_price, item_quantity, country_id)
values ("Порошок", 1, 36.50, 284, 2), ("Кукла", 2, 149.99, 5, 1),
("Молоток", 3, 90.00, 500, 3);

Свести данные в одну таблицу очень легко База данных товара у нас создана. Но как теперь получить всю информацию о товаре, ведь она хранится в разных таблицах? Для проверки правильности ссылок в нашей базе данных последней командой в нашем файле можно сделать SQL-запрос, который легко выведет всю необходимую информацию:

SELECT i.item_name AS Name, cat.category_name AS Category, i.item_price AS Price,
i.item_quantity AS Quantity, c.country_name AS Country
FROM items AS i, categories AS cat, countries AS c
WHERE cat.category_id = i.category_id AND c.country_id = i.country_id;

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

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

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "Сoздание базы данных в&nb p;MySQL":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Комментарии (1)

Некит, 15 июля 2011, 21:27

Наконец-то нашел адекватный мануал по Create table. Респектоз!

ответить

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

База данных Google стоит перед угрозой безопасности

У Google одна из крупнейших баз данных в мире. Стоит задать себе вопрос: как Google собирается распорядиться таким объемом информации? К тому же, достаточно много информации носит личный и конфиденциальный характер.

» Продвижение и оптимизация - 2262 - читать


Храните информацию в&nb p;базах данных

Когда у нас возникает желание создать собственный сайт, да еще и собственными руками, то мы проходим обычно несколько этапов: сначала используем простую верстку HTML, добавляем графические элементы, подключаем таблицы стилей CSS, создаем какие-то динамические элементы, пробуем ввести диалог с пользователем, экспериментируя с JavaScript, узнаем о существовании серверных языков программирования, пытаемся создавать свои шаблоны для сайта, изучаем различные системы управления кон ...

» Интересное в сети - 2352 - читать


Регламентное обслуживание базы данных MySQL

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

» Интересное в сети - 3436 - читать


В продажу поступила новая база данных о банковских проводках

"Ведомости" / Роман Дорохов Алексей Никольский Екатерина Дербилова Борис Сафронов Ни проведенное Центробанком расследование, ни возмущение депутатов не предотвратили появление в продаже новой базы данных о банковских проводках. Недавно злоумышленники начали продавать информацию за IV квартал 2004 г. Информация о платежах, проведенных банками через расчетно-кассовые центры (РКЦ) Центробанка, впервые поступила в массовую продажу в феврале.

» Банки и кредиты - 2412 - читать


Корпоративная база данных: вопросы разработки и внедрения

Максименко Юрий Эта статья написана для руководителей проектов, а также программистов, получивших заказ на базу данных. Поводом к статье послужили многочисленные вопросы, задаваемые на форумах и мне персонально по электронной почте: как договариваться с начальством о сроках? О цене?

» Безопасность бизнеса - 2298 - читать



Статья на тему Интернет » Интересное в сети » Сoздание базы данных в&nb p;MySQL

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru