2018/11

윈도우 함수 개요 기존 관계형 데이터베이스는 컬럼과 컬럼간의 연산, 비교, 연결이나 집합에 대한 집계는 쉬운 반면,행과 행간의 관계를 정의하거나, 비교, 연산하는 것을 하나의 SQL 문으로 처리하는 것은 매우 어렵습니다. PL/SQL 같은 절차형 프로그램을 사용하거나, INLINE VIEW 를 이용해 복잡한 SQL 문을 작성해야 하던 것을 부분적이나마 행과 행간의 관계를 쉽게 정의하기 위해 만든 함수가 윈도우 함수입니다. 분석함수(ANALYTIC FUNCTION)나 순위함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터웨어하우스에서 발전한 기능입니다.윈도우 함수는 다른 함수와는 달리 중첩해서 사용하지는 못하지만, 서브쿼리에서는 사용할 수 있습니다. 윈도우 함수의 종류 및 문법 윈도우 함..
DBA 란 Database Administration 해석하면 데이터베이스 관리 입니다.데이터베이스에 관련된 모든 관리를 하는 직업군을 의미한다고 보시면 좋습니다. DBA 가 하는일 그럼 모든 관리에는 어떤것들이 속할까요? [개발단계] 에서는 아래와 같은 일을 합니다.1. 기획안 분석 후 데이터베이스 관계모델 설계2. 테이블 생성 및 프로시져 작성3. 인덱스, 정규화, 비정규화 등의 튜닝작업 [운영단계] 에서는 아래와 같은 일을 합니다.1. 데이터베이스 관리2. 백업 그렇다면 여기에서 데이터베이스 관리에 한번더 궁금증이 들어갑니다. 어떤 관리지?먼저 말하면 데이터베이스가 갑작스런 사태로 인해 죽는사태를 사전에 예방하는 역할을 말합니다.1. 디스크관리 : 로그를 작성하던 중 디스크 풀로 인해 데이터베이스 ..
a, 'a', "a" 의 차이 a 는 변수입니다.a 라는 변수는 형에 따라서 다양한 값을 입력시킬 수 있습니다.int a; a = 5; a = 'a'; a = '7'; 'a' 는 문자 상수입니다. 상수이기 때문에 'a' 는 변하지 않습니다.시스템 내부적으로 'a' 는 ASCII 수치로 변환되어 처리됩니다. ( 'a' 의 ASCII 의 값은 97 입니다. ) "a" 는 문자열 입니다.문자열은 반드시 널 문자로 끝나도록 정해져 있으므로 "a" 도 역시 '\0' 를 포함하고 있습니다. 문자열 포인터 변수 문자열 포인터 변수는 포인터 변수이기 때문에 변수에 저장되는 값은 주소가 됩니다.이 주소가 가리키는 대상체가 문자열일 때 이것을 문자열 포인터 변수라고 지칭합니다.정확히는 문자열이 저장된 곳의 가장 첫번째 문..
들어가기 앞서 아래의 소스를 읽기만 하고 넘어가겠습니다.main() { int i, j; int mozi[2][2] = { {0, 0}, {1, 1} }; int (*tistory)[2]; tistory = mozi; for(i=0; i
1차원 배열과 초기화 아래의 프로그램을 보면 배열명을 사용하기 전에 이 배열이 어떠한 값을 저장할 수 있는지를 지정하는 타입이 있고,배열의 첨자를 이용하여 배열의 개수를 지정한다는 것을 알 수 있습니다.C 에서 배열의 첨자는 반드시 0 부터 시작합니다.그러므로 정의할 때의 첨자 수와 사용할때의 첨자는 -1의 오차를 보이게 됩니다.즉 아래 프로그램에서 mozi[2] 는 사용해서는 안됩니다.main() { int mozi[2]; printf("%d %d\n", mozi[0], mozi[1]); } 배열의 초기화위의 프로그램에서 배열은 초기화를 하지 않았습니다.초기화를 하지 않았기 때문에 어떠한 값이 들어가 있는지 아무도 모르며, 아무값이나 출력됩니다.아무값이나 출력되지 않게 하기 위해서는 초기화를 해줘야 합..
포인터란 무엇인가? 포인터는 번지에 대한 기호화된 표현을 의미합니다.즉, 포인터는 번지입니다. 이해가 잘 안될 수 있으므로,int mozi; 라는 변수를 정의합니다. 시스템은 정의를 만나는 순간 mozi 변수에 대해 4 byte 의 메모리를 할당해줍니다.시스템이 할당해준 4 byte 는 다른 프로세스들이 할당받지 못하며, 각 byte 는 모두 이름을 가지는데 이를 번지라고 합니다. 그림으로 표현하면 다음과 같습니다. 결국 포인터라는 것은 메모리의 위치를 표현한 기호를 의미합니다. 포인터 변수 포인터는 메모리의 특정 위치를 가리킨다고 했습니다.그렇다면 포인터 변수는 무엇을 의미할까요?포인터 변수는 포인터를 저장할 수 있는 변수를 말합니다.이 말은, 메모리의 특정 위치를 저장한다는 말과도 동일합니다. 즉, ..
gsql 데이터베이스에 접속하여 SQL 구문을 처리하는 대화형 유틸리티입니다.또한 gsql 고유의 명령어를 통해, 객체 정보를 종료할 수 있습니다. gsql 은 DA 모드 / gsqlnet 은 CS 모드 방식으로 데이터베이스에 접속합니다. gsql 접속방법 일반적인 접속 방법입니다.gsql 명령어 뒤에 아이디와 비밀번호를 입력해서 접속할 수 있습니다.접속시 gSQL> 프롬프트가 출력되며, 옵션으로 해당명칭을 바꿀 수 있습니다.$ gsql TEST test Connected to GOLDILOCKS Database. gSQL>$ gsql TEST test --prompt M-gSQL Connected to GOLDILOCKS Database. M-gSQL> gsqlnet 명령어는 CS 모드이며 DSN 명칭..
ANSI/ISO SQL 표준에서 정의한 함수란? AGGREGATE FUNCTION GROUP AGGREGATE FUNCTION 이라고도 부릅니다.COUNT, SUM, AVG, MAX, MIN 외 각종 집계 함수들이 포함됩니다. GROUP FUNCTION 집계함수를 제외하고, 소그룹 간의 소계를 계산하는 ROLLUP, GROUP BY 항목들간 다차원적인 소계를 계산하는 CUBE, 특정항목에 대한 소계를 계산하는 GROUPING SETS 함수가 있습니다. WINDOW FUNCTION 분석함수(ANALYTIC FUNCTION)나 순위함수(RANK FUNCTION)로도 알려져 있는 윈도우 함수는 데이터웨어하우스에서 발전된 기능입니다. ROLLUP 함수ROLLUP 에 지정된 Grouping Columns 의 Li..
서브쿼리란? 하나의 SQL 문에 포함되어 있는 또 다른 SQL 문을 말합니다. 서브쿼리 사용시 주의사항 1. 서브쿼리를 괄호로 감싸서 사용한다.2. 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함께 사용 가능하다.3. 서브쿼리에서는 ORDER BY 를 사용하지 못한다. 서브쿼리가 사용 가능한 곳 1. SELECT 절2. FROM 절3. WHERE 절4. HAVING 절5. ORDER BY 절6. INSERT 문의 VALUES 절7. UPDATE 문의 SET 절 서브쿼리의 분류 단일 행 서브 쿼리 서브쿼리가 단일 행 비교 연산자(=, =, )와 함께 사용할 때는 서브쿼리의 결과 건수가 반드시 1건 이하여야 합니다.만약 결과가 2건 이상인 경우 오류가 발생합니다. 단일 행 쿼리의 예제만약 T2 테이블의 ..
계층형 질의 테이블에 계층형 데이터가 존재하는 경우 데이터를 조회하기 위해서 계층형 질의를 사용합니다.계층형 데이터란 동일 테이블에 계층적으로 상위와 하위 데이터가 포함된 데이터를 말합니다. ORACLE 의 계층형 질의 계층형 질의 문법SELECT FROM 테이블 WHERE condition AND condition ... START WITH condition CONNECT BY [NOCYCLE] condition AND condition ... [ORDER SIBLING BY column, column ...] 문법의 의미 구문 의미 START WITH 계층 구조 전개의 시작 위치를 지정하는 구문이다. 루트 데이터를 지정이다. CONNECT BY 다음에 전개될 자식 데이터를 지정하는 구문이다. 자식 데..
꽁담
'2018/11 글 목록