본문 바로가기

Oracle Database

[ORACLE] 테이블 컬럼 데이터타입 확인 SELECT a.TABLE_NAME, c.COMMENTS, a.COLUMN_NAME, b.COMMENTS, a.DATA_TYPE, a.DATA_LENGTH, a.NULLABLE FROM USER_TAB_COLUMNS a, USER_COL_COMMENTS b, USER_TAB_COMMENTS c, USER_TABLES d where 1=1 and a.TABLE_NAME = D.TABLE_NAME and a.TABLE_NAME=b.TABLE_NAME and b.TABLE_NAME=c.TABLE_NAME and a.COLUMN_NAME=b.COLUMN_NAME and a.TABLE_NAME ='BOARD' //여기에 테이블명 order by a.TABLE_NAME, a.COLUMN_ID 더보기
[ORACLE] NULL 함수 .NVL(),NVL2(), NULLIF() NVL(NULL,대체값) // AVG가 NULL일경우 0으로 대체 SELECT NVL(AVG,0) FROM MEMBER; SELECT TRUNC(NVL(AGE,0)/10)*10 FROM MEMBER; NVL2(입력값, NOT NULL, 대체값, NULL 대체값) SELECT NVL2(AGE,TRUNC(AGE/10)*10,0) FROM DUAL; 두값이 같은 경우 NULL, 그렇지 않으면 첫번째 값 반환 NULLIF(값1,값2) SELECT NULLIF(AGE,19) FROM MEMBER; 조건에 따른 값 선택하기 DECODE(기준값,비교값,출력값,비교값,출력값) SELECT DECODE(GENDER,'남성',1,2) FROM MEMBER; SELECT DECODE(SUBSTR(PHONE,1,3)'011'.. 더보기
[ORACLE] 형식변환함수 TO_CHAR(NUMBER), TO_DATE,TO_NUMBER 숫자 -> 문자열 TO_CHAR() 문자 -> 날짜 TO_DATE() 날짜 -> 문자 TO_CHAR() 문자 -> 숫자 TO_NUMBER() NUMBER 형식을 문자열로 변환 TO_CHAR(NUMBER) SELECT TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS' ) FROM DUAL; SELECT TO_CHAR(SYSDATE, 'YY/MM/DD HH24:MI') FROM DUAL //분까지만 나옴 문자열을 날짜 형식으로 변환하는 함수 TO_DATE(문자열,날짜포맷) SELECT TO_DATE('2014-03-31') FROM DUAL; SELECT TO_DATE('2014-03-31 12:23:03', 'YYYY-MM-DD HH:MI:SS') FROM DUAL; 문자열을 숫자로.. 더보기
[ORACLE] 문자열 길이 얻는 함수 LENGTH 문자열 길이를 얻는 함수 LENGTH //문자열 길이를 알아냄 SELECT LENGTH('WHERE WE ARE') FROM DUAL; //회원의 핸드폰 번호와 번호의 문자열 길이 조회 SELECT PHONE,LENGTH(PHONE) FROM MEMBER; 회원의 전화번호 컬럼에 포함된 문자 -를 없앤 전화번호 길이 SELECT LENGTH(REPLACE(PHONE,'-','')) FROM MEMBER; 더보기
[ORACLE] 문자열 검색 함수 INSTR 문자열 검색 함수 INSTR(문자열,검색문자열,위치,찾을수) //TO를 찾음 SELECT INSTR('ALL WE NEED TO IS JUST TO...','TO') FROM DUAL; //중복일경우 위치를 정해줌 SELECT INSTR('ALL WE NEED TO IS JUST TO..','TO',15) //15번부터 TO의 위치를 알려줌 // 문자열 1부터 찾는데 2번째 TO를 찾음 SELECT INSTR('ALL WE NEED TO IS JUST TO..','TO',1,2) //전화번호에서 두번째 대시 문자가 존재하는 위치를 출력하시오. SELECT INSTR(PHONE,'-',1,2) FROM MEMBER; //회원의 전화번호에섯 첫번째 대시 문자와 두번째 대시 문자 사이의 간격을 출력 SELEC.. 더보기
[ORALCE] 첫글자를 대문자로 바꾸는 INITCAT 함수 SELECT INICAT('the..') FROM DUAL; 첫글자만 대문자로 바꾼다. 솔직히 이건 거의 안씀 더보기
[ORACLE] 문자열 패딩함수 LPAD, RPAD 문자열 패딩함수 LPAD, RPAD // 왼쪽에 0을 5개 채워서 10글자를 맞춤 SELECT LPAD('HELLO','10','0') FROM DUAL; // 오른쪽에 0을 5개 채워서 10글자를 맞춤 SELECT RPAD('HELLO','10','0') FROM DUAL; //한글은 2개의 공간이 필요, 한글은 1글자당 3바이트 이름이 3글자가 되지 않으면 오른쪽에 0을채움 SELECT RPAD(NAME,'6',0) FROM MEMBER; 더보기
[ORACLE] 문자열 대치 함수 REPLACE,TRANSLATE REPLACE(문자열, 찾는 문자열, 대치할 문자열) SELECT REPLACE('WHERE WE ARE', 'WE', 'YOU') FROM DUAL; SELECT REPLACE('WHERE WE ARE', 'WE', 'YOU') FROM DUAL; 위 쿼리문은 WE를 YOU로 바꿔준다 //빈칸이 없어진다. SELECT NAME,REPLACE(ADDRESS,'',") FROM MEMBER; TRANSLATE(문자열, 찾는 문자열, 대치할 문자열) TRANSLATE는 'WE'를 'YOU'와 비교하여 W->Y로 바꾸고 E ->O로 바꿔주고 U는 대치되는게 없기 때문에 바뀌지않는다 SELECT TRANSLATE('WHERE WE ARE', 'WE', 'YOU') FROM DUAL; SELECT TRANSLAT.. 더보기