MySql
MySql - свободная система управления базами данных (СУБД). MySQL является собственностью компании Sun Microsystems, осуществляющей разработку и поддержку приложения.
Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.
Непосредственный (прямой) режим работы с MySQL производится через командную строку ОС.
Клиентская программа MySQL представляет собой утилиту командной строки. Эта программа подключается к серверу по сети. Команды, выполняемые сервером, обычно связаны с чтением и записью данных на жестком диске.
Клиентские программы могут работать не только в режиме командной строки. Есть и графические клиенты, например MySQL GUI, PhpMyAdmin и др.
MySQL взаимодействует с базой данных на языке, называемом SQL (Structured Query Language — язык структурированных запросов).
SQL предназначен для манипуляции данными, которые хранятся в Системах управления реляционными базами данных (RDBMS). SQL имеет команды, с помощью которых данные можно извлекать, сортировать, обновлять, удалять и добавлять. Стандарты языка SQL определяет ANSI (American National Standards Institute). В настоящее время действует стандарт, принятый в 2003 году (SQL-3).
SQL можно использовать с такими RDBMS как MySQL, mSQL, PostgreSQL, Oracle, Microsoft SQL Server, Access, Sybase, Ingres. Эти системы RDBMS поддерживают все важные и общепринятые операторы SQL, однако каждая из них имеет множество своих собственных патентованных операторов и расширений.
Основные правила синтаксиса SQL:
в общем случае SQL не чувствителен к регистру букв;
каждая команда в SQL заканчивается точкой с запятой (;)
в отличии от РНР SQL требователен к типам данных записываемых в поля.
Типы переменных
Строковые типы
Тип данных в столбце | Назначение | Необходимый объем памяти |
CHAR (M) | Строки фиксированной длины | M байтов, 0<M<255 |
VARCHAR (M) | Строки произвольной длины | L + 1 байтов, где L<M и 0<M<65 535 |
BINARY (M) | Хранение двоичных данных | M байтов, 0<M<255 |
ENUM (‘value1’, ‘value2’, …) | Могут принимать одно из нескольких заранее заданных значений | 1 или 2 байт в зависимости от числа значений (65 535 значений максимум) |
SET (‘value1’, ‘value2’, …) | В поле одновременно может содержаться несколько из заранее заданного списка значений | 1, 2, 3, 4 или 8 байтов в зависимости от числа значений (64 значения максимум) |
... |
MySQL удаляет пробелы в конце текстовых строк у CHAR во время извлечения и у VARCHAR во время сохранения.
Формат записи даты и времени
Тип данных в столбце | Описание |
DATETIME | YYYY-MM-DDHH : MM : SS |
DATE | YYYY-MM-DD |
TIMESTAMP | YYYYMMDDHHMMSS |
TIME | HH : MM : SS |
YEAR | YY или YYYY |
Использование чисел в таблицах MySQL Целые числа могут храниться со знаком (Signed) или без знака (Unsigned)
Хранение числовых значений
Тип | Память | Минимальное | значение | Максимальное | значение |
в байтах | Signed | Unsigned | Signed | Unsigned | |
TINYINT | 1 | -128 | 0 | 127 | 255 |
SMALLINT | 2 | -32 768 | 0 | 32 767 | 65 535 |
MEDIUMINT | 3 | -8 388 608 | 0 | 8 388 607 | 16777215 |
INT | 4 | -2147483648 | 0 | 2147483647 | 4294967295 |
BIGINT | 8 | -263 | 0 | 263 -1 | 264 -1 |
Числа с плавающей точкой
Тип данных в столбце | Описание | Используемая память в байтах |
FLOAT(p) | Данные округляются при записи до указанной в определении столбца точности | 4, (если 0 < р < 24); |
FLOAT | Данные округляются при записи до указанной в определении столбца точности | 4 |
DOUBLE [ размерность ] | Данные округляются при записи до указанной в определении столбца точности | 8 |
DECIMAL (M,D) | Данные, которые не должны округлятся (хранятся в двоичном виде) | Переменная |
Консоль MySQL позволяет вводить как инструкции SQL, так и служебные команды MySQL, предназначеные для администрирования и использования таблиц в базах данных MySQL. К основным командам относятся SHOW, USE и CREATE. Рассмотрим каждую из них отдельно.
SHOW Эта команда предназначена для просмотра доступных баз данных и таблиц в конкретных базах данных. Для просмотра списка баз данных необходимо ввести такую команду:
SHOW DATABASES;
Если, например, существуют две базы данных - mysql и test (эти две базы как правило создаются автоматически при инсталляции сервера), то MySQL ответит примерно так:
| Database |
| mysql |
| test |
+----------+
Для просмотра списка таблиц используется эта же команда в таком виде:
SHOW TABLES;
Эта команда выдаст список таблиц в текущей базе данных:
| Tables in mysql |
| test |
| mysql |
+-----------------+
Замечание: вы можете работать только с одной базой данных в одно и то же время, поэтому в приведенном выше примере нет нужды указывать название базы данных, список таблиц которой стоит вывести, поскольку производится поиск в активной на данный момент базе.
CREATE
Эта команда позволяет создавать новые базы данных. Как было сказано выше, по умолчанию сервер создает две базы данных - mysql и test. Для удобства стоит создавать новую базу данных для каждой отдельной задачи, потому что легче работать с набором таблиц, которые связаны между собой (даже если эта связь только смысловая). Создадим новую базу данных при помощи этой команды:
CREATE DATABASE staff
После этой операции будет создана новая база данных не содержащая никаких таблиц, а команда SHOW DATABASES выдаст следующее:
| Database |
| mysql |
| test |
| staff |
+----------+
USE
Как уже было сказано выше, в один и тот же момент только одна база данных может быть активна. Команда USE служит для выбора этой активной базы. Для перехода к некоторой базе данных необходимо выполнить следующую операцию:
USE staff
Стоит отметить, что при создании новой базы данных (см. выше), новая база не становится активной автоматически - для ее использования необходимо сделать это самостоятельно.
SQL
Нижеследующее ознакомит вас с методами извлечения и занесения данных в таблицы при помощи языка SQL. Просмотр данных
SELECT * FROM mysql;
Эта команда подразумевает, что в активной базе данных существует таблица mysql, из которой она просто извлекает все данные и выводит их на экран.
Команда SELECT служит для просмотра данных таблиц. Ее упрощенный синтаксис таков:
SELECT <список полей> FROM <список названий таблиц> [WHERE <список условий>] [ORDER BY <список полей>];
В списке поля может быть как один элемент, так и несколько; кроме того возможно указание символа "*" (), который говорит, что следует показать все поля таблицы. Часть WHERE ... является необязательной и позволяет выбрать из таблицы строки, удовлетворяющие определенному(ым) условию(ям). Раздел ORDER BY ... служит для сортировки полученных данных по определенным полям.
Безопасность
Система безопасности MySql основана на привилегиях и паролях с возможностью верификации с удаленного компьютера, за счет чего обеспечивается гибкость и безопасность. Пароли при передаче по сети при соединении с сервером шифруются. Клиенты могут соединяться с MySQL, используя сокеты TCP/IP, сокеты Unix или именованные каналы (named pipes, под NT)Преимущества:
• Вместимость данных. Начиная с MySQL версии 3.23, где используется новый тип таблиц, максимальный размер таблицы доведен до 8 миллионов терабайт (263 bytes).• Программное обеспечение MySQL - это ПО с открытым кодом. Это означает, что применять и модифицировать его может любой желающий. Такое ПО можно получать по Internet и использовать бесплатно. При этом каждый пользователь может изучить исходный код и изменить его в соответствии со своими потребностями.
• Технические возможности СУБД MySQL. ПО MySQL является системой клиент-сервер, которая содержит многопоточный SQL-сервер, обеспечивающий поддержку различных вычислительных машин баз данных, а также несколько различных клиентских программ и библиотек, средства администрирования и широкий спектр программных интерфейсов (API).
Недостатки:
• Наиболее быстрый тип таблиц MyISAM имеет не высокую надёжность при достижении таблиц размера более 10Gb• Отсутствие визуальных средств разработки и администрирования