오라클14 [SQL] MariaDB와 Oracle에서의 페이징 처리 : 쿼리 비교와 예시 마리아DB(MariaDB)와 오라클(Oracle)은 SQL 쿼리 언어의 표준을 따르고 있지만, 몇 가지 차이점이 있습니다.차이점과 예시 쿼리를 비교해보며 각 상황에 맞게 적용해 봅시다. 페이징 처리와 관련된 쿼리 작성 시 차이점 1. LIMIT 및 OFFSET vs ROW_NUMBER() 함수▶ 마리아DB (MariaDB) : 페이징 처리를 위해 'LIMIT' 및 'OFFSET' 절을 사용합니다.: 'LIMIT'은 반환할 행의 수를 지정하고, 'OFFSET'은 시작할 행의 위치를 지정합니다.▶ 오라클 (Oracle) : 오라클에서는 'ROW_NUMBER()' 함수와 서브쿼리를 사용하여 페이징 처리를 합니다.: 'ROW_NUMBER()' 함수를 사용하여 각 행에 순서를 부여하고, 그 순서를 기준으.. DB/SQL 2024. 4. 25. [Oracle] LAG, LEAD - 이전 로우, 이후 로우 값 반환 오라클 함수 중 이전 row나 이후 row의 값을 확인해야 하는 경우가 종종 있다. 이럴 때 쓰는 함수가 LAG(), LEAD() 함수들이다. ▶ LAG - 명시된 값을 기준으로 이전 로우의 값 반환 LAG(조건, 순서, 디폴트) OVER (PARTITION BY 절) ▶ LEAD - 명시된 값을 기준으로 이후 로우의 값 반환 LEAD(조건, 순서, 디폴트) OVER (PARTITION BY 절) LAG(), LEAD() 예시 SQL문 SELECT ID , AMT , LAG(ID) OVER(ORDER BY ID) AS PREV_ID , LEAD(ID) OVER(ORDER BY ID) AS NEXT_ID , LEAD(ID,2,'ID없음') OVER(ORDER BY ID) AS T_NEXT_ID FROM T.. DB/Oracle 2023. 7. 5. [Oracle] PIVOT 함수 사용법 (행을 열로 변환) 오라클 PIVOT(피벗) 함수 사용법 _ 행을 열로 변환하기 개발을 하다보면 세로로 조회된 데이터를 가로로 변환해야하는 상황이 발생한다.이때 보통 DECODE나 CASE문을 사용하여 변환을 하였을 것이다.하지만, 오라클 11g 버전에서부터 보다 간단하게 변환을 도와주는 PIVOT 함수 기능을 제공한다. PIVOT 함수 : 행을 열로 변환하도록 도와주는 기능.: 간편한 함수사용으로 DECODE 사용할 때 보다는 행열변환이 쉽지만, 함수 사용전에 PIVOT할 컬럼명을 정해놓아야 한다는 주의점이 존재한다 !! //PIVOT 함수 사용법SELECT 컬럼 FROM (조회할 데이터 SELECT문) OR 테이블 PIVOT (집계함수(표현식) FOR 피벗대상컬럼 IN (행으로 올릴 열));PIVOT함.. DB/Oracle 2021. 3. 12. [Oracle] CASE문 - CASE WHEN 표현식 사용법 오라클 CASE문 사용법 - CASE WHEN THEN ELSE END 표현식 사용 방법 오라클에서 if문을 사용할 때 대게 DECODE 함수를 떠올릴 것이다. 하지만 DECODE 함수는 오라클 SQL에서만 사용할 수 있는 비표준함수이고 조건이 많아지면 복잡해지고 가독성이 떨어지는 단점을 갖고 있다 ㅠ_ㅠ ,,, 오라클에서 DECODE 함수 대신하여 쓸 수 있는 것이 CASE 표현식이다 !CASE 문은 DECODE 함수보다 좀 더 확장적이며 가독성이 뛰어나다. 복잡한 조건을 따질 때는 CASE 표현식을 사용하는 것을 권장한다. CASE문 사용 방법을 알아보자 !! :D ▷ CASE문 사용 방법CASE문은 값이나 조건에 따라 다르게 결과값을 받아올 수 있다. 조건을 값으로 주냐 조건식으로.. DB/Oracle 2021. 2. 19. [Oracle] 순위 매기는 함수 RANK(), DENSE_RANK(), ROW_NUMBER() 비교 오라클 값에 따른 순위 매기기 (RANK함수/ DENSE_RANK함수/ ROW_NUMBER함수 사용법, 비교) 값에 따라 순위를 매겨 뿌릴 때 쿼리에서 뽑아올 수 있는 함수가 있어서 소개한당 ! 순위를 매기는 함수로는 RANK() , DENSE_RANK() , ROW_NUMBER() 이렇게 세 가지의 함수가 있는데, 각 함수마다 조금씩 특징이 다르다. 세가지 함수를 비교해보자 ! RANK() 함수 : 동일한 값에 대해 같은 순위를 부여하고 다음 순위는 누적 순위로 매긴다. DENSE_RANK() 함수 : 동일한 값에 대해 같은 순위를 부여하고 다음 순위는 누적시키지 않고 다음 순차로 순위를 매긴다. ROW_NUMBER() 함수 : 동일한 값에 대해 상관없이 순차적으로 순위를 부여한다. RANK 함수 DE.. DB/Oracle 2021. 2. 18. [Oracle] WITH절 사용법 [Oracle] 오라클 WITH절 사용법 & 장점 / 이름이 부여된 서브 쿼리 - WITH절 WITH 절이란 오라클 WITH 절은 이름이 부여된 서브 쿼리라고 생각하면 된다 ! WITH 절은 오라클 9 이후 버전부터 사용 가능하며 테이블을 임시로 만드는 점은 VIEW와 쓰임이 비슷하다. 하지만 VIEW는 한번 만들면 DROP 하기 전까지는 없어지지 않지만 WITH 절은 한번 실행할 쿼리문 내에서 정의되어 있을 경우 그 쿼리 문안에서만 실행된다 !! WITH절 사용하는 이유 오라클에서 WITH 절은 오라클 공유 메모리에 임시 테이블을 생성하여 반복 재사용이 가능하도록 해준다. WITH 절을 사용하면 동일 테이블 접근을 최소화하여 메모리에 생성된 임시 테이블에서 필요한 데이터를 메모리로 접근하기 때문에 디스.. DB/Oracle 2021. 2. 18. [Oracle] TO_CHAR 숫자 포맷(Format) 형식 _ FM표기법 오라클 TO_CHAR 숫자 포맷 형식 사용하기 / FM표기법 Oracle에서 숫자를 문자로 변환할 때 첫 번째 자리에 0이 있을 때 0이 생략되어 표출되는 경우가 있다. 예를 들어, '0.123'을 TO_CHAR로 변환했지만 0이 생략되어 '. 123'으로 표출될 것이다.이때 0이 생략되지 않고 그대로 출력시켜주는 Format 형식이 있다. FM 표기법TO_CHAR('숫자열', 'FM999.00')FM(Fill Mode) 표기법을 사용하면 숫자의 좌우 공백을 제거할 수 있습니다. 또한, 숫자의 형식을 지정할 때 다음과 같은 문자를 사용할 수 있습니다. - 9 : 가변적인 값으로 0이거나 숫자가 없을 시 값을 버린다. - 0 : 고정적인 값으로 변환된 숫자의 길이를 맞추고 싶으면 원하는 길이만큼 0.. DB/Oracle 2021. 2. 16. [Oracle] TRIM, LTRIM, RTRIM 함수 사용방법 오라클 TRIM, LTRIM, RTRIM 함수 사용방법 TRIM 함수는 문자열의 양쪽 공백을 제거하는 기본적인 함수 !LTRIM과 RTRIM 함수 역시 왼쪽과 오른쪽의 공백을 제거할 때 사용하는 함수이다.여기서 LTRIM과 RTRIM은 추가적으로 옵션을 줘서 반복적인 문자나 특정 문자를 제거할 수 있당 !! 사용방법을 확인해보자 ! :D ~ TRIM 함수: 문자열의 양쪽 공백을 제거하는 함수이다.SELECT TRIM("문자열") FROM TEST_TABLE LTRIM 함수: 문자열의 왼쪽 공백을 제거하고, 왼쪽의 반복적인 문자나 특정 문자를 제거할 수 있다.SELECT LTRIM("문자열", 옵션) FROM TEST_TABLE RTRIM 함수: 문자열의 오른쪽 공백을 제거하고, 오른쪽의 .. DB/Oracle 2021. 2. 15. [Oracle] SQL 중복제거 DISTINCT 사용법 sql 데이터 중복제거 DISTINCT 사용방법 SQL 에서 SELECT 조회를 할 때 중복제거를 하여 조회하는 방법을 알아보자 !방법은 간단하다. SELECT 뒤에 DISTINCT를 사용하여 키워드를 넣어주고 사용하면입력한 키워드의 중복제거를 한 결과가 조회된당 !! [ DISTINCT 사용방법 ]SELECT TEST_NM, TEST_ID FROM TEST_INFOTEST_NMTEST_IDABCTEST1BBBTEST2DDDTEST3ZZZTEST2YYYTEST1 SELECT 바로 뒤에 DISTINCT(키워드)를 넣어주면 키워드의 중복제거가 되어 조회된다.여기서 유의할 점은 DISTINCT의 위치가 반드시 SELECT문 바로 뒤에 와야된당 !!! SELECT DISTINCT(TEST_ID).. DB/Oracle 2021. 2. 8. [Oracle] EXISTS와 IN 함수 차이 비교 오라클 EXISTS함수와 IN함수 차이 비교 (NOT EXISTS, NOT IN) 쿼리문을 작성할 때 WHERE절에서 사용되는 조건 EXISTS함수와 IN함수의 차이를 비교해보자 !어떤 점이 다르고 언제 EXISTS함수를 써야할지 IN함수를 써야할지 정리해본당 ( * _ *) 'EXISTS'함수와 'IN'함수는 WHERE절에서 서브쿼리를 사용하여 조건을 걸 때 자주 사용됩니다.두 함수는 비슷한 목적을 가지고 있지만, 사용 방식과 성능 면에서 차이가 있습니다.이 두 함수를 비교하여 언제 어떤 함수를 사용하는 것이 좋은지 알아보겠습니다. EXISTS 함수EXISTS는 서브쿼리가 하나 이상의 행을 반환하는지 여부를 확인하는 데 사용됩니다. 서브쿼리가 행을 반환하면 'TRUE', 그렇지 않으면 'FAL.. DB/Oracle 2021. 2. 4. [SQL] Oracle SQL - DESC Oracle DB - SQL Developer에서 테이블컬럼 조회 명령어 OracleDB에서 쿼리를 짜다가 문자열 형식 오류로 테이블의 컬럼을 조회하고 싶을 때 간단하게 확인할 수 있는 명령어를 찾았다. - DESC [조회하고 싶은 테이블명]; 조회시 예시 결과 >>>>>> 이름 널? 유형 ------------------------ ----------------- ----------------- TEST_ID NOT NULL VARCHAR2(12) UPD_DTM DATE TEST_CP_NUM NUMBER(6,2) DESC는 Describe의 약자로 해당 테이블에 어떤 컬럼들로 구성되어 있는지와 각 컬럼의 TYPE도 알 수 있다. NOT NULL인지도 확인할 수 있어서 쿼리 짤때 유용하게 사용할 수 있는.. DB/SQL 2020. 11. 27. [Oracle] 오라클 시간 계산 / 표현식 Oracle DB 내 날짜시간비교를 위해 사용되어지는 시간 표현방법 1시간은 60분, 3600초이니 3600이라 표기하면 1시간으로 인식하는 줄 알았다...하지만 Oracle DB내 표현식에는 기준이 달랐다. Oracle DB 내 시간 기준은 1초가 아닌 하루 24시간이 기준이 된다.정리해보면, 1시간 : 1 / 24 1분 : 1 / (24*60) = 1 / 14401초 : 1 / (24*60*60) = 1 / 86400 현재시간과의 과거/미래 시간 계산을 예시로 살펴보자 ! [before]8초 전 : SYSDATE - 8 / 8640020분 전 : SYSDATE - 20 / 1440 [after]15초 후 : SYSDATE + 15 / 864009분후 : SYSDATE + 9 / 1440 .. DB/Oracle 2020. 11. 25. 이전 1 2 다음 728x90