SELECT    *

FROM        ALL_PART_TABLES

;

 

 

SELECT    *

FROM        ALL_TAB_PARTITIONS

;

 

SELECT    *

FROM        ALL_IND_PARTITIONS

;

 

 

 

Oracle 에 익숙해져서 

SELECT * FROM USER WHERE USER.ID LIKE #{id} || '%'


요딴식으로 하니까 LIKE 검색이 안된다.


검색해보니 금방 나오네


SELECT * FROM USER WHERE USER.ID LIKE CONCAT('%',#{id},'%')



끝.




SELECT TO_CHAR(SYSDATE , 'D') FROM DUAL;


1 : 일요일
2 : 월요일
3 : 화요일
4 : 수요일
5 : 목요일
6 : 금요일
7 : 토요일



출처는 항상 제일 먼저 : http://devhome.tistory.com/65
 
SELECT TO_CHAR( TO_DATE( '[시작일자]', 'YYYYMMDD' ) + LEVEL-1, 'YYYY-MM-DD' ) AS DAY 
  FROM DUAL 
CONNECT BY LEVEL <=( TO_DATE( '[종료일자]', 'YYYYMMDD' ) - TO_DATE( '[시작일자]', 'YYYYMMDD' ) +1 )
; 

DBA_TAB_COLUMNS - 모든 테이블의 컬럼 정보

DBA_TAB_COMMENTS - 테이블의 코멘트 정보 

SELECT * FROM DBA_TAB_COLUMNS 
 
예>

CREATE TABLE [dbo].[MEMBER](
    [SEQNO] [decimal](10, 0) identity (1,1) NOT NULL,


identity (1,1) : 1부터 시작해서, 1씩 증가.



CREATE TABLE 새로운 테이블명  AS SELECT * FROM 기존 테이블명

http://www.dbguide.net/


charset 확인

mysql> \s



[EUCKR]

mysql> SET character_set_client = euckr;
mysql> SET character_set_results = euckr;
mysql> SET character_set_connection = euckr;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET euckr;
mysql> commit;

 

[UTF8]

mysql> SET character_set_client = utf8;
mysql> SET character_set_results = utf8;
mysql> SET character_set_connection = utf8;
mysql> ALTER DATABASE [DB명] DEFAULT CHARACTER SET utf8;
mysql> commit;

[출처] mysql charset 변경|작성자 아라한

SELECT  BOARD_CODE, BOARD_TITLE
FROM     T_BOARD
WHERE   BOARD_CODE IN
  (
   (SELECT MAX(BOARD_CODE) FROM T_BOARD WHERE BOARD_CODE < 2),
   (SELECT MAX(BOARD_CODE) FROM T_BOARD WHERE BOARD_CODE = 2),
   (SELECT MIN(BOARD_CODE) FROM T_BOARD WHERE BOARD_CODE > 2)
  )
ORDER BY BOARD_CODE ASC;


출처 : http://stillrabbit.blogspot.com/2009/01/jdbc-config-oracle-resource.html


기본적으로 SID 와 SERVICE NAME의 차이부터 이해하도록 한다.
* SERVIE NAME은 데이터 베이스의 군 (미러링을 하던지.. 등등)
* SID는 각각의 디비 인스턴스

설정도 위에 따라 바뀐다.
각각의 호스트 스트링은 다음과 같다.

IF SID
"jdbc:oracle:thin:@host:port:sid"

IF SERVICE NAME
"jdbc:oracle:thin:@//host:port/service name"

출처 : http://www.cyworld.com/susemi99/2394914


%a : Abbreviated weekday name (Sun..Sat)
%b : Abbreviated month name (Jan..Dec)
%c : Month, numeric (0..12)
%D : Day of the month with English suffix (0th, 1st, 2nd, 3rd, …)
%d : Day of the month, numeric (00..31)
%e : Day of the month, numeric (0..31)
%f : Microseconds (000000..999999)
%H : Hour (00..23)
%h : Hour (01..12)
%I : Hour (01..12)
%i : Minutes, numeric (00..59)
%j : Day of year (001..366)
%k : Hour (0..23)
%l : Hour (1..12)
%M : Month name (January..December)
%m : Month, numeric (00..12)
%p : AM or PM 
%r : Time, 12-hour (hh:mm:ss followed by AM or PM)
%S : Seconds (00..59)
%s : Seconds (00..59)
%T : Time, 24-hour (hh:mm:ss)
%U : Week (00..53), where Sunday is the first day of the week
%u : Week (00..53), where Monday is the first day of the week
%V : Week (01..53), where Sunday is the first day of the week; used with %X 
%v : Week (01..53), where Monday is the first day of the week; used with %x 
%W : Weekday name (Sunday..Saturday)
%w : Day of the week (0=Sunday..6=Saturday)
%X : Year for the week where Sunday is the first day of the week, numeric, four digits; used with %V 
%x : Year for the week, where Monday is the first day of the week, numeric, four digits; used with %v 
%Y : Year, numeric, four digits
%y : Year, numeric (two digits)
%% : A literal “%” character
%x : x, for any “x” not listed above


출처 : http://tit99hds.egloos.com/928582


1.SELECT * INTO사용법

   SELECT  INTO 구문은 원본은 있고 대상 테이블은 새롭게 생성하려 할 경우 사용합니다.

   TABLE A에서 모든 데이터를 가져와 A_COPY라는 테이블을 생성하여 데이터를 INSERT하고 싶습니다.

   물론 A_COPY라는 테이블은 현재 만들어져있지 않습니다.

 

   SELECT * INTO A_COPY FROM A

 

  위와 같이 하면 A테이블과 같은 컬럼과 데이터를 가지는 A_COPY라는 테이블이 생성됩니다.

   그럼 A테이블의 특정 컬럼만 가져오려면?

 

   SELECT * INTO A_COPY

  FROM (

              SELECT COL1,COL2,COL3.... FROM A

             ) AS TEMP_TABLE

   위와 같이 하면 A테이블의 특정 컬럼만 가져와서 A_COPY라는 테이블을 생성하여 데이터를 INSERT합니다.

 

2.INSERT INTO SELECT 사용법

   INSERT INTO 구문은 원본과 대상테이블이 모두 있을 경우 사용합니다.

   TABLE A에서 모든 데이터를 가져와 B라는 테이블에 INSERT 하고 싶습니다.

  

   INSERT INTO B SELECT * FROM A

   위에서 TABLE A와 TABLE B는 스키마가 동일해야 합니다.

 

   만일 A보다 컬럼수가 적을 경우에는

   INSERT INTO B SELECT COL1,COL2,COL3 FROM A

  와 같이 사용할 수 있습니다.

오라클과 NLS 찰떡궁합 보기라는 글인데 너무 길어서 링크 걸어둡니다^^
오라클 사용시, 한글과 다국어에 대한 글 입니다. 


http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_1.html
 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_2.html 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_3.html 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_4.html



출처 : oracle Technology korea / 류정우, 한국오라클 WPTG팀

'DATABASE' 카테고리의 다른 글

SELECT * INTO 와 INSERT INTO SELECT  (0) 2010.03.30
오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
SQL 튜닝 규칙.  (0) 2009.09.21
SQL 튜닝 규칙.  (0) 2009.09.21

오라클과 NLS 찰떡궁합 보기라는 글인데 너무 길어서 링크 걸어둡니다^^
오라클 사용시, 한글과 다국어에 대한 글 입니다. 


http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_1.html
 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_2.html 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_3.html 

http://www.oracle.com/technology/global/kr/pub/columns/oracle_nls_4.html



출처 : oracle Technology korea / 류정우, 한국오라클 WPTG팀

'DATABASE' 카테고리의 다른 글

SELECT * INTO 와 INSERT INTO SELECT  (0) 2010.03.30
오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
SQL 튜닝 규칙.  (0) 2009.09.21
SQL 튜닝 규칙.  (0) 2009.09.21

출처 : http://blog.naver.com/windil?Redirect=Log&logNo=43011738

Never do a calculation on an indexed column (e.g., WHERE salary*5 > :myvalue).

인텍스 칼럼에는 수식을 사용치 마라.
 

Whenever possible, use the UNION statement instead of OR conditions.

가능한한 OR 조건문 대신 UNION문을 사용하라.
 

Avoid the use of NOT IN or HAVING in the WHERE clause. Instead, use the NOT EXISTS clause.

WHERE절에 NOT IN이나 HAVING사용을 삼가하라. 대신 NOT EXISTS절을 사용하라.
 

Always specify numeric values in numeric form and character values in character form (e.g., WHERE emp_number = 565, WHERE emp_name = 'Jones'.

숫자 관련 값은 숫자로, 문자열 관련 값은 문자로 표현하라.
 

Avoid specifying NULL in an indexed column.

인덱스 칼럼에 NULL사용하지 마라.
 

Avoid the LIKE parameter if = will suffice. Using any Oracle function will invalidate the index, causing a full-table scan.

=(equal)연산자만으로 충분하다면 LIKE를 사용치 마라. 오라클 함수를 사용하는 것은 인덱스를 무용지물로 만들어 full-table scan를 하게 만든다.
 

Never mix data types in Oracle queries, as it will invalidate the index. If the column is numeric, remember not to use quotes (e.g., salary = 50000). For char index columns, always use single quotes (e.g., name = 'BURLESON'.

오라클 쿼리에서 데이터 타입을 섞으면 인덱스를 무용지물로 만든다. 칼럼이 숫자면 따옴표를 사용치말고 문자열이면 항상 작은따옴표를 사용하라.
 

Avoid using subqueries when a JOIN will do the job.

JOIN으로 해결할 수 있다면 서브쿼리를 사용치 마라.
 

Use the Oracle "decode" function to minimize the number of times a table has to be selected.

오라클의 "decode" 함수를 사용하여 개별 테이블이 선택되어지는 횟수를 최소화하라.
 

To turn off an index you do not want to use (only with a cost-based optimizer), concatenate a null string to the index column name (e.g., name||') or add zero to a numeric column name (e.g., salary+0).

(cost-based optimizer에서만) 사용하고 싶지 않은 인덱스를 꺼버리려면,  문자열값을 갖는 인덱스 칼럼의 이름에null 문자열을  잇거나 숫자값을 갖는 인덱스 칼럼에 숫자 0을 더해버려라.
 

If your query will return more than 20 percent of the rows in the table, a full-table scan may be better than an index scan.

쿼리가 20%이상의 테이블 데이터를 불러온다면, full-table scan이 index scan보다 더 낫다.
 

Always use table aliases when referencing columns.

칼럼을 참조할 때는 항상 테이블 alias(별칭)을 사용하라.

'DATABASE' 카테고리의 다른 글

오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
SQL 튜닝 규칙.  (0) 2009.09.21
SQL 튜닝 규칙.  (0) 2009.09.21
SQL 튜닝 규칙.  (0) 2009.09.21
Oracle DB Link  (0) 2009.09.14
Oracle DB Link  (0) 2009.09.14

출처 : http://blog.naver.com/windil?Redirect=Log&logNo=43011738

Never do a calculation on an indexed column (e.g., WHERE salary*5 > :myvalue).

인텍스 칼럼에는 수식을 사용치 마라.
 

Whenever possible, use the UNION statement instead of OR conditions.

가능한한 OR 조건문 대신 UNION문을 사용하라.
 

Avoid the use of NOT IN or HAVING in the WHERE clause. Instead, use the NOT EXISTS clause.

WHERE절에 NOT IN이나 HAVING사용을 삼가하라. 대신 NOT EXISTS절을 사용하라.
 

Always specify numeric values in numeric form and character values in character form (e.g., WHERE emp_number = 565, WHERE emp_name = 'Jones'.

숫자 관련 값은 숫자로, 문자열 관련 값은 문자로 표현하라.
 

Avoid specifying NULL in an indexed column.

인덱스 칼럼에 NULL사용하지 마라.
 

Avoid the LIKE parameter if = will suffice. Using any Oracle function will invalidate the index, causing a full-table scan.

=(equal)연산자만으로 충분하다면 LIKE를 사용치 마라. 오라클 함수를 사용하는 것은 인덱스를 무용지물로 만들어 full-table scan를 하게 만든다.
 

Never mix data types in Oracle queries, as it will invalidate the index. If the column is numeric, remember not to use quotes (e.g., salary = 50000). For char index columns, always use single quotes (e.g., name = 'BURLESON'.

오라클 쿼리에서 데이터 타입을 섞으면 인덱스를 무용지물로 만든다. 칼럼이 숫자면 따옴표를 사용치말고 문자열이면 항상 작은따옴표를 사용하라.
 

Avoid using subqueries when a JOIN will do the job.

JOIN으로 해결할 수 있다면 서브쿼리를 사용치 마라.
 

Use the Oracle "decode" function to minimize the number of times a table has to be selected.

오라클의 "decode" 함수를 사용하여 개별 테이블이 선택되어지는 횟수를 최소화하라.
 

To turn off an index you do not want to use (only with a cost-based optimizer), concatenate a null string to the index column name (e.g., name||') or add zero to a numeric column name (e.g., salary+0).

(cost-based optimizer에서만) 사용하고 싶지 않은 인덱스를 꺼버리려면,  문자열값을 갖는 인덱스 칼럼의 이름에null 문자열을  잇거나 숫자값을 갖는 인덱스 칼럼에 숫자 0을 더해버려라.
 

If your query will return more than 20 percent of the rows in the table, a full-table scan may be better than an index scan.

쿼리가 20%이상의 테이블 데이터를 불러온다면, full-table scan이 index scan보다 더 낫다.
 

Always use table aliases when referencing columns.

칼럼을 참조할 때는 항상 테이블 alias(별칭)을 사용하라.

'DATABASE' 카테고리의 다른 글

오라클과 NLS 찰떡궁합 보기  (0) 2009.10.29
SQL 튜닝 규칙.  (0) 2009.09.21
SQL 튜닝 규칙.  (0) 2009.09.21
SQL 튜닝 규칙.  (0) 2009.09.21
Oracle DB Link  (0) 2009.09.14
Oracle DB Link  (0) 2009.09.14


CREATE DATABASE LINK 디비링크명
       CONNECT TO 유저이름 IDENTIFIED BY '패스워드'
       USING '연결될 DB의 TNSName의 별칭'
;

SELECT * FROM USER_DB_LINKS; // DB LINK 목록

DROP DATABASE LINK OLD_TACEEZ; // DB LINK 삭제

SELECT * FROM EC_SHPO_T@OLD_TACEEZ; // DB LINK 사용법


주의할 점.
1. TNSNames.ora 파일에 연결될 SID에 대한 정보가 있어야 함.
2. 내가 사용하는 local의 oracle Client - TNSNames.ora 가 아니라   
   실제 연결되는 oracle - TNSNames.ora 에 정보가 있어야함.
  (보통, DB server가 있고 로컬에 client를 설치하여 접속하기때문에 실수하기 쉬움.)

'DATABASE' 카테고리의 다른 글

SQL 튜닝 규칙.  (0) 2009.09.21
Oracle DB Link  (0) 2009.09.14
Oracle DB Link  (0) 2009.09.14
Oracle DB Link  (0) 2009.09.14
날짜 형식 영문으로 얻기.  (0) 2009.02.11
날짜 형식 영문으로 얻기.  (0) 2009.02.11


CREATE DATABASE LINK 디비링크명
       CONNECT TO 유저이름 IDENTIFIED BY '패스워드'
       USING '연결될 DB의 TNSName의 별칭'
;

SELECT * FROM USER_DB_LINKS; // DB LINK 목록

DROP DATABASE LINK OLD_TACEEZ; // DB LINK 삭제

SELECT * FROM EC_SHPO_T@OLD_TACEEZ; // DB LINK 사용법


주의할 점.
1. TNSNames.ora 파일에 연결될 SID에 대한 정보가 있어야 함.
2. 내가 사용하는 local의 oracle Client - TNSNames.ora 가 아니라   
    실제 연결되는 oracle - TNSNames.ora 에 정보가 있어야함.
   (보통, DB server가 있고 로컬에 client를 설치하여 접속하기때문에 실수하기 쉬움.)

'DATABASE' 카테고리의 다른 글

SQL 튜닝 규칙.  (0) 2009.09.21
Oracle DB Link  (0) 2009.09.14
Oracle DB Link  (0) 2009.09.14
Oracle DB Link  (0) 2009.09.14
날짜 형식 영문으로 얻기.  (0) 2009.02.11
날짜 형식 영문으로 얻기.  (0) 2009.02.11

select to_char(sysdate,'MONTH dd, yyyy','NLS_DATE_LANGUAGE=ENGLISH') from dual;


FEBRUARY, 11, 2009

와 같은 형식의 날짜를 원할 때. ^^

뒤에
'NLS_DATE_LANGUAGE=ENGLISH' 부분은
오라클 설치환경이 영문이 아닐 때,
2월, 11, 2009 형식으로 나오기 때문에
영문으로 나오게 하기 위해서 추가해주는 부분.

'DATABASE' 카테고리의 다른 글

Oracle DB Link  (0) 2009.09.14
날짜 형식 영문으로 얻기.  (0) 2009.02.11
날짜 형식 영문으로 얻기.  (0) 2009.02.11
날짜 형식 영문으로 얻기.  (0) 2009.02.11
원하는 row 수 만큼 뽑기.  (0) 2008.10.31
원하는 row 수 만큼 뽑기.  (0) 2008.10.31

select to_char(sysdate,'MONTH dd, yyyy','NLS_DATE_LANGUAGE=ENGLISH') from dual;


FEBRUARY, 11, 2009

와 같은 형식의 날짜를 원할 때. ^^

뒤에
'NLS_DATE_LANGUAGE=ENGLISH' 부분은
오라클 설치환경이 영문이 아닐 때,
2월, 11, 2009 형식으로 나오기 때문에
영문으로 나오게 하기 위해서 추가해주는 부분.

'DATABASE' 카테고리의 다른 글

Oracle DB Link  (0) 2009.09.14
날짜 형식 영문으로 얻기.  (0) 2009.02.11
날짜 형식 영문으로 얻기.  (0) 2009.02.11
날짜 형식 영문으로 얻기.  (0) 2009.02.11
원하는 row 수 만큼 뽑기.  (0) 2008.10.31
원하는 row 수 만큼 뽑기.  (0) 2008.10.31
출처 : http://mboy.tistory.com/49

MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1


PostgreSQL
SELECT column FROM table ORDER BY RANDOM() LIMIT 1


IBM DB2
SELECT column FROM table ORDER BY RAND() FETCH FIRST 1 ROWS ONLY


Oracle
SELECT column FROM ( SELECT column FROM table ORDER BY dbms_random.value ) WHERE rownum = 1


Microsoft SQL Server
SELECT TOP 1 column FROM table ORDER BY NEWID()
출처 : http://mboy.tistory.com/49

MySQL
SELECT column FROM table ORDER BY RAND() LIMIT 1


PostgreSQL
SELECT column FROM table ORDER BY RANDOM() LIMIT 1


IBM DB2
SELECT column FROM table ORDER BY RAND() FETCH FIRST 1 ROWS ONLY


Oracle
SELECT column FROM ( SELECT column FROM table ORDER BY dbms_random.value ) WHERE rownum = 1


Microsoft SQL Server
SELECT TOP 1 column FROM table ORDER BY NEWID()

spool ddl_list.sql
select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
spool off;


spool ddl_list.sql
select dbms_metadata.get_ddl('TABLE','DEPT','SCOTT') from dual;
select dbms_metadata.get_ddl('INDEX','DEPT_IDX','SCOTT') from dual;
spool off;

DB 접속하고
shell] conn user/passwd

shell] @SQL파일명

아씨 너무 간단해.

DB 접속하고
shell] conn user/passwd

shell] @SQL파일명

아씨 너무 간단해.

dirver : oracle.jdbc.driver.OracleDriver

URL : jdbc:oracle:thin:@localhost:1521:xe

'DATABASE' 카테고리의 다른 글

[Oracle] sql 파일 (sql스크립트?) 실행하기.  (0) 2008.04.16
[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11
dirver : oracle.jdbc.driver.OracleDriver

URL : jdbc:oracle:thin:@localhost:1521:xe

'DATABASE' 카테고리의 다른 글

[Oracle] sql 파일 (sql스크립트?) 실행하기.  (0) 2008.04.16
[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11


SELECT ROW_NUMBER()OVER(order by no) , no FROM fallacy order by no desc

'DATABASE' 카테고리의 다른 글

[Oracle] Driver, URL  (0) 2008.03.27
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11
[Oracle] ROW_NUMBER()OVER( )  (0) 2008.03.11
[Oracle ] Sequence  (0) 2008.03.11
[Oracle ] Sequence  (0) 2008.03.11

+ Recent posts