English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PostgreSQL 일반 함수

PostgreSQL 내장 함수는 또한 집계 함수로, 문자나 수치 데이터에 대한 처리를 수행하는 데 사용됩니다.

아래는 모든 일반 PostgreSQL 내장 함수의 목록입니다:

  • COUNT 함수: 데이터베이스 테이블의 행 수를 계산하는 데 사용됩니다.

  • MAX 함수: 특정 열에서 가장 큰 값을 쿼리하는 데 사용됩니다.

  • MIN 함수: 특정 열에서 가장 작은 값을 쿼리하는 데 사용됩니다.

  • AVG 함수: 특정 열의 평균 값을 계산하는 데 사용됩니다.

  • SUM 함수: 숫자 열의 모든 값을 합산하는 데 사용됩니다.

  • ARRAY 함수: 입력 값(또는 null)을 배열에 추가하는 데 사용됩니다.

  • Numeric 함수: SQL에서 필요한 모든 작업 수의 함수를 전체로 나열합니다.

  • String 함수: SQL에서 필요한 모든 작업 문자의 함수를 전체로 나열합니다.

수학 함수

아래는 PostgreSQL에서 제공하는 수학 함수 목록입니다. 설명드리면, 이 함수들은 많은 형태가 있으며, 차이는 매개변수 타입만 다릅니다. 특별히 명시하지 않는 한, 특정 형태의 함수는 그 매개변수와 같은 데이터 타입을 반환합니다.

