전체 글

'DBA 업무'와 '알게되는 정보'를 기록하는 공간
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 다음에 전개될 자식 데이터를 지정하는 구문이다. 자식 데..
집합연산자 두 개 이상의 테이블에서 조인을 사용하지 않고 연관된 데이터를 조회하는 방법 중에 또 다른 방법이 있는데 집합연산자를 사용하는 방법입니다.집합 연산자는 여러 개의 질의의 결과를 연결하여 하나로 결합하는 방식을 사용합니다.집합 연산자를 사용하기 위해서는 SELECT 절의 컬럼 수가 동일하고, 동일 위치에 존재하는 컬럼의 데이터 타입이 상호 호환 가능해야 합니다. 집합 연산자의 종류 집합 연산자 연산자 의미 UNION 여러 개의 SQL 문의 결과에 대한 합집합으로 결과에서 모든 중복된 행은 하나의 행으로 출력 UNION ALL 여러 개의 SQL 문의 결과에 대한 합집합으로 중복된 행도 그대로 결과로 표시 INTERSECT 여러 개의 SQL 문의 결과에 대한 교집합으로 중복된 행은 하나의 행으로 출..
crontab command not found 에러현상 crontab 에 등록하지 않고 터미널에서 수행 시 정상적으로 되던 스크립트가 crontab 에만 등록하면 오류가 발생하였습니다. 문제의 원인을 찾고자 사용자 계정의 로그(메일)를 확인하니 아래와 같이 에러가 발생했습니다.$ cat /var/spool/mail/sh ... /home/sh/goldilocks_backup.sh: line 199: gsqlnet: command not found crontab command not found 에러원인 crontab 에 등록되어 있다고는 하지만, 사용자 계정에서 실행하였으므로당연히 사용자의 환경변수를 물고 올라갈거라고 생각했는데 crontab 에서 환경변수를 출력하니 전부 빈 값이었습니다.환경변수가 잡혀있..
CHAR 와 VARCHAR CHAR 고정길이 문자열 타입으로 만약 타입의 크기만큼의 데이터가 들어오지 않은경우 이후의 공간을 스페이스로 채워넣습니다.고정길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 들어있지 않습니다. VARCHAR 가변길이 문자열 타입으로 타입의 크기만큼의 데이터가 들어오지 않더라도 이후의 공간을 스페이스로 채워넣지 않습니다.가변길이 문자열이기 때문에 헤더에는 레코드의 길이에 대한 정보가 포함되어야 합니다. 예를들어 CHAR(5) 와 VARCHAR(5) 에 데이터 ABC 가 들어오는 경우 아래처럼 저장이 됩니다. CHAR 와 VARCHAR 의 차이점 그렇다면 실제 쿼리에서 조회를 하게 되면 어떻게 될까요?GOLDILOCKS 데이터베이스에서 테스트를 진행해보았습니다. ORA..
스택 한쪽 끝에서만 자료를 넣거나 뺄 수 있는 선형 구조 LIFO ( Last In First Out ) 구조로 저장되는 형식을 말합니다.자료를 넣는 것을 Push, 자료를 꺼내는 것을 Pop 이라고 합니다.꺼내지는 자료는 가장 최근에 보관된 자료부터 나오게 됩니다. 스택의 함수 S.top() 스택의 가장 윗 데이터를 넘겨줍니다.만약에 비었다면 이 연산은 정의불가의 상태입니다. S.pop() 스택의 가장 윗 데이터를 넘겨주고 해당 데이터를 스택에서 삭제합니다.스택이 비었다면 연산은 정의불가 상태입니다. S.push() 스택의 가장 윗 데이터로 top 이 가리키는 자리 위에 메모리를 생성한 후 데이터를 넣습니다. S.empty() 스택이 비어있다면 참, 그렇지 않다면 거짓을 반환합니다. 스택의 코드 pop..
꽁담
꽁담