목록DB/PostgreSQL (8)
Study Memory Work
Dynamic SQL애플리케이션이 실행해야 하는 SQL문은 애플리케이션이 작성되는 시점에 정해지는 것이 일반적입니다. 그러나 어떤 경우에는 SQL문이 런타임 시 구성되거나 외부 요청에 의해 제공되는 경우도 있습니다. 이러한 경우 SQL문을 문자열 변수에 할당하여 임의의 SQL문을 동적으로 만들어 호출할 수 있는 기능이 동적쿼리(Dynamic SQL)입니다. 기본 문법Result값이 없고, 매개변수를 갖지 않는 SQL문- DDL, INSERT, UPDATE, DELETE 등- EXECUTE IMMEDIATE 는 result값이 없는 동적쿼리를 호출할 때 쓰이는 명령어이다.-- 선언EXEC SQL BEGIN DECLARE SECTION;const char *stmt = "CREATE TABLE test1 (..
declare cnt INT;begin -- Get column names SELECT count(*) INTO cnt FROM test; -- output RAISE NOTICE '--- test rows cnt : %', cnt;end;
declare column_names TEXT;begin -- Get column names SELECT string_agg(column_name, ', ') INTO column_names FROM information_schema.columns WHERE table_name = '{{table_name}}'; -- output RAISE NOTICE 'Columns: %', column_names;end;
SETOF records로 반환장점동적으로 생성된 결과 집합을 반환합니다. 결과 집합은 여러 행과 열을 포함할 수 있으며, 열의 수와 형식이 동적으로 결정됩니다.함수가 다양한 형식의 결과를 반환하거나, 반환 데이터의 형식이 실행 시간에 결정되는 경우에 유용합니다.단점SETOF RECORDS를 사용하면 다양한 형식의 데이터를 반환할 수 있지만, 결과의 형태를 파악하기 어려울 수 있습니다.일부 쿼리에서는 SETOF RECORDS를 사용하여 결과 집합을 동적으로 생성해야 하는 경우가 있습니다. 이 경우 성능이 좋지 않을 수 있습니다.아래 예시에서 처럼 반환 값을 바로 테이블로서 쿼리에 사용하지 못한다. 서브쿼리를 사용하거나 예시처럼 타입을 다 지정해주어야 함.CREATE TABLE emp..
PostgreSQL 공식 문서 : Chapter 8. Data TypesChapter 8. Data Types Table of Contents 8.1. Numeric Types 8.1.1. Integer Types 8.1.2. Arbitrary Precision Numbers 8.1.3. Floating-Point Types 8.1.4. Serial …www.postgresql.org 자주 사용하는 TYPE정수형: INTEGER, BIGINT, SMALLINT, SERIAL, BIGSERIAL 등실수형: REAL, DOUBLE PRECISION 등문자열: VARCHAR, CHAR, TEXT 등날짜/시간: DATE, TIME, TIMESTAMP, INTERVAL 등불리언: BO..
프로시저(PL/pgSQL)란? 프로시저란 데이터베이스 내에서 일련의 작업을 수행하기 위해 미리 작성된 코드 블록입니다. 이 코드 블록은 SQL 명령문과 프로그래밍 로직을 포함할 수 있습니다. 프로시저를 사용하면 데이터베이스에서 반복적으로 수행되는 작업을 단순화하고, 실행 효율을 높이며, 코드의 재사용성을 높일 수 있습니다. 프로시저(PL/pgSQL) 구조 DECLARE -- 선언부: 변수, 상수 및 데이터 타입 정의 BEGIN -- 실행 부분: 실행 코드 작성 EXCEPTION -- 예외 처리부: 예외 처리 코드 작성 END; 프로시저(PL/pgSQL) 종류 종류 설명 함수 (Functions) 데이터베이스에서 자주 사용되는 작업을 수행하기 위해 사용되며 주로 ‘계산’을 수행하기 위해서 사용이 됩니다 절..