PostgreSQL | PostgreSQL 기본 구성 | 산술 연산자 사용
산술 연산자는 사칙 연산 등의 계산 외, 제곱근과 계승 등을 위해 이용한다. 여기에서는 산술 연산자의 사용법에 대해 설명한다.
산술 연산자의 종류와 사용법
PostgreSQL로 이용할 수 있는 산술 연산자는 다음과 같다.
+ 더하기 2 + 3 -> 5
- 빼기 2 - 3 -> -1
* 곱하기 2 * 3 -> 6
/ 나누기 4 / 2 -> 2 ※ 정수의 나눗셈에서는 나머지를 버린다.
% 나머지 5 % 4 -> 1
^ 제곱 2.0^3.0 -> 8 ※ 左から右に適用
|/ 제곱근 |/25.0 -> 5
||/ 세제곱근 ||/27.0 -> 3
! 계승 5! -> 120
!! 계승 !!5 -> 120 ※ 전치 연산자
@ 절대치 @-5.0 -> 5
위의 산술 연산자는 모든 수치 데이터 형으로 사용 할 수 있다.
–
그럼 실제로 해보도록 하자. 다음과 같은 테스트 테이블을 만든다.
mydb=# create table test( num1 real, num2 real);
CREATE TABLE
mydb=#
다음과 같은 데이터를 테이블에 추가한다.
mydb=# insert into test values (15.4, 7.25), (-5.9, 9.0), (18.225, -7.3);
INSERT 0 3
mydb=# select * from test;
num1 | num2
--------+------
15.4 | 7.25
-5.9 | 9
18.225 | -7.3
(3개 행)
그러고 SELECT 명령을 사용하여 num1 컬럼과 num2 컬럼에 대해 연산을 수행한 결과를 가져본다.
mydb=# select num1, num2,
mydb-# num1 + num2 as "num1 + num2",
mydb-# num1 * num2 as "num1 * num2",
mydb-# num1 / num2 as "num1 / num2"
mydb-# from test;
num1 | num2 | num1 + num2 | num1 * num2 | num1 / num2
--------+------+-------------+-------------+-------------
15.4 | 7.25 | 22.65 | 111.649994 | 2.1241379
-5.9 | 9 | 3.1 | -53.100002 | -0.65555555
18.225 | -7.3 | 10.925 | -133.04251 | -2.4965754
(3개 행)
산술 연산자를 사용하여 컬럼에 저장되는 값에 대한 연산한 결과를 얻을 수 있다.
비트 연산자 사용
산술 연산자는 다른 비트 연산을 할 연산자도 준비되어 있다.
& 비트 AND 91 & 15 -> 11
| 비트 OR 32 | 3 -> 35
# 비트 XOR 17 # 5 -> 20
~ 비트 NOT ~1 -> -2
<< 비트 왼쪽 시프트 1 << 4 -> 16
>> 비트 오른쪽 시프트 8 >> 2 -> 2
비트 연산자는 정수 데이터 형식 또는 비트 문자열로 사용할 수 있다.
비트 AND 연산자의 왼쪽과 오른쪽의 같은 위치에 있는 비트를 비교하여 두 비트가 모두 1인 경우에만 1로 한다.
85 & 15
0000000001010101 = 85
0000000000001111 = 15
------------------------
0000000000000101 = 5
비트 OR 연산자의 왼쪽과 오른쪽의 같은 위치에 있는 비트를 비교하여 어느 하나라도 비트 1의 경우에 1로 한다.
85 | 15
0000000001010101 = 85
0000000000001111 = 15
------------------------
0000000001011111 = 95
비트 XOR 연산자의 왼쪽과 오른쪽의 같은 위치에 있는 비트를 비교하여 어느 하나가 비트 1의 경우에 1한다. 모두 1이거나 모두 0이면 0으로한다.
85 # 15
0000000001010101 = 85
0000000000001111 = 15
------------------------
0000000001011010 = 90
비트 NOT 연산자 오른쪽의 값의 각 비트를 반전 (0이라면 1, 1이면 0으로 한다)시킨다.
~ 85
0000000001010101 = 85
------------------------
1111111110101010 = -86
비트 왼쪽 시프트는 대상의 값을 지정한 수 만큼 왼쪽으로 이동한다.
85 << 2
0000000001010101 = 85
------------------------
0000000101010100 = 340
비트 오른쪽 시프트는 대상의 값을 지정된 수 만큼 오른쪽으로 이동한다.
85 >> 2
0000000001010101 = 85
------------------------
0000000000010101 = 21
SELECT 명령을 사용하여 간단히 해본다.
mydb=# select 85 & 15 as "85 & 15",
mydb-# 85 | 15 as "85 | 15",
mydb-# 85 # 15 as "85 # 15",
mydb-# ~ 85 as "~ 85",
mydb-# 85 << 2 as "85 << 2",
mydb-# 85 >> 2 as "85 >> 2";
85 & 15 | 85 | 15 | 85 # 15 | ~ 85 | 85 << 2 | 85 >> 2
---------+---------+---------+------+---------+---------
5 | 95 | 90 | -86 | 340 | 21
(1개 행)
비트 연산자를 사용하여 연산한 결과를 얻을 수 있다.
–
여기까지 PostgreSQL에서 제공되는 산술 연산자의 사용법에 대해 설명하였다.