Что такое БД и с чем это едят?
БД (база данных) — наиболее удобный способ организации больших количсетв данных. Базами данных, являются, например, таблицы, сделанные в программе Excel (довольно примитивный пример).
Любая база данных состоит из таблиц. Таблица — это такая составляющая БД, которая хранит в себе данные объектов некоторого конкретного типа (например, таблица с информацией о работниках предприятия). БД обычно состоит из нескольких таблиц (например, таблица с работниками, таблица со специальностями, с описью инвентаря и так далее).
Таблица может содержать в себе неограниченное количество записей, которые должны ей соответствовать. У таблицы есть заголовки — в них описывается, какие данные хранятся в записях и какого они типа (например, фамилия, имя, номер договора, размер оклада и так далее).
Каждая запись таблицы содержит в себе данные, относящиеся к конкретным заголовкам (фамилия и имя конкретного сотрудника, его размер оклада и так далее).
При программировании на PHP часто используется СУБД (система управления базами данных) под названием MySQL. MySQL — СУБД, использующая для управления SQL (Structured Query Language, структурированный язык запросов) запросы. Запросы представляют из себя строку (а иногда несколько строк). Сейчас я расскажу о наиболее распространённых SQL–запросах. Мы научимся составлять такие запросы под свои нужды.
CREATE TABLE — запрос для создания таблицы
Данный запрос выглядит примерно так:
CREATE TABLE `название_таблицы` (
`колонка1` ТИП_ДАННЫХ (длина) КЛЮЧ1 КЛЮЧ2,
`колонка2` ТИП_ДАННЫХ (длина) КЛЮЧ1 КЛЮЧ2,
PRIMARY KEY (`ключевая_колонка`)
);
Название таблицы может быть любым, но должно состоять только из английских букв (иначе могут возникнуть проблемы с кодировками) и знаков подчёркивания.
Типы данных бывают разными, вот краткий неисчерпыавющий список типов данных
- VARCHAR — строковое значение
- INT — целочисленное значение
- TEXT — текстовое значение, длиннее, чем VARCHAR
- FLOAT — число с плавающей точкой
- DATETIME — дата и время
- BLOB — любой объект (то бишь файл)
Длину задавать необязательно. Задаётся в байтах.
Ключи — есть несколько ключей, позволяющих определить некоторые свойства значений в этих колонках:
- NOT NULL — значение не должно быть нулевым (то бишь пустым)
- AUTO_INCREMENT — значение будет увеличиваться на один каждый раз при добавлении новой записи.
PRIMARY KEY используется для задания ключевой колонки, по которой будет происходить индексация таблицы. Колонка должна иметь целочисленный тип данных и иметь ключ AUTO_INCREMENT.
Например, запрос
CREATE TABLE `users` (
`id` INT (11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR (30) NOT NULL,
`password` VARCHAR (30) NOT NULL,
PRIMARY KEY (`id`)
);
Создаст таблицу с колонками id, username и password. Колонка id будет ключевой.
INSERT INTO — запрос для вставки данных в таблицу
Вот примерный вид данного запроса:
INSERT INTO `название_таблицы` (`колонка1`, `колонка2`)
VALUES (‘значение_в_колонку1′, ‘значение_в_колонку2′);
Например, запрос
INSERT INTO `users` (`username`, `password`)
VALUES (‘john’, ‘doe’);
вставит в таблицу, созданную предыдущим запросом, запись с id = 1, с username “john” и password “doe”.
UPDATE — ззапрос для изменения данных в таблице
Вот как выглядит данный запрос:
UPDATE `название_таблицы`
SET `колонка1` = ‘новое значение в колонку 1′, `колонка2` = ‘новое значение в колонку 2′
WHERE логическое_выражение;
Запрос для примера:
UPDATE `users` SET `password` = ‘newjohnpass’ WHERE `id` = ’1′;
Логические выражения составляются так:
`название_колонки` логический_оператор ‘значение’
Логический оператор может быть:
- = (полное соответствие значения в колонке с указанным значением)
- != (несоответствие значения в колонке с указанным значением)
- LIKE (содержание в значении в колонке указанного значения)
Ну, и напоследок, запрос SELECT для получения информации из БД
А выглядит он так:
SELECT поле1, поле2 FROM название_таблицы WHERE логическое_условие LIMIT колво_записей;
Например, запрос для получения всех username’ов полльзователей из таблицы users будет выглядеть так:
SELECT username FROM users;
WHERE и LIMIT — необязательные добавления, опущены в предыдущем примере.
Кстати, вместо перечисления всех полей (если это нужно) используется знак звёздочки. Например:
SELECT * FROM users WHERE username = john LIMIT 1;
Данный пример отдаст всю информацию о пользователе с username’ом john из таблицы users.
На сегодня всё. Подведём итоги: сегодня мы познакомились с принципами работы БД и с основными SQL–запросами. В следующем уроке мы научимся применять полученные знания при программировании на PHP.

октября 29, 2008 at 12:34
Извиняюсь, что не по теме, но может подскажете где можно найти информацию по проектированию БД?
января 18, 2009 at 23:21
В Интернет, дружище. Можно начать с википедии, погуглить названия книг, а затем и сами книги…
Добавить комментарий
Вы должны войти