Study/Database

개요 mysql에서는 특정 컬럼의 null값 방지를 위해 IFNULL이라는 함수를 종종 사용하는데, 간혹 NULLIF 라는 함수와 이름이 비슷해서 잘못 사용하는 경우가 있다. 두개의 함수는 서로 명칭은 비슷하지만 사용 목적이 다르다. 차이점 IFNULL은 특정 컬럼이 NULL인 경우를 특정 값으로 대신 리턴하기 위한 함수라면, NULLIF는 두개의 인자값이 같은지 확인해서 같으면 NULL을 리턴하는 함수이다. IFNULL(A,B) : A가 null값이면, B를 반환 NULLIF(A,B) : A == B 인 경우 null 반환하고 A!=B 이면 A 반환 예시 NULLIF 두개의 값이 같으면 NULL을, 아니면 첫번째 값을 반환 IFNULL 첫번째 값이 NULL이면 두번째값을 반환, NULL이 아니면 첫번째..
개요 mysql에서는 특정 컬럼을 기준으로 그룹화 할 수 있는 group by라는 기능이 존재한다. 아래 예시의 테이블에서 dept_id 기준으로 사원 급여 통계를 내고 싶은 경우 group by절에 dept_id를 전달하고 SELECT 절에 집계함수(AVG) 를 사용하면 된다. id name dept_id salary 1 Lee 1 1000 2 Park 1 2000 3 Son 2 3000 4 John 3 4000 5 Han 3 6000 6 Ahn 1 6000 dept_id salary 1 3000.0 2 3000.0 3 5000.0 문법 SELECT dept_id, AVG(salary) FROM EMP WHERE 1=1 GROUP BY dept_id 보통 group by는 위의 예시와 같이 특정 컬럼을..
개요 회사 업무 중 어제 날짜의 시작일자(YYYY-MM-DD 00:00:00)와 종료일자(YYYY-MM-DD 23:59:59)를 SELECT절에서 한번에 구하는 쿼리를 구현하게 됐다. 구현하다보니 생각보다 쿼리가 복잡하여 기록 및 공유 하고자 한다. 본 글에서는 어제 날짜의 시작시간과 종료시간을 나눠서 설명한다. 어제 날짜의 시작시간 구하기 (YYYY-MM-DD 00:00:00) 1번. date_sub(now(), interval 1 day)) : 현재시간에서 하루를 뺀 날짜 값을 구한다. date_sub(now(), interval 1 day)) 2번. YYYY-MM-DD HH:MM:SS 형태로 변경한다 cast(date(date_sub(now(), interval 1 day)) as datetime)..
upsert문 업무 진행할때 특정 데이터를 insert하거나 update 하는 로직을 짜는 경우가 많다. 이때 테이블에 레코드가 존재하면 update문을, 존재하지 않으면 insert문을 수행하는 로직으로 진행하는데 이러면 코드가 길어지고, 쿼리를 2번 수행한다는 문제가 있다. 기존 방식 이런 문제를 해결할수 있는게 UPSERT 방식이다. 이름에서 유추할수 있듯 데이터가 있으면 Update문 , 없으면 Insert문을 수행하는 방식이다. 사용 방법 사용 방법은 insert문 뒤에 ON DUPLICATE KEY UPDATE를 붙이고 UPDATE문 SET절의 구문을 적어주면 된다. INSERT INTO 테이블명 ( 컬럼명 , 컬럼명 , … ) VALUES ( 값 , 값 , … ) ON DUPLICATE KE..
row_number() 조회된 레코드들의 번호 매김을 하고 싶은 경우 mysql에서 제공하는 row_number() 함수를 사용하면 원하는 기준대로 순서 매김할 수 있다. row_number() over ( order by 컬럼 ) : 컬럼 기준 오름차순/내림차순으로 번호를 매긴다. row_number() over ( partition by 컬럼) : 컬럼 기준으로 그룹핑 한 뒤 그룹 별로 번호를 매긴다. 사용 방법 예시 ✅ 테스트 데이터 ✅ 전체 레코드를 순서대로 번호매기기 ✅ 특정 컬럼 기준으로 그룹핑 한 뒤 그룹 내에서 번호를 매기기 (1) ✅ 특정 컬럼 기준으로 그룹핑 한 뒤 그룹 내에서 번호를 매기기 (2) 그룹핑된 그룹 내에서 특정 컬럼 기준으로 순서 매기기 (order by 추가)
개요 이번 글에서는 Window OS에 Oracle 11g 환경을 구축하는 방법에 대해 설명합니다. 따라하기 전 오라클 계정이 필요하니 참고 바랍니다 Oracle 11g 설치 1. 아래 주소에서 OS에 맞는 11g Release 2 Express Edition을 클릭한다. 스크롤 내리면 최 하단에 위치해있다. - url : https://www.oracle.com/database/technologies/oracle-database-software-downloads.html 2. 아래의 설치 파일 클릭하여 다운로드 3. 설치된 경로로 이동하여 관리자 권한으로 setup.exe를 클릭한다. 관리자 권한으로 실행해야 폴더 권한문제로 에러가 발생하는 것을 방지할 수 있다. 4. 설치 순서대로 설치를 진행해준다...
jonghne
'Study/Database' 카테고리의 글 목록