SQL 작성 방법
l SQL은 대소문자를 구분하지 않지만 읽기 쉬운 코드작성을 위해 적절히 대소문자를 구분한다.
l Data Type은 반드시 일치 시킨다.
; WHERE 절에서 문자형을 숫자와 비교할 때, 오라클에서는 내부적으로 Data Type을 맞춰주지만, INDEX가 걸렸을 경우 Data Type에 변형을 가했기 때문에 사용할 수 없다.
예) “ SELECT empno, ename, job FROM emp WHERE empno = 1010; “
Empno가 숫자형이면 문제가 없지만, 문자형일 경우 내부적으로 Data Type 변형이 일어나기 때문에 INDEX를 이용할 경우 이용할 수 없다.
l WHERE 절에는 상수 값 대신 호스트 변수를 사용한다.
; 오라클의 아키텍처에서 SGA > Shared Pool > Shared SQL Area에 사용자가 실행된 SQL 문장이 메모리에 저장되는데, 예1)는 SQL를 실행할 때마다 다른 SQL 문장으로 인식해서 실행하지만, 예2)처럼 변수명을 이용해서 문장을 실행하면 한 SQL 문장으로 인식해서 예1)의 문제점을 해결 할 수 있다.
예 1) SELECT empno, ename, job FROM emp WHERE empno = 1010;
SELECT empno, ename, job FROM emp WHERE empno = 1020;
예 2) v_empno = 1010;
SELECT empno, ename, job FROM emp WHERE empno = :v_empno;
l WHERE 절의 비교 대상이 되는 Column을 변형하지 않는다.
l SQL 작성 규칙을 만들고 모든 개발자가 지키도록 한다.
# SQL 작성 방법은 강제 상황은 아니지만, SQL의 성능 향상이나 효율적인 방법이기 위한 권고 사항이다.
SQL 기본 문법
# SQL은 DDL, DML, DCL 3가지로 구성
- DDL : CREATE 등.. (오브젝트 정의)
- DML : SELECT,INSERT, UPATE, DELETE
- DCL : ROLLBACK, COMMIT
SQL*Plus 기본 명령
# SQL*Plus 프로그램에서 SQL과 SQL*Plus를 실행하다 보니깐 혼동하는 경우가 있다.
SQL*Plus는 SQL명령어가 아니다.
# SQL*Plus 기본명령 부연 설명
- CHAGE : EDIT와 같이 버퍼에 있는 SQL를 편집할 수 있는 명령어로, 특정 문자를 변경할
- APPEND : CHAGE가 버퍼에 있는 SQL의 특정문자를 변경하는 명령어라면, APPEND는 새
로운 문자열을 추가하는 명령어.
예) SQL > A WHERE TNAME = ‘EMP’;
; 원래 있던 “SELECT * FROM TAB” 에 “WHERE TNAME = ‘EMP’ 문자열이
추가된다.
- GET : 외부 파일에 저장되는 SQL를 읽어 들이는 기능을 한다. GET명령어 후에
RUN명령어를 실행해야 한다.
예) SQL > GET C:/실습/SAMPLE.SQL
- START : GET가 달릴 외부 파일에 저장되는 SQL를 바로 실행하기 위해 사용. - SPOOL : SQL*Plus 하는 모든 작업 내용을 특정 파일(Log 파일 개념)에 저장하게 한다.
예) SQL > @ C:/실습/SAMPLE.SQL
예) SQL >SPOOL C:/실습/WORK.TXT
; 이 명령어 실행 이후에 모든 내용이 WORK.TXT파일에 저장된다.
SQL >SPOOL OFF
; SPOOL 명령어에 의한 저장을 그만 하고자 할 때 쓰는 옵션 (OFF)
◇담당자명: 박 창완 교육팀장
◇교육문의 : 02)6901-7024
|