1 / 19

Database 실습

Database 실습. 김기헌 khkim@ozzy.chonbuk.ac.kr http://csdblab.chonbuk.ac.kr/~khkim. 내용. 쇼핑몰 프로그램으로 배우는 SQL 카테고리 관리. 카테고리 관리. 카테고리 관리 카테고리 목록 , 추가 , 수정 , 삭제 카테고리 대분류 뒷부분의 네자리 값이 0000 인 항목 00010000 전자제품 00020000 의류 소분류 뒷자리가 0000 이 아닌 나머지 항목 00010001 TV 00010002 컴퓨터. 카테고리 관리.

rolf
Télécharger la présentation

Database 실습

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Database 실습 김기헌 khkim@ozzy.chonbuk.ac.kr http://csdblab.chonbuk.ac.kr/~khkim

  2. 내용 • 쇼핑몰 프로그램으로 배우는 SQL • 카테고리 관리 Database Research Lab

  3. 카테고리 관리 • 카테고리 관리 • 카테고리 목록, 추가, 수정, 삭제 • 카테고리 • 대분류 • 뒷부분의 네자리 값이 0000인 항목 • 00010000 전자제품 • 00020000 의류 • 소분류 • 뒷자리가 0000이 아닌 나머지 항목 • 00010001 TV • 00010002 컴퓨터 Database Research Lab

  4. 카테고리 관리 전자제품 의류 도서 TV 컴퓨터도서 남방 컴퓨터 소설 속옷 MP3 바지 에어컨 Database Research Lab

  5. 자료 조회하기 • SUBSTR 함수를 이용한 대분류 확인 • SELECT CATEGORY_CODE, CATEGORY_NAMEFROM CATEGORYWHERE SUBSTR(CATEGORY_CODE,5,4)=‘0000’; Database Research Lab

  6. 자료 조회하기 • 소분류를 검색하기 위해 검색 결과가 대분류 코드 값만 추출하여 앞의 네자리만 보여준다. • SELECT SUBSTR(CATEGORY_CODE,1,4) AS LARGE_CODE, CATEGORY_NAMEFROM CATEGORYWHERE SUBSTR(CATEGORY_CODE,5,4)=‘0000’; Database Research Lab

  7. 자료 조회하기 • 카테고리 테이블에 등록된 모든 항목 가운데 대분류코드가 0001인 소분류를 구하는 예제 • SELECT CATEGORY_CODE, CATEGORY_NAMEFROM CATEGORYWHERE SUBSTR(CATEGORY_CODE,1,4)=‘0001’AND SUBSTR(CATEGORY_CODE,5,4)!=‘0000’; Database Research Lab

  8. 자료 입력하기 • SELECT와 INSERT가 분리된 대분류 만들기 • SELECT TRIM(TO_CHAR(MAX(SUBSTR(CATEGORY_CODE,1,4))+1,’0000’)) AS MAX_CODEFROM CATEGORY; • INSERT INTO CATEGORY(CNUM,CATEGORY_CODE,CATEGORY_NAME)VALUES(CATEGORY_SEQ.NEXTVAL,’00040000’,’일반잡화’); Database Research Lab

  9. 자료 입력하기 • TRIM(TO_CHAR(MAX(SUBSTR(CATEOGRY_CODE,1,4))+1,’0000’)) • SUBSTR(CATEOGRY_CODE,1,4) Database Research Lab

  10. 자료 입력하기 • TRIM(TO_CHAR(MAX(SUBSTR(CATEOGRY_CODE,1,4))+1,’0000’)) • MAX(SUBSTR(CATEOGRY_CODE,1,4)) • MAX(SUBSTR(CATEOGRY_CODE,1,4))+1 • TO_CHAR(MAX(SUBSTR(CATEOGRY_CODE,1,4))+1,’0000’) • TRIM(TO_CHAR(MAX(SUBSTR(CATEOGRY_CODE,1,4))+1,’0000’)) Database Research Lab

  11. 자료 입력하기 • INSERT 구분 내에 SELECT가 포함된 대분류 만들기 • INSERT INTO CATEGORY(CNUM,CATEGORY_CODE,CATEGORY_NAME)VALUES(CATEGORY_SEQ.NEXTVAL,(SELECT TRIM(CONCAT(TO_CHAR(MAX(SUBSTR(CATEGORY_CODE,1,4))+1,’0000’),’0000’)) AS MAX_CODEFROM CATEGORY ),’일반잡화’); Database Research Lab

  12. 자료 입력하기 • SELECT TRIM(CONCAT(TO_CHAR(MAX(SUBSTR(CATEGORY_CODE,1,4))+1,’0000’),’0000’)) AS MAX_CODEFROM CATEGORY Database Research Lab

  13. 자료 입력하기 • SELECT와 INSERT가 분리된 소분류 만들기 • SELECT TRIM(TO_CHAR(MAX(CATEGORY_CODE)+1,’00000000’))FROM CATEGORYWHERE SUBSTR(CATEGORY_CODE,1,4)=‘0001’; • INSERT INTO CATEGORY(CNUM,CATEGORY_CODE,CATEGORY_NAME)VALUES(CATEGORY_SEQ.NEXTVAL,’0001’0005’,’전화기’) Database Research Lab

  14. 자료 입력하기 • INSERT 구분 내에 SELECT가 포함된 소분류 만들기 • INSERT INTO CATEGORY(CNUM,CATEGORY_CODE, CATEGORY_NAME)VALUES(CATEGORY_SEQ.NEXTVAL,(SELECT TRIM(TO_CHAR(MAX(CATEGORY_CODE)+1,’00000000’))FROM CATEGORYWHERE SUBSTR(CATEGORY_CODE,1,4)=‘0001’),‘전화기’); Database Research Lab

  15. 자료 입력하기 • SUBSTR(CATEGORY_CODE,1,4)=‘0001’ • MAX(CATEGORY_CODE) • MAX(CATEGORY_CODE)+1 • TO_CHAR(MAX(CATEGORY_CODE)+1,’00000000’) Database Research Lab

  16. 자료 수정하기 • 키 값을 이용한 카테고리 이름 수정하기 • UPDATE CATEGORYSET CATEGORY_NAME =‘와이드 TV’WHERE CNUM=‘2’; • CATEGORY_CODE 값을 이용한 카테고리 이름 수정하기 • UPDATE CATEGORYSET CATEGORY_NAME = ‘노트북’WHERE CATEGORY_CODE=‘00010002’; Database Research Lab

  17. 자료 수정하기 • 카테고리 코드 수정하기 • UPDATE CATEGORYSET CATEGORY_CODE=‘00040001’WHERE CATEGORY_CODE=‘00020002’; • UPDATE PRODUCTSSET CATEGORY_FK=‘00040001’WHERE CATEGORY_FK=‘00020002’; • SELECT A.CATEGORY_CODE,B.CATEGORY_FK,A.CATEGORY_NAME,B.PRODUTS_NAMEFROM CATEOGRY A, PRODUCTS BWHERE A.CATEGORY_CODE=B.CATEGORY_FKAND A.CATEGORY_CODE=‘00040001’; Database Research Lab

  18. 자료 삭제하기 • DELETE 구문을 이용한 자료 삭제하기 • DELETE FROM CATEGORYWHERE CATEGORY_CODE=‘00010001’; • DELETE FROM PRODUCTSWHERE CATEGORY_FK=‘00010001’; • DELETE FROM CATEGORYWHERE SUBSTR(CATEGORY_CODE,1,4)=‘0002’; • DELETE FROM PRODUCTSWHERE SUBSTR(CATEGORY_FK,1,4)=‘0002’; Database Research Lab

  19. 자료 삭제하기 • UPDATE 구문을 이용한 자료 삭제하기 • DELETE_CHK 컬럼 이용 • UPDATE CATEGORY SET DELETE_CHK=‘Y’WHERE CATEGORY_CODE=‘00010003’; • UPDATE CATEGORY SET DELETE_CHK=‘Y’WHERE SUBSTR(CATEGORY_CODE,1,4)=‘0003’; • SELECT * FROM CATEGORYWHERE DELETE_CHK=‘N’; Database Research Lab

More Related