OracleとMySQL、同じSQLでも「え、そこ違うの?」ってポイント
エンジニアやってると避けて通れないのがSQL。
「SELECTはどこでも一緒でしょ?」って思いがちだけど、実はRDBMSごとに結構クセがあるんです。
1. 日付の扱いが全然違う
Oracle: SYSDATE
MySQL: NOW()
「今日の日付と時刻」ひとつ取っても書き方が変わります。
SQL移植で一番「おっと?」ってなるのはここかも。
2. 文字列連結の地味な違い
Oracle: 'A' || 'B' → 'AB'
MySQL: CONCAT('A', 'B') → 'AB'
|| で書いたら怒られるのがMySQL。
慣れるまでは「なんで動かないの?」ってなるあるある。
- LIMIT vs ROWNUM
Oracle: WHERE ROWNUM <= 10
MySQL: LIMIT 10
TOP10件だけ出したいときに、この差で混乱しがち。
特に移植案件では「LIMITがないんだけど!」って必ず出る。
まとめ
SQLってどこでも同じだと思ってたら、地味に違う。
エンジニアが別DBに乗り換えるときのハマりどころTOP3は
**「日付・文字列連結・LIMIT」**だと個人的に思ってます。
採用拡大中!
アシストエンジニアリングでは一緒に働くフロントエンド、バックエンドのエンジニア仲間を募集しています!
少しでも興味ある方は、カジュアル面談からでもぜひお気軽にお話ししましょう!
お問い合わせはこちらから↓
https://official.assisteng.co.jp/contact/