데이터베이스/Oracle 9

Oracle, 저장 서브 프로그램

저장 서브 프로그램 PL/SQL 블록은 작성한 내용을 한 번 실행하는데 사용한다.PL/SQL 블록은 이름이 정해져 있지 않아서 익명 블록이라고도 한다.익명 블록은 오라클에 저장되지 않기 때문에 한 번 실행 한 후에 다시 실행하려면 PL/SQL 블록을 다시 작성하여 실행해야 한다. 저장 서브 프로그램은 여러 번 사용할 목적으로 이름을 지정하여 오라클에 저장해 두는 PL/SQL 프로그램을 말한다.저장할 때 한 번 컴파일 한다.오라클에 저장하여 공유할 수 있어서 메모리, 성능, 재사용성 등 의 장점이 있다.대표적인 구현 방식은 프로시저, 함수, 패키지, 트리거 이다. 구현 방식  프로시저파라미터 사용 X작업 수행에 별다른 입력 데이터가 필요하지 않는 경우파라미터 사용 OIN필요한 값을 직접 입력 받는 형식의 ..

Oracle, PL/SQL 이란?

PL/SQL Procedural Language extension to SQL SQL만으로는 구형이 어렵거나 구현 불가능한 작업을 수행하기 위해 오라클에서 제공하는 프로그래밍 언어이다.변수, 조건, 반복 처리 등 다양한 기능을 사용할 수 있다. Block 이란? PL/SQL은 데이터베이스 관련 특정 작업을 수행하는 명령어와 실행에 필요한 여러 요소를 정의하는 명령어 등으로 구성된다. 이러한 명령어들을 모아 둔 PL/SQL 프로그램의 기본 단위를 블록이라고 한다. [형식]DECLARE        선언부 - 변수, 상수, 커서 등을 선언 (생략가능)BEGIN        실행하는 명령어EXCEPTION        예외처리(생략가능)END; DECLARE, BEGIN, EXCEPTION에는 ;(세미콜론)을..

Oracle, View 란? (뷰 형식, 제약조건, 뷰-인라인, Top N분석)

