Современные представления о функциональной

MySQL

MySQL - это популярная система управления базами данных (СУБД), очень часто применяемая в сочетании с PHP.

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

Схема "Клиент-сервер"

трехуровневая структура: базы данных — таблицы — записи.

Тип поля может быть:

- Целым;

- Вещественным;

- Строковым;

- Бинарным;

- Дата и время;

- Перечисления и множества.

Возможные типы данных, диапазоны и описания представлены в последующих таблицах:

Целочисленные типы данных

Тип Диапазон

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

Вещественные числа

Тип Описание

FLOAT Небольшая точность

DOUBLE Двойная точность

REAL То же, что и DOUBLE

DECIMAL Дробное число, хранящееся в виде строки

NUMERIC То же, что и DECIMAL

Строки

Любая строка - это массив символов. При поиске с помощью оператора SELECT (мы рассмотрим его далее) не учитывается регистр символов: строки "HELLO" и "Hello" считаются одинаковыми. Можно настроить MySQL на автоматическое перекодирование символов - в этом случае в базе данных строки будут храниться в одной кодировке, а выводиться - в другой. В большинстве случаев применяется тип VARCHAR или просто CHAR, позволяющий хранить строки, содержащие до 255 символов. В скобках после типа указывается длина строки:

VARCHAR(48); CHAR(73);

Тип Описание

TINYTEXT Максимальная длина 255 символов

TEXT Максимальная длина 65535 символов (64 Кб)

MEDIUMTEXT Максимальная длина 16 777 215 символов

LONGTEXT Максимальная длина 4 294 967 295 символов

Бинарные типы данных

Бинарные типы данных также можно использовать для хранения текста, но при поиске будет учитываться регистр символов. К тому же, любой текстовый тип можно преобразовать в бинарный, указав модификатор BINARY:

VARCHAR(30) BINARY;

Тип Описание

TINYBLOB Максимум 255 символов

BLOB Максимум 65535 символов

MEDIUMBLOB Максимум 16 777 215 символов

LONGBLOB Максимум 4 294 967 295

Примечание: Бинарные данные не перекодируются "на лету", если установлена перекодировка символов.

Дата и время

Тип Описание

DATE Дата в формате ГГГ-ММ-ДД

TIME Время в формате ЧЧ:ММ:СС

TIMESTAMP Дата и время в формате timestamp, ГГГГММДДЧЧММСС

DATETIME Дата и время в формате ГГГГ-ММ-ДД ЧЧ:ММ:СС

CREATE TABLE Имя_таблицы (

Имя_поля1 Тип Модификатор

...

Имя_поляN Тип Модификатор

)

Модификаторы:

NOT NULL

PRIMARY KEY

AUTO_INCREMENT

DEFAULT

INSERT INTO Имя_таблицы [(Список полей)] VALUES (Список констант);

Если список полей не задан, то берутся все поля в том порядке, как они указаны при создании таблицы

UPDATE Имя_таблицы SET Поле1 = Значение1,..., ПолеN = ЗначениеN

[WHERE Условие];

DELETE FROM Имя_таблицы WHERE Условие;

SELECT [DISTINCT|ALL] {*| [поле1 AS псевдоним] [,..., полеN AS псевдоним]}

FROM Имя_таблицы1 [,..., Имя_таблицыN]

[WHERE условие]

[GROUP BY список_полей] [HAVING условие]

[ORDER BY список_полей порядок_сортировки]

дистинкт - без повторов

Будем рассматривать оригинальное АПИ. Сейчас рекомендуется к использованию усовершенствованная версия, mysqli. Реализайция - одноименный класс, функции для работы с БД объявлены как его методы. Для большинства доступны псевдонимы с аналогичными именами (как оригинальные функции), но mysqli_

resource mysql_connect ([string $hostname] [, string $user] [, sting $password]); - создает соединение

bool mysql_select_db (string database_name [, resource link_identifier]); - выбор БД. Тут и далее, если не указан ид подключение, используется последнее открытое

int mysql_errno ([resource link_identifier]) - код последней выполненной функции работы с БД. 0 если успешно

string mysql_error ([resource link_identifier]) - текст сообщения об ошибке ---//---

resource mysql_query (string query [, resource link_identifier]) - выполнение запроса. Строка запроса НЕ должна заканчиваться точкой с запятой. Для запросов не возвращающих данных возвращается тру или фолс.

bool mysql_close ([ resource $link_identifier = NULL ]) - закрытие соединения

Функции для обработки результатов запроса:

mixed mysql_result (resource result, int row [, mixed field]) - возвращает значение 1 ячейки результата запроса. неэффективно. Аргументом поля может быть смещение,

имя поля, или имя поля и имя таблицы через точку (tablename.fieldname).

array mysql_fetch_array (resource result [, int result_type]) - Возвращает ассоциативный массив с обработанным рядом результата запроса, или FALSE, если рядов больше нет. result_type - тип индексирования в массиве: MYSQL_NUM, MYSQL_ASSOC, MYSQL_BOTH (по-умолчанию)

<?php

mysql_connect("localhost", "mysql_user", "mysql_password")

or die("Could not connect: ". mysql_error());

mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)){

printf ("ID: %s Name: %s", $row['id'], $row['name']);

}

mysql_free_result($result);

?>

array mysql_fetch_row (resource result) - аналог, но возвращает неассоциативный массив (MYSQL_NUM). индекс начинается с 0

array mysql_fetch_assoc (resource result) - еще 1 аналог, но с ассоциативным массивом (MYSQL_ASSOC)

object mysql_fetch_object (resource result) - преобразует в объект

int mysql_num_rows (resource result) - Возвращает количество рядов результата запроса

int mysql_num_fields (resource result) - Возвращает количество полей результата запроса


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: