본문 바로가기

오라클

view 뷰 --view 파일 : 물리적인 테이블을 근거로 논리적인 가상 테이블을 만들어 사용 물리적으로 데이터를 포함하지도 않고, 공간을 차지하지도 않는다.-- select 문의 조건을 파일로 만들어 테이블처럼 사용한다.-- 사용 이유 - 긴 쿼리문 단순화, 보안 강화, 자료의 독립성 확보-- 뷰를 생성하기 위해서는 권한이 필요하다sqlplus / as sysdbagrant create view to scott; 형식) create [or replace] view 뷰 파일명 as select문 drop view 뷰 파일명 --뷰 생성 예시create table test1 as select * from sawon;select * from test1; --조건으로 뷰 생성create view v_a as select .. 더보기
subquery 활용 --exists 연산자 : subquery의 결과유무를 검사select buser_name, buser_loc from buser buwhere EXISTS (select 'imsi' from sawon where buser_num=bu.buser_no); -- true false를 반환--직원이 없는 부서 자료 출력select buser_name, buser_loc from buser buwhere not EXISTS (select 'imsi' from sawon where buser_num=bu.buser_no); --상관 서브쿼리-- 각 부서의 최대 급여자는?select * from sawon awhere a.sawon_pay = (select max(sawon_pay) from sawon bwhe.. 더보기
any와 all --any와 all 구별-- any : subquery의 반환값 중 최소값 보다 큰~-- all : subquery의 반환값 중 최대값 보다 큰~ -- 대리의 연봉 최대값 보다 작은 자료 출력select sawon_no, sawon_name, sawon_jik, sawon_pay from sawon where sawon_pay all( select sawon_pay from sawon where buser_num=30) 더보기
subquery where절에 그룹함수로 조건을 주고 싶으나 where절에 그룹함수를 사용하지 못한다. 이럴경우에 subquery를 사용하면 유효하다. select sawon_namefrom sawonwhere sawon_pay > (select avg(sawon_pay) from sawon) SAWON, BUSER, GOGEK 테이블을 사용한다.문1) 2000년 이후에 입사한 남자 중 급여를 가장 많이 받는 직원은?select sawon_namefrom sawonwhere sawon_pay= (select max(sawon_pay) from sawon where to_char(sawon_ibsail,'YYYY') >= 2000 and sawon_gen='남') 문2) 평균급여보다 급여를 많이 받는 직원은?select .. 더보기
여러가지 Join 예제 --joinselect * from buser;insert into buser values(50,'비서실', '서울', '02-100-4444');select * from sawon;alter table sawon modify buser_num number(4) null;update sawon set buser_num=null where sawon_no=2;commit; --cross joinselect sawon_name, buser_name from sawon, buser;select sawon_name, buser_name from sawon cross join buser; --self joinselect a.sawon_name, b.sawon_jik from sawon a, sawon b wher.. 더보기
Join 더보기
와일드카드 select * from ... where 절에서 가장 많이 쓰이는 연산자 중의 하나는 바로 "LIKE" 문일 것이다. Like 문을 이용해서 '%문자열%' 원하는 문자열이 포함되어 있는 컬럼을 쉽고 간편하게 검색할 수 있다. 그러나!! 우리가 많이 쓰는 Like 문에도 헛점이 있다. (1/1) 위와 같은 테이블이 있을 경우에 다음과 같은 test5에 해당하는 문장을 선택하기 위하여 다음의 쿼리를 질의 하였다. SELECT * FROM _TTFID WHERE Context LIKE '%test5%' 결과는 우리가 예상한데로 다음과 같이 출력되었다. (1/1) 이쯤 되면, "어라? 제대로 잘되는데 뭐가 문제라는 거야?" 라고 반문하시는 분들도 계실것이고, 다음의 문제점을 미리 예측하신 분들도 계실것 입니다.. 더보기
오라클 (DBMS)설치된 컴퓨터에서 다른 컴퓨터로 네트워크 접속시 오라클이나 여러 DBMS가 설치된 컴퓨터를 다른 컴퓨터에서 네트워크 접속을 해야 할 경우 방화벽을 풀어줘야한다. 오라클같은경우 포트 1521을 풀어주면 된다.(해당 포트를 확인하여) 윈7 기준으로 제어판 windows 방화벽 고급 설정 인바운드 규칙 새 규칙 포트 TCP / 특정 로컬 포트(S) : 1521 연결허용 도메인/개인/공용 모두 체크 이름 : 자신이 알아볼 수 있게 작성 모든 설정 끝나면 새롭게 설정한 규칙을 사용하고 있는 상태인지 자신이 작성한 이름을 통하여 확인하고 DB를 접속시킬 컴퓨터에서 DBMS가 설치된 컴퓨터의 아이피와 DBMS 아이디/비번을 이용하여 접속을 시도해본다. 더보기