| 명령어 종류 | 명령어 |
|---|---|
| 데이터 조작어(DML) | SELECT INSERT UPDATE DELETE |
| 데이터 명령어(DDL) | CREATE ALTER DROP RENAME |
| 데이터 제어어(DCL) | GRANT REVOKE |
| 트랜잭션 제어어 | COMMIT ROLLBACK |
WHERE 절은 데이터베이스의 테이블에서 특정 조건을 만족하는 행을 필터링하는 데 사용된다.
특정 열의 값을 기준으로 행을 그룹화하여 집계 함수를 사용하여 각 그룹에 대한 집계를 계산할 때 사용된다. 일반적으로 GROUP BY 절은 SELECT 문과 함께 사용되며, 특정 열 값을 기준으로 그룹을 형성하고 이 그룹에 대한 집계 함수를 적용한다.
그룹화된 결과에 대한 조건을 지정하는 데 사용된다. 이 절은 WHERE 절과 유사하지만, WHERE 절은 개별 행을 필터링하는 데 사용되고, HAVING 절은 그룹화된 데이터에 대한 필터링을 수행한다. 따라서 HAVING 절은 집계 함수와 함께 사용되는 경우가 많다.
예를 들어, employees 테이블에서 급여가 50000 이상인 부서의 평균 급여가 55000 이상인 경우만 선택하는 SELECT 문이라 하자.
SELECT department, AVG(salary)
FROM employees
GROUP BY department
HAVING AVG(salary) >= 55000;
이 SELECT 문은 employees 테이블을 부서별로 그룹화하고, 각 부서의 평균 급여가 55000 이상인 경우에 대한 결과를 반환한다.
!= 연산자의 사용예시
SELECT *
FROM employees
WHERE department != 'IT';
NOT 연산자의 사용예시
SELECT *
FROM employees
WHERE NOT department = 'HR';
문자열을 모두 소문자로 변환하는 SQL 함수
문자열을 모두 대문자로 변환하는 SQL 함수
문자열의 왼쪽부터 공백을 제거하는 SQL 함수
SELECT LTRIM(' Hello, World!'); -- 출력 결과: 'Hello, World!'
SELECT LTRIM('xxYYZZxYZxx','x'); -- 출력 결과: 'YYZZxYZxx'
1/24/60 = 1분 → 1/24/(60/10) = 10분
1/12/(60/30) = 1시간
특정 열 또는 값이 NULL인 경우 대체 값을 반환하는데 사용한다.
ISNULL(expression, replacement_value);
기본적인 정렬 순서는 오름차순(ASC) 이다.
숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력된다.
날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 이른 값이 먼저 출력된다. 예를들어 '01-JAN-2012'는 '01-SEP-2012'보다 먼저 출력된다.
오라클에서는 NULL값을 가장 큰 값으로 간주하여 오름차순으로 정렬시 가장 마지막에, 내림차순으로 정렬시 가장 먼저 위치한다.
SQL Server 에서는 NULL 값을 가장 작은 값으로 간주하여 오름차순의 경우 가장 먼저, 내림차순의 경우 가장 마지막에 위치한다.
일반적으로 조인은 PK와 FK값의 연관성에 의해 성립된다.
DBMS 옵티마이저는 FROM 절에 나열된 테이블들을 임의로 3개 정도씩 묶어서 조인을 처리한다.
EQUL JOIN은 조인에 관여하는 테이블 간의 칼럼 값들이 정확하게 일치하는 경우에 사용되는 방법이다.
대부분 NON EQUL JOIN을 수행할 수 있지만, 때로는 설계상의 이유로 수행이 불가능한 경우도 있다.