1. SQL 명령문 개괄
1)연산순서
FROM -WHRER- GROUPM BY - HAVING -SELECT - ORDERBY
2)종류 고르기
- DML - SELECT, INSERT, DELETE, UPDATE
- DDL - ALTER, CREATE, MODIFY, DROP
- TCL - ROLLBACK, COMMIT
- DCL - GRANT, REVOKE
2. SELECT
distinct (집약 /중복제거) - distinct 컬럼1,컬럼2 => (컬럼1,2)라고 생각하면된다
as |
select | as생략가능 컬렴명에 띄어쓰기 가능 (컬럼명에 띄어쓰기 있을 경우 따옴표 "직원 번호") |
from | as사용불가 (오라클에서) | |
where | as사용불가 |
CONCAT
- SQL SERVER : +
- ORACLE : ||
- CONCAT은 인수가 2개 -> CONCAT( A, B )
3.논리연산자
- and - A 그리고 B
- or - A,나 B
- not - A , B 둘다 X
- 연산순위 NOT, AND, OR (NAO 나오)
- NOT(조건) AND(조건), NOT(조건) OR(조건)
- NOT 먼저 -> AND -> OR
4. SQL 연산자
A between 1 and 2 1=<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 @ (아무문자 가능)
5. NULL 의 정의
1) 부재,모르는값
2) NULL 산술연산 NULL+2 , NULL-4,NULL *NULL = NULL
3) 비교연산 NULL=2 , NULL=NULL -> 알수없음
4) 정렬상 의미 오름차순일시 오라클 : 맨마지막 , SQL : 맨처음에
5)
- (널뛰기)
NVL : (값1, 값2) 값1이 isnull이면 값2 아니라면 값 1
NVL2 : (값1, 값2, 값3) 값1인 isnull이면 값3 아닐 경우 값2
isnull : (값1, 값2) 값1이 isnull이면 값2 아니라면 값 1 - (같이 놀자!)
nullif : (값1, 값2) 두 개의 값이 같으면 null 다르면 값1 - (널 아닌 첫 번째 값)
coalesce : (값1, 값2, ...) 널 아니면 첫번째 값 , 맨 앞 첫 널 아닌 값.
6. 정렬
1) 특성
- 정렬의 특성 가장 마지막에 실행
- 성능이 느려지는 함수
- NULL값과의 관계
2) 컬럼번호 정렬
출력되는 컬럼의 수보다 큰값 X
3) 인수 두개
앞에꺼 정렬하고 같으면 뒤에꺼
4) SELECT에 없어도 정렬가능 (단 그룹시는 X)
7.숫자함수
ROUND - 자리수 확인
CEIL(오라클) = CEILING(SQL)
8. 문자열함수
- upper : 대문자로 변환
- lower : 소문자로 변환
- Lpad : 왼쪽에 문자를 채움 -> 기본 공백, 원하는 문자로 채우기 가능
- Rpad : 오른쪽에 문자를 채움
- LTrim : 왼쪽 공백을 지움 혹은 문자를 넣으면 반복되는 문자를 지움
- RTrim : 오른쪽 공백을 지움
9. 날짜 함수
TO_CHAR
TO_DATE
형변환 되느냐 문제 많음
오라클에서 sysdate 현재 시간
10 CASE WHEN THEN
ELSE 없을시 NULL
11. 집계함수
A | B | C |
NULL | NULL | 1 |
3 | 2 | 2 |
NULL | 2 | 3 |
- SUM(A) = 3, SUM(B) = 4
- COUNT (A) = 1 , COUNT (*) = 3
- SUM(A+B+C) = NULL+7+NULL = 7
- SUM(A)+SUM(B)+SUM(C) = 13
12. GROUP BY
집약기능 , 그룹수준 정보변경
13. JOIN
1)NATNANL JOIN / USING -> 중복된 컬럼 하나 , 제일 앞에 등장
- NATNANL JOIN - ALIAS 사용 가능
- USING - ALIAS 사용 X
2) LEFT OUTER JOIN
A LEFT OUTER JOIN B = A COL = BCOL(+)
3) A,B,C 조인시 순서
AB 조인 후 C 합쳐짐
14. 서브쿼리
select | SCALAR | |
form | Inline View | 메인 쿼리의 컬럼 사용가능 |
where | 거의 모든 서브쿼리 | 중첩서브쿼리 |
group by | X | |
having | 거의 모든 서브쿼리 | 중첩서브쿼리 |
order by | SCALAR |
in 서브쿼리 출력값들 or 조건
any /some - 서브쿼리 출력값들중 가장 작거나 큰 값과 비교
all - any/ some 과 반대 개념
exise( 모든문자가능 true 단 rows는 false)
15. 집합연산자
union | 합집합 - 종복제거 | 정렬작업 O 느리다 |
intersect | 교집합 | |
minuns( except) | 차집합 | |
union all | 합집합 | 종복데이터 o 정렬작업 x 빠르다 |
16. DDL
TCL과 연관해서 생각
TRUNCATE
입주민 퇴거 (구조는 남음 | 구조도 삭제 |
TRUNCATE | DROP |
TRUNCATE | DELTE |
DDL | DML |
17 . DML
INSERT ,UPDATE, DELETE - COMMIT, ROLLBACK
18. 제약조건
PK = UNIQUE +NOTNULL
UNIQUE
NOTNULL
19. DCL
- GRANTE의 정의 : 권한 부여
- REVOKE의 정의 : 권한 제거
ROLE 의 특징 - 5개 ROLE은 명령어가 아닌 객체(OBJECT)
- ROLE은 ROLE에게 부여 가능
- ROLE 사람에게 부여가능
- 사람들은 같은 ROLE을 가질 수 있음
- ROLE을 부여하려면 권한이 필요
- 권한이 있는 사용자에 의해 만들어짐
20 VIEW
독편부
- 독립성 :기존 테이블 구조 변경되어도 뷰의 구조는 변경되지 않는다.
- 편리성 :계속 테이블을 조작할 필요없다.
- 보안성 : 원하는 정보만. 나머지는 숨겨서 줄 수 잇다.
21. 그룹합수
rollup : 합계에 대한 총계 추가
[비교표] rollup A,B = rollup B,A 같은 결과 아님. 계층 구조로 진행됨
roll up 인수가 두개일 경우, ROLLUP(A,B) ROLLUP(B,A)는 같은가? -> 안같다.
cube cube (A,B) = cube(B,A)
1. null 다찾기
2. 총합행(X groupingsets /O :roll up, cube)
22. TCL
auto commit off and begin transaction = ddl에 commit 기능 없앤거
출처 :sqld 막판 최종정리
https://www.youtube.com/watch?v=PC3ypt_VGWI
'SQL' 카테고리의 다른 글
sqld 시험전 확인할 스피드 퀴즈 (0) | 2023.06.08 |
---|---|
SQLD 정리강의 정리 -2 (1) | 2023.06.06 |
sqld 1장 데이터 모델링의 이해 (0) | 2023.05.31 |
sqld rollup,cube ~윈도우함수 (108~127) (1) | 2023.05.30 |
sql 의 쿼리 실행 순서 (1) | 2023.02.21 |
댓글