회사에서 sqlgate 정품을 사용하고 있는데 예전 버전이라 그런지 특정 테이블의 index 나 컬럼 정보를 쉽게 찾을 수가 없어서 매번 짜증이 나더군요. 단축키는 고사하고 테이블정보 보는 화면에서 다른 테이블 정보를 볼려면 콤보박스로 선택해서 봐야 한다는. . . "콤보 + 검색" 기능으로 했다면 더 편리했을 텐데 말이죠. 아무튼 회사에서 sqlgate 버전업 시켜줄일이 만무하고 다른 불법 S/W는 일체 사용하지 못하니 중이 제머리 깎을 수 밖에요. 필요한 정보를 조회하는 SQL를 만들어 미리 화면에 붙여 놓고 작업하는 것이 더 정신 건강에 좋을 듯 합니다. 내공도 쌓구요. ㅎㅎ ---------- SQL BEGIN -------------------------------------- select a...
SQL 작성시나 튜닝시 테이블에 인덱스는 중요한 팩터입니다. 토드나 오렌지와 같은 GUI툴은 사용하면 손쉽게 테이블 마다 생성된 인덱스를 볼 수 있는데 툴이 없을때 막상 특정 테이블의 인덱스를 찾을려면 귀찮을때가 많죠. 저두 매번 찾기가 귀찮아 이번에 인덱스 구성을 조회하는 SQL를 만들어 보았습니다. 하나의 인덱스에 컬럼을 7개 조합해서 만드는 경우는 많이 없음으로 최대 7개로 구성된 인덱스만 표현하도록 했습니다. ----------- SQL BEGIN ------------------------------------------------- select index_name ,index_type ,decode(constraint_name, null, ' ', 'pk') primary_key ,unique..
Not Null 조건이나 혹은 기타 이유로 인하여 컬럼에 null이 아닌 공백으로 넣는 경우가 왕왕 있죠. 이때 그 컬럼이 null인것과 (공백인것 포함)을 모두 조회하려면 어떻게 할까요? where trim(컬럼) is null 하면 됩니다. 즉 공백외에 값이 없는 컬럼에 trim()으로 하며 null과 같다는 의미죠? 저두 직접 테스트 해보기 전까지 null과 같을지 확실할 수가 없더라구요. 의문이 날때 직접 해보는것이 최고죠.
통계작업에서 종종 ORA-01476 제수가 0 입니다 를 가끔 보게 되는데 나누기에서 분모가 0이어서 발생하는 문제죠. 분모가 0이 안되게 하는게 정답이지만 데이터 정합성과 기타 문제로 인하여 분모가 0이 될 수가 있습니다. 그래서 오류없이 자료를 뽑고, 분모가 0인 데이터는 0으로 표시하기 위해서 아래와 같이 분모 값이 0일 때 NULL로 치환해 주면 됩니다. NULL로 나누면 값은 NULL이 되고, 에러는 발생하지 않습니다. SELECT NVL(분자 / DECODE(분모, 0, NULL, 분모), 0) FROM 테이블; 또는 SELECT NVL(분자 / NULLIF(분모, 0), 0) FROM 테이블;
오라클 9i 부터 지원되는 기능중 특정 Index의 사용여부를 모니터링 기능을 소개해 드려요. Index는 데이터를 찾는데 탁월한 성능을 발휘 하지만 반면에 너무 많으면 시스템에 부하를 주는 원인이 되는것을 아실겁니다. 그래서 사용하지 않은 Index가 있다면 삭제하는것이 좋겠죠. 의심가는 Index가 idx_name 이라고 할때 모니터링 기능을 설정하는 방법은 alter index idx_name monitoring usage; 과 같이 설정하시면 됩니다. 일정 시간이 지난 후에 select index_name , monitoring ,used ,start_monitoring ,end_monitoring from v$object_usage; 로 조회시면 모니터링 기간동안 idx_name 인덱스가 사용된..
SELECT NULL + 100 FROM DUAL; 의 결과는 무엇일까요? NULL과 사직연산을 하게되면 결과 값은 NULL이 됩니다. 그래서 SELECT NVL(NULL, 0) + 100 FROM DUAL; 과 같이 NULL 공포에서 벗어 나려고 NVL 함수를 자주 사용하게 됩니다. 근본적으로 컬럼값에 NULL이 없게 NOT NULL로 설계 했다면 NVL를 남발하는 일을 없었겠죠. ㅎㅎ 그리고 또하나 NULL이 포함된 컬럼에 그룹함수( SUM() ) 를 사용하면 어떻게 될까요? SUM를 포함한 그룹함수에서는 NULL 컬럼을 자동으로 건너띄므로 NULL 값이 있다고 해서 전체 결과가 NULL로 변해 버리지 않습니다. 즉 NVL 함수를 사용할 필요가 없다는 것입니다. NVL() 도 함수임으로 자주 콜하게 ..
제1 정규화 ⊙ 반복된 속성이나 그룹 속성은 삭제하고, 새로운 실체를 추가한 뒤 기존의 실체와 1 : N의 관계를 형성한다 제2정규화 ⊙ 복합키로 구성된 경우 모든 칼럼들은 복합키 전체에 의존적이어야 한다. ⊙ 복합키 일부에 의존적인 칼럼은 제거해야 한다 ⊙ 복합키가 아닌 경우는 제2정규화의 대상이 아니다 제3정규화 ⊙ 테이블의 칼럼들은 기본키에 의존적이어야 한다. ⊙ 기본키 외의 칼럼에 종속적인 칼럼은 제거해야 한다. 대부분 1~3정규화만 잘 지켜도 물리 DB를 구축시 크게 문제될 경우가 없다고 해도 과언이 아니다라고 합니다. 보이스코드, 4차 5차 정규화까지 갈 경우가 그리 많지 않다는 얘기구요. 꼭 필요할 경우 1~3차에 반정규화 정도가 적당하지 싶습니다. 정말 중요한 1~3차 정규화를 예를 들어 ..
숫자 n이 음수인지, 양수인지, 0인지를 판단하기 위해 case문은 처리하기가 쉽은데 decode문에선 언뜻 생각하면 어떻게 처리해야 하나 고민하는 경우가 있습니다. decode문이 case문에 비해 직관적이진 않지만 sql 라인수를 줄이고 짧게 사용할 수 있어 개이적으로 자주 사용하는 함수입니다. 그럼 decode에서 숫자 n이 음수인지 양수인지 아니면 0인지 어떻게 판단할 까요? 바로 sign 함수를 이용하면 됩니다. 즉 sign(음수) -> -1이고 sign(0) -> 0, sign(양수) -> 1 이렇게 결과가 나오기 때문에 컬럼 A가 음수, 양수가 있을때 음수와 양수를 각각 sum 할려면 decode 문에서 sign함수를 다음과 같이 사용하시면 됩니다. select sum(decode(sign(..
- Total
- Today
- Yesterday
- 르세라핌
- 루미큐브 종류
- 남설 팔찌
- 오미크론
- JMW 헤어드라이기기
- 솔리드 쿨론
- 별이 빚나는 밤
- 매직 트랙패드2
- 유가바이트디비
- Sybase IQ
- 홈 오피스
- 배당급
- GKRS
- node.js
- 카카오 에드
- weka
- 증권정보포털
- VARIDESK
- 별잉 빛나는 밤
- 코라나 19
- 로니카 BCS
- 화분벌레
- 빈센트 반 고흐
- 톡토기
- Life Chair
- 브리다 정수기
- 파나소닉 비데 DL-EH10KWS
- 고체 향수
- Pixel Pals
- yugabyteDB
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
29 | 30 | 31 |