함수반환 타입설명实例结果
abs(x
절대값abs(-17.4)17.4
cbrt(double
최cubicrootcbrt(27.0)3
ceil(double/numeric)
인수보다 크거나 같은 최소 정수ceil(-42.8)-42
degrees(double
弧도를 각도로 변환degrees(0.5)28.6478897565412
exp(double/numeric)
자연 지수exp(1.0)2.71828182845905
floor(double/numeric)
인수보다 작거나 같은 최대 정수floor(-42.8)-43
ln(double/numeric)
자연 로그ln(2.0)0.693147180559945
log(double/numeric)
10기본값의 로그log(100.0)2
log(b numeric,x numeric)numeric지정된 기본값의 로그log(2.0, 64.0)6.0000000000
mod(y, x)
나머지를 가져오기mod(9,4)1
pi()double"π" 상수pi()3.14159265358979
power(a double, b double)doublea의 b승power(9.0, 3.0)729
power(a numeric, b numeric)numerica의 b승power(9.0, 3.0)729
radians(double)double각도를弧도로 변환radians(45.0)0.785398163397448
random()double0.0에서1.0 사이의 무작위 수值random()
숫자(double/numeric)
圆整为最接近的整数round(42.4)42
round(v numeric, s int)numeric圆整为s位小数数字round(42.438,2)42.44
sign(double/numeric)
参数的符号(-1,0,+1)sign(-8.4)-1
sqrt(double/numeric)
平方根sqrt(2.0)1.4142135623731
trunc(double/numeric)
截断(向零靠近)trunc(42.8)42
trunc(v numeric, s int)numeric截断为s小数位置的数字trunc(42.438,2)42.43

三角函数列表

함수설명
acos(x)反余弦
asin(x)反正弦
atan(x)反正切
atan2(x, y)正切 y/x 的反函数
cos(x)余弦
cot(x)余切
sin(x)正弦
tan(x)正切

字符串函数和操作符

下面是 PostgreSQL 中提供的字符串操作符列表:

함수반환 타입설명实例结果
string 丨丨 stringtext字串连接'Post' 丨丨 'greSQL'PostgreSQL
bit_length(string)int字串里二进制位的个数bit_length('jose')32
char_length(string)int字串中的字符个数char_length('jose')4
convert(string using conversion_name)text使用指定的转换名字改变编码。convert('PostgreSQL' using iso_8859_1_to_utf8)'PostgreSQL'
lower(string)text把字串转化为小写lower('TOM')tom
octet_length(string)int字串中的字节数octet_length('jose')4
overlay(string placing string from int [for int])text替换子字串overlay('Txxxxas' placing 'hom' from 2 for 4)Thomas
position(substring in string)int指定的子字串的位置position('om' in 'Thomas')3
substring(string [from int] [for int])text抽取子字串substring('Thomas' from 2 for 3)hom
substring(string from pattern)textPOSIX 정규 표현식과 일치하는 서브 문자열을 추출substring('Thomas' from '…$')mas
substring(string from pattern for escape)textSQL 정규 표현식과 일치하는 서브 문자열을 추출substring('Thomas' from '%#"o_a#"_' for '#')oma
trim([leading丨trailing 丨 both] [characters] from string)text문자열 string의 시작에서/끝/둘쪽/ characters(기본적으로 공백)를 포함하는 가장 긴 문자열을 제거trim(both 'x' from 'xTomxx')Tom
upper(string)text문자열을 대문자로 변환upper('tom')TOM
ascii(text)int매개변수의 첫 번째 문자의 ASCII 코드ascii('x')120
btrim(string text [, characters text])textstring의 시작과 끝에서 characters에 포함된 문자(기본적으로 공백)를 제거하는 가장 긴 문자열을 제거btrim('xyxtrimyyx','xy')trim
chr(int)textASCII 코드의 문자를 제공chr(65)A
convert(string text, [src_encoding name,] dest_encoding name)text문자열을 dest_encoding으로 변환convert( 'text_in_utf8', 'UTF8', 'LATIN1)ISO 8859-1text_in_utf를 코드로 표현8
initcap(text)text각 단어의 첫 글자를 대문자로 변환하고, 나머지를 소문자로 유지한다. 단어는 문자와 숫자로 구성된 문자열로, 문자와 숫자로 구분된다.initcap('hi thomas')Hi Thomas
length(string text)intstring에 있는 문자의 수length('jose')4
lpad(string text, length int [, fill text])text문자 fill(기본적으로 공백)를 채우고 string을 길이 length로 가득 채운다. string이 이미 length보다 길다면 그 값을 자른다(오른쪽에서).lpad('hi', 5, 'xy')xyxhi
ltrim(string text [, characters text])textstring의 시작에서 character(기본적으로는 공백)를 포함하는 가장 긴 문자열을 제거합니다。ltrim('zzzytrim','xyz')trim
md5(string text)text주어진 string의 MD를 계산합니다。5해시를 계산하여 16진수로 결과를 반환합니다。md5('abc')
repeat(string text, number int)textstring을 number번 반복합니다。repeat('Pg', 4)PgPgPgPg
replace(string text, from text, to text)textstring에서 나타나는 모든 부분 문자열 from을 부분 문자열 to로 대체합니다。replace('abcdefabcdef', 'cd', 'XX')abXXefabXXef
rpad(string text, length int [, fill text])textfill(기본적으로는 공백) 문자로 string을 채우면 string의 길이를 length로 만듭니다. string이 이미 length보다 길다면 그대로 자릅니다。rpad('hi', 5, 'xy')hixyx
rtrim(string text [, character text])textstring의 끝에서 character(기본적으로는 공백)를 포함하는 가장 긴 문자열을 제거합니다。rtrim('trimxxxx','x')trim
split_part(string text, delimiter text, field int)textdelimiter로 구분된 string에서 생성된 field번째 부분 문자열을 반환합니다(1 Base)split_part('abc~@~def~@~ghi', '~@~', 2)def
strpos(string, substring)text선언된 부분 문자열의 위치를 나타냅니다。strpos('high','ig')2
substr(string, from [, count])text부분 문자열을 추출합니다。substr('alphabet', 3, 2)ph
to_ascii(text [, encoding])texttext를 다른 인코딩에서 ASCII로 변환합니다。to_ascii('Karel')Karel
to_hex(number int/bigint)textnumber를 해당 십육진수 형식으로 변환합니다.to_hex(9223372036854775807)7fffffffffffffff
translate(string text, from text, to text)textstring에 포함된 from에 있는 모든 문자를 to에 있는 문자로 변환합니다.translate('12345', '14', 'ax')a23x5

타입 변환 관련 함수

함수반환 타입설명예제
to_char(timestamp, text)text타임스탑을 문자열로 변환to_char(current_timestamp, 'HH12:MI:SS')
to_char(interval, text)text시간 간격을 문자열로 변환to_char(interval '15h 2m 12s', 'HH24:MI:SS')
to_char(int, text)text정수형을 문자열로 변환to_char(125, '999)
to_char(double precision, text)text실수형을 문자열로 변환to_char(125.8::real, '999D9)
to_char(numeric, text)text숫자를 문자열로 변환to_char(-125.8, '999D99S')
to_date(text, text)date문자열을 날짜로 변환to_date('05 Dec 2000', 'DD Mon YYYY')
to_number(text, text)numeric문자열을 숫자로 변환to_number('12,454.8-', '99G999D9S')
to_timestamp(text, text)timestamp지정된 시간 형식으로 변환 time zone  문자열을 타임스탑으로 변환to_timestamp('05 Dec 2000', 'DD Mon YYYY')
to_timestamp(double precision)timestampUNIX 원시 시간을 타임스탑으로 변환to_timestamp(1284352323)

참고 문서: https://blog.csdn.net/sun5769675/기사/상세 정보/50628979