컴퓨터 공부/Database 13

[sql-server] 클러스트 인덱스 & 비 클러스트 인덱스

클러스트 인덱스 & 비 클러스트 인덱스 먼저 인덱스에 대하여 정리하고 넘어가도록 하겠습니다. 인덱스는 테이블의 데이터 위치를 알려주는 역할을 담당합니다. 우리가 인덱스를 사용하는 주 이유는 빠른 검색을 하기 위해서인데요. 그렇기 때문에 데이터가 몇 건 되지 않은 테이블에서는 무리하게 인덱스를 생성하는 것은 비효율적입니다. 그 이유는 다음 예제를 통해 설명할 수 있습니다. 1. 데이터가 많을 경우 성동구 AA아파트 BBB동 CCCC호에 사는 홍길동을 찾으려고 합니다. 여기저기 물어보는 것보다 동사무소에서 홍길동이 어디서 사는지 물으면 빠릅니다. 그 이유는 동사무소에는 그 지역 주민들 별로 주소를 관리하고 있기 때문입니다. 여기서[성동구 AA아파트 BBB동 CCCC호에 사는 홍길동] 은 데이터가 되는 것이고..

[Oracle] PL/SQL에 대해서 알아봅시다! 2

PL/SQL 종류 및 사용방법에 대해서 살펴봅시다.!! 앞서 PL/SQL이 무엇인지에 대하여 설명하는 시간을 가졌습니다. 참고 : http://najuung.tistory.com/entry/Oracle-PLSQL%EC%97%90-%EB%8C%80%ED%95%B4%EC%84%9C-%EC%95%8C%EC%95%84%EB%B4%85%EC%8B%9C%EB%8B%A4-1 오늘은 PL/SQL 변수선언 및 사용방법에 대하여 정리하도록 하려했는데 PL/SQL 종류에 대한 설명이 부족한 것 같아 다시 정리해봅니다. 1. PL/SQL 종류 PL/SQL 유형은 유형은 Anonymous Block(익명블록), Procedure(프로시저), Function(함수) 이렇게 3가지로 나뉩니다. -Anonymous Block : 이..

[Oracle] PL/SQL에 대해서 알아봅시다!

