Разница между sql и nosql: mysql и mongodb

Как работают связи в базе данных

Связи между таблицами показывают, как одни данные могут зависеть от других. В зависимости от того, как вы настроите связи, база может получать разные результаты и искать данные. В связи может участвовать одна запись, а может сразу много.

Один к одному. Это самый простой вид связи, который говорит: одной записи из этой таблицы соответствует только одна запись из другой таблицы. Если мы сделаем новую таблицу с фотографиями клиентов, то каждой фотографии будет соответствовать только один клиент и наоборот.

Один ко многим. Когда у нас есть таблица с клиентами и таблица с их покупками, тут работает связь «один ко многим». Это значит, что у нас одной записи о клиенте соответствует несколько записей об их покупках, например, если он их сделал в разное время. Благодаря этой связи мы можем вывести все покупки для каждого клиента в отдельности.

Ещё пример — художники и картины. Каждая картина принадлежит только одному художнику, но одному художнику может принадлежать много разных картин. 

Многие ко многим. А вот это хитрая связь — для неё нужна отдельная таблица. Смысл такой: мы делаем промежуточную таблицу, в которой соединяем данные из одной таблицы с данными из другой. Получается, что в новой таблице как бы нет данных — в ней только связи.

Допустим, вы ведёте свой список дел в ежедневнике, где можно ставить метки для дел. Метки помогают понять, что за дело перед вами, и выглядят примерно так: «в дороге», «позвонить», «на неделе», «подписать у Иваныча» и «за компьютером». Их можно назначить любой задаче — одну метку, две или все сразу. Получается так:

  • одна метка может стоять на множестве разных задач
  • у одной задачи может быть много разных меток. 

Это значит, что мы связали множество меток со множеством задач и теперь можем искать одно через другое.

Принцип работы MySQL-серверов

Он такой же, как в любых клиент-серверных моделях. Одно устройство делает запрос, а второе отвечает. Запрашивающих может быть больше одного, все зависит от сервера, сети и поставленных задач. 

Технически немного иные, но по своей сути идентичные процессы происходят в среде MySQL:

  • Система создает базу данных для хранения информации (ее сортировки, идентификации и т.п.).
  • Клиенты (другие компьютеры в сети) подают запросы к базе с помощью специфичных для SQL команд.
  • Серверное приложение обрабатывает запрос и выдает ответ клиенту (выдает запрашиваемые данные).

Для взаимодействия с MySQL-сервером используются соответствующие утилиты. Некоторые работают только в командной строке. Некоторые награждены графическим интерфейсом. Популярные решения – WorkBench, SequelPro, SQL Studio, TablePlus. Правда, большинство вебмастеров предпочитает phpMyAdmin, так как та входит в LAMP и работает в браузере.

Как создать базу данных на хостинге?

У хостинг-провайдеров встречаются панели управления со встроенной функцией создания баз данных. В Timeweb такая есть. Чтобы создать на хостинге базу данных, надо открыть раздел «Базы данных MySQL» и кликнуть по кнопке «Создание новой базы данных». Система попросит указать параметры, имя пользователя и пароль администратора для авторизации. 

Что касается создания БД на VDS, то можно воспользоваться панелью управления сервером. Например, ISPmanager. 

В ISPmanager базы создаются так:

  • Открываем панель управления.
  • Переходим в пункт меню «Инструменты».
  • Кликаем по подпункту «Базы данных».
  • Нажимаем на кнопку «Создать».
  • Указываем параметры будущей базы (логин, пароль и т.п.).
  • Сохраняем данные, кликнув по кнопке ОК.

Что такое база данных?

В нашем случае данные — это файлы, а база — место, где они хранятся. Данные могут принимать любой облик. 

Представьте, что вы сделали плейлист в Spotify и добавили туда новый трек. Плейлист будет базой, а добавленная песня — данными. Каждая композиция, появившаяся в уже готовом плейлисте, станет частью существующей базы данных. Так она будет пополняться.

