-
[SQLD] SQL 개발자 공부하기 Day 20 : 부록 정리, ORACLE과 SQL Server 차이점Study/SQL 2024. 3. 7. 22:01728x90반응형
목차
1. 부록 정리
부록 정리
ERD
ERD는 크게 IE 표기법과 바커 표기법으로 나뉜다.
- IE 표기법
- 동그라미의 유무에 따라서 필수/선택을 나눈다.
- 식별관계는 점선과 실선으로 나눈다.
- 주식별자는 맨 위 네모칸에 배치하고 일반속성은 밑 네모칸에 배치한다.
- 널 허용과 허용하지 않을 때는 표기하지 않는다.
- 바커 표기법
- 점선의 유무에 따라서 필수/선택을 나눈다. (자신 엔터티에 대한 표현을 반대쪽에 한다.)
- 식별관계는 UID BAR의 유무로 나뉜다.
- 주식별자는 #을 사용하고 일반속성은 ﹡또는 ◯을 사용한다.
- 널 허용은 ◯, 허용하지 않을 때는 ﹡을 사용한다.
데이터 입력의 차이
- CHAR 타입은 고정 길이만큼 뒤에 공백을 채워서 저장한다.
- VARCHAR 타입은 입력된 값 그대로 저장한다.
- 문자 타입 입력 시 제한된 길이보다 큰 "공백을 포함한 문자열" 값을 입력하면 고정 길이에 맞게 값에서 뒤 공백이 자르고 입력 (ORACLE은 입력 에러)
CHAR 타입 컬럼의 문자 상수 비교
- CHAR 컬럼끼리 서로 비교될 때 뒤 공백의 수만 다르고 값이 같다면 같은 것으로 간주한다.
- ex) 'ORACLE' = 'ORACLE '
- 그러나 앞의 공백이 다르면 다른 값이다.
- ex) 'ORACLE' != ' ORACLE'
- 왼쪽부터의 값이 같을 때까지 체크 후 크기가 더 큰 쪽이 더 큰 값이 됨
- ex) '가' < '가나' < '가나다'
- 일반적으로 공백 < 특수기호 < 숫자 < 영어 < 한글의 크기 순서
- 대소문자를 구분하는 경우 대문자 < 소문자
반응형VARCHAR 타입 컬럼의 문자 상수 비교
- 왼쪽에서부터 서로 다른 문자가 나올 때까지 비교하여 공백포함 모든 값이 같을 때 같은 값으로 인정한다.
문자타입과 숫자 상수 비교
- 항상 숫자에 맞춰 형 변환 후 비교한다.
- 문자 컬럼에 숫자변환이 불가능한 문자('ABCDE')가 이미 존재하는 경우 비교 불가
- 문자 컬럼에 숫자변환이 가능한 문자('0001')만 존재하는 경우 비교 가능
EXISTS 연산자의 원리
- IN 연산자처럼 포함 관계를 표현할 때 자주 등장
- 비교 컬럼을 따로 명시하지 않고 바로 서브쿼리에서 메인쿼리와 비교를 진행함
- NOT EXISTS 연산자는 메인쿼리의 결과를 출력하되, 서브쿼리 결과와 일치하지 않는 데이터만 출력할 목적으로 사용
2. ORACLE과 SQL Server 차이점
ORACLE vs SQL Server
- 주로 차이가 발생하는 지점
- 조인 문법 / 함수 / 빈문자열 입력 처리 / 문자열 입력 시 크기 제한 / Auto commit / 테이블 별칭 / Top N query / 컬럼 수정
조인 문법
- ORACLE은 ORACLE 표준, ANSI 표준 모두 가능
- SQL Server는 ANSI 표준만 가능
함수
- 두 DBMS 간의 함수가 가장 많은 차이 발생
728x90빈문자열 입력 처리
- 빈문자열이 입력되면 ORACLE은 NULL로 입력
- 빈문자열이 입력되면 SQL Server는 빈문자열 그대로 입력
문자열 입력 시 크기 제한
- ORACLE은 정해진 사이즈를 초과한 문자열 입력 불가
- SQL Server는 공백을 포함한 문자열 입력 시 사이즈 초과만큼의 공백을 자르고 입력됨.
Auto commit
- ORACLE은 DDL만 AUTO COMMIT, DML의 경우는 수동 COMMIT
- SQL Server는 DDL, DML 모두 AUTO COMMIT이 기본이다.
테이블 별칭
- ORACLE은 AS 없이 전달
- SQL Server는 테이블 별칭 시 AS를 전달 혹은 생략 가능하지만, 인라인뷰에는 반드시 AS를 전달해야 함.
Top N query
- ORACLE은 ROWNUM 방식
- SQL Server는 TOP 쿼리 방식 (TOP n [with ties])
- 둘 다 Rank 함수와 Fetch절 사용 가능
컬럼 수정 시 NULL 설정 여부
- 컬럼 생성 시 Default는 Nullable
- ORACLE은 NOT NULL 속성 컬럼 타입이나 크기를 변경해도 Not null 속성을 유지
- SQL Server는 Nullable로 변경된, 다시 Not null 선언 필요함
728x90반응형'Study > SQL' 카테고리의 다른 글
[SQLD] 3주 만에 SQL 개발자 자격증 합격하기! 난이도와 합격 방법은? (0) 2024.03.29 [SQLD] SQL 개발자 공부하기 Day 21 : 최신 기출문제 4회 오답노트 (1) 2024.03.08 [SQLD] SQL 개발자 공부하기 Day 19 : 최신 기출문제 3회 오답노트 (1) 2024.03.06 [SQLD] SQL 개발자 공부하기 Day 18 : 최신 기출문제 2회 오답노트 (0) 2024.03.05 [SQLD] SQL 개발자 공부하기 Day 17 : 최신 기출문제 1회 오답노트 (0) 2024.03.04 - IE 표기법