VIEW 다른 테이블이나 뷰에 포함됨 맞춤 표현(Virtual Table) join하는 테이블의 수가 늘어나거나 질의문이 길고 복잡해지면 작성이 어려워지고 유지보수가 어려워질 수 있어 스크립트를 만들어두거나 stored query를 사용해서 데이터베이스 서버에 저장해두면 필요할 때마다 호출해서 사용할 수 있다. 특징 뷰와 테이블의 차이점 : 뷰는 실제로 데이터를 저장하지 않는다.베이스테이블 : 뷰를 통해 보여지는 실제테이블선택적인 정보만 제공 가능하다. CREATE [OR REPLACE][FORCE][NOFORCE] VIEW 뷰이름 [(ALIAS [,ALIAS, ... ])]AS 서브쿼리[WITH CHECK OPTION [CONSTRAINT 제약조건이름]][WITH READ ONLY [CONSTRAINT..

Oracle, 테이블 생성 / 삽입, 삭제, 수정 / 복사 / 시퀀스

테이블 생성 CREATE TABLE 테이블명( 컬럼명1 컬럼타입 [제약조건], 컬럼명2 컬럼타입 [제약조건], ...); 조건 문자로 시작해야 한다. (30자 이내) - 영문 대소문자, 숫자, 특수문자 ( _, $, # ), 한글 가능중복되는 이름은 사용하면 안된다.예약어(CREATE, TABLE, COLUMN 등)은 사용할 수 없다. 자료형자료형특징NUMBERnumber(전체 자리, 소수 이하)의 형태숫자형(가변형)INT정수형 숫자(고정형)VARCHAR / VARCHAR2문자, 문자열(가변형) -> 최대 4000byteCHAR문자, 문자열(고정형) -> 2000byteDATE날짜형CLOB문자열 -> 최대 4GBBLOB바이너리형(그림, 음악, 동영상...) 최대 4GB 제약조건제약조건특징 NOT NULL..

Oracle, [SET operator] - 집합연산자, 하위질의 (SubQuery)

[SET operator] - 집합연산자두 개 이상의 쿼리 결과를 하나로 결합시키는 연산자 UNION : 양쪽 쿼리 모두 포함(중복 결과는 1번만 포함) UNION ALL : 양쪽 쿼리를 모두 포함(중복 결과도 모두 포함) INTERSECT : 양쪽 쿼리 결과에 모두 포함되는 행만 표현 MINUS : 쿼리1 결과에 포함되고 쿼리2 결과에는 포함되지 않는 행만 표현 UNION, INTERSECT, MINUS 는 order by한다. UNION ALL은 order by 하지 않고 무조건 합해준다. 하위질의 (SubQuery)하나의 쿼리에 다른 쿼리가 포함되는 구조, ()로 처리 단일 행 서브쿼리(단일 행 반환) : >,=,(!=) 다중 행 서브 쿼리(여러 행 반환) : in, any, all > any : ..

Oracle, Join이란 ?

Join 종류 Join특징 Inner join 같은 것 끼리만 연결 Outer join 한쪽을 기준(모두 포함)해서 연결(left join, right join) full join 왼쪽, 오른쪽 모두 포함 self join 자기 자신 테이블과 연결 cross join 모든 경우의 수로 연결 non equijoin 범위에 속하는지 여부를 확인 n개 테이블 조인 여러 개의 테이블 조인  Inner join : 같은 것 끼리만 연결  오라클 전용구문 select 테이블1.컬럼1, 테이블2.컬럼2 from 테이블1, 테이블2 where 테이블1.일치컬럼 = 테이블2.일치컬럼 select a.컬럼1, b.컬럼2 from 테이블1 a, 테이블2 b where a.일치컬럼 = b.일치컬럼Ans..

Oracle, 현재 날짜 구하기(Sysdate, to_char) / 달 수 더하기 / 마지막 날 구하기

시스템에 설정된 시간 표시 sysdate ex. select sysdate from dual; 표현방식 to_char(값, 표현방식) ex. select to_char(sysdate, 'YYYY"년" MM"월" DD"일"') as 오늘날짜 from dual;  날짜 변형 날짜에 달 수 더하기 add_months(날짜, 더할 달 수) 해당 달의 마지막 날 last_day(날짜) 날짜1으로부터 날짜2까지의 남은 날 수 months_between(날짜1, 날짜2)FM 형식형식과 데이터가 반드시 일치해야한다. fm을 표시하면 숫자 앞의 0을 나타나지 않는다. select to_char(sysdate, 'YYYY-MM-DD') from dual;2024-08-19 select to_char(sysdate, 'YY..

Oracle, 숫자 변형(소문자, 나머지, 반올림, 내림) / 문자열 변형(찾기, 추출, 결합. 공백 제거)

숫자 변형 소문자로 변경lower( 값 ) 나머지 mod( 10, 3 ) = 10나누기 3의 나머지 반올림 round( 값, n ) n의 값이 양수이면 n+1에서 반올림 되고 음수이면 n의 위치에서 반올림된다. 내림(절삭) trunc( 값, n ) n의 값이 양수이면 n+1에서 반올림 되고 음수이면 n의 위치에서 반올림된다.  문자열 변형 문자열 결합 concat(문자열1, 문자열2) = 문자열1문자열2 문자열의 길이 length(문자열) : 문자 개수 lengthb(문자열) : byte 길이 문자열 찾기 instr(문자열, 찾는 문자, 시작위치 양수: 앞, 음수 : 뒤) 문자열 추출 substr(문자열, 시작위치, 개수) 공백제거 ltrim(문자열) : 왼쪽 rtrim(문자열) : 오른쪽 trim(문자..