СУБД MySQL .

MySQL – клиент-серверная система управления реляционными базами данных, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов. Разработкой и сопровождением системы занимается компания MySQL AB (Швеция, David Axmark).

Характеристики СУБД

  1. SQL СУБД (реляционная), быстрая, но не оптимизированная под поиска и добавления, если предстоят частые изменения.
  2. Стандарты : entry level SQL92, ODBC levels 0-2.
  3. Лицензия - GPL / LGPL . Для хостинга лицензия не нужна.
  4. Написана на C и C ++. Базовая платформа: Solaris 2.7-2.8, SuSE Linux 7.1 (ядро 2.4, ReiserFS ), но работает также в других ОС.
  5. Многопотоковая.
  6. API для C , C ++, Java , Eiffel , Perl , PHP , Python , и др.
  7. Парольная защита.
  8. Таблицы в виде B - tree со сжатием индекса. До 32 индексов на таблицу. До 16 колонок на индекс.
  9. По умолчанию MySQL -таблицы имеют максимальный размер около 4 Гб.
  10. Записи переменной длины. Есть примеры использования MySQL с 60000 таблиц и 5 миллиардами строк.
  11. Поддержка koi 8- r и cp 1251 (сортировка, сравнение и т.д.).
  12. Клиенты могут соединяться по TCP / IP (можно использовать только, если никто не подслушивает) или Unix socket

Имеются расширения к ANSI SQL 92.

Отсутствующие возможности ANSI SQL 92:

  1. Вложенные подзапросы
  2. хранимые процедуры и тригеры (тригеры не планируются совсем)
  3. Внешние ключи
  4. Представления

Основные модули СУБД

  1. mysql – клиентская часть СУБД. Она обеспечивает интерфейс командной строки с СУБД MySQL, и возможность неинтерактивной пакетной обработки.
  2. m ysqlaccess – используется, чтобы внести в список привилегии пользователя для конкретной базы данных. Это дает информацию, которая может быть полезна при диагностировании проблем с доступом пользователей к данной базе данных.
  3. mysqladmin – выполняет административные функции. Данная команда может использоваться для создания баз данных,изменения пароля пользователя (администратор может изменить пароль любому пользователю, а рядовой пользователь – только свой собственный), перезагрузки и остановки сервера, просмотра списка процессов, запущенных на сервере.
  4. mysqld – программа является ядром СУБД MySQL . Она запускается как демон в системе и принимает подключения из клиентских программ, выполняя запросы и возвращая результаты. Она многопоточная, то есть обработает больше чем один запрос одновременно.
  5. mysqldump – программа используется для создания дампа содержания базы данных MySQL. Она пишет инструкции SQL в стандартный вывод. Эти инструкции SQL могут быть переназначены в файл. Можно резервировать базу данных MySQL, используя mysqldump, но при этом Вы должны убедиться, что в этот момент с базой данных не выполняется никаких других действий.
  6. mysqlshow – программа может использоваться, чтобы показать, с какими базами данных MySQL работает, какие таблицы данная база данных содержит, и какие поля есть в таблице в данной базе данных.

Типы данных

BIGINT [(length)] [UNSIGNED] [ZEROFILL]

8 байт целое (если компилятор поддерживает такой тип)

BLOB

Двоичный объект (максимальная длина 65535 байт)

CHAR(NUM)

Строка фиксированной длины (1 <= NUM <= 255)

DATE

Сохраняет информацию о дате. Использует формат "YYYY-MM-DD". Может модифицироваться как строка или число.

Диапазон для этого типа данных от 0000-00-00 до 9999-12-31. Так что "проблема 2000" здесь не стоит. В отличие от TIMESTAMP, DATE принимает годы и в виде двух цифр от 0000 до 0099. Тип DATE имеет длину 4 байта.

DATETIME

Объединение типов DATE и TIME. Тип DATETIME идентичен типу TIMESTAMP со следующими исключениями:

Когда запись вставляется в таблицу, содержащую поля типа DATETIME, поле DATETIME не изменяется.

Диапазон для поля типа DATETIME: '0000-01-01 00:00:00' - '9999-12-31 23:59:59 ' при использовании в контексте строки, и '00000000000000' - '99991231235959' при использовании в контексте числа.

Тип DATETIME имеет длину 8 байт.

DECIMAL (length,dec)

Десятичное число с плавающей запятой.

DOUBLE [(length,dec)]

Число (4 или 8 байт) двойной точности с максимальной длиной и фиксированном числом десятичных чисел.

FLOAT [(precision)]

Номер с плавающей запятой. FLOAT(4) и FLOAT одиночная точность. FLOAT(8) обеспечивает двойную точность.

FLOAT [(length,decimals)]

Число одиночной точности с максимальной длиной и фиксированном числом десятичных чисел (4 байта).

INT [(length)] [UNSIGNED] [ZEROFILL]

Целое (4 байта).

INTEGER [(length)] [UNSIGNED] [ZEROFILL]

Целое число 4 байта

LONGBLOB

Двоичный объект с максимальной длиной 2**32 байт.

MEDIUMBLOB

Двоичный объект с максимальной длиной 16777216 байт.

MEDIUMINT [(length)] [UNSIGNED] [ZEROFILL]

Целое (3 байта).

REAL [(length,dec)]

Идентично DOUBLE (8 байт).

SMALLINT [(length)] [UNSIGNED] [ZEROFILL]

Целое (2 байта).

TINYBLOB

Двоичный объект с максимальной длиной 255 байт.

TINYINT [(length)] [UNSIGNED] [ZEROFILL]

Целое число (1 байт).

VARCHAR(NUM)

Строка переменной длины (1 <= NUM <= 255)

TIME

Хранит информацию о времени. Использует формат "HH:MM:SS". Может использоваться как строка или число.

Данные типа TIME имеют длину 3 байта.

TIMESTAMP(NUM)

Автоматически изменяется при вставке/обновлении. Имеет формат YYMMDDHHMMSS или YYYYMMDDHHMMSS. Когда используете mysql с ODBC и Access Вы должны использовать значение 14 для NUM , поскольку это заставляет MySQL всегда использовать в годах четыре цифры. Значение 12 заставит MySQL использовать в году две цифры. Значение по умолчанию - 14.

В случае таблиц с несколькими полями TIMESTAMP только первое такое поле будет модифицироваться автоматически.

Физическая организация данных

Каждая база данных находится в своём каталоге, имя которого соответствует имени базы. Каждая таблица находится в отдельном файле <имя таблицы>. MYD , индекс в файле <имя таблицы>. MYI , файл определения таблицы <имя таблицы>. frm

Основные команды MySQL

СУБД MySQL оперирует подмножеством языка SQL , соответствующим спецификации ANSI SQL 92.

назад главная вперед