Получается, что базы могут быть многоуровневыми и делиться на различные категории (разделы каталога в случае с магазином). Так формируются взаимосвязи между разными элементами базы данных, появляется структура. Отсюда и термин «реляционная» – он намекает на зависимость элементов друг от друга.

Так что база данных — это набор структурированных данных с выстроенными между ними «взаимоотношениями» (делением на категории, к примеру). 

Визуально она представляет собой таблицу с тысячами элементов (ссылками, файлами, отрывками текста и т.п.). Чтобы этим добром управлять, необходимо как-то обозначить таблицы и научиться ими управлять. Тут и пригодится SQL.

Лицензирование

MySQL имеет двойное лицензирование. MySQL может распространяться в соответствии с условиями лицензии GPL. Однако по условиям GPL, если какая-либо программа использует библиотеки (или включает в себя другой GPL-код) MySQL, то она тоже должна распространяться по лицензии GPL. Это может расходиться с планами разработчиков, не желающих открывать исходные тексты своих программ. Для таких случаев предусмотрена коммерческая лицензия, которая также обеспечивает качественную сервисную поддержку. Для свободного программного обеспечения Oracle предоставляет отдельное исключение из правил, явным образом разрешающее использование и распространение MySQL вместе с ПО, распространяемым под лицензией из определённого Oracle списка.

Выбор SRID

Какой SRID следует выбрать для вашей домашней SRS? SRID представляет собой неподписанное 32-битное целое число, поэтому у нас есть 4294967296 возможности для начала. Но в будущем MySQL будет расширен больше SRS, и вы должны выбрать SRID, который не вступает в конфликт с любыми новыми системными SRS. В настоящее время MySQL резервирует следующие диапазоны SRID:

Нам разрешено создавать SRS в этих диапазонах. В конце концов, у нас есть привилегия SUPER. Но MySQL предупреждает нас, что это не очень хорошая идея:

mysql> CREATE SPATIAL REFERENCE SYSTEM 1
    -> NAME 'Don\'t do this at home, kids'
    -> DEFINITION 'GEOGCS],AUTHORITY],PRIMEM],UNIT],AXIS,AXIS,AUTHORITY]';
Query OK, 0 rows affected, 1 warning (0,00 sec)

Warning (Code 3715): The SRID range  has been reserved for system use. SRSs in this range may be added, modified or removed without warning during upgrade.

Поэтому, пожалуйста, будьте внимательны и не делайте этого. 

Технические характеристики

Максимальные размеры таблиц

Максимальный размер таблиц в MySQL 3.22 до 4 гигабайт, в последующих версиях ограничений нет.
Размер таблицы ограничен её типом. В общем случае тип MyISAM ограничен предельным размером файла в файловой системе операционной системы. Например, в NTFS этот размер теоретически может быть до 32 эксабайт. В случае InnoDB одна таблица может храниться в нескольких файлах, представляющих единое табличное пространство. Размер последнего может достигать 64 терабайт.
В отличие от MyISAM, в InnoDB имеется значительное ограничение на количество столбцов, которое можно добавить в одну таблицу. Размер страницы памяти по умолчанию составляет 16 килобайт, из которых под данные отведено 8123 байта. Размер указателя на динамические поля составляет 20 байт. Таким образом, в случае использования динамического формата строки (ROW_FORMAT=DYNAMIC), одна таблица может вместить максимум 409 столбцов типа blob или text.

Локализация

Начиная с версии 4.1 в СУБД MySQL внедрена новая система кодировок и сопоставлений. При использовании кодировки Windows-1251, перед выполнением SQL-инструкций необходимо настроить кодировку соединения при помощи операторов:

  SET character_set_client='cp1251';
  SET character_set_results='cp1251'; 
  SET character_set_connection='cp1251';

Эти три оператора эквивалентны вызову одного оператора:

  SET NAMES 'cp1251'

Переменная character_set_client устанавливает кодировку данных, отправляемых от клиента, переменная character_set_results устанавливает кодировку данных, отправляемых клиенту, переменная character_set_connection устанавливает кодировку, в которую преобразуется информация, пришедшая от клиента, перед выполнением запроса на сервере.

