나의 공부 일기

SQL 개발자 자격증 공부 - 2과목 SQL 기본 및 활용 ( 1 / 4 ) 본문

자격증공부/SQL 개발자

SQL 개발자 자격증 공부 - 2과목 SQL 기본 및 활용 ( 1 / 4 )

곽병권 2024. 2. 5. 16:21
728x90

데이터 조작어(DML)

• Data Manipulation Language

• SELECT

     - 데이터베이스에 들어 있는 데이터를 조회하거나 검색하기 위한 명령어

     - RETRIEVE 라고도 함

     - ex) [  SELECT * FROM 해당 컬럼들이 있는 테이블명 ]

• INSERT, UPDATE, DELETE

     - 데이터베이스의 테이블에 들어 있는 데이터에 변형을 가하는 종류의 명령어들을 말함

     - ex) 데이터를 테이블의 새로운 행에 집어넣거나, 원하지 않는 데이터를 삭제하거나 수정하는 것들

데이터 정의어(DDL)

• Data Definition Langage

• CREATE, ALTER, DROP, RENAME

     - 테이블과 같은 데이터 구조를 정의하는 데 사용되는 명령어들

     - 구조를 생성하거나 변경하거나 삭제하거나 이름을 바꾸는 데이터 구조와 관련된 명령어

데이터 제어어(DCL)

• Data Control Language

• GRANT, REVOTE

     - 데이터베이스에 접근하고 객체들을 사용하도록 권한을 주고 회수하는 명령어

트랜젝션 제어어(TCL)

• Transaction Control Language

• COMMIT, ROLLBACK

     - 논리적인 작업의 단위를 묶어서 DML에 의해 조작된 결과를 작업단위(트랜잭션) 별로 제어하는 명령어

 


 

ALL

Defaul 옵션이므로 별도로 표시하지 않아도 됌.

중복된 데이터가 있어도 모두 출력함

 

DISTINCT

중복된 데이터가 있는 경우 1건으로 처리해서 출력해줌


 

GROUP BY절의 특성

GROUP BY절을 통해 소그룹별 기준을 정한 후, SELECT 절에 집계 함수를 사용한다.

집계 함수의 통계 정보는 NULL값을 가진 행을 제외하고 수행한다.

• SELECT 절과 달리 ALIAS 명을 사용할 수 없다 

집계함수 WHERE 절에는 올 수 없다.

집계 함수를 사용할 수 있는 GROUP BY절보다 WHERE 절이 먼저 수행된다.

WHERE 절은 전체 데이터를 GROUP으로 나누기 전에 행들을 미리 제거한다.

 

HAVING 절의 특성

GROUP BY절의 기준 항목이나 소그룹의 집계 함수를 이용한 조건을 표시할 수 있다.

GROUP BY절의 의한 소그룹별로 만들어진 집계 데이터중, HAVING절에서 제한 조건을 두어 조건을 만족하는 내용만 출력한다.

일반적으로 GROUP BY절 뒤에 위치한다.


DUAL 테이블의 특성

 

사용자 SYS가 소유하며 무든 사용자가 액세스 가능한 테이블이다

SELECT ~ FROM ~ 의 형식을 갖추기 위한 일종의 DUMMY 테이블 이다

DUMMY라는 문자열 유형의 칼럼에 'X'라는 값이 들어 있는 행을 1건 포함하고 있다.

 

 

NVL(표현식1,표현식2) / ISNULL (표현식1,표현식2)

표현식 1의 결과값이 NULL이면 표현식 2의 값을 출력함

단, 표현식 1과 표현식2의 결과 데이터 타입이 같아야함

NULL 관련 가장 많이 사용되는 함수이므로 중요함

 

 

NULL(표현식1, 표현식2)

표현식 1이 표현식2 와 같으면 NULL을, 같지 않으면 표현식 1을 반환한다.

 

 

CLALESEC(표현식1, 표현식2.....)

임의의 개수 표현식에서 NULL이 최초의 표현식을 나타낸다.

