티스토리 뷰



파이어버드(Firebird) DBMS(Database Management System)의 설치와(파이어버드(Firebird) 데이터베이스 설치하기 참조) 사용 환경 준비(파이어버드 사용 환경 준비하기 참조)에 이어 이번 포스팅은 본격적으로 데이터베이스를 만들고 접속하여 쿼리를 수행하는 과정을 다룰까 합니다.

MySQL이나 오라클과 같은 다른 DBMS처럼 파이어버드도 콘솔기반으로 SQL을 사용할 수 있는 isql 도구를 제공합니다. isql을 콘솔 인터페이스에서 사용할 경우에는 "isql -u 사용자아이디 -p 비밀번호 데이터베이스" 형식으로 특정 데이터베이스에 직접 접속 할 수도 있고 아래와 같은 옵션으로 다양한 기능을 사용할 수 있습니다.



데이터베이스를 생성하고 다양한 SQL을 실행할 수 있는 isql 을 사용하는 방법은 위와 같이 콘솔 인터페이스를 사용하는 방법과 함께 윈도우 콘솔을 거치지 않고 직접 시작 메뉴의 "Firebird ISQL Tool" 메뉴를 사용할 수도 있습니다.


위의 그림은 ISQL의 도움말을 조회한 것으로 모든 명령 끝에는 반드시 세미콜론(;)을 붙이고 엔터키를 입력합니다. ISQL을 끝내려면 EXIT; 또는 QUIT;를 사용하면 됩니다. ISQL의 기본 프롬프트는 "SQL>"로 표시하는데 "CON>"으로 프롬프트가 표시되는 경우는 이전 명령이 마무리 되지 않고 계속되고 있다는 의미이므로 누락한 옵션은 없는지 세미콜론(;)은 붙였는지를 확인해야 합니다.


■ 데이터베이스 생성

데이터베이스 작업의 시작은 데이터베이스를 만드는 것으로 시작합니다. ISQL에서 다음과 같은 형식으로 DB를 만들 수 있습니다.

CREATE DATABASE '데이터베이스 경로및이름' page_size 페이지크기 user '아이디' password '비밀번호';


데이터베이스 경로 및 이름은 윈도우의 파일경로 그대로입니다. 파이어버드는 데이터베이스 파일은 일반 파일로 *.fdb 확장자로 사용하는 것이 일반적으로 적절한 폴더를 지정하여 절대 경로 기술 장식으로 경로를 포함하여 파일명을 지정합니다. 일반 파일을 사용하여 데이터베이스를 저장하지만 데이터베이스의 최대 크기는 32TB(테라바이트) 이릅니다. 테이블의 최대 크기는 약 18TB입니다. 페이지 크기는 4096, 8192, 16384를 지정할 수 있습니다. 3가지 크기 중의 하나를 사용합니다. 사용자 아이디는 되도록 sysdba를 사용하지 말고 새롭게 아이디를 생성해서 사용합니다.


■ 데이터베이스 접속

원격 또는 로컬에 있는 파이어버드 데이터베이스에 접속하기 위해서는 콘솔창에서 isql 아규먼트에 직접 연결 스트링을 입력하거나 ISQL 창에서 CONNECT 명령을 사용할 수 있습니다.


위의 그림은 콘솔창에서 원격의 특정 데이터베이스에 직접 접속한 예제입니다. 연결 스트링은 그림에서 보듯이 "서버주소/포트:경로\파일명.fdb"의 형식을 갖습니다. 로컬 데이터베이스의 경우에는 서버주소와 포트가 생략됩니다. 파이어버드가 사용하는 기본 TCP 포트는 3050으로 포트를 생략하면 3050 포트로 접속합니다.


위의 그림은 로컬 데이터베이스를 ISQL에서 CONNECT 명령으로 접속한 예제입니다.


■ 데이터 입력 테스트

파이어버드는 SQL 표준인 SQL-92, SQL-1999에 이은 SQL-2003의 대부분을 지원하고 있으므로 다른 데이터베이스를 사용한 경험과 SQL에 대한 간단한 지식만 있으면 사용하기에 무리가 없습니다. 포스팅에서는 파이어버드가 제공하는 기본 데이터타입으로 구성한 테스트 테이블을 생성하고 데이터를 입력(INSERT) 및 질의(SELECT)한 다음 삭제(DROP)하는 과정으로 테스트 할까 합니다. 질의 내역은 아래와 같습니다.

CREATE TABLE TSTTBL (
    col_a varchar(16) not null,
    col_b smallint,
    col_c integer,
    col_d bigint,
    col_e float,
    col_f timestamp,
    col_g date,
    col_h time,
    col_i  blob,
    col_j  numeric (10, 3),
    col_k decimal (10, 3));

INSERT INTO TSTTBL (col_a, col_b, col_c) VALUES ('James', 100, 35600);

SELECT * FROM TSTTBL;

COMMIT;

DROP TABLE TSTTBL;

위의 질의를 실행한 결과는 아래와 같습니다.




댓글
댓글쓰기 폼
«   2023/01   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함