SQL 이란 언어는 사용자가 DB에 있는 어떤 정보를 조회, 변경하기 위해서 사용되는 언어이기 때문에 OS 에서는 인식하지 못합니다.
그래서 일반적으로 SQL 을 실행하기 위해서는 DB에 접속해서 실행하게 되는데, 이번 강좌에서는 DB에 SQL 구문을 질의하기 위해 ALTIBASE HDB가 제공하는 두 가지 Tool에 대해서 소개하려고 합니다.
iSQL은 ALTIBASE HDB에 접속하여 SQL문과 부가적인 여러 명령어를 통해 DB 서버에 저장되어 있는 자료를 조회하고, 변경하는 등의 여러 작업을 수행할 수 있는 사용자 도구입니다.
ALTIBASE HDB를 설치하면 $ALTIBASE_HOME/bin 디렉토리에 iSQL 실행파일이 포함되어 있기 때문에 DB를 설치한 OS 계정으로 iSQL를 실행하면 별도의 작업 없이 실행 가능합니다.
ALTIBASE HDB를 설치하지 않은 장비 혹은 설치한 장비의 다른 계정에서 iSQL을 실행하려면 http://atc.altibase.com 에서 해당 OS에 맞는 클라이언트 패키지를 다운로드 받아서 설치한 후에 실행하면 됩니다(패키지 다운로드 방법은 2. ALTIBASE HDB 설치 및 구동 참조)
iSQL은 두 가지 방법으로 DB에 접속할 수 있습니다.
첫번째는 프롬프트를 이용한 접속 방법입니다. iSQL을 옵션 없이 실행하면 접속에 필요한 정보를 입력하는 프롬프트가 나타납니다. 여기에 해당 정보를 입력하면 됩니다.
/home/swj] isql … 배너 생략 … -------------------------------------------------------------- Write Server Name (default:localhost) : <-- DB를 설치한 서버IP Write UserID : sys <-- DB에 접속해서 사용할 사용자명. (sys 는 DBA 사용자입니다.) Write Password : <-- sys 사용자의 패스워드는 manager 입니다.
두번째는 옵션을 이용한 접속 방법입니다. iSQL 실행 시 접속에 필요한 정보를 옵션으로 지정하여 DB에 접속하는 방법입니다.
/home/swj] isql -s 127.0.0.1 -u sys -p manager
… 배너 생략 …
--------------------------------------------------------------
ISQL_CONNECTION = TCP, SERVER = 127.0.0.1, PORT_NO = 20911
iSQL>
iSQL을 사용해서 DB에 접속할 때 사용할 수 있는 옵션과 iSQL 에서 SQL 구문 외에 사용할 수 있는 명령어들에 대해서 알아보도록 하겠습니다.
옵션 | 설명 |
---|---|
-S server_name | ALTIBASE 서버가 구동되어 있는 컴퓨터 서버의 이름 (또는 IP 주소) |
-U user_id | 사용자 |
-P password | 암호 |
-PORT port_no | 서버의 포트번호 |
-NLS_USE nls_use | Character set |
-F infile_name | 지정한 스크립트 파일을 iSQL 에서 수행함 |
-O infile_name | 실행한 결과를 파일로 저장 |
옵션을 사용하여 iSQL로 접속하는 방법을 살펴보면 다음과 같습니다.
ex) 사용자: sys, 암호: manager, 서버IP: 192.168.1.35, 서버포트: 20300 shell> isql –s 192.168.1.35 –u sys –p manager –port 20300
분류 | 명령어 | 설명 |
---|---|---|
iSQL 구동 및 종료 |
$ isql [option] | 쉘 상에서 이 명령어를 수행하면 iSQL이 구동된다. |
iSQL> | 프롬프트 | |
EXIT; QUIT; |
iSQL 종료 | |
데이터베이스 접속 및 해제 |
CONNECT [username/password] [AS SYSDBA] |
접속. [AS SYSDBA] 옵션은 SYSDBA 모드로 접속 |
DISCONNECT | 접속 해제 | |
트랜잭션 제어 | AUTOCOMMIT [ON|OFF] | 트랜잭션 모드 설정. ON 은 AUTOCOMMIT 모드 |
객체정보 조회 | DESC table_name | 테이블 구조 보기 |
파일 처리 | SPOOL filename; | 파일로 자료를 출력, filename에 기록을 시작한다. |
SPOOL OFF; | 파일로 자료를 출력, filename에 기록을 중지한다. | |
START filename; | filename 파일을 읽어, SQL문들을 순차적으로 수행 | |
@ filename; | start와 동일한 기능 | |
ED | 마지막 수행된 질의문 편집 | |
ED filename[.sql] | 기존 파일 편집 | |
2ED 또는 2 ED | history 목록에 있는 번호가 2인 질의문 편집 | |
사용자 편의 기능 | h | iSQL에서 사용했던 SQL 구문의 history 확인 |
/ | 마지막에 수행한 명령어가 수행됨 |
간단한 실습을 통해서 iSQL의 사용 방법을 알아보도록 하겠습니다.
shell > isql –s 127.0.0.1 –u sys –p manager
iSQL> @ ?/sample/APRE/schema/schema.sql (?는 ALTIBASE가 설치된 디렉토리 즉, $ALTIBASE_HOME )
iSQL> DESC department [ TABLESPACE : SYS_TBS_MEMORY ] [ ATTRIBUTE ] ------------------------------------------------------------------------------ NAME TYPE IS NULL ------------------------------------------------------------------------------ DNO SMALLINT FIXED NOT NULL DNAME CHAR(30) FIXED NOT NULL DEP_LOCATION CHAR(9) FIXED MGR_NO INTEGER FIXED [ INDEX ] ------------------------------------------------------------------------------ NAME TYPE IS UNIQUE COLUMN ------------------------------------------------------------------------------ DEP_IDX1 BTREE MGR_NO ASC __SYS_IDX_ID_82 BTREE UNIQUE DNO ASC [ PRIMARY KEY ] ------------------------------------------------------------------------------ DNO
iSQL> SELECT COUNT(*) FROM customer; COUNT ----------------------- 20 1 row selected. iSQL> SELECT COUNT(*) FROM orders; COUNT ----------------------- 30 1 row selected. iSQL> h 1 : SELECT COUNT(*) FROM customer; 2 : SELECT COUNT(*) FROM orders; iSQL> 2/
- 강좌 URL : http://www.gurubee.net/lecture/2160
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.