SQLP 12

[SQL] 집합 연산자 UNION / UNION ALL / INTERSECT / EXCEPT

[SQL] 집합 연산자 UNION / UNION ALL / INTERSECT / EXCEPT 집합 연산자의 종류 집합 연산자 의미 UNION 여러 개의 SQL문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 만든다. UNION [DISTINCT] 라고 보는게 맞다. UNION ALL 여러 개의 SQL문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시된다. 즉, 단순히 결과만 합쳐놓은 것이다. 일반적으로 여러 질의 결과가 상호 베타적인(Exclusive)일 때 많이 사용한다. 개별 SQL문의 결과가 서로 중복되지 않는 경우, UNION과 결과가 동일하다. (결과의 정렬 순서에는 차이가 있을 수 있음) INTERSECT 여러 개의 SQL문의 결과에 대한 교집합이다. 중복된 행은 ..

SQLP 2019.03.02

[SQL] ANY / ALL / EXISTS / NOT EXISTS

SQL ANY , ALL , EXISTS , NOT EXISTS ANY 연산자는 주로 서브쿼리에 사용되며 하나라도 만족하는 값이 있다면 true를 반환한다.ANY(서브쿼리 or 값) 활용 예제 1) sal > 300 OR sal > 400 OR sal > 500 이므로 sal이 300보다 크면 조건을 만족한다.SELECT ename, salFROM empWHERE sal > ANY(300, 400, 500); 활용 예제 2) 서브쿼리에서 값이 여러개 나올 수 있는 경우 ANY 연산자를 활용하였다.SELECT ename, salFROM empWHERE sal > ANY( SELECT sal FROM emp WHERE deptno = 20 ); ALL 연산자는 전체 만족해야 true를 반환하는 특징을 가지고..

SQLP 2019.02.26

오라클 / SQL Server 단일행 NULL 관련 함수

단일행 NULL 관련 함수 종류일반형 함수 함수 설명 NVL(표현식1, 표현식2) : 오라클ISNULL(표현식1, 표현식2) : SQL Server 표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다. 단, 표현식1과 표현식2의 결과 데이터 타입이 같아야 한다. NULL 관련 가장 많이 사용되는 함수이므로 상당히 중요하다. NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다. COALESCE(표현식1, 표현식2, ·····) 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 리턴한다.

SQLP 2019.02.25

오라클 DROP, TRUNCATE, DELETE 비교

DROP TRUNCATE DELETE DDL DDL (일부 DML 성격 가짐) DML Rollback 불가능 Rollback 불가능 Commit 이전 Rollback 가능 Auto Commit Auto Commit 사용자 Commit 테이블이 사용했던 Storage를 모두 Release 테이블이 사용했던 Storage중 최초 테이블 생성시 할당된 Storage만 남기고 Release 데이터를 모두 Delete해도 사용했던 Storage는 Release되지 않음 테이블의 정의 자체를 완전히 삭제함 테이블을 최초 생성된 초기상태로 만듬 데이터만 삭제

SQLP 2019.02.25

오라클 PGA (Program Global Area)

PGA (Program Global Area)는 무엇인가? SGA와 다르게 PGA는 유저별로 가지는 비 공유 메모리 영역이다. (SGA는 공유하는 메모리 영역)그렇기에 PGA는 다른 유저의 메모리 영역을 보거나 제어할 수 없다. (아하, Private하구나~) 참고 : SGA를 'System Global Area' 라고 하는데 공유한다고 해서 'Shared Global Area' 라고도 부른다.PGA는 'Program Global Area'라고 하는데 특성때문에 'Private Global Area' 라고도 부르기도 한다.여기서 부른다는 건 사실.... 정의를 제안? 하는 정도에 그치기 때문에 공식적으론 System / Program이다.(이 얘기 듣자마자 바로 이해 퐉~!... 잊혀지지도 않음.... ..

SQLP 2019.02.14

오라클 데이터 블록(Oracle Data Block)

Oracle에서 Data Block은 OS의 Block이 하나 이상으로 구성되어 있다.여기서 운영체제(OS)의 블록(Block)은 I/O의 최소 단위이다. 오라클에서는 이 운영체제 블록을 하나 또는 여러개로 구성해 블록으로 운영한다. (논리적) 이 블록의 크기는 테이블 스페이스를 만들때 지정할 수 있으며 OS Block과 Oracle Block을 1:1 비율로 지정하면 Block Split 현상이 생기지 않는다. (블록 분할할 필요가 없으니....) 오라클 데이터 블록은 여러 레코드를 포함하고 있으며 단 1건의 레코드를 읽더라도 1개의 데이터 블록을 읽어야 해당 레코드에 접근이 가능하다는 개념을 알고 있어야 한다. 는................. 딱딱한 설명.........뭔가 확 와닿지도 않고......

SQLP 2019.02.13

데이터베이스와 테이블

데이터베이스- 데이터 파일과 로그 파일로 구성 됨- 데이터 파일 : mdf, ndf 확장자 (mdf는 primary data files, ndf는 secondary data files)- 로그 파일 : ldf 확장자 (ldf는 데이터베이스를 복구하는데 사용되는 로그 정보가 포함되어 있다)- 다양한 형태의 개체들을 포함 테이블- 데이터베이스 내에 존재하는 대표적인 개체- 시스템 테이블 & 사용자 테이블- 실제 데이터를 물리적으로 포함하고 있음- 행(Rows)과 열(Columns)로 구성 됨

SQLP 2019.02.07