728x90
SELECT
- DISTINCT : SELECT로 DB에서 컬럼을 조회할 때 중복되는 값들을 합쳐 한번만 출력.
-- 테이블에서 필드에 대해 중복을 제외하여 출력
SELECT DISTINCT 필드 FROM 테이블
- ALIAS (AS) : 컬럼이나 테이블에 임시 이름을 주는 용도로 사용.
ColumnName AS 컬럼명칭 --컬럼에 별칭 부여하기
TableName AS 테이블명칭 --테이블에 별칭 부여하기
- CONCAT : 문자열을 합칠 때 CONCAT 함수와 더하기(+) 연산자를 사용하는데, 문자열을 합칠 때는 되도록 CONCAT 함수 사용을 권장.
- CONCAT 함수는 많은 데이터베이스에서 사용 가능한 ANSI SQL 함수이며, CONCAT 함수에 입력된 값은 문자형으로 변환 후 합쳐지는 작업이 이뤄진다.
- 숫자와 문자가 함께 입력되어도 오류가 발생하지 않는다.
- CONCAT 함수의 문자 파라미터는 254개까지 입력이 가능하다.
SELECT CONCAT('SQLD','','Exam') FROM DUAL;
>SQLD Exam
SELECT문장 실행 순서
- 발췌 대상 테이블을 참조 ( FROM )
- 발췌 대상 데이터가 아닌 것을 제거 ( WHERE )
- 행들을 소그룹화 ( GROUP BY )
- 그룹핑된 값의 조건에 맞는 것만을 출력 ( HAVING )
- 데이터 값을 출력 / 계산 ( SELECT )
- 데이터를 정렬 ( ORDER BY )
정렬 (ORDER BY)
- 가장 마지막에 실행되며, 성능이 느려질 수 있다.
- GROUP BY 사용 시 GROUP BY 표현식이 아닌 값은 ORDER BY에 사용 불가.
- 집계 함수 사용 가능.
- 컬럼명과 컬럼 순서(정수)를 혼합하여 사용 가능.
- Oracle은 SELECT절에서 출력되지 않는 컬럼명으로 정렬 가능.
- Oracle은 행 기반으로 전체 컬럼을 메모리에 로드하기 때문.
- FROM절에 인라인 뷰를 사용하는 경우에는 불가능.
NULL
- NULL은 아직 정의 되지 않은 값, 0은 숫자이며, 공백은 문자이다.
- 테이블 생성시 NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 NULL 허용.
- 산술 연산에 NULL이 들어갈 경우 결과 값도 NULL.
- NULL값을 비교 연산 ( = , != )시 FALSE 리턴. ( NULL값의 비교 연산은 IS NULL , IS NOT NULL로 가능 )
- 집계 함수( SUM, COUNT, AVG, MIN, MAX... )에서는 NULL 제외 후 실행.
NULL 관련 함수
- NVL( col1, 0 ) : col1이 NULL이면 0으로 반환 아니면 col1 반환 *Oracle
- NVL2( col1, 1, 0 ) : col1이 NULL이면 0으로 반환 아니면 1반환 *Oracle
- ISNULL ( col1, 0 ) : col1이 NULL이면 0으로 반환 아니면 col1 반환 *SQL SERVER
- NULLIF ( col1, col2 ) : col1이 col2이면 NULL로 반환 아니면 col1 반환
- COALESCE ( col1, col2, col3 ... ) : NULL이 아닌 최초의 표현식 반환, BUT 모든 표현식이 NULL이라면 NULL 반환
728x90
'Database' 카테고리의 다른 글
[SQL] 필드명이 예약어일 경우...!! (0) | 2023.01.13 |
---|---|
[SQL] 데이터 타입(Data Type) (0) | 2023.01.12 |
[SQL] 테이블의 구조와 설명을 알 수 있는 desc!! (0) | 2023.01.11 |
[SQLD] 엔터티(ENTITY), 속성(ATTRIBUTE), 관계(RELATION) (0) | 2022.09.02 |
[SQLD] DBMS (0) | 2022.09.02 |
댓글