본문 바로가기

분류 전체보기

(143)
SQL - WITH 절을 이용한 알고리즘 문제 (1) 구구단출력,log, 주사위던지기(랜덤)확률 문제풀기 문제 1부터 10까지 숫자중 짝수만 출력 with emp2 as (select level as num from dual connect by level
SQL -WITH 절 (가상테이블) with 절 작성시 주의해야할 사항 여러개의 with 절을 동시에 수행하면 모두 다 느려진다. 디스크에는 temp(임시) 로 사용할 수 있는 공간이 한정되어있다. 이 temp 의 공간에 여러개의 with 절이 쓰려고 하면 몇개의 with 절만 쓰고 나머지는 대기해야하므로 시간이 오히려 더 늘어나게 된다. with 절 사용시 중요한 힌트 2가지 inline : temp table 구성 안하겠다. materialize table 구성 하겠다. with 절의 장점. 대용량 데이터를 조회하는 하나의 SQL 안에서 반복적으로 사용되는 쿼리문이 존재할때 성능을 높이기 위한 방법으로 WITH 절을 사용하면 유용하다. 간단한 테스트를 할 때 굳이 테이블을 생성하지 않고 WITH 절로 임시 테이블을 만들어서 테스트를 진..
SQL 제약 (5) Foreign Key (자식키) 특정컬럼에 지정된 데이터만 허용할때 그 지정된 데이터가 다른 테이블의 데이터를 참조하는 경우 허용하는 제약이다. foreign key 제약을 걸려면 참조하려는 테이블에 primary key 제약이 걸려있어야 걸린다. 따라서 만약 dept 를 참조해서 emp 를 데이터를 입력하게 된다면 dept 에 primary key 를 걸어 (부모 테이블) 로 만들고 emp에 foreign key 를 걸어 (자식 테이블) 로 생성이 가능하다. 자식테이블에는 함부로 데이터를 insert 를 할 수 없고 부모 테이블에는 함부로 데이터를 delete 를 할 수 없다. ex ) dept 테이블의 dpetno 에 pk 제약을 걸고 emp 테이블의 deptno fk 제약을 걸게 되면 앞으로 emp 테이블의 deptno 에 데이터..
SQL (4) 제약 CHECK 특정 컬럼에 지정된 데이터만 입력 될 수 있도록 제한 하는방법 예제 월급이 0~9000 사이로만 입력되게 CHECK 제약 거시오 alter table emp add constrAInt emp_sal_ck check(sal between 0 and 9000); 체크 제약이 걸린후 확인을 해보자~ update emp set sal =9500 where ename = 'KING'; →9500 은 9000 이상이라 제약조건에 위배되어 수정되지 않았다. 문제 576 emp14 table 에 체크 제약을 걸어라 (@ 이가 포함되지않으면 데이터가 입력되지않게) ALTER TABLE EMP14 add constraint emp14_email_ck check(email like'%@%'); 다시 제약조건 삭제하기 alt..
SQL (3) 제약 NOT NULL 제약 NULL 값데이터 ————> 결측치 데이터 분석시 데이터 전처리시에 반드시 확인해야하는 2가지 데이터가 있는데 결측치 이상치 NOT NULL 제약 거는방법 2가지 1. 테이블 생성시 제약 거는방법 create table emp407 (empno number(10) constraint emp407_empno_mm not null, ename varchar2(10)); 2. 만들어진 테이블에 제약 거는방법 alter table 테이블명 modify 컬럼명 constraint 제약이름 제약명 ; alter table dept modify dname constraint dept_dname_nn not null; → 기존 pk, un 와 다른 점은 add 가 아니라 modify 를 쓴다는 것. 만약 제약을 삭제한..
SQL (2) 제약 UNIQUE 중복된 데이터를 허용하지 않는 제약 unique 제약을 걸게 되면 자동으로 unique 인덱스가 생성된다. 제약 방법 2가지 1. 테이블을 생성할때 제약을 걸면서 생성하는 방법 create table dept701 (deptno number(10), loc varchar2(20) constraint dept701_loc_un unique, dnamd varchar2(20)); 2. 만들어진 테이블에 제약을 거는 방법 alter table dept add constraint dept_loc_un unique(loc); → dept 테이블 loc 에 unique 제약을 걸었다. alter table emp add constraint emp_name_un unique(ename); → emp 테이블 ename..
SQL (1) 제약 Primary key 제약의 종류 5가지 primart key : 중복된 데이터와 null 값이 입력되지 못하게 하는 제약 unique : 중복된데이터를 입력하지 못하게 하는 제약 not null : null 값을 입력하지 못하게 하는 제약 check : 정의한 데이터만 입력또한 수정 되게 하는 제약 foreign key : 참조하는 컬럼에 거는 제약 데이터의 품질을 높이기 위해 중복된 데이터와 null 값을 입력할 수 없도록 컬럼에 제약을 걸어주는것 데이터 분석을 할때 정제 작업에 거의 80% 이상을 사용한다. 정제작업 코딩을 못하면 상당한 힘든일이라, 인내를 가지고 작업을 해야한다. 그러나 코딩을 잘하면 쉽고 재밌게 할 수 있다. 데이터를 처음부터 정제를 잘 하면 나중의 정제작업의 시간을 줄일 수 있다. 이러한 상황을 위..
SQL - FLASHBACK Transaction Query (수행된 DML문의 거꾸로 돌리는 DML 문장 출력 쿼리) 그동안 특정 테이블에 어떠한 작업들이 일어났는지 그 dml 문들을 거꾸로 되돌리는 dml문장이출력되는 쿼리문 이다. 가능한 버전은 enterprise edition 내가쓰는 오라클 버전 확인하기 select * from v$version; 예전에 insert 작업을 수행했다면 insert into emp(empno, ename, sal) values(1234,'AAAA',3000) ; 그다음 트랜잭션 쿼리를 쓰게 되면 다음과 같은 문장이 결과로 나온다. delete from emp where empno =1234; 현업은 잘 안쓴다.