반응형



오늘은 치환변수에 대해 알아보겠습니다!



스크립트 작성시


SQL문에서 & 치환을 사용하면 값을 입력하도록 요구할 수 있습니다.


동일한 컬럼을 데이터만 바꿔서 검색하거나 입력해야할 때,


앤퍼센드 치환변수를 사용하면 SQL문의 재사용성 및 범용성을 높일 수 있습니다.




[고객 테이블]


고객이름

 나이

  주소 

 총구매액

 전화번호

 추천인

 A

 24

 서울

 30000

 010-0123-4567

 null

 B

 29

 서울

 10000

 010-1234-5678

 A

 C

 26

 파주

 25000

 010-2345-6789

 A

 D

 27

 제주

 1000

 010-3456-7891

 B




예제1. &치환변수를 이용하여 이름을 입력받아

고객 정보를 조회하세요



     SQL1> SELECT 고객이름, 나이, 전화번호

                     FROM 고객

                     WHERE 고객이름 = '&고객이름';

 


(&고객이름을 싱글 쿼테이션마크(')로 감싸준 이유는

입력받을 값이 CHAR이기 때문입니다)


결과:



SLQPLUS에서 위의 예제 코드를 입력하면

'ENTER VALUE FOR 고객이름:' 옆에 커서 부분이 나옵니다.


(JAVA의 SCANNER와 같은 방법이라고 생각하면 됩니다.)




A를 입력하면

WHERE절에 A를 넣은 쿼리와 같은 결과를 얻을 수 있습니다.




예제2. 회원가입을 위해 고객이름, 나이, 주소, 전화번호, 추천인을 입력받으세요.

(단, 고객이름은 무조건 입력받고 싶습니다.)


 

      SQL1> INSERT INTO (SELECT 고객이름, 나이, 주소, 전화번호, 추천인

                     FROM 고객

                     WHERE 고객이름 IS NOT NULL

                     WITH CHECK OPTION)

                 VALUES('&고객이름', &나이, '&주소', '&전화번호', '&추천인');




with check option을 사용하면

WHERE절의 조건에 위배되지 않는 값만 입력하게 할 수 있습니다.

(view옵션에서 잠시 언급한 적이 있습니다.)


 가능한 응용프로그램이 아닌 SQL문에서

위와같이 작동되도록 만드는 것이 성능에 좋다고 합니다.

(IF문으로 안해도 )



오늘은 여기까지


내일은 다중 INSERT문으로 다시 돌아올께요~



이 글이 도움되셨다면 아래 공감 꾹~ 



반응형

'SQL' 카테고리의 다른 글

ORACLE | 정규식 함수(regular expression)  (0) 2018.04.18
ORACLE | 다중 INSERT문 4가지 방법  (0) 2018.04.17
ORACLE | 인덱스 (INDEX)  (2) 2018.04.12
ORACLE | VIEW(뷰)  (0) 2018.04.11
ORACLE | SQL제약조건(데이터 정제하기)  (0) 2018.04.10

+ Recent posts