728x90
개요
JPA를 학습하다 보면 @Entity 어노테이션을 사용할 때 각 벤더사의 데이터베이스에 맞는 방언(Dialect)을 설정해야 합니다.
이는 SQL 표준이 존재하지만, Oracle, MySQL, PostgreSQL 등 데이터베이스 벤더사마다 각자의 '방언'처럼 문법이나 함수가 조금씩 다르게 구현되어 있기 때문입니다.
이러한 맥락에서 본 글에서는데이터베이스 벤더에 대해 정리하고자 합니다.
데이터베이스 벤더란❓
데이터베이스 벤더(Database Vendor)란 특정 데이터베이스 관리 시스템(DBMS)을 개발하고 제공하는 회사를 의미합니다.
DBMS는 데이터를 저장, 관리, 검색, 업데이트 하는 데 필요한 소프트웨어로, 벤더는 이러한 소프트웨어를 설계, 개발, 배포하고 지원하는 역할을 합니다.
각 벤더들은 SQL(Structured Query Language)이라는 표준을 기반으로 하지만, 자사만의 독특한 기능과 최적화를 통해 제품을 차별화합니다.
주요 데이터베이스 벤더 기업
- 오라클(Oracle)
- 마이크로소프트(Microsoft)
- IBM
- SAP
- 테라데이터(Teradata)
- MySQL
- PostgreSQL
벤더별 주요 차이점
1. SQL 구현 방식
-- Oracle
SELECT * FROM employees
WHERE ROWNUM <= 5;
-- MySQL
SELECT * FROM employees
LIMIT 5;
-- PostgreSQL
SELECT * FROM employees
LIMIT 5;
-- SQL Server
SELECT TOP 5 * FROM employees;
2. 데이터 타입 처리
-- Oracle
VARCHAR2, NUMBER, DATE
-- MySQL
VARCHAR, INT, DATETIME
-- PostgreSQL
VARCHAR, INTEGER, TIMESTAMP
-- SQL Server
VARCHAR, INT, DATETIME
3. 내장 함수
-- Oracle
TO_DATE('2024-01-06', 'YYYY-MM-DD')
-- MySQL
STR_TO_DATE('2024-01-06', '%Y-%m-%d')
-- PostgreSQL
TO_DATE('2024-01-06', 'YYYY-MM-DD')
-- SQL Server
CONVERT(DATE, '2024-01-06')
'TIL,일일 회고' 카테고리의 다른 글
[TIL, 일일 회고] 2025.01.07 - 헷갈리는 -v 옵션 정리하기: 바인드 마운트와 명명된 볼륨 (0) | 2025.01.07 |
---|---|
[TIL, 일일 회고] 2025.01.06 - 익명 볼륨의 함정: --rm 옵션 없이 사용할 때 주의사항 (0) | 2025.01.06 |
[TIL, 일일 회고] 2025.01.04 - Docker Run의 숨겨진 동작 원리: 이미지 자동 다운로드와 로컬 캐시 (0) | 2025.01.04 |
[TIL, 일일 회고] 2025.01.03 - IntelliJ IDEA에서 Excluded Files(제외된 파일) 확인 및 표시하는 방법 (0) | 2025.01.03 |
[TIL, 일일 회고] 2025.01.02 - 계단 수란? (DP, 재귀) (0) | 2025.01.02 |