
테이블
유저 1명 이상 필수(root 유저 소유 데이터베이스, 테이블 생성)
테이블명 중복X
A가 B 테이블을 만들 수 있는 권한 줬다 -> 소유자가 다른 동일한 테이블명 가능
행 단위 입력, 삭제
값 단위 수정
데이터 무결성
WHERE절
연산자
between A and B
ex) between 10 and 20 이게 어떤 쿼리랑 같은지 ? (이상이하 관계)
1. a > 10 and a < 20
2. a > 10 and a <= 20
3. a >= 10 and a < 20
4. a >= 10 and b <= 20 O
NULL 체크
1. IS NULL : NULL값인 행 찾기
2. IS NOT NULL
col = null; -> 이런 쿼리는 오류. 안된다.
rownum : 오라클만 됨. 출력 행 개수 제한
연산자 우선순위 : 괄호 - not - 비교연산 - and - or
WHERE절에는 집계함수(SUM, MAX, MIN, AVG, ...)
SELECT * FROM 'emp' WHERE SUM(price) >= 100000
함수는 FROM절 제외 모든 절 사용 가능
FROM절은 테이블을 가져오는 절. 다른거 못함(서브쿼리는 가능)
TRUNC(대상, 보여줄 자리수)
TRUNC(3.14, 1) => 3
올림
CEIL(3.333); => 4
TRIM : 양쪽 공백 제거
TRIM(' abc def '); => abc def
LTRIM : 좌측 공백 제거, 연속중복된 문자 제거
RTRIM
CONCAT : 문자열 합치기
CONCAT('ab','cd') => abcd
합성연산자 ||
SELECT 'ab' || 'cd' => 'abcd'
COALESCE(1 + NULL, NULL, 1, NULL, 3, ...)
NULL이 아닌 최초 식 반환 => 1
다 NULL => NULL
CASE
WHEN 컬럼 조건식 THEN '반환값'
ELSE 그 외 경우 대체값(기본값 NULL)
END
CASE
컬럼 WHEN 조건식 THEN '반환값'
ELSE 그 외 경우 대체값(기본값 NULL)
END
SELECT DISTINCT : 중복 값은 하나의 값으로
SELECT ALL(생략가능) col1, col2
COUNT(*) : NULL 체크 됨
COUNT(컬럼) : NULL 체크 안됨
ORDER BY절
NULL
SELECT절
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
순서는 에러를 점검하는 순서 => ORDER BY 절에 SELECT에서 사용하지 않은 컬럼을 쓸 수 있다.
GROUP BY절에 쓰인 컬럼만 SELECT에서 사용 가능
SELECT job, sal
FROM emp
GROUP BYU job;