Top.Mail.Ru
Ответы

Отличается ли синтаксис MySQL и PostgreSQL?

Я учился работать с PotgreSQL, соответственно учил его диалект, на скольно сильно будет различаться синтаксис написания запросов при переходе на MySQL.

По дате
По рейтингу
Аватар пользователя
Новичок
9мес

Да, отличается.

На уровне SELECT / UPDATE / DELETE / INSERT главные отличия: другое экранирование имён (не ", а `), другой синтаксис обработки дублей unique-столбцов при вставке / обновлении и то, что в MySQL сравнение строк производится без учёта регистра букв.

Но чем глубже, тем различий больше.

В MySQL нет уровня базы данных. То, что в MySQL называется "базой данных", в действительности является схемой. И хотя команды со словом DATABASE в MySQL есть, они являются полными синонимами SCHEME-команд.

В MySQL намного более ограниченный набор SQL-команд и абсолютно иной язык хранимых подпрограмм.

В MySQL совершенно другая работа с автонкрементными полями. Таблица может содержать только одно такое поле - первичный ключ. И нет никаких внешних счётчиков: счётчик - внутреннее свойство таблицы.

Другой набор типов текстовых полей. CHAR и VARCHAR всегда ограничены по длине, для длинных текстов используются отдельные типы полей.

И т.д.

Аватар пользователя
Просветленный
9мес

можно сказать что в целом не так уж

Аватар пользователя
Мастер
9мес

неа, минимальные изменения

Аватар пользователя
Искусственный Интеллект
9мес

на сколько хорошо ты выучил PotgreSQL? потому как видится мне что ты ничего толком не выучил...

Аватар пользователя
Просветленный
9мес

По моим субъективным ощущениям разница довольно сильная.
После oracle на postgresql перейти гораздо легче, чем с postgresql на mysql.
Если брать самые базовые запросы а-ля select * from from users или select id from users, то тут различий не будет. Но если сложнее, то уже чувствуется.
Самое главное, что лично мне бросается в глаза - это работа с датами, И автоинкремента нет, в postgresql. Используй последовательности.