[JavaScript]this.blur();

script 2012. 11. 22. 14:21
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

text 나 image 의 링크가 걸어졌을때 마우스를 가져가면 밑줄이 보이거나 점선이 보이는데 onfoucs="this.blur();" 을 해주면 이러한 현상을 없앨 수 있다.

 

'script' 카테고리의 다른 글

[Session]설정 및 종료  (0) 2012.11.26
[JavaScript]function autoBlur()  (0) 2012.11.22
jGrid Demo  (0) 2012.11.01
input file 이미지 변경  (0) 2012.11.01
bitly url 줄이기  (0) 2012.11.01
블로그 이미지

겐타쓰

,

[Oracle]Oracle INDEX

DB 2012. 11. 14. 14:56
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

[Oracle]

※ CREATE [UNIQUE] INDEX [인덱스명] ON [테이블명]([컬럼명], [컬럼명], ...);

여기서 [UNIQUE]는 생략할 수 있고, PK일 경우 [UNIQUE]를 사용

ex) CREATE INDEX INDEX_TEST ON INDEX_TABLE(DATE_FLD, DATE_FLD1) ;

 

컬럼을 가공하여 INDEX를 생성할수 있음

ex) CREATE INDEX INDEX_TEST ON INDEX_TABLE(TO_DATE(DATE_FLD, 'yyyymmdd'), DATE_FLD1); 

 

DROP INDEX 인덱스명

ex) DROP INDEX INDEX_TEST;

 

INDEX 확인

ex)
    SELECT *
    FROM USER_OBJECTS
    WHERE OBJECT_TYPE='INDEX'
    AND OBJECT_NAME='INDEX_TEST';

 

※ 힌트 강제 INDEX

ex)

INDEX() : INDEX를 순차적으로 SCAN

INDEX_DESC() : INDEX를 역순으로 SCAN

검색할 테이블에 얼라이언스가 있을 경우 괄호에 얼라이언스를 넣어준다.

/*+ INDEX_DESC(TB_SQMSSTBW_201409 IX_SQMSSTBW_201409_N2)*/

 

[주의사항]

※ INDEX CREATE시나 REBUILD시 테이블에 LOCK이 발생 할 수 있으며, 서비스일 경우 장애가 날 수 있다

※ INSERT, UPDATE, DELETE 시 속도가 저하된다

※ 조회결과가 전체 데이터수의 3~5% 미만일 경우 INDEX SCAN이 효율적이고, 3~5% 이상일 경우는 FULL SCAN이 효율적이다

※ INDEX 컬럼을 다수 설정하였다면 조회조건으로 모두 사용해야 INDEX를 탈 확률이 높아진다

※ INDEX 컬럼을 가공하여 조회조건으로 실행하면 INDEX를 타지 않는다(미리가공)

※ 조회조건에 부정문(<>, NOT), Function이 있을 경우 INDEX를 타지 않는다

 

'DB' 카테고리의 다른 글

[Oracle]피벗(Pivot)과 언피벗(UnPivot)  (0) 2014.09.25
[Oracle]Oracle 언어 확인 및 설정  (0) 2014.06.09
[Oracle]NVL, NVL2, NULLIF  (0) 2014.01.20
[MySQL]Oracle SQL, MySQL 변환  (0) 2012.11.13
[Oracle]Oracle Instant 설정  (0) 2012.10.31
블로그 이미지

겐타쓰

,

[MySQL]Oracle SQL, MySQL 변환

DB 2012. 11. 13. 13:58
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

NVL() 함수를  IFNULL() 함수로 변경한다.

※ SYSDATE  NOW() 함수로 변경한다.

※ TRUNC(SYSDATE) 함수CURDATE() 함수로 변경한다.

Subqueryalias가 없다면 붙인다.

ex) select a, b from ( select a, b from ttt) => select t.a, t.b from ( select a, b from ttt) t

※ Outerjoin 변경 

[Oracle]

left outer joing : SELECT t1.*, t2.* FROM t1, t2 where t1.i1 = t2.i2(+);

right outer joing: SELECT t1.*, t2.* FROM t1, t2 where t1.i1(+) = t2.i2;  

[MySQL]

left outer joing : SELECT t1.*, t2.* FROM t1 LEFT OUTER JOIN t2 ON t1.i1 = t2.i2;

right outer joing: SELECT t1.*, t2.* FROM t1 RIGHT OUTER JOIN t2 ON t1.i1 = t2.i2;

% From절에서 테이블명 중간에 , 가 없다는것과 ON 구문이 From절 바로 뒤에 오게 해야하는것에 주의 

※ TO_CHAR()DATE_FORMAT()으로 변환한다.

TO_CHAR(sysdate,'YYYYMMDD') =>DATE_FORMAT(now(),'%Y%m%d') 

TO_DATE()DATE_FORMAT()으로 변환한다.

TO_DATE('20061020','YYYYMMDD') => DATE_FORMAT('20061020','%Y%m%d')로 변환

※ Where rownum <= 10 limit 10으로 변환한다.

rownum >= 5 와 rownum <= 10 이면 limit 4, 5  

ex) 리스트 페이징에서 11번째부터 20번째까지 limit 10, 20  

   처음부터 10개             ........ LIMIT 10

   5번째부터 10개            ........LIMIT 4, 10

   5번째부터 마지막까지  .... LIMIT 4, -1 

  이때 주의 할 점은 첫번째 레코드의 시작은 0 입니다.

  즉 LIMIT 1, 3 - 2번째부터 3개 의 결과를 출력하게 됩니다.

※ DELETE 테이블명 쿼리문을 DELETE FROM 테이블명 쿼리문으로 바꾸어준다.

'MY'||'S'||'QL'CONCAT('MY','S','QL')으로 변환한다.

RANK() 는 존재하지 않는다.

SET @RANK := 0, @PREV := '';
SELECT no, @PREV := user_name AS user_name, jumsu
FROM (
      SELECT *
      FROM member
      ORDER BY user_name, jumsu DESC
      ) AS TB
WHERE IF(user_name = @PREV, @RANK := @RANK + 1, @RANK := 1) <= 2;

MySQL 변수 셋팅으로 처리한다.

'DB' 카테고리의 다른 글

[Oracle]피벗(Pivot)과 언피벗(UnPivot)  (0) 2014.09.25
[Oracle]Oracle 언어 확인 및 설정  (0) 2014.06.09
[Oracle]NVL, NVL2, NULLIF  (0) 2014.01.20
[Oracle]Oracle INDEX  (0) 2012.11.14
[Oracle]Oracle Instant 설정  (0) 2012.10.31
블로그 이미지

겐타쓰

,