При использовании Юникода UTF-8 этот оператор выглядит следующим образом:

  SET NAMES 'utf8'

Кодировка ISO 8859-5 не поддерживается.

Проблема с Юникод

MySQL не позволяет корректно применять регулярные выражения (операторы REGEXP и RLIKE) на строках в многобайтовых кодировках, например, для Юникода (UTF-8). При необходимости таких операций приходится переходить на однобайтовые кодировки, например русскую Win-1251 или KOI-8.

Создание таблицы SQL

Новые таблицы добавляются в существующую базу данных с помощью оператора CREATE TABLE SQL. За оператором CREATE TABLE следует имя создаваемой таблицы, а далее через запятые список имен и определений каждого столбца таблицы:

CREATE TABLE имя_таблицы ( определение имени_столбца, определение имени_таблицы …, PRIMARY KEY= (имя_столбца) ) ENGINE= тип_движка;

В определении столбца ​​задается тип данных, может ли столбец быть NULL, AUTO_INCREMENT. Оператор CREATE TABLE также позволяет указать столбец (или группу столбцов) в качестве первичного ключа. Прежде чем будет создавать таблицу, нужно выбрать базу данных. Это делается с помощью оператора SQL USE:

USE MySampleDB;

Создадим таблицу, состоящую из трех столбцов: customer_id, customer_name и customer_address. Столбцы customer_id и customer_name не должны быть пустыми (то есть NOT NULL). customer_id содержит целочисленное значение, которое будет автоматически увеличиваться при добавлении новых строк. Остальные столбцы будут содержать строки длиной до 20 символов. Первичный ключ определяется как customer_id.

CREATE TABLE customer 
( 
customer_id int NOT NULL AUTO_INCREMENT, 
customer_name char(20) NOT NULL, 
customer_address char(20) NULL, 
PRIMARY KEY (customer_id) 
) ENGINE=InnoDB;

Federated

Подсистема интегрированного хранения данных FEDERATED позволяет создавать одну базу данных на нескольких физических серверах. Она открывает клиентское соединение с другим сервером и выполняет запросы к таблице, получая и от­правляя строки по мере необходимости. Первоначально она рекламировалась как конкурентная функциональность, которая поддерживала многие корпоративные проприетарные серверы баз данных, такие как Microsoft SQL Server и Oracle, но это всегда было натяжкой, мягко говоря. Хотя казалось, что в ней задействовалось много гибкости и хитрых приемов, она оказалась источником многих проблем и по умолчанию деактивирована. Однако мы можем ее активировать, запустив двоичный файл сервера MySQL с параметром .

Давайте создадим таблицу FEDERATED.

 В поле содержится следующая ниже информация для вашей справки:

  • : имя пользователя удаленного сервера MySQL;
  • : пароль удаленного сервера MySQL;
  • : имя хоста удаленного сервера;
  • : номер порта удаленного сервера;
  • : имя базы данных удаленного сервера;
  • : имя таблицы базы данных удаленного сервера.

MySQL: что такое и зачем это нужно

База данных — это место для структурированного хранения данных.

То же самое происходит и во время обращения пользователя к сайту. При регистрации, оформлении заказа или наполнении контентом вся информация структурируется в базе данных.

Со временем сайт становится более загруженным, чем при создании, поэтому вести его без БД сложно и затратно. Работая с гигабайтами информации, которая хранится в огромном количестве файлов, можно потратить большое количество времени для выдачи нужных данных.

БД же группируют и упорядочивают информацию. Благодаря этому запрос обрабатывается быстрее. Для администрирования БД и существует специальная система управления MySQL.

Реляционная база данных: как хранится информация

Реляционная база хранит информацию в таблицах, связанных между собой особым образом. Такая связь позволяет извлечь и объединить данные из одной или сразу нескольких таблиц, сделав один запрос, и выполнять более сложные операции с данными.

Любая таблица состоит из столбцов и строк. В каждом столбце указывается тип данных, а в ячейке — их значение. Строки содержат набор связанных между собой значений, которые относятся к отдельному объекту, например пользователю сайта.

