본문 바로가기

분류 전체보기

(143)
SQL VIEW 생성하기 view 의 종류 2가지 단순뷰 복합뷰 테이블의 갯수 1개 2개이상 함수포함여부 포함안함 포함 데이터 갱신여부 갱신됨 갱신안될 수도 있다. VIEW 의 장점 보안상 민감한 데이터를 노출 시키고 싶지 않을때 복잡한 쿼리문을 간단하게 쿼리하고 싶을때 emp57 emp 테이블에서 사원번호, 이름, 월급을 가져온 데이터로 view 생성하기 create or replace view emp57 as select empno, ename, sal from emp ; emp57 view 의 데이터를 이름이 scott 인 사원의 월급을 0 로 수정 update emp57 set sal = 0 where ename = 'SCOTT'; *****view 를 수정하게 되면 table 도 수정이 된다. (단순 view) 직업이 ..
SQL TEMPORARY CREATE 생성방법 (임시테이블 ) 임시테이블 종류 2가지 on commit delete rows : 데이터를 commit 할때까지만 유지 on commit preserve rows : 데이터를 세션이 종료할때까지만 유지 데이터를 영구히 저장하는게 아닌 임시로 보관하는 테이블이다. EX) 잠깐만 볼 데이터를 위해 , SK 휴대폰 요금 이번달 청구서~ 같은경우! 예제 임시테이블 emp56 을 만들기 create global temporary table emp56 (empno number(10), emane varchar2(20), sal number(10)) on commit delete rows; 기존에 쓰던 일반 테이블과 다른 점은 global temporary on commit delete rows / on commit preserve..
SQL 을 이용한 감정분석 (스티브잡스 연설문) 이 연설문에는 긍정단어가 많은지, 부정단어가 많은지 분석 해 보겠다. 1. 먼저 테이블 생성. create table speech (speech_text varchar2(1000)); 2. 연설문 text 데이터 임포트 jobs.txt 3. 연설문 전체를 어절별로 나누어야 한다. 정규식 함수 사용 ( regexp_substr) select * from ( select regexp_substr(lower(speech_text) , '[^ ]+', 1, a) as word from speech, ( select level as a from dual connect by level 그래야 불필요한 데이터 없이 단어들만 추출된다. 4. 어절, 어절별 건수를 높은 순으로 출력 할 것 ( 어절 = word) sele..
SQL CREATE 생성방법, 데이터타입 종류 create 로 생성할 수 있는 데이터 오브젝트는 table, view, index, sequence , synonym 5가지 가 있다. table 생성 방법 Create table 테이블명 컬럼명1 데이터 타입(byte 수), 컬럼명2 데이터타입(byte 수), 컬럼명3 데이터타입 (byte 수 ) , . . . ) ; 테이블명과 컬럼명 지정 시의 규칙 1. 반드시 문자로 시작해야한다. 2. 이름의 길이는 30자 이하여야한다. 3. 대문자 알파벳과 소문자 알파벳과 숫자를 포함 할 수 있다. 4. 특수문자는 $,_ ,# 만 가능하다. 예제 emp93 table 을 생성해라~ create table emp93 (empno number (10), ename varchar2(10), sal number(10,..
SQL Create 로 만들 수 있는 데이터 베이스 오브젝트 1. tabel : 데이터베이스에 데이터를 저장하는 기본 저장소 (행 row , 열 column 으로 이루어져있다.) 2. view : 복잡한 쿼리문을 간단하게 access 하기 위한 DB objeck ( 뷰가 따로 데이터로 저장되는 형태가 아닌 그냥 테이블을 조합화여 조회한 결과 창이다 = 가상의 테이블 . ) 3. index : 대용량 데이터에서 특정 데이터의 검색을 빠르게 하는 DB ( 책의 목차 같은것 , 쿼리 성능향상 ) 인덱스를 생성해야하는 경우 - 조건절이나 조인조건에서 컬럼을 자주이용할때 -컬럼이 넓은 범위값 - 많은 Null 값을 갖는 컬럼일 경우 4. sequence : 번호 생성기 ( 겹치지 않는) (primary key 값을 생성시 필요하다) 5. synonym : 동의어 ( emp..
* SQL 계층형 질의문 connect by 절 level 서열을 주어 데이터 출력 데이터에서 서열을 출력하는 SQL 문법 ex) emp table 에는 서열이 존재한다. →숨어있는 서열을 화면에 표시하는것. →서열과 관련된 컬럼은 mgr (관리자 번호 이다.) → 관리자번호(mgr)를 이용한 서열 출력 할 수 있다. connect by 절을 쓸때 절들의 역할 where : 데이터들을 모두 가져온 뒤 마지막으로 조건절에 맞게 정리한다. start with : 계층구조를 만들때 기준이 되는 데이터를 입력한다. connect by prior : 각 행들의 연관된 관계를 적어준다. * 숫자를 1부터 10 까지 출력 하는 방법 select level as 숫자 from dual connect by level 2400 start with ename = 'KING' connect by prior ..
SQL 서브쿼리를 이용한 데이터 합치기 Merge 튜닝전 sql 이 보이면 바로 merge 문으로 튜닝해주기 문제 454 dept 에 추가한 sumsal 컬럼의 값을 해당 부서번호의 별 토탈월급으로 갱신하시오 merge into dept d using (select sum(sal) as sumsal from emp group by deptno ) v on (d.deptno = v.deptno) when matched then update set d.sumsal = v.sumsal ; 문제 455 부서번호의 40 번의 sumsal 이 숫자 0으로 갱신되도록 merge 문 작성 merge into dept d using (select deptno, sum(sal) sumsal from emp group by deptno ) v on (d.deptno = v..
SQL 서브쿼리를 이용한 DATA 삭제 Delete 스캇보다 더많은월급 받는 사원들 삭제 delete from emp where sal > (select sal from emp where ename ='SCOTT'); SCOTT 과 같은 직업을 갖는 사원 삭제, SCOTT 은 제외 하고 삭제하시오 delete from emp where job = (select job from emp where ename = 'SCOTT') AND ENAME != 'SCOTT'; allen 보다 늦게 입사한 사원들 삭제 delete from emp where hiredate > (select hireate from emp where ename ='ALLEN'); 만약 서브쿼리를 이용한 Delete 문을 수행하지 않는다면 쿼리문을 두번 실행하여 데이터를 삭제해야한다. 마지막..