매일 매일 미라클 코딩
SQLD 오답노트 (5) - SQL 기본 및 활용 본문
NULL관련 함수
NVL(입력, 결과): 입력이 null인 경우 결과값 지정
NULLLIF(값1, 값2) : 값1과 값 2가 동일할 경우 NULL 반환
COALESCE : 각 Row에서 첫번째 NULL이 아닌 값을 반환(NVL 과 비슷 )
SELECT 문장 실행 순서
1) FROM : 발췌 대상 테이블을 참조한다
2) WHERE : 발췌 대산 데이터가 아닌 것은 제거한다
3) GROUP BY : 행들을 소그룹화 한다
4) HAVING : 그룹핑된 값의 조건에 맞는 것만을 출력한다
5) SELECT : 데이터 값을 출력 / 계산한다
6) ORDER BY : 데이터를 정렬한다
JOIN
- 일반적으로 join 은 PK와 PK 값의 연관성에 의해 성립된다.
- DBMS 옵티마이저는 FROM 절에 나열된 테이블은 2개씩 묶어서 JOIN 처리한다
- EQUI JOIN 은 JOIN 관여하는 테이블간의 컬럼 값들이 정확하게 일치할 떼 사용하는 방법이다
- EQUI JOIN 은 '=' 연산자에 의해서만 수행되며, 그 외로는 모두 NON-EQUI JOIN
- 대부분 NON-EQUI JOIN 을 수행하지만, 떄로는 불가능한 경우도 있다.
문자형 함수 | 설명 |
lower / upper(문자열) | 문자열의 알파벳을 소문자 / 대문자로 바꿔준다 |
ascii(문자/숫자열) | 문자나 숫자를 ASCII 코드 번호로 바꾼다 |
chr / char (ASCII 번호) | ASCII 번호를 문자나 숫자로 변환한다 |
concat(문자열1, 문자열2) | 문자열1과 문자열2를 연결한다 |
substr / substring (문자열, m, n) | 문자열 중 m 위치에서 n 개의 문자 길이에 해당하는 문자를 돌려준다 (n 생략시 끝까지) |
length / len | 문자열의 길이를 반환한다 |
ltrim(문자열, 지정문자) / rtrim(문자열, 지정문자) |
L Trim : 문자열의 첫문자부터 시작하여 지정 문자가 나올때까지의 값 제거 R Trim : 문자열의 마지막 문자부터 확인하여 지정문자가 나올때까지의 값을 제거 |
trim(지정문자) | 앞, 뒤 , 혹은 양쪽에 있는 지정문자 제거 SQL Server에서는 지정문자 사용 X -> 공백만 제거할 수 있다 |
순수 관계연산자
관계형 데이터베이스에서 사용할 수 있도록 특별히 개발한 연산자
Select(시그마) , join(보타이), devide(%), project(파이)
서브쿼리애서만 사용 가능한 연산자
EXISTS : 서브쿼리의 결과가 한건이라도 존재하면 TRUE
NOT EXISTS: 서브쿼리에 데이터가 존재하지 않을 경우 존재하지 않는 데이터만 조회된다
카타시안곱 = cross join
일반집합 연산자의 product에 해당하는 개념으로 테이블 간 join조건이 없는 경우 생길 수 있는 모든 대이터의 조합. M*N 건의 데이터 조합이 발생하며 cross join 키워드를 사용 하거나 조건절이 없는 조인 문으로 사용할 수 있다.
OUTER JOIN
1) left outer join
2) right outer join
3) full outer join
조인 수행시 좌측, 우측 테이블의 모든 데이터를 읽어 JOIN하여 결과를 생성한다.
테이블 A, B가 있을 때 , 두 테이블 모두 기준이 된다. 즉, LEFT OUTER JOIN과 RIGHT OUTER JOIN의 결과를 합잡합으로 처리한 결과와 동일하다.
집합 연산자의 종류
1) UNION : 여러개의 SQL 문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다 (중복제거)
2) UNION ALL: 여러개의 SQL 문의 결과에대한 합집합으로 중복돤 행도 그대로 결과값에 표시된다. 즉 단순히 결고ㅏ값만 합쳐놓은 것이기 때문에 여러 질의 결과가 상호 배타적인 경우에 사용한다.
3) INTERSECT: 여러개의 SQL문의 결과에 대한 교집합. 중복된 행은 하나의 행으로 만든다.
4) EXCEPT: 앞의 SQL문의 결과에서 뒤의 SQL문의 결과에 대한 차집합. 중복행은 하나로 만든다 ( 일부 데이터베이스는 MINUS 를 사용함 )
ERD 1:1 양쪽 필수관계
'데이터베이스' 카테고리의 다른 글
SQLD 오답노트(6) - SQL 활용 (0) | 2022.09.03 |
---|---|
SQLD 오답노트 (4) - SQL 기본 및 활용 (0) | 2022.09.01 |
SQLD 오답노트 (3) - 데이터 모델과 성능 (1) | 2022.08.30 |
SQLD 오답노트 (2) - 정규화 반정규화 (0) | 2022.08.24 |
[Lv.3] 프로그래머스 - 헤비유저가 소유한 장소 (0) | 2021.06.29 |