[SQLD] 과목 2 암기노트

정원석·2024년 3월 5일

SQL 문장들의 종류

명령어 종류명령어
데이터 조작어(DML)SELECT
INSERT
UPDATE
DELETE
데이터 명령어(DDL)CREATE
ALTER
DROP
RENAME
데이터 제어어(DCL)GRANT
REVOKE
트랜잭션 제어어COMMIT
ROLLBACK

WHERE절

WHERE 절은 데이터베이스의 테이블에서 특정 조건을 만족하는 행을 필터링하는 데 사용된다.

GROUP BY절

특정 열의 값을 기준으로 행을 그룹화하여 집계 함수를 사용하여 각 그룹에 대한 집계를 계산할 때 사용된다. 일반적으로 GROUP BY 절은 SELECT 문과 함께 사용되며, 특정 열 값을 기준으로 그룹을 형성하고 이 그룹에 대한 집계 함수를 적용한다.

HAVING절

그룹화된 결과에 대한 조건을 지정하는 데 사용된다. 이 절은 WHERE 절과 유사하지만, WHERE 절은 개별 행을 필터링하는 데 사용되고, HAVING 절은 그룹화된 데이터에 대한 필터링을 수행한다. 따라서 HAVING 절은 집계 함수와 함께 사용되는 경우가 많다.
예를 들어, employees 테이블에서 급여가 50000 이상인 부서의 평균 급여가 55000 이상인 경우만 선택하는 SELECT 문이라 하자.

SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) >= 55000;

이 SELECT 문은 employees 테이블을 부서별로 그룹화하고, 각 부서의 평균 급여가 55000 이상인 경우에 대한 결과를 반환한다.

!= 와 NOT의 차이점

  • != 연산자는 "같지않다"를 의미한다. 두 값이 다른경우 참(true)를 나타낸다.
  • NOT 연산자는 부정을 나타내며, 다른 논리 연산자와 함께 사용되어 조건을 부정한다.

!= 연산자의 사용예시

SELECT *
FROM employees
WHERE department != 'IT';

NOT 연산자의 사용예시

SELECT *
FROM employees
WHERE NOT department = 'HR';

LOWER 함수

문자열을 모두 소문자로 변환하는 SQL 함수

UPPER 함수

문자열을 모두 대문자로 변환하는 SQL 함수

LTRIM 함수

문자열의 왼쪽부터 공백을 제거하는 SQL 함수

SELECT LTRIM('   Hello, World!'); -- 출력 결과: 'Hello, World!'
SELECT LTRIM('xxYYZZxYZxx','x'); -- 출력 결과: 'YYZZxYZxx'

GROUP BY 절과 HAVING 절의 특성

  • GROUP BY 절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다.
  • 집계 함수의 통계 정보는 NULL 값을 가진 행을 제외하고 수행한다.
  • GROUP BY 절에서는 SELECT 절과는 달리 ALIAS 명을 사요할 수 없다.
  • 집계 함수는 WHERE 절에는 올 수 없다.(집계 함수를 사용할 수 있는 GROUP BY 절보다 WHERE 절이 먼저 수행된다.)
  • WHERE 절은 전체 데이터를 GROUP BY 으로 나누기 전에 행들을 미리 제거한다.

오라클에서의 날짜 연산

1/24/60 = 1분 → 1/24/(60/10) = 10분
1/12/(60/30) = 1시간

ISNULL 함수

특정 열 또는 값이 NULL인 경우 대체 값을 반환하는데 사용한다.

ISNULL(expression, replacement_value);

ORDER BY 절 특징

  • 기본적인 정렬 순서는 오름차순(ASC) 이다.

  • 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력된다.

  • 날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 이른 값이 먼저 출력된다. 예를들어 '01-JAN-2012'는 '01-SEP-2012'보다 먼저 출력된다.

  • 오라클에서는 NULL값을 가장 큰 값으로 간주하여 오름차순으로 정렬시 가장 마지막에, 내림차순으로 정렬시 가장 먼저 위치한다.

  • SQL Server 에서는 NULL 값을 가장 작은 값으로 간주하여 오름차순의 경우 가장 먼저, 내림차순의 경우 가장 마지막에 위치한다.

    조인(JOIN)

  • 일반적으로 조인은 PK와 FK값의 연관성에 의해 성립된다.

  • DBMS 옵티마이저는 FROM 절에 나열된 테이블들을 임의로 3개 정도씩 묶어서 조인을 처리한다.

  • EQUL JOIN은 조인에 관여하는 테이블 간의 칼럼 값들이 정확하게 일치하는 경우에 사용되는 방법이다.

  • 대부분 NON EQUL JOIN을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우도 있다.

profile
Back-End-Dev

0개의 댓글