728x90
내장 함수
- 단일행 함수 : 문자/숫자/날짜/변환/조건 함수
- 다중행 함수 : 집계 함수, 그룹 함수, 윈도우 함수
[SQL] SQL 함수 개요
Oracle SQL 함수의 종류로는 단일행 함수와 그룹함수가 있다. 단일행 함수 모든 행에 대해서 각각 적용되어 행의 개수와 동일한 개수를 반환하는 함수이다. SELECT WHERE ORDER BY 절에 사용 가능하다. 그
gangintheremark.tistory.com
- 함수의 입력 행수에 따라 단일행 함수와 다중행 함수로 구분
- 단일행 함수는
SELECT
WHERE
ORDER BY
UPDATE
절에 사용 가능 - 1:M조인이라 하더라도 M쪽에서 출력된 행이 하나씩 단일행 함수의 입력값으로 사용되므로 사용가능
- 다중행 함수도 단일행 함수와 동일하게 단일 값만 반환
날짜 함수
오라클에서 날짜의 연산은 숫자 연산과 같다. 특정 날짜에 1을 더하면 하루를 더한 결과와 같다.
💡 1/24/60 = 1 분 , 1/24/(60/10) = 10 분
조건 함수
DECODE
함수
DECODE(컬럼, 비교값1, 결과값1,
...
,기본결과값)
-- 사원들의 입사년도 별로 사원들의 인원수
SELECT COUNT(*) "총인원수",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2001, 1, 0)) "2001",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2002, 1, 0)) "2002",
SUM(DECODE(TO_CHAR(hire_date, 'YYYY'), 2003, 1, 0)) "2003",
FROM employees;
CASE
함수
CASE 컬럼 WHEN 비교값1 THEN 결과값1
...
ELSE 결과값N
END
CASE WHEN 컬럼="비교값1" THEN 결과값1
...
ELSE 결과값N
END
GROUP BY | HAVING
- 집계 함수의 통계 정보는 NULL값을 가진 행을 제외하고 수행
GROUP BY
절에서는ALIAS
명을 사용할 수 없다GROUP BY
를 사용할 경우 GROUP BY 표현식이 아닌 값은 기술될 수 없다- 집계함수는
WHERE
절에 올 수 없다. ➜ 집계함수를 사용할 수 있는 GROUP BY절보다 WHERE절 먼저 수행 HAVING
절에 집계함수 없이도 사용할 수 있다
SELECT 절의 실행 순서
FROM
- WHERE
- GROUP BY
- HAVING
- SELECT
- ORDER BY
TOP
TOP N
질의문에서 N에 해당하는 값이 동일한 경우 함께 출력되도록 하는 옵션이 WITH TIES
이다.
SELECT TOP(3) WITH TIES
FROM 성적
ORDER BY 승리건수 DESC;
조인 (JOIN)
- 일반적으로 조인은 PK와 FK 값의 연관성에 의해 성립 (논리적인 값들의 연관만으로 조인이 성립가능하기도)
EQUI
조인은 조인에 관여하는 테이블 간의 컬럼 값들이 정확하게 일치하는 경우 사용EQUI
조인은=
연산자에 의해서만 수행되며, 비교 연산자를 사용하는 경우 모두Non EQUI
조인이다.- N개의 테이블로부터 필요한 칼럼을 조회하려고 할때, 최소 N-1 번의 조인이 필요
- 대부분
Non EQUI
조인을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우도 존재 - DBMS
옵티마이저
는 FROM 절에 나열된 테이블이 아무리 많아도 항상 2개의 테이블씩 짝을 지어 조인 수행
[SQL] ANSI 조인
ANSI조인은 모든 DBMS에서 사용 가능한 조인을 의미한다. 여러 테이블을 연결하는 조인 조건을 WHERE 절에 명시하지 않고 다른 방법을 통하여 기술한다. 따라서 조인 조건과 검색 조건을 분리하여
gangintheremark.tistory.com
728x90
'Database > SQL' 카테고리의 다른 글
[SQLD] SQL 활용 II (0) | 2023.09.06 |
---|---|
[SQLD] SQL 활용 I (0) | 2023.09.05 |
[SQLD] SQL 기본 I (0) | 2023.09.03 |
[SQLD] 데이터 모델과 성능 (1) | 2023.09.01 |
[SQLD] 데이터 모델링 (0) | 2023.08.30 |