Основы языка SQL и работа в phpMyAdmin
Язык SQL работает с текстовыми запросами к БД. Запросы строятся с помощью операторов, которые будут рассмотрены далее. Кроме того, в среде phpMyAdmin можно отправлять запросы к базе данных, используя визуальный интерфейс.
Типы данных
Для начала отметим, что один столбец в таблице может хранить информацию одного определенного типа.
MySQL поддерживает несколько типов данных, которые можно разделить на три группы: числовые данные, дата и время, строковые данные.
Информация от типах данных MySQL представлена в таблице 14.
Таблица 14 – Типы данных MySQL
Тип данных
| Определение
| Диапазоны
|
TINYINT
| Очень маленькое целое число
| Диапазон числа со знаком от –128 до 127. Диапазон числа без знака (unsigned) от 0 до 255.
|
SMALLINT
| Маленькое целое число
| Диапазон числа со знаком от –32768 до 32767. Диапазон числа без знака (unsigned) от 0 до 65535.
|
MEDIUMINT
| Среднее целое число
| Диапазон числа со знаком от –8388608 до 8388607. Диапазон числа без знака (unsigned) от 0 до 16777215.
|
INT/INTEGER
| Целое число
| Диапазон числа со знаком от –2147483648 до 2147483647. Диапазон числа без знака (unsigned) от 0 до 4294967295.
|
BIGINT
| Большое целое число
| Диапазон числа со знаком от –9223372036854775808 до 9223372036854775807. Диапазон числа без знака (unsigned) от 0 до 18446744073709551615.
|
FLOAT
| Малое (одинарной точности) число с плавающей запятой. Не может быть числом без знака
| Диапазоны от –3.402823466E+38 до –1.175494351E-38, 0 и 1.175494351E-38 до 3.402823466E+38. Если количество знаков после запятой не установлено или <= 24 это число с плавающей запятой одинарной точности.
|
DOUBLE, DOUBLE PRECISION, REAL
| Нормальное (двойной точности) число с плавающей запятой. Не может быть числом без знака
| Диапазоны от -1.7976931348623157E+308 до -2.2250738585072014E-308, 0 и 2.2250738585072014E-308 до 1.7976931348623157E+308. Если количество знаков после запятой не установлено или 25 <= количество знаков <= 53 означает число с плавающей запятой двойной точности.
|
DECIMAL, NUMERIC
| Распакованное число с плавающей запятой
| Работает подобно типу данных CHAR: «распакованный» означает, что число хранится в виде строки, используя один символ для каждой цифры-значения. Символ десятичной запятой и символ отрицательного числа "-" не учитывается в длину. Если десятичное значение равно 0, значение не будет иметь десятичной запятой или дробной части. Максимальный размер для DECIMAL значение такое же, как и для DOUBLE, но фактический диапазон для данного столбца DECIMAL может быть ограничен в выборе длины и десятичные дроби.
|
DATE
| Дата
| Дата в диапазоне от «1000-01-01» до «9999-12-31». MySQL хранит поле типа DATE в виде «YYYY-MM-DD» (ГГГГ-ММ-ДД).
|
DATETIME
| Дата и время
| Допустимые диапазоны от «1000-01-01 00:00:00» до «9999-12-31 23:59:59». MySQL хранит поле типа DATETIME в виде «YYYY-MM-DD HH:MM:SS» (ГГГГ-ММ-ДД ЧЧ-ММ-СС).
|
TIMESTAMP
| Дата и время
| Диапазон от «1970-01-01 00:00:00» до, примерно, 2037 года. MySQL может хранить поле типа TIMESTAMP в видах «YYYYMMDDHHMMSS» (TIMESTAMP(14)), «YYMMDDHHMMSS» (TIMESTAMP(12)), «YYYYMMDD» (TIMESTAMP(8)) и др.
|
TIME
| Время
| Диапазон от «-838:59:59» до «838:59:59». MySQL хранит поле TIME в виде «HH:MM:SS», но позволяет присваивать значения столбцам TIME с использованием либо строки или числа.
|
YEAR
| Год в 2- или 4-х цифровом виде (4 цифры по-умолчанию)
| Если вы используете 4 цифры, то допустимые значения 1901-2155, и 0000. Если 2 цифры, то 1970-2069 (70-69). MySQL хранит значения поля YEAR в формате «YYYY».
|
CHAR
| Строка фиксированной длины, которая справа дополняются пробелами до указанной длины, при хранении
| Диапазон длины от 1 до 255 символов. Завершающие пробелы удаляются, когда значение извлекается. Значения CHAR сортируются и сравниваются без учета регистра в зависимости от кодировки по умолчанию, если не установлен флаг BINARY.
|
VARCHAR
| Строка переменной длины. Примечание: конечные пробелы удаляются при сохранении (в отличие от спецификации ANSI SQL).
| Диапазон длины от 1 до 255 символов. Значения VARCHAR сортируются и сравниваются без учета регистра, если не установлен флаг BINARY.
|
TINYBLOB, TINYTEXT
| | BLOB или ТЕХТ с максимальной длиной 255 (2^8 - 1) символов.
|
BLOB, TEXT
| | BLOB или ТЕХТ с максимальной длиной 65535 (2^16 - 1) символов.
|
MEDIUMBLOB, MEDIUMTEXT
| | BLOB или ТЕХТ с максимальной длиной 16777215 (2^24 - 1) символов.
|
LONGBLOB, LONGTEXT
| | BLOB или ТЕХТ с максимальной длиной 4294967295 (2^32 - 1) символов.
|
ENUM
| Перечисление
| Строка-объект, который может принимать только одно значение, выбирается из списка значений «значение 1», «значение 2» или NULL. ENUM максимум может иметь 65535 различных значений.
|
SET
| Набор
| Строка-объект, который может принимать ноль и более значений, каждоу из которых должно быть выбрано из списка значений «значение 1», «значение 2», … Поле SET может иметь максимум 64 варианта значений.
|
Создание базы данных
Для создания базы данных используется запрос следующего вида, где db_name – имя новой базы данных:
CREATE DATABASE [IF NOT EXISTS] db_name;
Создадим базу данных mysite, в которой будем хранить информацию для нашего сайта из предыдущих примеров.
Для того, чтобы в phpMyAdmin использовать язык SQL, необходимо выбрать вкладку «SQL», как показано на рисунке 161. Вводим запрос и нажимаем «Вперед». Результат выполнения данного действия показан на рисунке 162.
Чтобы создать базу данных с помощью визуального интерфейса, необходимо в левом меню выбрать пункт «Создать БД», затем ввести название в текстовое поле, выбрать кодировку и нажать «Создать», как изображено на рисунке 163. Результат этих действий не отличается от результата выполнения запроса.
Рисунок 161 – Запрос на создание БД
Рисунок 162 – Результат выполнения запроса на создание БД
Рисунок 163 – Создание БД с помощью визуального интерфейса
Удаление базы данных
Для удаления базы данных используется запрос следующего вида, где db_name – имя базы данных:
DROP DATABASE [IF EXISTS] db_name;
Пример показан на рисунке 164:
Рисунок 164 – Запрос на удаление БД
Для удаления с помощью визуального интерфейса выберем нужную базу данных и нажмем «Удалить», как показано на рисунке 165.
Рисунок 165– Удаление БД с помощью визуального интерфейса
Создание таблиц
Синтаксис запроса на создание таблицы:
CREATE TABLE table_name
(
column_name1 data_type (size),
column_name2 data_type (size),
column_name3 data_type (size),
....
);
table_name – имя таблицы
column_name1,2… и data_type (size)- названия столбцов и их тип данных с указанием размера.
Создадим таблицу, в которой будем хранить названия разделов нашего сайта. В ней будет два столбца: id - идентификатор типа данных int и name - название типа данных varchar с ограничением по длине 20. Запрос показан на рисунке 166:
Рисунок 166 – Запрос на создание таблицы
Результат выполнения запроса показан на рисунке 167.
Рисунок 167 – Результат выполнения запроса на создание таблицы
Для того, чтобы создать таблицу с помощью phpMyAdmin, откроем нашу базу данных и выберем вкладку «Структура». Введем название таблицы и выберем количество столбцов. Назовем таблицу content, в ней будет храниться содержимое страниц нашего сайта. После этого нажимаем «Вперед», как изображено на рисунке 168.
Рисунок 168 - Создание таблицы c помощью визуального интерфейса
Открылось окно интерфейса для создания табличных столбцов.
В таблице content будет четыре столбца: id - идентификатор, header - заголовок, content - собственно содержание и pages_id - поле для связи с таблицей pages. На рисунке 169 показано окно интерфейса для создания столбцов.
Рисунок 169 - Создание таблицы c помощью визуального интерфейса
Следует обратить внимание на особенности создания индексов. Поле id является первичным ключом, поэтомудля него необходимо установить индекс PRIMARY, как показано на рисунке 170.
Рисунок 170 – Создание Первичного ключа
Для поля pages_id необходимо создать обычный индекс, он будет использоваться при создании внешнего ключа (см. рисунок171).
Рисунок 171 – Создание индекса для Вторичного ключа
Для поля id отмечаем A_I – автоинкремент (автоматическое увиличение на единицу при создании новой записи) и нажимаем «Сохранить». Результат создания таблицы видим на рисунке 172.
Рисунок 172 – Таблица content
Воспользуйтесь поиском по сайту: