MSSQL과 Oracle의 차이점

저는 Oracle을 사용을 많이 했었는데 MSSQL의 사용이 잦아질 것 같아 Oracle과 MSSQL의 차이점은 무엇이 있을지 알아보았습니다.

 

우선 Oracle과 MSSQL 모두 대용량 데이터를 다루기 위한 대표적인 데이터베이스입니다.

 

두 데이터베이스의 차이점은 아래와 같습니다.

1. 데이터베이스의 수

  • Oracle : 한 서버당 한개의 데이터베이스 생성
  • mssql : 한 서버당 다수의 데이터베이스 생성이 가능합니다. (멀티 데이터베이스)

 

2. 데이터 타입 정의 

데이터 타입 정의는 숫자,문자,날짜형 총 세가지에서 차이가 있습니다.

 

2-1 숫자형

  • MSSQL: 크게 4가지( tinyint > smallint > int > bigint )로 나눠집니다.

    정수 범위를 기존에 만들어진 타입을 통해 설정합니다.
    tinyint: 127
    smallint : 32,767
    int: 2147483647

    bigint: 9223372036854775807
  • Oracle: Number

    오라클은 정밀도와 스케일을 수정하여 정수 범위를 설정합니다.
    NUMBER[(정밀도|*[,스케일])]

2-2 문자형

  • MSSQL: varchar(10), nvarchar(10) 등으로 정의
  • Oracle: varchar2(10), nvarchar2(10) 등으로 정의

varchar 는 mssql,  mariadb 에서 사용하는 형식이고, varchar2는 Oracle에서 사용하는 형식입니다.

사용하는 DBMS에 따라 사용하는 이름이 다른 것입니다.

 

2-3 날짜형

  • MSSQL: smalldatetime, datetime 

    날짜 범위 및 형식을 파악하고 적절한 사용이 필요합니다.
    datetime의 경우 초의 밀리 단위까지 소수점으로 표현됩니다.
  형식 날짜 범위
smalldatetime 2000-01-01 00:00:00 1900-01-01 ~ 2079-06-06
datetime 2000-01-01 00:00:00.000  1753-01-01 ~ 9999-12-31

 

  • Oracle: date

    오라클은 date를 사용하며 포맷을 통해 다양하게 표현 가능합니다.

3. 테이블 생성 시 자동 증가

  • MSSQL: 테이블 생성 시 자동 증가 옵션 (identity(1,1)) 사용합니다.
  • Oracle: 자동 증가 옵션이 없으므로 따로 구현해야 합니다.