반응형 IT/Database112 rownum 과 limit 의 차이 dbms에서 많이 사용되는 쿼리중에 특정 행의 갯수 반환을 위해 사용하는 구문이 있다. mssql 에서는 top-n 을 사용하지만 rownum과 limit 구문을 많이 봤을것이다. 둘의 차이를 알아보도록 할것이다. 결론만 먼저 말하면 다음과 같다. ROWNUM함수는 결과 레코드에 대한 순서의 번호를 반환한다. LIMIT 절은 출력되는 레코드의 개수를 제한 할 때 사용한다. 둘의 차이를 좀더 설명하면 limit 은 정렬 연산까지 모두 완료한 후에 최종 레코드의 갯수를 제한하는것이고 (마무리 완료 후), rownum은 모든 연산을 하기 이전에 레코드 순서를 기준으로 출력을 제한하는 것이다(그냥 위에서부터 보여주는 것). 2023. 4. 14. PSM 이란? PSM 이란? 먼저 위키백과에서 소개하는 설명은 아래와 같다. SQL/PSM(SQL/Persistent Stored Modules)은 주로 저장 프로시저에 사용하기 위해 절차적 언어로 SQL 확장을 정의해둔 ISO 표준이다. https://ko.wikipedia.org/wiki/SQL/PSM SQL/PSM - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. SQL/PSM(SQL/Persistent Stored Modules)은 주로 저장 프로시저에 사용하기 위해 절차적 언어로 SQL 확장을 정의해둔 ISO 표준이다. 1996년에 SQL-92(ISO/IEC 9075-4:1996, 가끔은 PSM-9 ko.wikipedia.org 좀더 부가 설명을 더하면 SQL에 프로그래밍 언어 설계 기능을.. 2023. 4. 3. [Oracle] procedure 조회 전 포스팅에서 procedure와 function에 대해서 차이와, 선언하는법을 다뤘다. 자세한 내용은 아래 참고 포스팅 참고바란다. 이번 포스팅에서는 만든 프로시져를 조회하는 방법이다. 간단하니 한번 따라해보는것을 추천한다. 프로시저 목록 조회 SELECT * FROM ALL_PROCEDURES WHERE 1=1 AND OWNER = 'owner 명' AND OBJECT_NAME = ' 명'; 프로시저 내용 조회 SELECT * FROM ALL_SOURCE WHERE 1=1 AND OWNER = 'owner명' AND NAME = '명' ; SELECT * FROM ALL_SOURCE WHERE 1=1 AND OWNER = 'owner명' AND NAME ... -- 조건을 통해 필터 AND LINE .. 2023. 4. 1. 프로시저 / 함수 선언법 이전포스팅에서 프로시저와 함수에 대해서 알아본 적이 있다. 자세한 내용은 아래 참고 포스팅에 있다. 이번 포스팅에서는 그 함수와 프로시저를 선언하는 법에 대해서 알아볼 것이다. 기본 문법은 다음과 같다. procedure CREATE OR REPLACE PROCEDURE procedurename (id IN VARCHAR2, name IN VARCHAR2) IS BEGIN select 'test' from dual; END procedurename; function CREATE OR REPLACE FUNCTION functionname (id IN VARCHAR2, name IN VARCHAR2) IS BEGIN select 'test' from dual; RETURN 'test종료'; END funct.. 2023. 3. 31. H2 Database 란? (in Spring) H2는 자바로 작성된 관계형 데이터베이스 관리 시스템이다. 장점 따로 설치가 필요없다 용량이 매우 가볍다 웹용 콘솔(쿼리툴) 제공하여 개발용 로컬DB로 사용 용이 특징 JAVA로 작성된 오픈소스 RDBMS 스프링 부트가 지원하는 인메모리 관계형 데이터베이스 인메모리로 띄우면 애플리케이션 재기동 때마다 초기화 로컬 환경, 테스트 환경에서 많이 쓰임 H2 Database 사용법 아래는 공홈 사이트 이다. http://h2database.com H2 Database Engine (redirect) H2 Database Engine Welcome to H2, the free SQL database. The main feature of H2 are: It is free to use for everybody, so.. 2023. 3. 5. [Oracle] 계층형 쿼리 사용법 계층형 쿼리라고 오라클에서 존재하는 문법이 있다.테이블 내에서 예를들어ab대한민국서울서울송파구서울강남구송파구방이동송파구문정동이와 같이 a는 무조건 상위 개념이고 b는 무조건 하위개념인것처럼 이런 계층형을 만들수 있는 쿼리이다. 지금 처럼 주소 관련이나 상사, 하사 같은 개념을 표기할때 유용하게 쓰이곤 한다. 사용법 이전에 각 문법에 대한 개념 설명은 다음과 같다. 계층형 쿼리 : 부모, 자식 간의 수직관계를 트리 구조 형태로 보여주는 쿼리START WITH : 트리 구조의 최상위 행을 지정CONNECT BY : 부모, 자식의 관계를 지정PRIOR : CONNECT BY 절에 사용되며 PRIOR에 지정된 컬럼이 맞은편 컬럼을 찾기CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼 : 부모 → 자식 순방.. 2023. 2. 22. [Oracle] ORA-00001: unique constraint () violated ERROR ORA-00001: unique constraint () violated . 무결성제약조건 에러 ORA-00001 은 무결성 제약 조건 에러이다. 즉 PK, FK, Index Key, Unique Key 등 테이블에 중복이 있어선 안될 값이 들어가려고 할때 발생하는 에러이다. 값을 변경해주거나 다른 값을 insert 함으로써 해결 가능하다. 2023. 2. 17. [Oracle] EXISTS, NOT EXISTS 결론을 먼저 말하면 EXISTS(서브 쿼리)는 서브 쿼리의 결과가 "한 건이라도 존재하면" TRUE 없으면 FALSE를 리턴한다. EXISTS는 서브 쿼리에 일치하는 결과가 한 건이라도 있으면 쿼리를 더 이상 수행하지 않는다. 말로하는 설명이 좀 이해가 안가서 이해하기 쉽도록 그림으로 설명을 하면 아래 표가 있다. 그리고 아래 쿼리가 돌아가면 아래의 결과가 나온다. 서브쿼리 테이블에 존재하는 값들만 조인 조건을 기준으로 같은 값이 있는 경우의 값들만 보여준다. 그리고 select 1 의 의미는 select 을 빈 값으로 둘 수 없어서 기입을 해둔것이며 , 1이 출력되거나 하지는 않는다. 반대로 NOT EXISTS 의 경우는 차집합 개념으로 없는 데이터를 출력해준다. in 절과 비교 이렇게 되면 in절과 .. 2023. 2. 8. NVL함수 NVL 함수 NVL 함수는 값이 NULL인 경우 지정값을 출력하고, NULL이 아니면 원래 값을 그대로 출력한다. 사용법은 NVL("값", "지정값") 이렇게 사용을 한다. 다음 그림처럼 되게 된다. 비슷한 함수로 nvl2 라는게 있다. NVL2 함수 NVL2 함수는 NULL이 아닌 경우 지정값1을 출력하고, NULL인 경우 지정값2를 출력한다. 사용법은 NVL2("값", "지정값1", "지정값2") // NVL2("값", "NOT NULL", "NULL") 2023. 1. 15. 이전 1 ··· 7 8 9 10 11 12 13 다음 반응형