본문 바로가기
SQLD

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

by yukuda 2024. 2. 25.
728x90

 

 출처 : https://www.youtube.com/watch?v=PC3ypt_VGWI

SQL 명령문 개괄

1) From - where - group by - having - select - orderby

2) DML - select, insert, delete, update

DDL - alter, create, modify, drop

TCL - rollback, commit

DCL - grant, revote

SELECT

1) distinct (집약) → 10

  10 10

  20 → 20

  20 30

  30

Distinct(deptno, mgr) ≒ group by(deptno, mgr)

2) As → select 1) as 생략가능 2) 컬럼명에 띄어쓰기

→ from 1) as 사용불가!

3) Concat(인수가 2개) → + SQL server

→ || oracle

논리연산자

1) and → a and b (둘다 먹기)

or → a or b (둘중에 하나)

not → a,b (둘다 싫어)

*연산순위 not → and → or (나오로 외우기)

 

SQL 연산자

A Between 1 and 2 → 1≤ A ≤ 2

A IN (1,2,3) → A = 1 or A = 2 or A = 3

LIKE → _ 미지의 한글자

→ % 0이상 글자

→ escape 와일드카드 (- %)를 문자로 취급

ex) ename like ‘A-A’ escape ⇒ ‘A@_A’ ‘@’

Rownum (oracle)

→ (where) 1) Rownum -1 포함

TOP (SQL server)

→ (select) TOP(n) <컬럼명></컬럼명>

상위 n개

 

NULL

1) null의 정의

1)부재, 모르는값

2) 산술연산

null + 2

null - 4 = null

null * null

비교연산

null = null

null = 2

→ 알수없음(unknown)

→ where(조건) : 조건이 nuknown이면 → false

3) 정렬상 의미

oracle : ‘∞’

SQL server : ‘-∞’

4) NVL → 널뛰기 (값1, 값2) 값1 is null → true 값2 false 값1

NVL2 → 널뛰기 (값1,값2,값3) 값1 is null → 값3 , is not null 값2

isNull → 널뛰기 (값1, 값2) NVL과 동일

Null if → 같이 놀자! (값1, 값2) 같으면 null 다르면 값1

coalesce → 널 아닌 첫번째 값 (값1,값2, …..) 널 아닌 첫번째 값

정렬

1) 정렬의 특성

1.가장 마지막에 실행

2.성능이 느려질 수 있다.

3.null값과의 관계

 

2)컬럼 번호 정렬

출력되는 컬럼의 수보다 큰 값이 불허

 

3) 인수 2개 정렬

sal desc, ename asc

sal이 같으면 ename 오름차순

 

4) select ename X

orderby sal (가능)

 

숫자 함수

Round 자릿수

Round(138 94) ( ) 인수!

 

ceil(oracle)/ ceiling(Sql server)

 

문자열 함수

upper

lower

대소문자 구분

 

LPad

RPad

LTrim

RTrim

 

Substring

instr

실습만해보기

 

날짜 함수

To_Char

To_date

실습 ‘형변환’

 

sysdate (oracle)

Getdate() (sql server)

 

날짜데이터 + 100 : 100일 이후 (day로 인식)

 

DECODE/CASE

Case만!

다 만족 안하면 null

 

집계함수*

null 과의 관계

GROUP BY

그룹수준 정보를 바꾼다

집약기능

 

JOIN

1) natural join, using → 중복된 컬럼 하나, 제일 앞에 등장, alius 사용 X

2) left outer Join

 

서브쿼리

select Scalar

from Inline view → 메인쿼리의 컬럼 사용가능

where 거의 모든 서브쿼리 가능 (중첩 서브쿼리)

group by X

having 거의 모든 서브쿼리 가능 (중첩 서브쿼리)

orderby Scalar

 

In

any/some

all

exist

 

집합연산자

union → 정렬 작업O 느리다

intersect → 정렬 작업O 느리다

minus → 정렬 작업O 느리다

union all → (중복데이터 존재) 정렬작업X 빠르다

DDL

TCL

DML

insert

update

delete

merge

제약 조건*

PK = 하나만 존재

unique

notnull

DCL

grant

revoke

 

role 특징

VIEW

독편부

독립성, 편리성, 보안성

 

그룹함수*

roll up

cube

groupingsets

TCL

commit

roleback

 

'SQLD' 카테고리의 다른 글

SQLD 최종 정리강의 2편 - 윈도우 함수 ~ 인덱스(Index)  (1) 2024.02.25