Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- php thumbnail
- 명사 추출기
- iBatis
- 스킨 스쿠버
- ejb
- 책이야기
- 나의 취미
- docker
- Cross
- scala
- C/C++
- rss
- 베트남어
- express for node.js
- 메일왕창보내는법
- Node.js
- node.js web framework
- nodejs express
- ror실행
- 도커
- Eclipse
- flex3
- 명사 뽑아내기
- 주식이야기
- 디즈니씨
- 나의 프로젝트
- ajax
- Lift
- 명사 분석기
- php
Archives
- Today
- Total
nkdk의 세상
오라클 DB 설계 및 활용 6일째 1번째 내용 본문
RDBMS란.. 두개 이상의 테이블을 합치거나 검색할 수 있는 DB이다.
SELECT * FROM GOGEK;
SELECT SAWON_NO, SAWON_NAME, SAWON_JIK, GOGEK_NAME, GOGEK_JUMIN FROM SAWON, GOGEK WHERE SAWON_NO=GOGEK_DAMSANO;
SELECT SAWON_NO, SAWON_NAME, SAWON_JIK, GOGEK_NAME, GOGEK_JUMIN FROM SAWON INNER JOIN GOGEK ON SAWON_NO=GOGEK_DAMSANO;
두개의 구문은 똑같은 값을 낸다.
SELECT SAWON_NO, SAWON_NAME, SAWON_JIK, GOGEK_NAME, GOGEK_JUMIN FROM SAWON, GOGEK WHERE SAWON_NO=GOGEK_DAMSANO(+);
문1) 직급이 사원인 직원이 관리하는 고객 출력
출력 ==> 사번 사원명 직급 고객명 고객전화 성별
SELECT SAWON_NO 사번,SAWON_NAME 사원명, SAWON_JIK 직급, GOGEK_NAME 고객명, GOGEK_TEL 고객전화, CASE SUBSTR(GOGEK_JUMIN, 8,1)
WHEN '1' THEN '남' WHEN '2' THEN '여' END 성별
FROM SAWON, GOGEK WHERE SAWON_JIK = '사원' AND SAWON_NO = GOGEK_DAMSANO;
문2) 직원별 고객 확보 수 - GROUP BY 사용
SELECT SAWON_NAME, COUNT(GOGEK_NAME) FROM SAWON, GOGEK WHERE SAWON_NO = GOGEK_DAMSANO GROUP BY SAWON_NAME
- 모든 직원 참여
- 고객이 없는 직원 제외
문3)
고객이 담당 직원의 자료를 보고 싶을 때 즉, 고객명을 입력하면 담당직원 자료 출력: ~ WHERE GOGEK_NAME='강나루'
출력 =-=> 직원명 직급
한국인 사원
SELECT SAWON_NAME 직원명, SAWON_JIK 직급 FROM SAWON, GOGEK WHERE GOGEK_NAME = '&NA' AND SAWON_NO = GOGEK_DAMSANO;
문4) 직원명을 입력하면 관리 고객 자료 출력
~ WHERE SAWON_NAME='한국인'
출력~
고객명 고객전화 주민번호 나이
SELECT GOGEK_NAME 고객명, GOGEK_TEL 고객전화, GOGEK_JUMIN 주민번호,(TO_CHAR(SYSDATE ,'YYYY')
- CONCAT('19',SUBSTR(GOGEK_JUMIN,1,2))) 나이 FROM GOGEK, SAWON WHERE SAWON_NAME='&NAME' AND SAWON_NO = GOGEK_DAMSANO;
정도가 답이 되겠네요? 뭐 좀 더 간단한 방법이 있겠죠? ^^ 간단한 방법이 더 있다면 올려주세요. ^^ 1부 끝
순규형이 참고 자료로 올려준 내용.. 맨 끝에 문제는 밀레니엄 버그가 생기네요 ㅎㅎ~ ^^;
SELECT GOGEK_NAME 고객명,GOGEK_TEL 고객전화,GOGEK_JUMIN 주민번호,TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))-
TO_NUMBER(DECODE((SUBSTR(GOGEK_JUMIN,8,1)),1,CONCAT('19',SUBSTR(GOGEK_JUMIN,1,2)),2,CONCAT('19',SUBSTR(GOGEK_JUMIN,1,2)),
3,CONCAT('20',SUBSTR(GOGEK_JUMIN,1,2)),4,CONCAT('20',SUBSTR(GOGEK_JUMIN,1,2))))
나이 FROM SAWON JOIN GOGEK ON SAWON_NO=GOGEK_DAMSANO WHERE SAWON_NAME='홍길동';
이와 같이 처리 하면 밀레니엄 버그는 고쳐지는데 2100년도에는 문제가 생길듯~~ ^^;
SELECT * FROM GOGEK;
SELECT SAWON_NO, SAWON_NAME, SAWON_JIK, GOGEK_NAME, GOGEK_JUMIN FROM SAWON, GOGEK WHERE SAWON_NO=GOGEK_DAMSANO;
SELECT SAWON_NO, SAWON_NAME, SAWON_JIK, GOGEK_NAME, GOGEK_JUMIN FROM SAWON INNER JOIN GOGEK ON SAWON_NO=GOGEK_DAMSANO;
두개의 구문은 똑같은 값을 낸다.
SELECT SAWON_NO, SAWON_NAME, SAWON_JIK, GOGEK_NAME, GOGEK_JUMIN FROM SAWON, GOGEK WHERE SAWON_NO=GOGEK_DAMSANO(+);
문1) 직급이 사원인 직원이 관리하는 고객 출력
출력 ==> 사번 사원명 직급 고객명 고객전화 성별
SELECT SAWON_NO 사번,SAWON_NAME 사원명, SAWON_JIK 직급, GOGEK_NAME 고객명, GOGEK_TEL 고객전화, CASE SUBSTR(GOGEK_JUMIN, 8,1)
WHEN '1' THEN '남' WHEN '2' THEN '여' END 성별
FROM SAWON, GOGEK WHERE SAWON_JIK = '사원' AND SAWON_NO = GOGEK_DAMSANO;
문2) 직원별 고객 확보 수 - GROUP BY 사용
SELECT SAWON_NAME, COUNT(GOGEK_NAME) FROM SAWON, GOGEK WHERE SAWON_NO = GOGEK_DAMSANO GROUP BY SAWON_NAME
- 모든 직원 참여
- 고객이 없는 직원 제외
문3)
고객이 담당 직원의 자료를 보고 싶을 때 즉, 고객명을 입력하면 담당직원 자료 출력: ~ WHERE GOGEK_NAME='강나루'
출력 =-=> 직원명 직급
한국인 사원
SELECT SAWON_NAME 직원명, SAWON_JIK 직급 FROM SAWON, GOGEK WHERE GOGEK_NAME = '&NA' AND SAWON_NO = GOGEK_DAMSANO;
문4) 직원명을 입력하면 관리 고객 자료 출력
~ WHERE SAWON_NAME='한국인'
출력~
고객명 고객전화 주민번호 나이
SELECT GOGEK_NAME 고객명, GOGEK_TEL 고객전화, GOGEK_JUMIN 주민번호,(TO_CHAR(SYSDATE ,'YYYY')
- CONCAT('19',SUBSTR(GOGEK_JUMIN,1,2))) 나이 FROM GOGEK, SAWON WHERE SAWON_NAME='&NAME' AND SAWON_NO = GOGEK_DAMSANO;
정도가 답이 되겠네요? 뭐 좀 더 간단한 방법이 있겠죠? ^^ 간단한 방법이 더 있다면 올려주세요. ^^ 1부 끝
순규형이 참고 자료로 올려준 내용.. 맨 끝에 문제는 밀레니엄 버그가 생기네요 ㅎㅎ~ ^^;
SELECT GOGEK_NAME 고객명,GOGEK_TEL 고객전화,GOGEK_JUMIN 주민번호,TO_NUMBER(TO_CHAR(SYSDATE,'YYYY'))-
TO_NUMBER(DECODE((SUBSTR(GOGEK_JUMIN,8,1)),1,CONCAT('19',SUBSTR(GOGEK_JUMIN,1,2)),2,CONCAT('19',SUBSTR(GOGEK_JUMIN,1,2)),
3,CONCAT('20',SUBSTR(GOGEK_JUMIN,1,2)),4,CONCAT('20',SUBSTR(GOGEK_JUMIN,1,2))))
나이 FROM SAWON JOIN GOGEK ON SAWON_NO=GOGEK_DAMSANO WHERE SAWON_NAME='홍길동';
이와 같이 처리 하면 밀레니엄 버그는 고쳐지는데 2100년도에는 문제가 생길듯~~ ^^;