Фамилия, имя

Номер телефона

Адрес

Ivanov

111222

Address1

Petrov

333444

Address2

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

  • уникальной (к ней могут относиться хостинговые договора, номер банковской карты или паспорта и другое);
  • неуникальной, повторяющейся (дата рождения, адрес, имя и другое).

Для заполнения этих таблиц и работы с ними используется специальный язык программирования — SQL (читается как «сэквэл»).

Задачка про лайки

С полученными знаниями ты легко сможешь решить эту задачу: есть пользователи (id, имя) и они могут ставить друг другу лайки. Сделай таблицы для хранения всей этой информации и напиши запрос, который выведет такую таблицу:

  • ид пользователя
  • имя
  • лайков получено
  • лайков поставлено
  • взаимных лайков

Сложно? Ну ок, давай начнем с более простой задачи: просто выведи 5 самых популярных пользователей.

  • Если ты используешь несколько связанных друг с другом таблиц, связи необходимо пометить с помощью внешних ключей
  • Желательно на уровне БД запретить возможность ставить пользователю лайк другому пользователю дважды
  • Подсказка: эта задача решается без подзапросов
  • Подсказка: достаточно использовать всего 2 джойна и группировку

Виды СУБД

Сами по себе таблицы или база данных не способны выполнять операции, а в СУБД можно создавать новые таблицы, удалять ненужные данные, настраивать ключи и обрабатывать запросы. Основные задачи СУБД:

  • поддержка языков баз данных;
  • непосредственное управление данными;
  • управление буферами оперативной памяти;
  • управление транзакциями;
  • резервное копирование и восстановление после сбоев.

Существуют разные виды таких систем, которые разрабатывает и техногиганты, вроде Google, Microsoft и Amazon, и более нишевые студии. Разработчики стремятся сделать свой продукт лучше, чтобы их система быстрее и качественнее других обрабатывала данные. Из-за этого появились разные виды языка SQL — так называемые SQL-диалекты. У каждой СУБД диалект имеет что-то общее со всеми, а также свои особенности, которые не будут работать в другой системе.

СУБД могут быть коммерческими или иметь открытый код. Системы управления с открытым кодом можно бесплатно использовать в проектах, а также дополнять их документацию и совершенствовать процесс работы с системой. Коммерческие СУБД имеют платный доступ к полным версиям — как правило, такие используют крупные корпорации.

PostgreSQL — это объектно-ориентированная система, то есть она обрабатывает данные как абстрактные объекты. Каждый объект, в отличие от простых табличных значений, может иметь собственные характеристики и уникальные методы взаимодействия с другими объектами. Это позволяет PostgreSQL обрабатывать более сложные структуры данных и выполнять более сложные процедуры. Например, Яндекс.Почта в свое время перешла на эту систему, чтобы поддерживать стабильное соединение десятков тысяч пользователей к одной базе.

MySQL — простая в изучении и функциональная система, которая работает с сайтами и веб-приложениями. Чаще всего используется в системах управления контентом сайтов (CMS), на сайтах с возможностью регистрации пользователей, в корпоративных системах CRM, в планировщиках, чатах и форумах. MySQL считается одним из самых безопасных и высокоскоростных решений, которое существует на рынке.

SQLite — это облегченная встраиваемая версия СУБД. В ней нет возможности поделиться правами доступа, как во многих других системах, но благодаря своему устройству эта система быстрая и мощная. SQLite подходит для обработки запросов на сайтах с низким и средним трафиком, а также в однопользовательских мобильных приложениях и играх. Преимущество такой системы — файловая структура, то есть база в SQLite состоит из одного файла, поэтому ее очень легко переносить.

Oracle — одна из первых СУБД, которая появилась еще в 1977 году и развивается до сих пор. Это кроссплатформенная система, которая может работать на Windows, Linux, MacOS, мобильных и других ОС. Система используется в крупных коммерческих проектах. Например, в России с Oracle сотрудничают операторы МТС и Теле2, банк «Открытие» и ВТБ.

