본문 바로가기

DB/Oracle SQL Developer19

[erwin/sql] 12/9 모델링 / 시퀀스 보호되어 있는 글 입니다. 2020. 12. 9.
<47, 48> 테이블 생성, 데이터 타입 [테이블 생성과 데이터 타입의 이해] ; DB에서 데이터를 저장하는 가장 기본적인 구조는 테이블(Table)이다 . 오라클에는 테이블 이외에 뷰(View), 인덱스(Index), 시퀀스(Sequence)등 여러 개체가 있고 이들 중에 물리적인 공간을 갖는 개체를 세그먼트(Segment)라고 분류하는데, 이들 중 테이블은 사용자가 직접 조회 가능한 데이터를 저장하는 유일한 세그먼트이다. DB를 테이블 관점에서 보면, DB란 테이블에 저장된 데이터의 효율성과 무결성을 보장하기 위한 시스템으로 이해할 수 있다. --정형데이터... 1. 테이블 생성과 삭제 테이블은 행(Row)과 컬럼(열, Column)로 이루어진 매우 익숙한 형태의 자료구조이다. 테이블 형태의 자료구조는 문서의 일반적인 형태로 DB이전부터 사.. 2020. 12. 4.
<40~46> 트랜잭션 1. 트랜잭션의 이해 ; 응용 프로그램 개발 과정에서 잘못 설계된 트랜잭션으로 인해 많은 문제가 발생한다. 문제의 대부분은 업무분석의 미숙이나 트랜잭션이 일으키는 잠금(Lock)에 대한 이해가 부족해서 나타나는 것이다. 트랜잭션과 Lock의 이해는 중고급 개발에 있어 매우 중요하다. 2. 트랜잭션이란? -- 왔다 갔다 일련의 과정이 완전히 끝나면 완료. 하나라도 끊기면 ROLLBACK으로 취소 트랜잭션은 반드시 함께 실행되는 작업의 단위를 의미한다. 즉 사용자의 의도에 따라 여러 개의 문장으로 구성된 트랜잭션은 반드시 동시에 실행(COMMIT)되거나 취소(ROLLBACK)된다. RDBMS는 트랜잭션을 통해 작업의 단위를 결정함으로써 작업 결과의 신뢰성을 확보한다 3. 트랜잭션의 예시 금융 거래 중에 계좌.. 2020. 12. 4.
<39, 40> DML [서브 쿼리를 이용한 DML 문장과 다이렉트 로드] DML : INSERT.. UPDATE..DELETE ; 다량의 DML 작업을 수행하는 경우 서브 쿼리문을 이용하는 경우가 많다. 특히 INSERT 작업에 대량 데이터를 입력할 때 서브 쿼리를 이용하는 것은 매우 유용하고 빠른 작업 방법이다. 특히 메모리를 통하지 않고 직접 데이터를 디스크에 입력하는 다이렉트 로드를 같이 사용하면 작업 효과는 배가된다. ----------------------------------------------------------------------------------------- SELECT(검색) 작업이나 DML(변경) 작업은 모두 메모리에서 이루어진다. 오라클은 SGA라는 이름의 메모리를 가지고 있고, 그 메모리 영역.. 2020. 12. 3.
<37, 38> DML DML(Data Manipulation Language)란? [INSERT, UPDATE, DELETE] :데이터를 변경하는 작업 ; 데이터베이스에 데이터를 입력,수정,삭제하는 명령이다. SELECT 문과는 다르게 데이터베이스의 내용을 변경하는 작업을 수행함으로 SELECT 문에 비해서 훨씬 주의깊게 계획되고 실행되어야 한다. 이렇게 DML 작업은 이전과는 달리 안전한 작업과정과 결과가 요구됨으로 이를 위해 오라클은 DML 작업을 트랜잭션이라는 단위로 관리한다. DML(Data Manipulation Language)란? :데이터를 변경하는 작업 ; 데이터베이스에 데이터를 입력,수정,삭제하는 명령이다 SELECT 문과는 다르게 데이터베이스의 내용을 변경하는 작업을 수행함으로 SELECT 문에 비해서 훨씬.. 2020. 12. 2.
<35, 36> 다중 행, 열 [서브 쿼리 - 다중 행, 다중 열] SELECT 컬럼, ... FROM 테이블 WHERE 컬럼 (SELECT문 : Sub Query문); 1) 서브 쿼리에 여러 개의 행이 검색되는 쿼리를 다중 행 서브 쿼리라고 한다 2) 다중 행 서브 쿼리는 다중 행 연산자를 이용한다 3) 다중 행 연산자의 종류 IN : 검색된 값중에 하나만 일치하면 참이다 ANY : 검색된 값중에 조건에 맞는 것이 하나 이상 있으면 참이다 ALL : 모든 검색된 값과 조건에 맞아야 참이다 1) 20번 부서원들과 동일한 관리자로부터 관리받는 사원을 검색한다 --1) 20번 부서원들의 관리자가 여러 명일 수 있다 --2) 서브쿼리의 결과가 몇 개일지 예측할 수 없는 경우 -- 다중 행 연산자를 이용하여 다중 행 서브쿼리를 작성한다 SE.. 2020. 12. 2.
<33, 34> 단일행 서브쿼리 [서브 쿼리 - 단일 행 서브쿼리] ; 서브 쿼리는 두 개의 쿼리를 결합하여 하나의 문장으로 표현하는 것이다 1) 단일 행 서브쿼리 ; 서브쿼리가 하나의 컬럼에서 하나의 행을 검색한다 2) 다중 행 서브쿼리 ; 서브쿼리가 하나의 컬럼에서 여러 개의 행을 검색한다 3) 다중 열 서브쿼리 ; 서브쿼리가 여러 개의 컬럼을 검색한다 4) 서브 쿼리는 WHERE 절, HAVING 절과 같이 조건절에 주로 쓰인다. FROM 절에 쓰이는 경우도 있다. FROM 절에 서브쿼리를 쓰는 경우를 인라인뷰(Inline View) 라고 한다 SELECT 컬럼, ... FROM 테이블 WHERE 컬럼 (SELECT 문: Sub Query); 1) 단일 행 연산자가 사용됨으로 반드시 서브쿼리의 결과 값은 1개만 검색돼야 한다 2).. 2020. 12. 2.
<31, 32> HAVING 절 [그룹 함수와 Having 절] ; 그룹 함수를 포함한 조건은 일반 조건과 계산하는 시점이 다르다. 일반 조건의 경우 컬럼의 값을 단지 조건과 비교하면 되지만 그룹 함수의 결과를 조건으로 하는 경우 GROUP BY 절의 사용 유무에 따라 결과 값이 달라지므로 조건에 그룹 함수가 포함된 경우 이것은 일반 조건과 동일한 시점에 처리할 수 없다. SQL 은 이를 위해 HAVING 절을 제공한다. HAVING 절은 조건 중에 그룹 함수가 포함된 것만을 모아서 기술하는 구문이다. SELECT 컬럼 or 그룹함수... FROM 테이블 WHERE 일반 조건 GROUP BY 그룹대상 (일반 컬럼) HAVING 그룹함수포함조건 ORDER BY 정렬 대상; 1) HAVING : 조건 중에 그룹함수를 포함하는 조건 기술 2.. 2020. 12. 2.
<29, 30> GROUP [그룹 함수] ; 검색된 여러 행을 이용하여 통계정보를 계산하는 함수 MAX 값들 중에 최대값을 반환 MIN 값들 중에 최소값을 반환 AVG 평균값을 계산 COUNT 반환된 행의 수를 계산 SUM 총합을 계산 STDDEV 표준편차를 계산 VARIANCE 분산을 계산 1) null 값은 무시된다 - null : 알 수 없다.. 0값이 아님! 그래서 치환을 함 2) 반드시 1개의 값만을 반환한다 3) GROUP BY 없이 일반 컬럼과 기술될 수 없다 ---------------------------------------------------------------------------- 1) 사원의 평균 급여를 검색한다 SELECT AVG(sal) 평균급여, ROUND(AVG(sal)) 평균급여 FROM em.. 2020. 12. 2.
<27, 28> 단일행 함수 - 변환함수 단일 행 함수 - 변환 함수 날짜 출력 형식 년 : YYYY : 네자리로 표현된 년도(1999, 2020, 2011) YY : 두자리로 표현된 년도(99, 20) 앞에 두자리는 현재 년도를 사용한다 99년은 2099년을 의미한다 RR : 두자리로 표현된 년도(99, 20) 앞에 두자리는 현재 년도와 가까운 년도를 사용한다 99년은 1999년, 20년은 2020년 월 MM : 두자리 숫자로 표현된 월 (03, 04) MONTH : 영문이나 한글로 표현된 월(MARCH, APRIL, 3월) MON : 약자로 표현된 영문 및 한글 월(MAR, APR, 3월) 한글인 경우는 MONTH 와 동일하다 일 DD : 두자리 숫자로 표현된 일자(01, 02) DAY : 영문이나 한글요일(SUNDAY, MONDAY, 일요.. 2020. 12. 2.