DML - SELECT, INSERT, DELETE, UPDATE
DDL - ALTER, CREATE, MODIFY, DROP
TCL - ROLLBACK, COMMIT
DCL - GRANT, REVOKE
DISTINCT (집약)
= GROUP BY(DEPTNO, MGR)
AS
CONCAT(A, B) : 무조건 두개
+||NAO 순서 외우기
1. NOT
2. AND
3. OR
A BETWEEN 1 AND 2 => A>=1 AND A<=2
A IN (1,2,3) => A=1 OR A=2 OR A=3
❗❗❗❗❗ LIKE
와일드카드
_ 미지의 한글자% 0 이상 글자LIKE escape 와일드카드를 문자로 취급
ename like A_A => A@_A
escape @ (아무문자 가능)
select empno, sal
from emp
where rownum<=3
order by sal --가장 마지막!!

가장마지막에 ORDER BY가 나오기 때문에 세개만 정렬되어 나온다.
SELECT TOP(n) <컬럼명> : <컬럼명>의 상위 n개를 가져온다null+2 null-4 null*null 전부 알 수 없음null=null`` null=2 전부 알 수 없음 ISNULL (값1, 값2) :NVL과 동일
NVL (값1, 값2) : NULL X -> 값1, NULL-> 값2
NVL2 (값1, 값2, 값3) : 값 IS NULL 값3 , X 값2
NULLIF (값1, 값2) : 1이 2와 같으면 NULL, 다르면 값1
COALESCE (값1, 2, 3, ...) : 널 아닌 첫번째값
출력되는 컬럼의 수 보다 큰 값 Xselect ename
orderby sal
ROUND 자릿수
ROUND(138.94)
138.94
..0.12 순으로...
SUBSTR
NSTR
실습만~
TO_CHAR
TO_DATE
-> 형변환 되느냐 문제 많음
다음중 형변환이 되는 함수는?
SYSDATE(ORACLE)
GETDATE(SQL SERVER)
날짜 데이터+100 : 100일 이후
DAY
CASE만~~
CASE WHEN THEN
WHEN THEN
ELSE
END
ELSE가 없을 경우, 1,2 만족 X => NULL


집약 기능 있음
A LEFT OUTER JOI B
= A COL1 = B COL1 (+1)
A,B 순서가 같을 때 LEFT와 +1은 반대!
조인 순서
1. AB
2. JOIN(AB) C
SELECT SCALAR
FROM INLINE VIEW -> 메인쿼리의 컬럼 사용가능
WHERE 거의 모든 서브쿼리
GROUP BY XXX
HAVING 거의 모드 서브 쿼리
ORDER BY SCALAR
상호 연관 서브쿼리
ROW 하나 볼때 서브쿼리 다 만남
IN
ANY/SOME
ALL
EXIST 'l', 'x', 'a' 있으면 true
union
intersect
minus(except)
union all -> 중복데이터 존재
뭐가 더 빠른가? union all
구조 남음 - 구조도 삭제
TRUNCATE VS DROP (철거)
TRUNCATE VS DELETE
DDL VS DML
INSERT
UPDATE
DELETE
-> TCL (commit, rollback)이랑 같이 나옴
MERGE
-> 신유형
insert (컬럼 3개) values (데이터 2개) << 이런거 좀ㅈ종 나옴
pk = unique + notnull (하나만 존재한다! 대표성을 갖고있기 때문!)
unique
not null
의미 많이 물어봄
GRANT - 권한 부여
REVOKE - 권한 파기
ROLE
독편부
독립성 : VIEW를 따로 업데이트할 필요 X
편리성 :
보안성 : 원하는 정보만. 나머지는 숨겨서 줄 수 잇다.
비교표 잘 봅시다.
ROLL UP : 인수가 두개일 경우, ROLLUP(A,B) ROLLUP(B,A)는 같은가? -> 안같다.
CUBE : CUBE(A, B), CUBE(B, A) 는 같다
GROUPINGSETS : ()
GROUPING
AUTO COMMIT OFF
AND
BGIN TRANSACTION