Google Cloud Spanner — это облачная система управления данными, которую Google разработал для управления собственными сервисами, например AdWords и Google Play. В 2017 году систему сделали общедоступной. Cloud Spanner относят к категории NewSQL — это системы, которые совмещают в себе преимущества реляционных и нереляционных СУБД.

Плюсы, минусы — SQLite и MySQL

Давайте быстро суммируем существенные различия между двумя вариантами:

Преимущества SQLite:

  • На основе файлов и прост в настройке и использовании
  • Подходит для базовой разработки и тестирования
  • Легко переносимый
  • Использует стандартный синтаксис SQL с небольшими изменениями
  • Легко использовать

Недостатки SQLite:

  • Отсутствует управление пользователями и функции безопасности
  • Трудно масштабируется
  • Не подходит для больших баз данных

Преимущества MySQL:

  • Легко использовать
  • Предоставляет большой функционал
  • Хорошие функции безопасности
  • Легко масштабируется и подходит для больших баз данных.
  • Обеспечивает хорошую скорость и производительность
  • Обеспечивает хорошее управление пользователями и множественный контроль доступа

Недостатки MySQL:

  • Требуются некоторые технические знания для настройки
  • Немного другой синтаксис по сравнению с обычным SQL

SQL Учебник

SQL ГлавнаяSQL ВведениеSQL СинтаксисSQL SELECTSQL SELECT DISTINCTSQL WHERESQL AND, OR, NOTSQL ORDER BYSQL INSERT INTOSQL Значение NullSQL Инструкция UPDATESQL Инструкция DELETESQL SELECT TOPSQL MIN() и MAX()SQL COUNT(), AVG() и …SQL Оператор LIKESQL ПодстановочныйSQL Оператор INSQL Оператор BETWEENSQL ПсевдонимыSQL JOINSQL JOIN ВнутриSQL JOIN СлеваSQL JOIN СправаSQL JOIN ПолноеSQL JOIN СамSQL Оператор UNIONSQL GROUP BYSQL HAVINGSQL Оператор ExistsSQL Операторы Any, AllSQL SELECT INTOSQL INSERT INTO SELECTSQL Инструкция CASESQL Функции NULLSQL ХранимаяSQL Комментарии

MySQL Функции даты

Функция Описание
ADDDATE Добавляет интервал времени/даты к дате, а затем возвращает дату
ADDTIME Добавляет временной интервал к времени/дате времени, а затем возвращает время/дату времени
CURDATE Возвращает текущую дату
CURRENT_DATE Возвращает текущую дату
CURRENT_TIME Возвращает текущее время
CURRENT_TIMESTAMP Возвращает текущую дату и время
CURTIME Возвращает текущее время
DATE Извлекает дату из datetime выражение
DATEDIFF Возвращает количество дней между двумя значениями даты
DATE_ADD Добавляет интервал времени/даты к дате, а затем возвращает дату
DATE_FORMAT Форматирование даты
DATE_SUB Вычитает интервал времени/даты из даты, а затем возвращает дату
DAY Возвращает день месяца для заданной даты
DAYNAME Возвращает название дня недели для заданной даты
DAYOFMONTH Возвращает день месяца для заданной даты
DAYOFWEEK Возвращает индекс дня недели для заданной даты
DAYOFYEAR Возвращает день года для заданной даты
EXTRACT Извлекает часть из заданной даты
FROM_DAYS Возвращает дату из числового значения даты
HOUR Возвращает часовую часть для заданной даты
LAST_DAY Извлекает последний день месяца для заданной даты
LOCALTIME Возвращает текущую дату и время
LOCALTIMESTAMP Возвращает текущую дату и время
MAKEDATE Создает и возвращает дату на основе значения года и количества дней
MAKETIME Создает и возвращает время, основанное на часе, минуте и втором значении
MICROSECOND Возвращает микросекундную часть время/даты-время
MINUTE Возвращает минутную часть время/даты-время
MONTH Возвращает часть месяца для заданной даты
MONTHNAME Возвращает название месяца для заданной даты
NOW Возвращает текущую дату и время
PERIOD_ADD Добавляет к периоду заданное количество месяцев
PERIOD_DIFF Возвращает разницу между двумя периодами
QUARTER Возвращает квартал года для заданного значения даты
SECOND Возвращает секундную часть времени/даты-время
SEC_TO_TIME Возвращает значение времени, основанное на указанных секундах
STR_TO_DATE Возвращает дату на основе строки и формата
SUBDATE Вычитает интервал времени/даты из даты, а затем возвращает дату
SUBTIME Уменьшает интервал времени из DateTime и возвращает время/дата-время
SYSDATE Возвращает текущую дату и время
TIME Извлекает время от данный момент времени
TIME_FORMAT Форматирует время по заданному формату
TIME_TO_SEC Преобразует значение времени в секунды
TIMEDIFF Возвращает разницу между двумя выражениями время/дата-время
TIMESTAMP Возвращает значение datetime значение даты или типа datetime
TO_DAYS Возвращает количество дней между датой и датой «0000-00-00»
WEEK Возвращает номер недели для заданной даты
WEEKDAY Возвращает номер дня недели для заданной даты
WEEKOFYEAR Возвращает номер недели для заданной даты
YEAR Возвращает часть года для заданной даты
YEARWEEK Возвращает номер года и недели для заданной даты

