1. 명령문 연산순서 정렬
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY
2. DML, DDL, TCL, DCL
- DML : select, insert, delete, update
- TDDL : alter, create, modify, drop
- TCL : rollback, commit
- DCL : grant, revoke
3. DISTINCT (집약의 기능을 한다.)
- 중복된것을 하나로 모은다.
4. Alias(AS)
- select절에서는 as 생략가능, 컬럼명에 띄어쓰기가 있을 경우 ""를 이용해 묶어서 사용
- from절에서는 as 사용 불가.
5. Concat
- + (SQL SERVER)
- || (Oracle)
- 인수가 반드시 딱 2개여야 한다(3개 4개 안된다)
6. 논리연산자
- and
- or
- not
- 연산순서: 1.NOT 2. AND 3. OR
7. SQL연산자
- Between A and B --- (1<= A <= 2)
- in --- (A=1 || A=2)
- Like :
* _ : 미지의 한글자
%: 0 이상 글자
escape : 와일드카드를 문자로 취급해준다.
- Rownum (Oracle) : where 조건절에서 rownum이 1인경우를 포함해야한다 (적층구조이기 때문)
- select ename from Emp where rownum<=3 order by sal일때 order by가 언제 실행되어서 잘리나
- Top(n) <column-name> (SQLServer) : 상위 n개를 가져온다
8. Null
- 정의 : 1. 부재, 모르는값
- null +1 , null *2 , null - 4 ==>> null로 반환
- where조건절에 null의 결과값을 가져온다면 false로 취급한다.
- 정렬상 의미 : oracle (무한대) , SQL Server (-무한대)
9. NVL
- NVL - 널뛰기
- NVL2 - 널뛰기
- isNull - 널뛰기
- NullIf - 같이 놀자 (같으면 null 다르면 값1)
- coalece - 널 아닌 첫번째 값
10. 정렬
- 정렬의 특성
* 가장 마지막 실행
* 실행이 느려질 수 있다
* null 값의 관계
- 컬럼의 번호 정렬
* 출력되는 컬럼의 수보다 큰 값 불허
* 출력되지 않는 컬럼의 번호로도 정렬 가능
- 인수 두개 정렬
* sal desc, ename asc
11. 숫자 함수
- round(<숫자>,<인수>)
- ceil (oracle) ceiling(SQL server)
12. 문자열 함수
- upper : 대문자로바꿈
- lower : 소문자로 바꿈
- lpad
- rpad
- ltrim
- rtrim
- substr
- nstr
13. 날짜 함수
- To_char: 형변환을 일으키는 함수이다
- To_date :형변환을 일으키는 함수이다
- sysdate : 현재시간 출력 (oracle)
- getdate : 현재시간 출력 (SQL server)
- 날짜데이터+100 : 100은 default가 day로 인식한다
14. DECODE / CASE
- CASE when then when then else end : else가 없으면 null이 나온다.
- DECODE는 실습한번해보기
15. 집계함수
- null과의 관계 : sum은 null을 제외하고 더함,
- sum(A) + sum(B) + sum(C) vs sum(A+B+C)
16. Group by
- 집약기능
- 그룹 수준 정보로 바꾼다.
17. JOIN
- natural join : 중복된 컬럼이 하나로 출력되고 가장 앞에 등장한다
- using : 중복된 컬럼이 하나로출력된다 가장 앞에 등장한다, alias사용불가
- left outer join
* A left outer join ON B = A.col1 = B.col1(+) (+를 반대로 써야한다)
- join을 하면 할수록 뚱뚱해진다
- FROM a,b,c의 조인 순서(a,b를 합친 테이블에 c가 다시 조인되는것)
18. 서브쿼리
- select from where group by having order by중 서브쿼리가 불가능한 곳 = group by절
- select <scalar>
- from <inline view> : 메인쿼리의 컬럼도 사용할 수 있다.
- where <거의 모든 서브쿼리: 중첩 서브쿼리>
- having <거의 모든 서브쿼리: 중첩 서브쿼리>
- order by <scalar>
- in, any / some, all, exist=>있으면 true 없으면 false
19. 집합연산자
- UNION : 합치기
- INTERSECT : 교차값 가져오기
- MINUS (Except) =>위 3개와 함께 정렬작업이 있어서 union all보다 느리다
- UNIONALL =>중복데이터가 존재함, 정렬작업을 하지 않고 빠르다
20. DDL
- Truncate vs Drop :truncate는 구조 남음, drop은 구조 삭제
- Truncate vs delete : ddl vs dml (Rollback, commit의 관계)
21. DML : TCL과 연결지어 나온다
- insert
- update
- delete
- merge : 신유형 (기출문제 37회)
22. 제약조건
- PK = unique + not null
- Unique
- not null
23. DCL
- Grant
- Revoke
- Role의 특징 (명령어는 아니고 오브젝트의 하나다)
- on to 구문
24. VIEW
- 독편보(독립성 / 편리성 / 보안성)
- 테이블자체가 아니라 명령어를 보관한다.
25. 그룹함수 : 비교표가 나올 때가 됐다.
- Roll up : rollup(a,b) rollup(b,a) 같은결과 나오지 않는다.
- cube: 같은결과 나온다.
- groupingsets
- grouping (요즘 잘 안내는중)
26. TCL
- commit
- rollback
- auto commit off