본문 바로가기

Database23

ORACLE -날짜관련 SYSDATE ,TO_DATE(),ADD_MONTHS(),MONTHS_BETWEEN() SYSDATE - 현재 날짜와 시간을 시스템 기준으로 얻어온다. (최소단위 1초) - 얻어온 숫자에 연산이 가능하다. - TO_CHAR : 숫자나 날짜를 문자형식으로 변환 해주는 것 문제) --현재 시간과 현재 시간 기준 1일 2시간 3분 4초 후를 조회한다 SELECT SYSDATE+1+(2/24)+(3/24/60)+(4/24/60/60) FROM DUAL; - TO_DATE () 숫자나 문자형식을 날짜형식으로 변환 해주는것 - 날짜를 넣어줄때는 to date 형식으로 하고 그 날짜를 조회할때는 to char 형식으로 출력... --날짜 - 날짜 = 일수 SELECT TO_DATE('2020-01-09','YYYY-MM-DD') - TO_DATE('2019-07-29','YYYY-MM-DD')"RESU.. 2019. 9. 22.
ORACLE -REVERSSE() 문자열 뒤집기 --REVERSE() --대상 문자열을 거꾸로 반환한다 ( 단 , 한글은 제외 ) --TBL_FILES 테이블을 다음과 같이 조회할 수 있도록 쿼리문을 구성한다 --SELECT문만 가지고 /* 1 SALES.DOC 2 PANMAE.XXLS 3 RESEARCH.PPT 4 STUDY.HWP 5 SQL.TXT 6 TEST.PNG 7 ORACLE.SQL */ 답 SELECT FILENO"파일번호 ", REVERSE(SUBSTR(REVERSE(FILENAME),1,INSTR(REVERSE(FILENAME),'\',1)-1))"파일이름" FROM TBL_FILES; 2019. 9. 22.
ORACLE -INSTR() INSTR() INSTR 함수를 사용해서 문자열의 마지막에서 부터 해당 문자의 위치를 찾고 싶을때 빨간색 파라미터는 생략가능 하다. 문법 INSTR ( [문자열], [찾을 문자 값], [찾기를 시작할 위치(1,-1)], [찾은 결과의 순번(1...n)] ) INSTR('비교할 대상', '비교하고자하는 값', 비교를 시작할 위치, 검색된 결과의 순번) EX SELECT INSTR('HELLO WORLD', 'O') STR1 -- 문자열의 앞에서부터 찾기(기본사용) , INSTR('HELLO WORLD', 'O', -1) STR2 -- 문자열의 뒤에서부터 찾기 (-1 : 뒤에서부터) , INSTR('HELLO WORLD', 'O', -1, 1) STR3 -- 문자열의 뒤에서부터 찾고 첫번째 찾은 문자 , I.. 2019. 9. 22.
Oracle-오라클 문자 합치기(CONCAT, ||) 오라클에서 문자를 합치는 방법으로 CONCAT을 사용하는 방법과 || 를 사용하는 방법이 있다. 먼저 CONCAT 으로 문자를 합치는 방법부터 알아보자. CONCAT() (문자결합) 문법 (CONCAT) SELECT CONCAT(COUNTRY_ID, COUNTRY_NAME) FROM COUNTRIES; 가독성이 떨어지니 중간에 공백을 넣고싶다. 이렇게 문자열을 하나 더 합쳐야 할때 CONCAT을 한번 더 사용한다. SELECT CONCAT(CONCAT(COUNTRY_ID, ' '), COUNTRY_NAME) FROM COUNTRIES; 단점 : 오라클 관점에서는 가독성을 높여줄 지 몰라도 단점이 있다. 단 두개의 문자열에 대해서만 연결이 가능하다는 점이다. 3개의 문자열을 합치려면 함수를 함수로 감싸줘야.. 2019. 9. 22.
ORACLE - ALL() , =ANY() , IN() 차이와 비교 출처: https://carami.tistory.com/18 [carami's story] 1. IN - 조건절에서 사용하며 다수의 비교값과 비교하여 비교값 중 하나라도 같은 값이 있다면 true 이다. - SELECT * FROM emp WHERE sal IN(950, 3000, 1250); - 'sal = 950 OR sal = 3000 OR sal = 1250' - 950, 3000, 1250 과 동일한 값은 모두 출력한다. 2. ANY - 다수의 비교값 중 한개라도 만족하면 true 이다. - IN 과 다른점은 비교 연산자를 사용한다는 점이다. ? 1 SELECT * FROM emp WHERE sal =ANY(950, 3000, 1250) - 이 문장은 위의 IN의 결과와 같다. "=" 연산자는 .. 2019. 9. 22.
SQL -TO DATE() , BETWEEN A AND B,ANY,LIKE --TO_DATE() 함수 활용 문자형을->날짜형으로 바꿔줌 -- SELECT ENAME,JOB,HIREDATE FROM TBL_EMP WHERE HIREDATE=TO_DATE('1981-09-28','YYYY-MM-DD'); -- BETWEEN ⓐ AND ⓑ -- -날짜뿐만 아니라 숫자 ,문자에도 적용 가능 ex)WHERE HIREDATE BETWEEN TO_DATE('1981-04-02','YYYY-MM-DD') AND TO_DATE('1981-09-28','YYYY-MM-DD'); //날짜 ex)WHERE SAL BETWEEN 2000 AND 3000; //숫자 ex)WHERE ENAME BETWEEN 'C' AND 'S'; //문자 단 !★★★ -- 문자 형 일경우 아스키 코드 순서를 따르기 때문.. 2019. 9. 22.