Шаг 5: Структуры управления потоками

MySQL поддерживает конструкции IF, CASE, ITERATE, LEAVE LOOP, WHILE и REPEAT для управления потоками в пределах хранимой процедуры. Мы рассмотрим, как использовать IF, CASE и WHILE, так как они наиболее часто используются.

Конструкция IF

С помощью конструкции IF, мы можем выполнять задачи, содержащие условия:

DELIMITER //  
  
CREATE PROCEDURE `proc_IF` (IN param1 INT)  
BEGIN  
    DECLARE variable1 INT;  
    SET variable1 = param1 + 1;  
  
    IF variable1 = 0 THEN  
        SELECT variable1;  
    END IF;  
  
    IF param1 = 0 THEN  
        SELECT 'Parameter value = 0';  
    ELSE  
        SELECT 'Parameter value <> 0';  
    END IF;  
END //  

Конструкция CASE

CASE — это еще один метод проверки условий и выбора подходящего решения. Это отличный способ замены множества конструкций IF. Конструкцию можно описать двумя способами, предоставляя гибкость в управлении множеством условных выражений.

DELIMITER //  
  
CREATE PROCEDURE `proc_CASE` (IN param1 INT)  
BEGIN  
    DECLARE variable1 INT;  
    SET variable1 = param1 + 1;  
  
    CASE variable1  
        WHEN 0 THEN  
            INSERT INTO table1 VALUES (param1);  
        WHEN 1 THEN  
            INSERT INTO table1 VALUES (variable1);  
        ELSE  
            INSERT INTO table1 VALUES (99);  
    END CASE;  
  
END //  

или:

DELIMITER //  
  
CREATE PROCEDURE `proc_CASE` (IN param1 INT)  
BEGIN  
    DECLARE variable1 INT;  
    SET variable1 = param1 + 1;  
  
    CASE  
        WHEN variable1 = 0 THEN  
            INSERT INTO table1 VALUES (param1);  
        WHEN variable1 = 1 THEN  
            INSERT INTO table1 VALUES (variable1);  
        ELSE  
            INSERT INTO table1 VALUES (99);  
    END CASE;  
  
END // 

Конструкция WHILE

Технически, существует три вида циклов: цикл WHILE, цикл LOOP и цикл REPEAT. Вы также можете организовать цикл с помощью техники программирования “Дарта Вейдера”: выражения GOTO. Вот пример цикла:

DELIMITER //  
  
CREATE PROCEDURE `proc_WHILE` (IN param1 INT)  
BEGIN  
    DECLARE variable1, variable2 INT;  
    SET variable1 = 0;  
  
    WHILE variable1 < param1 DO  
        INSERT INTO table1 VALUES (param1);  
        SELECT COUNT(*) INTO variable2 FROM table1;  
        SET variable1 = variable1 + 1;  
    END WHILE;  
