NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    기타 5부 스크립트 판매자를 위한 기획 연재 - 기본적인 질의문 작성 방법과 학습

    페이지 정보

    본문

    안녕하세요. 소심비형입니다. 오늘은 기본적인 질의문(Query, 쿼리) 작성 방법에 대해 알아보도록 하겠습니다. 아주 기초적인 질의문을 학습하면 데이타베이스에 고객 정보를 생성(Create)하거나 갱신(Update)할 수 있습니다. 또한, 생성된 고객 정보를 읽거나(Read) 삭제(Delete)할 수 있죠. 이런 과정을 CRUD라고 부릅니다. 대부분의 컴퓨터 소프트웨어가 기본적으로 가지는 기능이기도 합니다. 엔지엠도 마찬가지고요^^; 고전적인 프로그래밍에서는 CRUD라고 부르지만, 일부 ABCD와 같은 유사 용어를 사용하기도 합니다. 환경에 따라서 달라요~

    ※ ABCD란? Add(추가), Browse(보기), Change(변경), Delete(삭제)를 말합니다.

    r9KTPOF.png

     

     

    기초적인 설명은 이만 줄이고, CRUD를 어떻게 하는지에 대해 알아보도록 하겠습니다. 개발자분들은 이 내용을 건너뛰고 6부로 넘어가셔도 됩니다^^;

     

    1. Create

    데이타 생성은 신규로 데이터를 추가할 때 사용합니다. 단일행 또는 멀티행을 처리할 수 있습니다. 우선, 오라클부터 테스트 해봅시다. SQL Developer를 실행하세요. 아래 그림을 참고하여 ①데이타베이스를 선택하고 ②워크시트를 클릭하세요.

    3ge6sBc.png

     

     

    아래와 같이 ①쿼리문(Query)을 작성합니다. 그리고 ②실행 버튼(Ctrl+Enter)을 클릭하세요. 데이타베이스에 고객 정보가 추가되었다는 것을 ③출력창을 통해 알 수 있습니다. 처음보면 상당히 생소할수도 있습니다. 그렇지만, 몇가지 룰만 외우면 누구나 쉽게 사용할 수 있는 가장 쉬운 언어중에 하나입니다.

    INSERT INTO CUSTOMER_INFORMATION (
    ID, CUSTOMER_ID, CUSTOMER_NAME, USED_YN, EXPIRE_DATE
    ) VALUES (
    CUSTOMER_INFORMATION_SEQ.NEXTVAL,
    '소심비형',
    '엔지엠소프트웨어',
    'Y',
    SYSDATE
    );
    COMMIT;

    5u0UhAs.png

     

     

    INSERT문은 테이블에 데이타를 생성(추가, 삽입등등...)할 때 사용합니다. 정상적인 구문(Syntax: 신택스)은 위와 같지만, 컬럼 목록은 선택사항입니다. 또한, 생성하는 데이타를 멀티로 추가하려면 VALUES에 SELECT를 사용할 수 있습니다. 이제 데이타가 정상적으로 생성되었는지 확인해야 합니다. 테이블 목록에서 ①CUSTOMER_INFORMATION을 선택하고 ②데이터 탭을 클릭하세요. ③데이타가 정성적으로 입력되었습니다.

    YW06xR7.png

     

     

    구문은 항상 동일합니다. INSERT INTO 테이블명 (<컬럼 목록>) VALUES (<데이타 목록>)입니다. 자세한 내용은 구글에서 ORACLE INSERT로 검색하시면 수많은 자료들을 볼 수 있을겁니다. 필요한 내용을 학습하시면 좀 더 편리하게 원하는 작업을 할 수 있을겁니다. 이제 HeidiSQL에서 해보죠. test 데이타베이스에서 ①customer_information 테이블을 선택하세요. ②쿼리를 입력하고 ③실행(F9)하세요.

    insert into customer_information (
    CUSTOMER_ID, CUSTOMER_NAME, USED_YN, EXPIRE_DATE
    ) values (
    '소심비형',
    '엔지엠소프트웨어',
    1,
    now()
    );

    nbo0Luq.png

     

     

    데이타가 정상적으로 들어갔는지 확인하기 위해 ①테이블을 선택하고 ②데이터 탭을 클릭하세요. ③정상적으로 데이터가 들어갔는지 확인하세요.

    nOS6VRp.png

     

     

    2. Update

    갱신은 입력된 데이터를 수정할 때 사용됩니다. 고객 이름(CUSTOMER_NAME)을 "엔지엠소프트웨어"에서 "NGMsoftware"로 변경해보는 예제입니다. 다시 SQLDeveloper로 돌아와서 아래와 같이 쿼리를 입력하고 Ctrl+Enter를 누르세요.

    UPDATE CUSTOMER_INFORMATION SET
    CUSTOMER_NAME = 'NGMsoftware';
    COMMIT;

    wMtKX6S.png

     

     

    결과를 확인해보세요^^

    guaic1C.png

     

     

    HeidiSQL도 동일합니다.

    uBbJP14.png

     

     

    결과를 확인해보면 동일하게 "엔지엠소프트웨어"에서 "NGMsoftware"로 CUSTOMER_NAME이 변경된 것을 알 수 있습니다.

    AUL9cAP.png

     

     

    사실 업데이트는 테이블에 입력된 모든 데이타를 변경시키기 때문에 조심해서 작업해야 합니다. 내가 원하는 데이터만 변경하려면 어떻게 해야 할가요? WHERE절에 유니크한 아이디를 지정해줘야 합니다. 정상적인 작업을 위해서는 아래와 같이 업데이트 쿼리를 변경해야 합니다. 이렇게하면 데이터 목록에서 ID가 1인 데이터만 갱신됩니다.

    UPDATE CUSTOMER_INFORMATION SET
    CUSTOMER_NAME = 'NGMsoftware'
    WHERE ID = 1;

     

     

    3. Select

    데이터를 조회합니다. 위 업데이트와 다르게 테이블의 모든 데이터를 조회하려면 WHERE절을 생략합니다. 만약, 특정 하나의 데이터만 가져오려면 WHERE절에 유니크한 아이디를 입력해야 합니다. 아래 쿼리를 입력한 후 Ctrl+Enter(HeidiSQL은 F9)를 누르세요. 하단에 질의한 내용이 표시됩니다.

    SELECT * FROM CUSTOMER_INFORMATION;

    4iFofdF.png

     

     

    4. Delete

    딜리트(델리트)는 데이터를 삭제합니다. 위에 업데이트와 동일하게 WHERE절에 삭제하고 싶은 데이터 행의 유니크한 아이디를 지정해줘야 합니다. 참고로, 오라클인 경우에만 COMMIT을 실행하면 됩니다.

    DELETE CUSTOMER_INFORMATION WHERE ID = 1;
    -- ONLY ORACLE
    COMMIT;

    LzVeZw2.png

     

     

    데이터가 삭제된 것을 확인할 수 있습니다.

    8xbGoKu.png

     

     

    이렇게해서 데이터베이스에 대한 기본적인 내용은 모두(?) 학습을 마쳤습니다. 다음 시간에는 엔지엠과 연동해서 사용자를 어떻게 관리하는지 알아보도록 하겠습니다. 아마도, 주요 내용은 등록된 고객이 스크립트를 사용할 수 있는 기간을 체크하고 만료가 되었다면 메시지를 표시하는 방법으로 진행될듯합니다. 이 내용을 진행하는 도중 문제가 발생하거나 궁금한 사항이 있으면 댓글로 남겨주세요~

     

    감사합니다.

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    댓글목록

    profile_image

    KarmaShop님의 댓글

    no_profile KarmaShop 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    6부는 언제 나오나요!~!

    profile_image

    엔지엠소프트웨어님의 댓글

    엔지엠소프트웨어 쪽지보내기 메일보내기 홈페이지 자기소개 아이디로 검색 전체게시물 작성일 Date

    요즘... 일이 바빠서 작성을 못했네요. 조만한 어떻게든 시간을 내서 빨리 작성하도록 하겠습니다.
    감사합니다^^

    profile_image

    KarmaShop님의 댓글의 댓글

    no_profile KarmaShop 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    고생하십니다 ㅠㅠ
    감사합니다!