PL/SQL이 무엇인가요?? 오랜만에 블로그에 글을 쓰러온 것같네요. 매번 쓰겠다고 마음은 먹고서는 여름휴가핑계로 이제야 쓰게 되었습니다.:) 오늘 다룰 주제는 PL/SQL입니다. 1. PL/SQL 정의 PL/SQL이란 Procedure language extention to Structured Query Language의 약자로 SQL을 확장한 순차적처리언어입니다. 좀더 풀어서 설명하면 프로그래밍처럼 sql에서도 코딩이 가능하며, 기존엔 데이터를 delete한뒤 insert 한다라고 하면 쿼리를 delete 쿼리문 한번 , insert 쿼리문 한번 이렇게 나누어서 했던 것을 pl/sql로 한번에 처리가능하다는 것이지요 아래 그림을 보시면 이해하기 쉬우실 것 같습니다. [그림 1-1 SQL과 PL/SQL..

[Oracle] Explain plan 사용하기

Oracle에서 Explain plan을 통해 실행계획을 확인해보자!!! 오늘은 오라클에서 Explain plan(실행계획)을 보는 방법에 대하여 정리해 보도록 하겠다. 우선 오라클 Explain plan에 대하여 설명을 하기에 앞서 실행계획을 왜 사용하는지, 실행계획을 보고 분석할 수 있어야 하는지에 대하여 알아보도록 하겠다. 간단한 예를 통해 설명하자면 같은 결과를 산출해 나가는 2개의 상의한 쿼리가 잇다고 하자. 그런데 이 두 쿼리를 수행하면 결과가 나오기까지의 시간이 각각 다르다. 물론 늦게 결과를 추출한 쿼리가 성능이 좋지 않은건 사실이지만 왜 성능이 좋지 않은지를 알기위해서는 작성된 쿼리에 대한 옵티마이저가 생성한 실행계획을 해석할 수 있어야만 그 원인을 찾을 수 있다. 1. Explain p..

[Oracle] Oracle 내장함수 종류

Oracle 함수에 대하여 정리해보자!! 오라클 SQL에서 함수란 데이터베이스 오브젝트로 정의해서 만들어 둔 뒤 필요할 때마다 이 함수들을 호출해서 사용하는 것이다. 오라클에서 사용되는 함수는 작성자에 따라 내장 함수와 사용자 정의 함수로 구분할 수 있다. 필자는 오라클에서 제공되는 내장함수에 대하여 정리하였으며, 참고하여 적절하게 사용하길 바란다. 내장함수 오라클에서 자체 제공되는 함수로써 정식명칭은 sql함수 사용자 정의함수 개발자나 DBA등 오라클 사용자들이 필요에 따라 직접 작성한 함수 * 오라클에서는 기능적인 측면에서 함수와 비슷한 저장 프로시저라는 것이 있다. 함수가 어떤 연산이나 작업을 수행하고 난 뒤 그 결과를 반환하는데 반해 프로시저는 작업을 수행하기만 할 뿐 결과를 반환하지 않는다. 1..

[Database] ROWNUM이란

ROWNUM에 대해 알아보자!! 1. ROWNUM 정의 ROWNUM이란 오라클에서 ROWNUM은 쿼리집합이 메모리에 생성된 뒤 결과 집합 내의 레코드에 붙여지는 가상의 순번을 의미한다. ROWNUM에는 숫자 1,2,3,4,...N의 값이 할당되며 여기서 N의 값은 ROWNUM과 사용하는 로우의 수를 의미한다. ROWNUM은 주로 2가지 목적으로 많이 사용된다. Top-N 프로세싱 : TOP에서 N건 처리 페이지네이션(Pagination) : LIMIT 구분과 유사하며, 페이징을 처리할 때 사용 2. ROWNUM 동작원리 ROWNUM 값은 쿼리의 조건 절이 처리되고 난 후 , 그리고 sort가 수행되지 전에 할당된다. 또한 ROWNUM은 할당된 이후에 증가만 된다. 예시 SELECT ROWNUM FROM ..

[Oracle] P-File(Parameter File)과 SP-File(Server Parameter File) 속성

P-File(Parameter File)파일을 열어보자 !! 오라클 서버를 운영하기 위해, instance를 메모리에 할당해야하는데 이를 위하여 초기화 파라미터가 필요하다 이러한 대표적인 초기화 파라미터로 pfile과 spfile이 있다. 오늘은 pfile에 대하여 알아보도록 하겠다. 1. P-FILE(Parameter File) - p-file은 textfile형태로 database 초기화 파라미터들을 저장한다.- 일반적으로 $ORACLE_HOME/dbs/init.ora로 저장된다. - 인스턴스가 기동될깨 pfile을 읽어서 데이터베이스에 적용한다. - 인스턴스 기동중에 alter system이나 alter session을 통해 파라미터를 변경할 수 있으나 인스턴스를 재기동할 때는 pfile에 저장된 ..

[Database] Oracle 11g 설치방법

오라클 데이터베이스 11g를 설치해보자 그동안 써왔던 mysql을 버리고 이번에 oracle 디비로 이전하게되어 연습용으로 오라클을 설치해보게되었다. 필자는 window 7이라 윈도우용 oracle 11g같은경우 xp버전 환경에 맞게 나오기 때문에 추가적으로 작업해준 부분도 있었지만 기본적인 설치에 대해서만 알아보도록 하자. 먼저 oracle 디비를 설치하기 전에 알아야할 것은 어떤 목적으로 오라클 디비를 사용할 것인지 알아야 한다. 만약 개인용으로 연습을 목적으로 무료로 사용하고 싶다면면 xe개인이 한 컴퓨터에서 오라클을 사용하고 싶다면 Personal Edition, ( 네트워크가 불가능함 ) 소규모 기업에서 사용하고자 한다면 Standrad Edition One 중견기업정도 된다면 Standard ..

[Database] Mysql의 타입 종류

MYSQL 자료형 종류의 타입에 대하여 정의해보자 . 자료형은 크게 숫자형, 문자형, 날짜형 3종류로 나뉠 수 있다. 종류에 따라 살펴보도록 하겠다. 1. 숫자형 숫자형은 부호를 생략할 떄 unsigned를 붙인다. 숫자형 종류는 다음과 같다. 자료형 사용 BYTE 표현범위 TINYINT 1 Bytesigned: -128~127 , unsigned: 0~255 SMALLINT 2 Byte signed: -32768~32767 , unsigned: 0 ~ 65535 MEDIUMINT 3 Byte signed: -8388608~8388607 , unsigned: 0 ~ 16777215 INT 4 Byte signed: -2147683648~2147483647 , unsigned: 0 ~ 4294967295 ..

[Database] MYSQL 조인 insert, update, delete

다중행 Insert, Update, Delete를 배워보자 웹페이지 sm을 하다가 보면 디비를 이전해야하는 경우가 다반사로 발생한다. 그럴 경우 필요한 것이 다중행 insert, update, delete인데 이들을 사용하면 한 쿼리로 여러행의 값들을 테이블에 집어 넣을 수 있다. 이번 글은 insert, update, delete가 무엇인지 안다는 가정하에 예시로만 글을 진행하도록 하겠다. 1. 다중행 Insert ( 다중 조인 insert ) INSERT INTO 테이블 명 ( seq, businesslog_seq, confirm_user_seq, confirm_id, confirm_name, regist_dtime ) SELECT CASE candi.working_tb_seq WHEN @seq TH..