모든 표현식이 NULL이라면 NULL을 리턴함

 


ORDER BY 문장

 

SELECT 칼럼명 [ALIAS명]

FROM 테이블명

[WHERE] 조건식

[GORUP BY 칼럼 이나 표현식]

[HAVING 그룹조건식]

[ORDER BY 칼럼 이나 표현식 [ASC 또는 DESC]];

 

ASC(Ascending)

• 조회한 데이터를 오름차순으로 정렬한다.(기본값이므로 생략 가능)

 

DESC(Desending)

• 조회한 데이터를 내림차순으로 정렬한다.

 

ORDER BY 절의 특징

 

• 기본적인 정렬 순서는 오름차순(ASC)이다.

• 숫자형 데이터 타입은 오름차순으로 정렬했을 경우에 가장 작은 값부터 출력된다

• 날짜형 데이터 타입은 오름차순으로 정렬했을 경우 날짜 값이 가장 이른 값이 먼저 출력된다

• EX) 01-JAN-2012 는 01-SEP-2012 보다 먼저 출력된다.

• 오라클에서 NULL값을 가장 큰 값으로 간주하여 오름차순으로 정렬했을 경우에는 가장 마지막에

• 내림차순으로 정렬했을 경우에는 가장 먼저 위치한다.

• SQL Server에서는 NULL값을 가장 작은 값으로 간주하여 반대로 적용한다.

 

NULL 포함 연산의 결과

 

• NULL + 2 = NULL

• NULL - 2 = NULL

• NULL * 2 = NULL

• NULL / 2 = NULL

 

 


SELECT 문장 실행 순서

 

발췌 대상 테이블을 참조한다.(FROM)

발췌 대상 데이터가 아닌 것은 제거한다.(WHERE)

행들을 소그룹화한다.(GROUP BY)

그루핑된 값의 조건에 맞는 것만 출력한다.(HAVING)

데이터 값을 출력/계산한다.(SELECT)

데이터를 정렬한다.(ORDER BY)


조인(JOIN)

 

두 개 이상의 테이블들을 연결 또는 결합하여 데이터를 출력하는 것을 말함

일반적인 경우 행들은 PRIMARY KEY(PK) 나 FOREIGN KEY(FK) 값의 연관에 의해 조인이 성립됌

하지만 어떤 경우에는 이러한 PK, FK의 관계가 없어도 논리적인 값들의 연관만으로 조인이 성립됌

 

 

INNER JOIN

OUTER(외부) JOIN과 대비하여 내부 JOIN 이라고 하며 JOIN 조건에서 동일한 값이 있는 행만 반환함

 

CROSS JOIN

테이블 간 JOIN 조건이 없는 경우 생길 수 있는 모든 데이터의 조합을 말함

결과는 양쪽 집합의 M*N 건의 데이터 조합이 발생함.

 

 

LEFT OUTER JOIN

조인 수행 시 먼저 표기된 좌측 테이블에 해당하는 데이터를 먼저 읽은 후, 나중 표기된 우측 테이블에서 JOIN 대상 데이터를 읽어옴

즉, Table A 와 B 가 있을 때 A 와 B를 비교해서 B의 JOIN 칼럼에서 같은 값이 있을때 그 해당 데이터를 가져오고, B의 JOIN 칼럼에서 같음 값이 없는 경우에는 B 테이블에서 가져오는 칼럼들은 NULL이됌

 

FULL OUTER JOIN

조인 수행 시 좌측, 우측 테이블의 모든 데이터를 읽어 JOIN하여 결과를 생성함

즉, Table A 와 B가 있을 때 RIGHT OUTER JOING 과 LEFT OUTER JOIN의 결과를 합집합으로 처리한 결과와 동일

 

 

순수 관계 연산자

 

SELECT 연산

     - WHERE절로 구현

PROJECT 연산

     - SELECT 절로 구현

JOIN 연산

     - 다양한 JOIN 기능으로 구현

DIVIDE 연산

     - 이제 사용되지 않음


 

728x90