Сегодня профессия ИТ является одной из самых воcстребованных, нестареющих и освоить ее пытаются многие.
Но встает вопрос: язык программирования выбран, освоен (возможно, пока частично), а какую базу данных учить, ведь их большое количество и что именно использует потенциальный работодатель? - это большой вопрос, так кто-то сразу "бросается" Mongo, кто-то "штурмует" PostgreSQL, ну и некоторые берут за основу MySql.
Именно начать с последнего варианта предлагаю и я Вам, а почему?
MySQL имеет API и коннекторы для языков Delphi, C, C++, Эйфель, Java, Лисп, Perl, PHP, Python, Ruby, Smalltalk, Компонентный Паскаль, Tcl и Lua, библиотеки для языков платформы .NET, а также обеспечивает поддержку для ODBC посредством ODBC-драйвера MyODBC.
Стоит отметить, что синтаксис MySql очень схож со множеством различных БД, так как в основе лежит язык SQL, а это значит, что покорите MySql и Вам будет понятен синтаксис PostgreSql.
Да, конечно, стоит отметить, что MySql не позволяет корректно применять регулярные выражения (операторы REGEXP и RLIKE) на строках в многобайтовых кодировках, например, для Юникода (UTF-8). При необходимости таких операций приходится переходить на однобайтовые кодировки, например русскую Win-1251 или KOI-8.
Однако, MySql обладает собственным логированием (кстати, если блеснете им при собеседовании на Джуна - это точно будет плюсом:) ), так же она эффективно позволяет join-нить таблицы.
Данная СУБД, начиная с версии 3.22 не имеет ограничения в размере таблиц (версия 3.2 была выпущена в 2001 году) сейчас актуальная версия 8.0
Стоит отметить, что GitHub использует MySQL в качестве основного хранилища данных для всех объектов, так как есть существенные плюсы:
- безопасность
- высокая скорость при операциях на чтение
- широкий спектр движков
Однако, MySql имеет и существенный недостаток:
- низкая скорость разработки
- платная поддержка
Но в основном на собеседованиях спрашивают именно MySql, например:
1) В чем разница между операторами DELETE и TRUNCATE?
2) Какие существуют типы СУБД?
3) Что такое внешний ключ (Foreign key)?
4) В чем разница между SQL и MySQL?
5) Какие существуют типы индексов.
6) Опишите три нормальные формы
7) Что такое подзапрос в SQL?
8) Какие существуют виды Join и в чем их отличие?
Если Вы ответили на часть вопросов верно, то поздравляю) Вы определенно знакомы с базами данных, ну а если нет, то на просторах Интернета множество ресурсов с изучением данного вопроса и помните "Дорогу осилит идущий!"
А какую СУБД порекомендуете новичкам Вы и почему? Пишите Ваши рекомендации в комментариям