SQLD 최종 정리 강의 1편

RNR·2022년 11월 3일
0

SQL

목록 보기
13/17
post-thumbnail

SQL 명령문 개괄

순서

  1. FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY

명령어 종류

DML - SELECT, INSERT, DELETE, UPDATE
DDL - ALTER, CREATE, MODIFY, DROP
TCL - ROLLBACK, COMMIT
DCL - GRANT, REVOKE

SELECT

DISTINCT (집약)
= GROUP BY(DEPTNO, MGR)

AS

  • SELECT (AS 생략가능) (컬럼명에 띄어쓰기 있을 경우 따옴표 "직원 번호")
  • FROM AS 사용 불가!

CONCAT(A, B) : 무조건 두개

  • SQL SERVER +
  • ORACLE ||

논리 연산자

NAO 순서 외우기
1. NOT
2. AND
3. OR

SQL 연산자

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 @ (아무문자 가능)

  • ROWNUM(ORACLE)
  1. ROWNUM:1 포함
select empno, sal
from emp
where rownum<=3
order by sal --가장 마지막!!


가장마지막에 ORDER BY가 나오기 때문에 세개만 정렬되어 나온다.

  • TOP(SQL SERVER)
    SELECT TOP(n) <컬럼명> : <컬럼명>의 상위 n개를 가져온다

💥💥💥NULL

  1. null의 정의
  2. 산술연산 : null+2 null-4 null*null 전부 알 수 없음
  3. 비교연산: null=null`` null=2 전부 알 수 없음
  4. 정렬상 의미
  • Oracle: +infinite
  • SQL Server : - infinite

NVL

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, ...) : 널 아닌 첫번째값

정렬

  1. 특성
  • 가장 마지막 실행
  • 성능이 느려질 수 있다.
  • null 값과의 관계
  1. 컬럼번호 정렬
  • 출력되는 컬럼의 수 보다 큰 값 X
    (오류 선지 조심)
  1. 인수 두개 정렬
  • sal desc, ename asc;
    sal이 같으면 ename 오름차순
  1. 출력되지 않는 colum으로 정렬 가능
select ename
orderby sal

숫자 함수

ROUND 자릿수
ROUND(138.94)
138.94
..0.12 순으로...

문자열 함수

  • UPPER
  • LOWER
  • LPAD / RPAD
  • LTRIM / RTRIM

SUBSTR
NSTR
실습만~

날짜 함수

TO_CHAR
TO_DATE
-> 형변환 되느냐 문제 많음
다음중 형변환이 되는 함수는?
SYSDATE(ORACLE)
GETDATE(SQL SERVER)

날짜 데이터+100 : 100일 이후
DAY

DECODE/CASE

CASE만~~

CASE WHEN THEN 
     WHEN THEN
     ELSE
END

ELSE가 없을 경우, 1,2 만족 X => NULL

💥💥💥💥💥집계함수

  • 💥💥💥💥NULL과의 관계

    NULL 건너뛰고 계산, COUNT도 NULL 빼고

GROUP BY

집약 기능 있음

JOIN

NATURAL JOIN

  • USING
    ★ ALIAS 사용X
    중복된 컬럼이 사라짐
    제일 앞에 등장

LEFT OUTER JOIN

A LEFT OUTER JOI B
= A COL1 = B COL1 (+1)

A,B 순서가 같을 때 LEFT와 +1은 반대!

FROM A, B, C

조인 순서
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

DDL

구조 남음 - 구조도 삭제
TRUNCATE VS DROP (철거)
TRUNCATE VS DELETE
DDL VS DML

DML

INSERT
UPDATE
DELETE
-> TCL (commit, rollback)이랑 같이 나옴

MERGE
-> 신유형

insert (컬럼 3개) values (데이터 2개) << 이런거 좀ㅈ종 나옴

제약 조건

pk = unique + notnull (하나만 존재한다! 대표성을 갖고있기 때문!)
unique
not null

DCL

의미 많이 물어봄
GRANT - 권한 부여
REVOKE - 권한 파기
ROLE

VIEW

독편부
독립성 : VIEW를 따로 업데이트할 필요 X
편리성 :
보안성 : 원하는 정보만. 나머지는 숨겨서 줄 수 잇다.

💥💥💥💥💥그룹 함수

비교표 잘 봅시다.
ROLL UP : 인수가 두개일 경우, ROLLUP(A,B) ROLLUP(B,A)는 같은가? -> 안같다.
CUBE : CUBE(A, B), CUBE(B, A) 는 같다
GROUPINGSETS : ()
GROUPING

TCL

AUTO COMMIT OFF
AND
BGIN TRANSACTION

profile
개인적 공부 기록. 그때그때 메모합니다.

0개의 댓글