JoomDom - Скачать шаблоны для Joomla, модули и компоненты для сайтов бесплатно.

Карта сайта Контакты Главная

Полезности

Новые расширения

    RSform! Pro 1.4.0 rev47
    Усовершенствованная версия компонента RSform! Pro 1.4.0 rev47, обладающего высокой мощностью в создании визуальных форм на страницах ресурса.

    AceSEF Pro 6
    AceSEF Pro – мощнейший SEO компонент по автоматической генерации Joomla SEF ссылок, метаданных сайта, тегов, а также генератора карты сайта для…

    RSFirewall! v1.4.0 rev51
    Разработанный командой профессионалов, которые занимаются наблюдением последних уязвимостей и обновлений для систем управления контентом, компонент…

Календарь

«    Апрель 2016    »
ПнВтСрЧтПтСбВс
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
 

Наши партнеры

Последние статьи

1  2  3  4  5  5  7  8 

Авторизация

Опрос

Мои среднемесячные расходы на хостинг

Больше 1001 руб.
От 501 до 1000 руб.
От 201 до 500 руб.
от 1 до 200 руб.
Пользуюсь бесплатным

Реклама

Реклама

Реклама

Реклама

Счетчики


Яндекс.Метрика





Конвертировать представления SQL Server в формат MySQL

Миграция Microsoft SQL сервера на MySQL - достаточно сложный и многоэтапный процесс. Остаточно часто появляется необходимость в преобразования запросов с учетом требований синтаксиса MySQL. Диалекты SQL, которые применяются представленными серверами похожи, но все же имеют некоторые отличия. В этой статье мы разберемся в 10 различиях в синтаксических конструкциях, с которыми чаще всего можно столкнуться при создании SQL запросов. Тема будет раскрыта с учетом того, что у целевой аудитории имеются уже базовые знания в правлении БД и практическими навыками конструирования SQL запросов:

  1. Достаточно часто имена таблиц или полей в MS SQL оформлены в скобки квадратной формы в самих запросах (например, если в имени имеется пробел). MySQL не работает с квадратными скобками. Поэтому их необходимо в обязательном порядке изменить на обратные кавычки ` или удалить: [object] -> `object`.
  2. В MS SQL доступны для использования инструменты, которые исключают появление конфликтов между именами и позволяют управлять привилегиями доступа к данным. Данным инструментом является специально созданная схема, логически контейнер, которые применяется на практике для группировки по выбранным ранее показателям объектов БД. На момент применения схем в запросах Microsoft SQL полное имя приобретает следующий вид: %database%.%schema%.%object%. Но представленное решение не используется в MySQL.
  3. Функция CONVERT() применяется на практике в Microsoft SQL для преобразования выражений одного типа в иной. Сервер MySQL функцию CONVERT() использует для преобразования данных в виде текста между различными кодовыми страницами. Для конвертирования типов в MySQL применяется на практике функция CAST(), следовательно. Все выражения 'convert(%type%, %expression%)' в запросе MS SQL должны быть замены 'cast(%expression% AS %type%)' в запросе MySQL.
  4. Опция LEN() отвечает за возврат исходной длины выражению, имеющему текстовый тип в MS SQL. В MySQL аналогичной функцией является LENGTH().
  5. Microsoft SQL функция DATEADD() используется для добавления интервала к отмеченной части значения типа DATE. Если же рассматривать MySQL, то за выполнение данного действия отвечает оператор '+'. Отдельно нужно остановиться на способе преображения синтаксических конструкций. В запросах они должны иметь такой вид: DATEADD(year, 1, %expression%) заменить на %expression% + interval 1 year, DATEADD(month, 1, %expression%) заменить на %expression% + interval 1 month, DATEADD(day, 1, %expression%) заменить на %expression% + interval 1 day.
  6. Опция GETDATE() в MS SQL применяется для возврата текущего времени и даты. Аналогичным решением в MySQL считается NOW().
  7. В MS SQL оператор '+' помогает при минимальных усилиях провести объединение строк: 'string1' + 'string2'. В MySQL нужно строки перевести в следующий вид: CONCAT('string1', 'string2').
  8. Опция MS SQL CONTAINS(expression, template) отвечает за своевременность проверки точности вхождения строкового выражения 'template' в 'expression'. В MySQL применяется оператор LIKE, с помощью которого выполняется такая же опция: expression LIKE %template%;
  9. В том случае, когда запрос Ms. SQL включает 'TOP (100) PERCENT', нужно пропустить при формировании запроса MySQL. При значении, отличном от 100 может применяться такой код: SET @amount =(SELECT COUNT(*) FROM %table name%) * %percentage% / 10; PREPARE STMT FROM '%original query% FROM %table name% LIMIT ?'; EXECUTE STMT USING @amount;

Мы рассмотрели в данной статье самые частые ситуации. Для автоматизации процесса с целью экономии времени и сокращения количества ошибок рекомендуется использовать коммерческие инструменты. С хорошей стороны на практике себя показал конвертер MSSQL-to-MySQL - разработка компании Intelligent Converters: http://www.intelligent-converters.ru/mssql-to-mysql.htm.


Предыдущая статья
Следущая статья


Вернуться