Описание функции ADDDATE в MySQL (с типами временных интервалов)

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

Синтаксис:
ADDDATE(date, INTERVAL expr type)

У функции ADDDATE() существует синоним DATE_ADD().

Второй параметр в функции начинается ключевым словом INTERVAL, после которого следует значение и тип
этого значения.

Функция, также, допускает использование и отрицательных значений, при этом период не прибавляется а отнимается.

! Есть упрощённый формат записи функции ADDDATE(date,days) — где days — дни.

Пример использования функции:
mysql> select adddate('2017-03-29', interval 15 day);
+----------------------------------------+
| adddate('2017-03-29', interval 15 day) |
+----------------------------------------+
| 2017-04-13                             |
+----------------------------------------+


Читать дальше →

Функции необратимого шифрования в MySQL (MD5,PASSWORD,SHA1)

В данной публикации будут рассмотрены некоторые функции необратимого шифрования применяемые в СУБД MySQL.

Функция MD5() — производит необратимое шифрование входящих данных по алгоритму MD5 (Message-Digest Algoritm).

Функция принимает на вход строку и возвращает 128-битную контрольную сумму, вычисляемую по алгоритму MD5. Возвращаемое значение — это 32-разрядное шестнадцатиричное число, уникальное для каждой строки. Если строки отличаются хотя бы одним символом, то результат выполнения функции MD5() для этих строк будет разный, для двух одинаковых строк — результат будет всегда одинаков.

Читать дальше →

Функции AES_ENCRYPT и AES_DECRYPT в MySQL

Функции AES_ENCRYPT() и AES_DECRYPT() производят симметричную шифровку и дешифровку данных с использованием алгоритма AES (Advanced Encryption Standard), при этом используется кодирование с 128-битным ключом. Есть возможность расширить до 256-бит, но как стандарт в MySQL выбран 128-битный, как достаточный по надёжности и более быстрый.

Синтаксис функций:
AES_ENCRYPT('Шифруемая строка','Ключ');
AES_DECRYPT('Дешифруемая строка','Ключ');
--Входные параметры AES_ENCRYPT() могут быть любой длины.
--Если любой из входных параметров равен NULL - то и результат выполнения тоже будет NULL.
--Ключ в AES_DECRYPT() должен совпадать с ключом в AES_ENCRYPT().


Приведем рабочий пример работы с функциями:
Читать дальше →

Работаем с базой данных MySql из .NET Core

В данной публикации мы рассмотрим как подключиться к базе данных MySql из приложения на .Net Core.

1. Если у вас ещё не установлен .Net Core то устанавливаем: .NET Core.

2. Далее создаем новый проект .NET Core
mkdir MySqlCoreSample
cd MySqlCoreSample
dotnet new

После выполнения этих команд в папке MySqlCoreSample появится 2 файла: «Program.cs», «project.json».
Это простейший шаблон приложения на .NET Core.
В эти файлы мы и будем вносить изменения, для чего будем использовать Visual Studio Code.

3. Используя расширение NuGet добавляем в наш проект "MySql.Data.7.0.6-ir31"
И добавляем зависимость в файле «project.json».

Читать дальше →

Исправление ошибки <host '' is not allowed to connect to this mysql server>

Ошибка возникает из-за отсутствия доступа у пользователя, для того, чтобы предоставить этот доступ, делаем так:
$ mysql -u root -p
Enter password:

mysql> use mysql

mysql> GRANT ALL ON *.* to root@'192.168.1.4' IDENTIFIED BY 'your-root-password'; 

mysql> FLUSH PRIVILEGES;

Приведение типов в MySQL

Здесь речь пойдёт об основных способах приведения типов в MySQL. Заранее следует оговорить тот момент, что в большинстве случаев приведение типов в MySQL сработает автоматически, например:
//Выполнив запрос:
select 1+'1';
//Получим результат: 2

Однако в ряде случаев требуется специальное приведение типов, о них и пойдёт речь далее.

Читать дальше →

Типы данных в БД MySQL

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

MySQL поддерживает несколько различных типов данных:
Числовые данные — это все целые числа (без дробной части) и вещественные числа (с дробной частью).
Строковые данные — последовательность символов, заключенная в кавычки. В MySQL в качестве стандарта используются одинарные кавычки и для совместимости с другими базами данных рекомендуется именно их использование.
Календарные данные — тип для обозначение даты и времени, принимает различные формы, например строковую «2007-11-23» или числовую 20071123. Особенностью этого типа данных является их хранение в едином внутреннем формате, что позволяет производить операции сложения и вычитания, в независимости от внешнего представления.
NULL — специальный тип данных, обозначает отсутствие информации.

Читать дальше →

О настройке и оптимизации MySQL сервера

Сразу скажу, статья не моя, но мне очень понравилась, и чтобы потом не искать решил запостить здесь. Благо автор на своём сайте не запрещает этого делать. За что ему огромное спасибище.
Вот оригинал: http://blog.peter.am/index.php/2010/11/30/setup-optimzations-mysql

В этой статье будут описаны различные настройки MySQL, преимущественно те, которые влияют на производительность. Для удобства все переменные разделены по разделам (базовые настройки, ограничения, настройки потоки, кэширование запросов, тайминги, буферы, InnoDB). Сначала уточним имена некоторых переменных, которые изменились в версии 4 MySQL, а в сети продолжают встречаться и старые и новые варианты имен, что вызывает вопросы.

Читать дальше →

Класс для работы с базой данных (на примере MySQL)

В этой публикации я приведу пример более совершенного класса для работы с базой данных, нежели приводил ранее в этой публикации. Смысл как и прежде в минимизации кода и приведения его (кода) в более удобочитаемый вид.
В примере ниже, в отличие от предыдущего, в отдельном классе реализованы не только методы выполняющие запросы типа (Scalar и NonQuery) но и метод возвращающий набор данных в DataTable. При этом продумана обработка исключительных ситуаций.

Читать дальше →

MySQL перебор значений без перебора (одним скриптом).

    Здесь я приведу некоторые примеры полезных запросов в MySQL которые, как я думаю, многим могут пригодиться. Во всяком случае, когда я искал такую информацию, я так и не смог найти ничего дельного. Поэтому дошёл своим умом помаленьку. Данные запросы помогут сэкономить время и не писать процедуры для обработки данных, которые работают в разы медленнее, или помогут сделать эти процедуры значительно быстрее. Запросы показывают как в MySQL можно делать изменение записей в таблице, с перебором по всем необходимым значениям и с проверкой необходимых условий но без всяких переборов, только средствами MySQL одним запросом.

Читать дальше →