본문 바로가기

IT468

NULL값과 공백('')비교 오라클은 NULL값과 공백('')값을 똑같이 NULL로 처리한다는 글을 본 적이 있습니다. 이것을 직접 확인하기 위해서 간단한 테스트를 진행해봤습니다. a컬럼에 5개의 값을 넣을껀데 NULL값을 포함하여 공백('')과 공백사이에 띄어쓰기를 여러번한 값들(' ',' ',' ')을 같이 삽입하고 NULL로 분류가되는지 확인해보겠습니다. --테이블 생성 create table unique_test (a varchar2(10), b varchar2(20), c number ) ; --데이터 삽입 insert into unique_test(a,b,c) values('','a',1); insert into unique_test(a,b,c) values(' ','b',2); insert into unique_test.. 2020. 11. 28.
PK와 Unique Index PK와 Unique Index간의 헷갈리는 부분이 있어서 포스팅하면서 정리해보도록 하겠습니다. PK PK는 Primary Key로써, 중복될 수 없는 유일한 단일값(Unique)을 가집니다. 그리고 값이 비어있지(Not Null) 않아야 합니다. Object 속성은 Constraint로써 제약조건으로 생성이 됩니다. (DBA_CONSTRAINTS의 뷰에서 확인할 수 있습니다.) UNIQUE INDEX Unique Index는 인덱스가 걸려있는 컬럼에 중복될 수 없는 유일한 값만을 보장하고, 인덱스가 걸려있는 컬럼에 Null값은 입력이 가능합니다. Object의 속성은 Index입니다. 그리고 테이블 당 PK는 하나입니다. UNIQUE INDEX는 여러개를 생성할 수 있습니다. (PK 컬럼에 인덱스가 생성.. 2020. 11. 27.
SCOTT스키마예제를 통해 계층구조 쿼리 정리 오라클 데이터베이스에는 계층구조를 파악하게 해주기 위해 connect by 절을 지원합니다. Oracle의 SAMPLE 스키마인 SCOTT의 EMP테이블을 통해 계층구조 쿼리에 대해서 알아보고 정리하겠습니다. 구문정리 WHERE : 데이터를 가져온 뒤 마지막으로 조건절에 맞게 정리 START WITH : 계층질의의 루트로 사용될 행을 지정,서브쿼리를 사용할 수 있음 CONNECT BY : 각 행들의 연결관계를 설정,서브쿼리를 사용할 수 없음 - CONNECT BY PRIOR 자식컬럼=부모컬럼 : 부모에서 자식으로 트리구성 - CONNECT BY PRIOR 부모컬럼=자식컬럼 : 자식에서 부모로 트리구성 LEVEL : 계층구조 쿼리에서 수행결과의 깊이를 의미 ORDER SIBLINGS BY : 계층구조 쿼리.. 2020. 11. 25.
ROLLUP을 대신하는 방법 소계를 구하는 ROLLUP을 사용하지 않고도 소계를 구할 수 있는 방법이 있습니다. ROLLUP 쿼리 select to_char(t1.ord_dt,'YYYYMM') ord_ym,t1.cus_id,sum(t1.ord_amt) ord_amt from t_ord t1 where t1.cus_id in ('CUS_0001','CUS_0002') and t1.ord_dt >= to_date ('20170301','YYYYMMDD') and t1.ord_Dt < to_date('20170501','YYYYMMDD') group by rollup (to_char(t1.ord_dt,'YYYYMM'),t1.cus_id); ORD_YM CUS_ID ORD_AMT ------ --------------------------.. 2020. 11. 24.