Начинаем работать с базами данных SQL

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

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

Онлайн-система учёта личных расходов будет хранить на сервере стоимость сделанных покупок и движения средств на счетах...

Все эти примеры объединяет одно: необходимость хранения данных на стороне сервера. Причём, данные в разных случаях имеют различную структуру, которая зависит от конкретного веб-приложения. Для решения задачи хранения данных на сервере в подавляющем большинстве случаев используются базы данных. Система, реализующая механизм работы с базами данных, называется Система Управления Базами Данных (СУБД, или DBMS, database management system). Для простоты пока будем рассматривать только так называемые реляционные базы данных.

Структура базы данных

Каждая база данных состоит из набора таблиц. Таблица - это набор записей, состоящих из некоторого набора полей. Все записи одной таблицы имеют одинаковый набор полей, задаваемый этой таблицей. Разные таблицы могут задавать разные наборы полей. У таблиц, как и у каждого поля в этих таблицах, есть свои имена. Имена таблиц уникальны в пределах одной базы данных, а имена полей уникальны в пределах таблицы, где эти поля находятся. Каждое поле таблицы имеет свой тип: например, целое число, текстовая строка, дата, и так далее.

Вот пример содержимого таблицы users, состоящей из трёх полей (id, login, password) и трёх записей:

users
idloginpassword
1admin123456
2alexalex123
3marfa409ghr

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

Механизм СУБД позволяет создавать и удалять таблицы. Содержимое таблиц также можно изменять: можно добавлять новые записи, изменять уже существующие, а также удалять записи из таблиц. Данные, хранящиеся в таблицах, можно извлекать при необходимости. В обязанности СУБД входит обеспечение максимальной скорости и производительности при операциях с таблицами и их содержимым.

Работа с базами данных из программ

Для любых действий с базой данных, как правило, используется специальный стандартный язык, который называется SQL (structured query language, язык структурированных запросов). Это достсточно простой язык, который позволяет выполнять все необходимые действия над базой данных, а это:

  • создание и удаление таблиц, а также изменение структуры таблиц;
  • добавление и изменение записей в таблицах, удаление записей;
  • выборка записей из таблиц.

Простой пример с таблицей users

Чтобы проиллюстрировать изложенное выше, предлагаю проделать это своими руками. Для этого нам понадобится база данных и инструмент, с помощью которого можно будет отправлять в базу запросы на языке SQL и наблюдать результат.

Для начала скачаем и установим: MySQL server - бесплатная версия самого популярного сервера баз данных, MySQL Workbench - инструмент для работы с базами данных. MySQL Workbench, кроме SQL-запросов, позволяет работать с базами данных и через графические представления: отображается структура таблиц, свойства полей и многое другое.

Когда сервер СУБД MySQL запущен и MySQL Workbench открыт, можно приступить к экспериментам. Для этого надо подключиться к базе данных по имени test, которая создаётся при установке сервера MySQL. Далее, для создания таблицы users со структурой, как приведено выше, будет достаточно такого SQL-запроса:

CREATE TABLE users (
  id INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(20),
  password VARCHAR(60)
)

Добавление записей в созданную таблицу выглядит так:

INSERT INTO users (name, password) VALUES ('admin', '123456');
INSERT INTO users (name, password) VALUES ('alex', 'alex123');
INSERT INTO users (name, password) VALUES ('marfa', '409ghr');

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

SELECT * FROM users WHERE name='alex'

на что сервер вернёт данные из таблицы:

'2', 'alex', 'alex123'

Более глубоко изучить возможности SQL Вы сможете в дальнейшем. Есть множество ресурсов, предоставляющих полное справочное руководство по языку SQL. В частности, справочник на сайте MySQL (правда, на английском языке) содержит наиболее полное описание языка, используемого в сервере MySQL.

Раздел:

Темы:

Комментарии