본문 바로가기

IT/DB

[postgresql] Left join 예제 SELECT T1.category, T1.sumCnt AS sumCnt, T1.changedCnt, COALESCE(T2.deletedCnt, 0) FROM( SELECT COALESCE(category, 0) AS category, COUNT(id) AS sumCnt, SUM(CASE WHEN createdate != changedate AND SUBSTR(changedate,1,10) = '2015-01-26' THEN 1 ELSE 0 END) AS changedCnt FROM metadata GROUP BY category ) AS T1 LEFT OUTER JOIN (SELECT COALESCE(category, 0) AS category, SUM(CASE WHEN TO_CHAR(deletionda.. 더보기
[Oracle SQL] 요일 호출 select to_char(sysdate,'dy') from dual; 더보기
[Oracle SQL] 1컬럼 2컬럼의 값을 그대로 입력할경우 exp) msg_cdoe란 Tabled의 megnm_eng란 컬럼에 '#'이 입력된 Data를 megnm_kor의 자료로 업데이트 할때 update msg_code set megnm_eng = megnm_kor where megnm_eng = '#' 더보기
[Oracle SQL] international age 계산하는 SQL # internation age를 구하는 SQL문 입니다. - 예를 들어 'person' table에 birthdt라는 date type의 column에 직원들의 생일을 입력되어 있습니다. ad_date는 date형 입력값입니다. SQL> SELCT TRUNC(MONTHS_BETWEEN(:AD_DATE,birthdt)/12,0) FROM person ; 더보기
[Oracle SQL] 컬럼 추출 입력 예제 select nvl(sum(decode(mrkt,'N',1,0)),0), nvl(sum(decode(mrkt,'N',0,'H',0,1)),0), nvl(sum(decode(mrkt,'H',1,0)),0), nvl(sum(anum + cnum),0) into n_compcnt,n_occcnt,n_housecnt,n_guestcnt from fo_in_res where arrival to_date(v_date); 더보기
[Oracle] 검색 조건 '%' select tname from tab where tname like :as_var||'%' ; ## ET_USER_TEMP들과 같이 'TEMP'를 포함한 테이블 검색 select * from tab where tname like '%TEMP' ; 더보기
[Oracle SQL] 테이블 정의서 query // 특정 테이블에서 컬럼명 조회select * from col where tname = '테이블명' // 테이블 정의서 출력 QuerySELECT TBL.TABLE_NAME , TCM.COMMENTS , TBL.TABLESPACE_NAME , TCL.COLUMN_ID , TCL.COLUMN_NAME , CCM.COMMENTS , DATA_TYPE, DATA_LENGTH/* CASE WHEN TCL.DATA_TYPE = 'VARCHAR2' OR TCL.DATA_TYPE = 'CHAR' OR TCL.DATA_TYPE = 'NUMBER' THEN TCL.DATA_TYPE || '(' || DATA_LENGTH || ')'ELSE TCL.DATA_TYPE END AS DATA_TYPE*/ ,DECODE(NUL.. 더보기
[Oracle] DECODE 함수 DECODE 함수 -------------------------------------------------------------------------------- DECODE는 일반적인 프로그래밍 언어의 IF문을 SQL 문자 또는 PL/SQL 안으로 끌어들여 사용하기 위하여 만들어진 오라클 함수이다. 따라서 일반 프로그래밍 언어의 IF문이 수행 할 수 있는 기능을 포함하고 있다. select시의 decode 사용은 from 절만 빼고 어디에서나 사용할 수 있다. 일반 프로그래밍과 decode 함수를 서로 비교하여 보자. • IF~THEN~ELSE문장과 똑같은 결과를 출력할 수 있다. • 각각의 조건에 맞는 값에 대한 처리를 결과와 같게 연산해 리턴한다. • 비교 연산은 '='만 가능하다. • CASE 함.. 더보기
[Oracle] Oracle 10g Character set 변경 Oracle 10g Character set변경 kor 버전으로 받는다면 기본적으로 설치되는 버전은 KO16MSWIN949 일 경우가 많다. 한글을 지원하는 Character Set을 비교해보자. 1. KO16KSC5601 - 한글 지원상태 : 한글 2350자 - 지원버전 : 7.x - 한글바이트 : 2바이트 2. KO16MSWIN949 - 한글 지원상태 : KO16KSC5601 + 확장 ( 총 11172자 ) - 지원버전 : 8.0.6 이상 - 한글바이트 : 2바이트 3. UTF8 - 한글 지원상태 : 한글 11172자 - 지원버전 : 8.0 이후 - 한글바이트 : 3바이트 4. AL32UTF8 - 한글 지원상태 : 한글 11172자 - 지원버전 : 9i Release 1 이상 - 한글바이트 : 3바이.. 더보기
[Oracle] PL/SQL 문법정리 PL/SQL 문법정리 pl/sql - Procedural Language/sql - 서버에서 절차적인 처리를 위해 표준 sql을 확장한 절차적 언어 - 블록 구조로 여러 sql문을 한번에 실행 - 모듈화 및 캡슐화, 비교, 반복, 예외처리 가능 - 서버에 저장되어 빠른 실행 - 단점은 문법에 대한 표준이 없고 각 DBMS에 종속적 declare(옵션) begin(필수) exception(옵션) end;(필수) pl/sql의 분기문 -------------------------------------------------------- if ~~ elsif ~~ -- else의 'e'가 빠짐 end if DECLARE v_num number; begin dbms_output.enable; v_num := 77.. 더보기
[Oracle] Oralce 10g Windows7에 설치 [Oracle] Oralce 10g Windows7에 설치 설치 파일은 오라클 홈페이지에서 배포중인 10204_vista_w2k8_x64_production_db.zip 를 사용했습니다. 총 3개의3개의 파일을 수정해야 하며, 관리자 권한으로 설치하세요. 윈도우즈7에만 TEST 해 보았으나 윈도우즈윈도우즈 서버 2008 R2 에서도 같은방법으로 설치 가능할겁니다.(아마도...^^) 수정해야 할 파일 및 내용 빨간 글씨 부분이 추가 해야 할 내용 입니다. 메모장 등의 문서편집기로 수정하면 됩니다.됩니다. ① \10204_vista_w2k8_x64_production_db\database\install\oraparam.ini [Certified Versions] #You#You can customise er.. 더보기
[Oracle] PCTFREE와 PCTUSED 정리 1. PCTFREE 1) 수정시 늘어나는 데이터를 수용하기 위한 공간입니다. 2) 데이터의 수정이 빈번한 경우에는 default 값(10) 이상으로 설정합니다. 3) default = 10(%) 2. PCTUSED 1) 재사용되기위해 필요한 블럭의 사용량을 설정합니다. 2) default = 60(%) 3) 삭제가 거의 발생하지 않는 경우에는 90정도로 큰 값을 설정하고, 수정작업이 자주 발생하면서 Row Size가 증가할 때에는 40정도로 낮은 값을 설정해야 합니다. 1. PCTFREE 1) 수정시 늘어나는 데이터를 수용하기 위한 공간입니다. 2) 데이터의 수정이 빈번한 경우에는 default 값(10) 이상으로 설정합니다. 3) default = 10(%) 2. PCTUSED 1) 재사용되기위해 필요.. 더보기
[Oracle] listener와 tnsname 정리 Oracle의 listener와 tnsname 정리 1. Listener.ora - 오라클 서버에서 클라이언트의 요청을 듣고, 클라이언트와의 통신 환경을 설정하는 파일이다. - 오라클 서버에 존재하며, 오라클 클라이언트에서 서버로 접속할 때 필요한 프로토콜 및 포트정보등을 설정하는 파일이다. 2. tnsname.ora - 오라클 client 측에서 오라클 서버로 접속할 때 필요한 프로토콜 및 포트 번호, 서버주소 ,인스턴스 등을 설정해주는 파일로서 클라이언 트에 위치 합니다 - 오라클 설치 폴더안에 오라클설치경로/network /admin 폴더 안에 tnsnames.ora 라는 파일 // listener.ora - 위치: $ORACLE_HOME/network/admin/listener.ora - 오라클 .. 더보기
[Oracle] Oracle 11g New Feature 정리 Oracle Database 11g New Feature 정리 11g New Feature 1. flashback data archive 1.1 별도의 저장 공간을 가진다. (내부적으로 compress하고 range partition 한다.) 1.2 fbda라는 background process 가 있다. 1.3 DML이 있으면 일단 ARCHIVE 대상인 경우 mark만 하고 일정 Interval time 후에 fbda가 archiving을 한다. 1.4 history가 저장되기 전까지 undo record는 recycle 되지 않는다. 1.5 Interval time은 default 5분이지만 Transaction 량에 늘어나면 자동으로 Interval Time을 줄인다. 1.6 저장은 하나의 tabl.. 더보기
[Oracle] Oracle 10g 삭제하기 Oracle 10g 삭제하기 1. 서비스 종료 컴퓨터 관리도구에서 서비스 항목을 실행 시킨다 Oracle이라고 시작하는 모든 Service를 중지 시킨다 2. Oracle uninstall : 일반 프로그램처럼 uninstall 한다 제품 설치 해제 버튼을 선택 3. regedit 실행 이제 Rege를 건들면 된다 HKEY_LOCAL_MACHINE -> SYSTEM -> CurrentControlSet -> Service에서 Oracle로 시작하는 모든 요소를 삭제한다 (2번 과정이 제대로 진행됐다면 아마 삭제 할것이 없을 것이다) HKEY_LOCAL_MACHINE -> SOFTWARE -> ORACLE에 모든 요소를 삭제한다 이제 깨끗해 졌다 간단히 HKEY_LOCAL_MACHINE - SOFTWARE.. 더보기
[Oracle] Oracle 10g 설치후 IP 변경 ## Local상태에서 Oracle 을 설치후에 IP가 변경 되었을시 oracle이 설치된 경로에서 ..\oracle\product\10.2.0\db_1\NETWORK\ADMIN listener.ora , tnsnames.ora 두개의 파일을 열어서 IP를 변경 해주면 됩니다 ## 컴퓨터 이름이 바뀌었을때 오라클 구동 시키는 방법 ..\oracle\product\10.2.0\db_1\NETWORK\ADMIN listener.ora 에 host = 바뀐 컴퓨터 이름 tnsname.ora 안에서도 바꿔 줍니다 더보기
[Oracle] 기본 명령어 모음 oracle 10g 기초부터 사용자 계정 만들기 ### DB connection ## console에서 sysdba로 접속하기 $ sqlplus "/as sysdba" ## user connection SQL>CONNET SCOTT/TIGER; SQL>CONNET /as sysdba ## DB mount/dismount SQL> STARTUP SQL> SHUTDOWN IMMEDIATE ### Tablespace ## Tablespace 조회 SELECT * FROM DBA_TABLESPACES; ## Tablespace 만들기 SQL> CREATE TABLESPACE test_data DATAFILE '/oracle/oradata/orcl/TESTDATA.dbf' SIZE 10M AUTOEXTEND ON.. 더보기
[MySQL SQL] 해당 날짜의 요일 출력 [MySQL] 해당 날짜의 요일을 함께 SELECT 하기 웹프로그래밍 작업 1. 요일 출력 함수: DAYOFWEEK 일요일(0) ~ 토요일(6)까지, 숫자로 출력 mysql> SELECT DAYOFWEEK('2012-09-20'); +-------------------------+ | DAYOFWEEK('2012-09-20') | +-------------------------+ | 5 | +-------------------------+ 1 row in set (0.00 sec) 2. 문자열 자르기 함수: SUBSTR '일월화수목금토' 라는 문자열에서 해당 요일의 한 글자를 가져 옴. mysql> SELECT SUBSTR(_UTF8'일월화수목금토', DAYOFWEEK('2012-09-20'), 1); .. 더보기
[MySQL SQL] IP매칭 SQL 예제 # IP 쪼개서 불려오기 SELECT COUNT(*) FROM OWSADMIPADDR WHERE (SUBSTRING_INDEX(IP_ADDR,'.',1) LIKE '***' OR SUBSTRING_INDEX(IP_ADDR,'.',1) LIKE SUBSTRING_INDEX('127.1.0.27','.',1)) AND (SUBSTRING_INDEX(SUBSTRING_INDEX(IP_ADDR,'.',2),'.',-1) LIKE '***' OR SUBSTRING_INDEX(SUBSTRING_INDEX(IP_ADDR,'.',2),'.',-1) LIKE SUBSTRING_INDEX(SUBSTRING_INDEX('127.1.0.27','.',2),'.',-1)) AND (SUBSTRING_INDEX(SUBSTRING.. 더보기
[postgresql] pgpool II 설치 (Master Master + replication) [postgresql] pgpool II 설치 (Master Master + replication) # OS : Redhat 5.5 (vmware사용) # postgresql ver. 8.4.13 # pgpool ver.3.1.5 #1. 테스트 개요 -- Posgresql서버 두대의 이중화 구성을 위하여 Pgpool II를 이용하여 Master Master + replication 모드 동작하는지 테스트를 해보자. #2. 네트워크 구성 -- 서비스는 Master Master + replication이지만 실제 테스트 VIP를 이용하여 Master/slave 형태로 동작하도록 할 것이다. -- VIP 192.168.10.150 -- wisdb1 (Master1) 192.168.10.151 -- wisdb2.. 더보기