본문 바로가기

전체 글198

PostgreSQL - Window function AVG(), MAX(), MIN() 등 집약함수를 쓸때, 하나의 결과를 리턴하지만, Over 구문을 사용해서 윈도함수로 쓸 수 있다. 물론 PostgreSQL에만 지원하는 것은 아니고, 대다수의 DBMS에서도 사용할 수 있다.아래 예시는 집약함수를 적용한 값과 Over 구문을 사용해서 윈도함수로 적용한 값의 예이다. CREATE TABLE exam_tab ( user_id varchar(255) , exam_id varchar(255) , score numeric ); INSERT INTO exam_tab VALUES ('USER01', 'A001', 4.0) , ('USER01', 'A002', 5.0) , ('USER01', 'A003', 5.0) , ('USER02', 'A001', 3.0) , (.. 2018. 7. 6.
PostgreSQL - 날짜계산 프로그래밍을 하다가 제일 귀찮은 것 중의 하나가 날짜 데이터 연산이다. 데이터베이스에 저장된 날짜 데이터의 데이터형식이 일률적이면, Application Layer, 또는 DB Layer에서 표준 계산법을 정하면 되지만.. 실상은 그렇지 않다. 이래서 표준 도메인을 강조하는가 보다.PostgreSQL에서 날자 계산하는 방법은 아래와 같다. 이 예제는 문자 데이터값 기준이다. 날짜 컬럼의 데이터라면 또 다를 수 있다. 사용법이 다른 dbms보다는 조금 특이한듯 하다. CREATE TABLE members ( user_id varchar(255) , regdate varchar(255) , birthday varchar(255) ); INSERT INTO members VALUES ('USER01', '20.. 2018. 7. 6.
PostgreSQL - ABS, POWER, SQRT, POINT 함수 절대값을 계산할 때는 ABS함수를 사용한다. 예를 들어, -2와 +2 라는 값을 + 연산을 하게 되면, 0이지만, 이 두 값 간의 차이값.. 즉 절대값을 구해야할 때가 있다. 두 지점의 거리라든지... 그런 경우엔 ABS함수를 활용할 수 있다. CREATE TABLE location1 ( x1 integer , x2 integer ); INSERT INTO location1 VALUES ( 5 , 10) , (10 , 5) , (-2 , 4) , ( 3 , 3) , ( 0 , 1) ; select ABS(x1 - x2) as 절대값 from location1; 결과는 아래와 같다. 제곱근을 구할 때, SQRT 함수를 쓴다. 제곱근이 뭔지 모른다고?? 괜찮다. 모를 수 있다. 25의 제곱근은 5이다. 5가.. 2018. 7. 6.
Transaction의 이해 - PostgreSQL 트랜잭션이란? 아주 심플하게 보통 일의 최소 단위를 트랜잭션이라고 정의한다. 즉, 여러 개의 수정작업이 하나의 작업처럼 전부 처리되거나 아예 전부 처리가 안 되도록 하기 위한 것이다. 계좌이체를 할 때, 현금잔고를 확인하고 이체 비밀번호와 보안카드 코드값을 입력받아 최종 이체가 완료되는 순간까지를 트랜잭션 단위라고 할 수 있다. 트랜잭션은 다음과 같은 특징을 가진다. 원자성(Atomicity) : 더 이상 분해 불가능한 최소한의 업무단위를 말한다.일관성(Consistency) : 트랜잭션이 실행을 성공적으로 완료했다면, 언제나 일관성 있는 데이터베이스 상태로 변환한다. 격리성(Isolation) : 트랜잭션이 실행 중에 생성하는 연산의 중간 결과는 다른 트랜잭션이 접근할 수 없다.영속성(Durabilit.. 2018. 7. 4.
반응형