END //  

SQL-операторы

Работать с данными помогают операторы — определенные слова или символы, которые используются для выполнения конкретной операции — например, для выбора из множества по конкретному параметру. Если нам нужно из всех видов пиццы отсортировать те, в которых есть пармезан, — нужно использовать оператор SELECT (выбор в соответствии с условием).

Операторы в SQL делятся на несколько групп в соответствии с задачами, которые они решают.

DDL (Data Definition Language) — операторы определения данных. Они работают с объектами, то есть с целыми таблицами. Если базу нужно дополнить таблицей с новыми данными или, наоборот, убрать одну из таблиц с ошибочными данными — используется этот набор операторов.

  • CREATE — создание объекта в базе данных
  • ALTER — изменение объекта
  • DROP — удаление объекта

DML (Data Manipulation Language) — операторы манипуляции данными. Эти операторы уже работают с содержимым таблиц — строками, атрибутами и значениями. С их помощью можно вносить изменения в конкретное значение. Например, заменить поле в колонке «Фамилия» в строке с данными сотрудницы компании посте того, как она вышла замуж. Или удалить строку с данными уволенного сотрудника.

  • SELECT — выбор данных в соответствии с условием
  • INSERT — добавление новых данных
  • UPDATE — изменение существующих данных
  • DELETE — удаление данных

DCL (Data Control Language) — оператор определения доступа к данным. Он определяет, кто из пользователей может отправлять запросы к базе, менять объекты и значения. Например, можно отозвать доступ у сотрудника, перешедшего в другой отдел, а также открыть доступ к базе новому маркетологу или разработчику.

  • GRANT — предоставление доступа к объекту
  • REVOKE — отзыв ранее выданного разрешения
  • DENY — запрет, который является приоритетным над разрешением

TCL (Transaction Control Language) — язык управления транзакциями. Транзакции — это набор команд, которые выполняются поочередно. Если все команды выполнены, транзакция считается успешной, а если где-то произошла ошибка — транзакция откатывается назад, отменяя все выполненные команды. Наглядный пример такой транзакции — оплата онлайн, когда банк просит сначала ввести сумму и получателя, затем проверить и подтвердить операцию, а после ввести одноразовый код. На каждом из этих этапов оплату можно отменить и транзакция откатится назад.

  • BEGIN TRANSACTION — обозначение начала транзакции
  • COMMIT TRANSACTION — изменение команд внутри транзакции
  • ROLLBACK TRANSACTION — откат транзакции
  • SAVE TRANSACTION — указание промежуточной точки сохранения внутри транзакции

Факты о MySQL для начинающих

MySQL написан на языках программирования C и C++ и может использоваться более чем на 20 платформах, включая Mac, Windows, Linux и Unix.

MYSQL поддерживает большие базы данных с миллионами записей и целыми числами со знаком или без знака длиной 1, 2, 3, 4 и 8 байтов; Такие как FLOAT, DOUBLE, CHAR, VARCHAR, BINARY, VARBINARY, TEXT (STRING), BLOB, DATE, TIME, DATETIME, TIMESTAMP, YEAR, ENUM и пространственные типы OpenGIS. Также поддерживаются типы массивов фиксированной и переменной длины.

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

MySQL использует систему доступа, которая обеспечивает аутентификацию через хостинг-провайдера, и систему зашифрованных паролей для безопасности. Клиенты MySQL могут подключаться к серверу MySQL, используя различные протоколы, включая порты TCP/IP на любой платформе. MySQL также поддерживает несколько клиентов и утилит, программы командной строки и административные инструменты, такие как MySQL Workbench.

Расширения MySQL, также известные как разные версии, включают:

  • Drizzle  – это облегченная система управления базами данных с открытым исходным кодом, которая разрабатывается на основе MySQL 6.0; Однако он больше не используется.
  • MariaDB  – это популярная замена MySQL, разработанная сообществом с использованием API и команд MySQL. Percona Server с XtraDB – это расширенная версия MySQL, известная своей функцией горизонтальной масштабируемости.
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Все про сервера
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: