본문 바로가기

oracle12

[Oracle] 날짜(년,월,일), 시간(시,분,초) 더하고 빼기 이번 포스팅은 그냥 날짜와 시간을 Oracle에서 연산하는 관련된걸 가능한 다 적어보려고 합니다. 우선적으로 오라클은 기본적으로 시간에 +1을 할 경우엔 하루를 더하게 됩니다.관련 실험은 포스팅을 한적이 있습니다. [날짜 마지막 시간 적용에 0.99999 쓰는 이유] 그래서  간단하게 시간을 더하기로 진행하면 일, 시간(시,분,초)에 대한 연산을 진행할 수 있습니다. 더하기 예시 WITH ADDTIME AS ( SELECT TO_DATE('2024-11-28 18:30:10', 'YYYY-MM-DD HH24:MI:SS') TEST_TIME FROM DUAL)SELECT TEST_TIME AS 기준시간 , TEST_TIME +1 A.. 2024. 11. 28.
[Oracle] 문자 채우기 (LPAD, RPAD) +응용 오라클에서 특정 문자로 채워야할때  LPAD,RPAD 함수를 사용합니다. 우선 문자 길이를 맞추고나서 부족하면LPAD는 왼쪽에  RPAD는 오른쪽에 특정 문자를 넣어주는 함수입니다. 즉 문자길이를 우선적으로 맞추고 나서 조정에 들어갑니다. 사용법 둘다 같으며LPAD( 값 , 문자길이 , 특정문자) RPAD( 값 , 문자길이 , 특정문자)만약 특정문자가 없을 경우 공백으로 대체됩니다. 특정문자가 들어가는 정도는 (문자길이 - 값의 문자 길이)의 만큼 들어갑니다.예시 LPAD( 'dohi' , 7 , 'D')일경우에 D가 붙는 갯수는 3(=7-4)개로 왼쪽(L)에붙습니다   사용 예제 SELECT LPAD('dohi',6) -- dohi가 길이가 6이 되도록 왼쪽에 2개의 공백추가 , RPAD.. 2024. 10. 17.
[Oracle] 시간과 숫자를 원하는 단위까지 절사하는 함수 (TRUNC) TRUNC함수는 Oracle에서 시간 및 숫자를 절사할때 많이 사용한다.대략 내림함수와 비슷하다.-- 기본 틀 TRUNC(데이터, 설정값)데이터: 잘라낼 시간 및 숫자설정값 : 자르는 조건 1.숫자SELECT 1234.1234 AS MAIN , TRUNC(1234.1234) AS no -- 0과 동일 , TRUNC(1234.1234, 1) AS one -- 소수점1까지남기고 절삭 , TRUNC(1234.1234, 2) AS two -- 소수점2까지 남기고 절삭 , TRUNC(1234.1234, 0) AS zero -- 소수점이하절삭 , TRUNC(1234.1234, -1) .. 2024. 10. 7.
[Oracle&mysql/프로그래머스 LV.1] SELECT / 평균 일일 대여 요금 구하기 문제링크 풀이 Git링크 문제설명다음은 어느 자동차 대여 회사에서 대여중인 자동차들의 정보를 담은 CAR_RENTAL_COMPANY_CAR 테이블입니다. CAR_RENTAL_COMPANY_CAR 테이블은 아래와 같은 구조로 되어있으며, CAR_ID, CAR_TYPE, DAILY_FEE, OPTIONS는 각각 자동차 ID, 자동차 종류, 일일 대여 요금(원), 자동차 옵션 리스트를 나타냅니다.문제CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE로 지정해주세요. 풀이1.  'SUV'인 자동차   -> CAR_TYPE =.. 2024. 10. 7.
[Oracle/프로그래머스 LV.3] Join/없어진 기록 찾기 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/59042?language=oracle 풀이 Git링크github.com/ 문제설명ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블구조는 다음과 같으며, .. 2024. 10. 5.
[Oracle/프로그래머스 LV.1] SELECT/흉부외과 또는 일반외과 의사 목록 출력하기 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/132203풀이 Git링크github.com문제설명다음은 종합병원에 속한 의사 정보를 담은DOCTOR 테이블입니다. DOCTOR 테이블은 다음과 같으며 DR_NAME, DR_ID, LCNS_NO, HIRE_YMD, MCDP_CD, TLNO는각각 의사이름, 의사ID, 면허번호, 고용일자, 진료과코드, 전화번호를 나타냅니다.DOCTOR  테이블에서 진료과가 흉부외과(CS)이거나 일반외과(GS)인 의사의 이름, 의사ID, 진료과, 고용일자를 조회하는 SQL문을 작성해주세요. 이때 결과는 고용일자를 기준으로 내림차순 정렬하고, 고용일자가 같다면 이름을 기준으로 오름차순 정렬해주세요.  풀이where에서.. 2024. 10. 5.
[oracle] Union / Union ALL UNION은 '합집합, 조합'이라는 뜻으로 정말 합집합 함수이다.즉, 2개 이상의 데이터를 합쳐서 보여주고 싶을 때 주로 사용되는 함수입니다. 예를 들어 A, B라는 조회데이터 집합이 있고 UNION을 사용하면A∪B와 같은 합집합이 일어난다 예시를 또 하나 들면동일한의 데이터가 있는 2개의 조회데이터(A,B)와다른 데이터가 있는 1개의 조회데이터(C)를 Union을 한다면A∪B∪C와 동일한 결과가 나타난다.아래는 실제 실행 결과물이다.  UNION 구문은 2가지로 나뉜다.UNION [DISTINCT] : 중복값 제외하여 출력 (A∪B) ※DISTINCT는 안적어도 된다.UNION ALL : 중복 상관없이 출력 (A+B = A∪B + A∩B)결과값의 차이는 중복값처리이다.실제로 합집합은 중복값이 처리가 되.. 2024. 9. 30.
[Oracle/SQL] MERGE INTO MERGE INTO 문UPDATE문, INSERT문, DELETE문 등을 상황에 따라 나눠서 처리하는 문장으로주로 동일한 데이터가 있을경우 UPDATE, 없을경우 INSERT를 하기 위해 사용된다.MERGE INTO 테이블1 -- 테이블,뷰USING 테이블2 -- 테이블,뷰,서브쿼리,dual ON 조건 -- 매칭 조건 ( PK 또는 UNIQUE 제약조건을 사용)WHEN MATCHED THEN --조건 ture (UPDATE,DELETE) , 조건 true일때 아무것도 안하고 싶다면 없어도됨 UPDATE SET 컬럼 = 값 -- WHERE절 사용가능(오라클10g이후 INSERT는 X)WHEN NOT MATCHED THEN --조건 false (INSERT), 조건 fal.. 2024. 7. 30.
[Oracle/프로그래머스 LV.3] 카테고리 별 도서 판매량 집계하기 https://school.programmers.co.kr/learn/courses/30/lessons/144855 문제설명어느 한 서점에서 판매중인 도서들의 도서 정보(BOOK), 판매 정보(BOOK_SALES) 테이블입니다.BOOK 테이블은 각 도서의 정보를 담은 테이블이며BOOK_SALES 테이블은 각 도서의 날짜 별 판매량 정보를 담은 테이블입니다. 문제2022년 1월의 카테고리 별 도서 판매량을 합산하고, 카테고리(CATEGORY), 총 판매량(TOTAL_SALES) 리스트를 출력하는 SQL문을 작성해주세요.결과는 카테고리명을 기준으로 오름차순 정렬해주세요.풀이문제를 분석을 해보면 다음과 같습니다.1. 2022년 1월 도서별 판매량 2. 카테고리 - 도서 조인3. 카테고리별 합산4. 카테고리별 .. 2024. 7. 27.
[Oracle/프로그래머스 LV.1] IS NULL / 경기도에 위치한 식품창고 목록 출력하기 문제링크https://school.programmers.co.kr/learn/courses/30/lessons/131114 GIT [  github.com ]  문제설명다음은 식품창고의 정보를 담은 FOOD_WAREHOUSE테이블입니다. FOOD_WAREHOUSE테이블은 다음과 같으며 WAREHOUSE_ID, WAREHOUSE_NAME, ADDRESS, TLNO, FREEZER_YN는 창고 ID, 창고 이름, 창고 주소, 전화번호, 냉동시설 여부를 의미합니다.문제 FOOD_WAREHOUSE 테이블에서 경기도에 위치한 창고의 ID, 이름, 주소, 냉동시설 여부를 조회하는 SQL문을 작성해주세요. 이때 냉동시설 여부가 NULL인 경우, 'N'으로 출력시켜 주시고 결과는 창고 ID를 기준으로 오름차순 정렬해주.. 2024. 7. 27.
728x90