IT/ORACLE 10

[ORACLE] LIKE 특정 문자열을 포함 하는지 확인 '%' (퍼센트기호) ,' _ '(언더스코어)

LIKE SQL에서 사용되는 비교 연산자이다 LIKE 연산자를 사용하여 특정 패턴에 부합하는 문자열을 검색하거나 필터링할 수 있다 1. 일반적으로 WHERE 절에서 사용 2. 주로 문자열 데이터를 비교할 때 유용 3. 검색하려는 패턴을 정의하고, 해당 패턴과 일치하는 문자열을 찾는다 LIKE 연산자는 두 가지 중요한 와일드카드 문자를 사용합니다: % (퍼센트 기호) %A%: 어떤 위치에든 'A'라는 문자를 포함하는 모든 문자열을 의미 ex > 'apple', 'cat', 'hat' %A : 'A'로 끝나는 모든 문자열을 의미 ex > 'banana', 'pizza', 'Java' A% : 'A'로 시작하는 모든 문자열. ex> 'apple', 'ant', 'application' 세 가지 패턴을 사용하면..

IT/ORACLE 2023.07.17

[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER 정리 (숫자,날짜,시간 데이터 문자열 변환, 날짜변환)

[ORACLE] TO_CHAR, TO_DATE, TO_NUMBER TO_CHAR TO_CHAR(데이터, [형식]) :숫자, 날짜, 시간 등의 데이터를 문자열로 변환 1. 숫자를 문자열로 변환 TO_CHAR(12345) 위의 예시는 숫자 12345를 문자열로 변환. 2. 날짜를 문자열로 변환 TO_CHAR(SYSDATE, 'YYYY-MM-DD') 현재 날짜를 'YYYY-MM-DD' 형식의 문자열로 변환 (SYSDATE는 현재 시스템 날짜를 나타내는 오라클의 내장 함수) 3. 시간을 문자열로 변환 TO_CHAR(SYSDATE, 'HH24:MI:SS') 재 시간을 'HH24:MI:SS' 형식의 문자열로 변환합니다. SYSDATE 함수를 사용하여 현재 시간을 가져옵 TO_DATE TO_DATE(문자열, 날짜_포..

IT/ORACLE 2023.07.13

[ORACLE] GROUP BY, HAVING 정리 한 컬림 기준으로 합계, 평균등 구하기

[ORACLE] GROUP BY, HAVING 정리 한 컬림 기준으로 합계, 평균등 구하기 [GROUP BY] GROUP BY 절을 사용하여 그룹별 건수나 합계를 얻을 수 있다. GROUP BY 는 SELECT에 COUNT, SUM, AVG, MAX, MIN 등 집계함수 사용 GROUP BY 에 들어가는 칼럼명은 SELECT 절에도 있어야한다 HAVING 그룹별 집계된 결과 중 원하는 조건의 결과만 필터링하기 위해서는 HAVING 절을 사용하여 필터 조건을 사용한다 HAVING 절과 WHERE 절의 다른 점은 "WHERE" 절은 개별 행에 대한 조건을 지정하는 반면 HAVING 절은 집계 함수를 사용하여 조건절을 작성하거나 GROUP BY 컬럼만 조건절에 사용할 수 있다. HAVING 절에도 COUNT,..

IT/ORACLE 2023.07.13

[ORACLE] 오라클 나이 계산하기 (만나이) 오늘날짜, 특정날짜

1. 오늘 날짜 기준으로 나이 계산하기 오늘 날짜 기준으로 나이 계산하기: 글쓰는 기준 현재 날짜가 2023년 7월 4일 생년월일: 1998년 9월 30일 나이: 24세 (2023년 - 1998년 = 25세, 7월 4일 기준으로 아직 생일이 되지 않았으므로 1세를 빼줍니다.) SELECT TRUNC(MONTHS_BETWEEN(SYSDATE, TO_DATE('19980930','YYYYMMDD'))/12) AS AGE FROM DUAL; 출력값 : 24 2. 특정 날짜 기준으로 나이 계산하기: 생년월일: 1998년 9월 30일 특정 날짜: 2022년 1월 1일이라고 가정 나이: 23세 (2022년 - 1998년 = 24세, 1월 1일 기준으로 아직 생일이 되지 않았으므로 1세를 빼줍니다.) SELECT T..

IT/ORACLE 2023.07.04

[ORACLE] ROW_NUMBER() 중복되는데이터는 하나로 처리하기 (그룹별로 순번을 지정하여 하나의 행만 추출)

ROW_NUMBER() OVER (PARTITION BY ~ 그룹별로 순번을 지정하여 하나의 행만 추출 ROW_NUMBER() 함수 SQL에서 사용되는 윈도우 함수(window function) 중 하나이다 윈도우 함수는 테이블의 행들에 대해 계산을 수행하고, 결과 집합에 추가적인 정보를 제공하는 특별한 함수이다 ROW_NUMBER() 함수는 각 행에 일련 번호를 할당된다 이 번호는 정렬 순서에 따라 할당되며, 일반적으로 정렬 기준은 ORDER BY 구문을 통해 지정된다 ex> 다음 쿼리는 고객별로(customer_id)별로 최근 주문 (order)의 인련번호를 확일 할 수 있다. SELECT order_id, customer_id, order_date, ROW_NUMBER() OVER( PARTITIO..

IT/ORACLE 2023.06.30

[ORALCE] NVL2 으로 NULL 값 처리하기

NVL2 NULL 값을 처리하는에 유용한 함수 NVL2함수는 첫번째 인수가 NULL이 아닌경우 두 번째 인수를 반환하고 첫번째 인수가 NULL인경우 세번째 인수를 반환한다 NVL2함수는 세개의 인수를 사용한다 expr1 : 컬럼 값 expr2 : expr1 이 null이 아닐경우 반환되는 값 expr3 : expr1 이 null일 경우 반환되는 값 예제를 보자 NVL2함수를 사용하여 각 직원의 급여(sal)가 null 인지 여부 확인 sal가 null이 아니면 "Salary exists" 라는 문자열 반환 sal가 null 이면 "Not Salary" 문자열을 반환 이를 통해 쿼리 또는 계산의 특정 요구 사항에 따라 동작 또는 null대체를 사용자가 지정할수 있다

IT/ORACLE 2023.05.16

[ORACLE] WHERE 1=1는 왜 사용하는거야?

WHERE 1=1 WHERE 1=1 는 항상 참인 조건이다 ("WHERE 1=1"조건은 상수 값 1을 항상 동일한 자신과 비교하기 때문에 참이다) 쿼리 디버깅과 쿼리를 동적으로 구성하거나 WHERE 절에 조건을 추가하는 프로세스를 단순화 하는 방법으로 사용된다. 이 조건을 쿼리에 포함하면 사실상 아무런 영향을 미치지 않는다. 넣어도 되고 안넣어되고 개발자 마음 그러나 초기 조건에 대해 AND또는 OR 연산자를 사용해서 추가 조건을 넣기 위한 시작점이라고 생각하면 될듯하다 WHERE 1=1로 시작하면 요구 사항에 따라 AND 또는 OR 를 사용해서 후속 조건을 쉽게 추가할수있다는 장점이 있다 쿼리 디버깅을 할 때 WHERE 1=1을 사용하면 조건을 수정하기가 쉬워서 사용한다 이렇게 사용할때랑 이렇게 사용하..

IT/ORACLE 2023.05.16

오라클 원하는 위치의 문자열만 추출하기 SUBSTR 함수 사용하기

SUBSTR : 더 큰 문자열에서 하위 문자열을 추출하는데 사용되는 SQL함수이다 : 이 함수는 세가지 매개 변수를 사용한다 SUBSTR(string, start_position, length) 여기서 'string'은 하위 문자열을 추출할 원래 문자열이고. 'start_position'은 추출을 시작할 'string' 내의 위치이며, 'length'는 추출할 문자 수이다. ex> 이 쿼리는 SUBSTR함수를 사용하며 "Hello, world!" 문자열의 위치 1에서 시작하여 길이가 5인 하위 문자열을 추출한다 쿼리결과 : Hello start_position및 lenght에 음수 값을 사용할 수 도 있다 이 경우 카운팅은 문자열의 끝에서부터 시작된다 ex> 이 쿼리는 SUBSTR 함수를 사용하여 "He..

IT/ORACLE 2023.05.08

[ORACLE] NVL 함수 사용법 - null값을 기본값으로 대체 하기

NVL:oracle 에서 NVL은 NULL 값을 기본값으로 대체하는 데 사용되는 함수이다. NVL( 컬럼 , 값1) : 이 함수는 NULL이 아니면 "값1"을 반환한다 nvl 함수는 null값을 다른 지정된 값으로 바꾸는데 한개의 인수를 사용 첫번째 인수는 null에 대해 확인할 값이고 두번째 인수는 첫 번째 인수가 null 인경우 사용할 대체값이다. 예> 이 쿼리는 "employees" 에서 직원의 salary를 검색한다 그여 salary열에 NULL값이 있는 경우 NVL함수는 이를 기본값 0으로 바꾼다 예> 현재 날짜에서 고용 날짜를 빼 직원이 회사에 근무한 일수를 계산한다. 직원에게 고용 날짜가 없는 경우 (즉,null인 경우) nvl함수는 null을 0으로 바꾸고 해당 직원의 회사 근무 일수에 대..

IT/ORACLE 2023.05.08

[ORACLE] 원본 테이블에 다른 테이블 병합하기 MERGE INTO 문 사용하기

MERGE INTO MERGE INTO 문은 지정된 조건에 따라 원본 테이블의 데이터를 대상 테이블로 병합할 수 있는 SQL 명령이다 이 명령문은 UPDATE 및 INSERT 명령의 기능을 단일 명령문으로 결합한다 . [예시] MERGE INTO target_table USING source_table ON join_condition WHEN MATCHED THEN UPDATE SET target_column = source_column WHEN NOT MATCHED THEN INSERT (target_column1, target_column2, ...) VALUES (source_column1, source_column2, ...) [해설] MERGE INTO 여기서 "target_table"은 데이터..

IT/ORACLE 2023.05.04