DataBase/SQLD

SQLD 최종 정리강의 1편 - SELECT문장 ~ 트랜잭션 관리 언어(TCL)

배워도끝이없네 2021. 9. 2. 18:05

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