SQL functions


동영상 설명은 아래에 있습니다.

문자열 함수 String functions

  • length('문자열') 길이를 계산합니다. 이 경우 숫자도 문자로 취급해서 길이를 계산합니다.
  • upper('문자열') 대문자로 변경합니다.
  • lower('문자열') 소문자로 변경합니다.
  • left('문자열', 숫자) 문자열 왼쪽부터 숫자만큼 문자열을 가져옵니다.
  • right('문자열', 숫자) 문자열 오른쪽부터 숫자만큼 문자열을 가져옵니다.
  • mid('문자열', 시작위치 [,개수]) = substr() 문자열 시작위치부터(왼쪽기준) 개수만큼 문자열을 가져옵니다.
  • replace('문자열', '대상 문자열', '바꿀 문자열',) 문자열 바꾸기, replace('ABC','B','D') -> ADC
  • instr('문자열', '찾을 문자열') 문자열이 포함된 첫 번째 순서, instr('ABC','B') -> 2
  • ltrim('문자열' [,'지울 문자열']) 문자열에서 왼쪽기준 '지울 문자열'을 지웁니다.
    '지울 문자열'을 생략하면 공백(space)를 지웁니다.
  • rtrim('문자열' [,'지울 문자열']) 문자열에서 오른쪽기준 '지울 문자열'을 지웁니다.
    '지울 문자열'을 생략하면 공백(space)를 지웁니다.
  • trim('문자열' [,'지울 문자열']) 문자열에서 양쪽기준 '지울 문자열'을 지웁니다.
    '지울 문자열'을 생략하면 공백(space)를 지웁니다.
  • 문자열 합치기 || 두 문자열을 합칩니다. 'ABC' || 'DEF' -> 'ABCDEF'
  • 예제는 여기를 참조하세요.

집계 함수 Aggregate functions

  • sum() 합계를 계산합니다. 대상에 문자와 숫자가 섞여 있을 경우에는 숫자만 계산합니다.
    계산 대상이 모두 정수일 경우 정수를 리턴합니다. 실수(real)가 하나라도 있으면 실수를 리턴합니다.
  • total() 합계를 계산합니다. 대상에 문자와 숫자가 섞여 있을 경우에는 숫자만 계산합니다.
    언제나 실수(real)를 리턴합니다.
  • avg() 평균을 계산합니다. 대상에 문자와 숫자가 섞여 있을 경우에는 숫자만 계산합니다.
    하지만 평균은 문자와 숫자 총 개수로 나누어 계산합니다.
    숫자만 계산하려면 typeof() 또는 typeof2()를 사용하세요.
  • max() 최댓값을 구합니다. 문자와 숫자가 섞여 있을 경우 문자가가 큽니다.
  • min() 최솟값 을 구합니다. 문자와 숫자가 섞여 있을 경우 숫자가 작습니다.
  • 예제는 여기를 참조하세요.

수학 함수 Math functions

반올림, 올림, 내림, 버림, 절대값, 몫 함수

  • 반올림 round(X), round(X,Y): 반올림한다. 소수점 이하 자릿수를 지정할 수 있다.
    round(3.14) = 3,   round(3.14,1) = 3.1
  • 올림 ceil(X) = ceiling(X): X보다 큰 정수를 구한다.
    ceil(3.14) = 4.0,   ceil(-3.14) = -3.0
  • 내림 floor(X): X보다 작은 정수를 구한다.
    floor(3.14) = 3.0,   floor(-3.14) = -4.0
  • 버림 trunc(X): 소수점 이하를 버린다.
    trunc(3.14) = 3.0,   trunc(-3.14) = -3.0
  • 절대값 abs(X): 절대값을 구한다.
    abs(3.14) = 3.14,   abs(-3.14) = 3.14
  • 몫 mod(X,Y): 몫을 구한다.   % 연산자는 몫의 정수 부분만 구할 수 있다. mod()는 소수점 이하까지 구한다.
    mod(3,2) = 1,   mod(3.14,2) = 1.14

Example

명령>select round(3.14), round(3.14,1);
결과>0) round(3.14)|round(3.14,1)
1) 3.0|3.1
명령>select ceil(3.14), ceil(-3.14);
결과>0) ceil(3.14)|ceil(-3.14)
1) 4.0|-3.0
명령>select floor(3.14), floor(-3.14);
결과>0) floor(3.14)|floor(-3.14)
1) 3.0|-4.0
명령>select trunc(3.14), trunc(-3.14);
결과>0) trunc(3.14)|trunc(-3.14)
1) 3.0|-3.0
명령>select abs(3.14), abs(-3.14);
결과>0) abs(3.14)|abs(-3.14)
1) 3.14|3.14
명령>select mod(3,2), mod(3.14,2);
결과>0) mod(3,2)|mod(3.14,2)
1) 1.0|1.14

거듭제곱, 제곱근 함수

  • pow(X,Y) = power(X,Y) 거듭제곱: X raised to Y-th power
    power(2,8) = 256,   power(2,16) = 65536,   power(2,32) = 4294967296
  • sqrt(X) 제곱근: square root of X. 음수일 경우 null을 리턴합니다. NULL is returned if X is negative.
    sqrt(2) = 1.4142135623731,   sqrt(3) = 1.73205080756888,   sqrt(-3) = (nil)
  • exp(X) 오일러 상수 거듭제곱: e (Euler's number, 2.71828182845905) raised to the power X

Example

명령>select power(2,8), power(2,16), power(2,32);
결과>0) power(2,8)|power(2,16)|power(2,32)
1) 256.0|65536.0|4294967296.0
명령>select sqrt(2), sqrt(3), sqrt(-3);
결과>0) sqrt(2)|sqrt(3)|sqrt(-3)
1) 1.4142135623731|1.73205080756888|(nil)
명령>select exp(2), exp(3);
결과>0) exp(2)|exp(3)
1) 7.38905609893065|20.0855369231877

로그 log 함수

  • ln(X) 자연 로그 natural logarithm of X
    ln(3) = 1.09861228866811
  • log(X) = log10(X) base-10 logarithm of X
    log(3), log10(3) -> 0.477121254719662
  • log2(X) base-2 logarithm of X
    log2(3) = 1.58496250072116
  • log(B,X) base-B logarithm of X
    log(3,2) = 0.630929753571457, log(3,3) = 1, log(3,5) = 1.46497352071793

Example

명령>select ln(3);
결과>0) ln(3)
1) 1.09861228866811
명령>select log(3), log10(3);
결과>0) log(3)|log10(3)
1) 0.477121254719662|0.477121254719662
명령>select log2(3);
결과>0) log2(3)
1) 1.58496250072116
명령>select log(3,2), log(3,3), log(3,5);
결과>0) log(3,2)|log(3,3)|log(3,5)
1) 0.630929753571457|1.0|1.46497352071793

라이안(호도), 각도, 원주율(π) 함수

  • radians(X) 각도를 라이안으로 변환한다. convert X from degrees into radians
    radians(90) = 1.5707963267949, radians(180) = 3.14159265358979
  • degrees(X) 라이안을 각도로 변환한다. convert X from radians to degrees
    degrees(1.5707963267949) = 90.0000000000002, degrees(3.14159265358979) = 180.0
  • pi() 소수점 이하 14자리 원주율 approximation for π
    pi() = 3.14159265358979

Example

명령>select radians(90), radians(180);
결과>0) radians(90)|radians(180)
1) 1.5707963267949|3.14159265358979
명령>select degrees(1.5707963267949), degrees(3.14159265358979);
결과>0) degrees(1.5707963267949)|degrees(3.14159265358979)
1) 90.0000000000002|180.0
명령>select pi();
결과>0) pi()
1) 3.14159265358979
명령>select pi()*2;
결과>0) pi()*2
1) 6.28318530717959

삼각함수(三角函數, trigonometric functions)

  • sin(X) sine of X. X is in radians.
    높이/빗변 -> sin(3.0/5.0) = 0.564642473395035
  • cos(X) cosine of X. X is in radians.
    밑변/빗변 -> cos(4.0/5.0) = 0.696706709347165
  • tan(X) tangent of X. X is in radians.
    높이/밑변 -> tan(3.0/4.0) = 0.931596459944072

Example

명령>select sin(3.0/5.0);
결과>0) sin(3.0/5.0)
1) 0.564642473395035
명령>select cos(4.0/5.0);
결과>0) cos(4.0/5.0)
1) 0.696706709347165
명령>select tan(3.0/4.0);
결과>0) tan(3.0/4.0)
1) 0.931596459944072

역삼각 함수(逆三角函數, inverse trigonometric function)

  • asin(X) arcsine of X. The result is in radians.
    asin() 함수는 -π/2에서 π/2의 라디안 범위에서 x 역사인을 리턴합니다.
    x 값은 -1에서 1 사이여야 합니다(경계값 포함). x가 -1 미만이거나 1을 초과하면 null을 리턴합니다.
    asin(0.2) = 0.201357920790331
  • acos(X) arccosine of X. The result is in radians.
    acos() 함수는 0에서 π 사이의 범위에서 x의 역코사인을 라디안으로 계산합니다.
    x 값은 -1에서 1 사이여야 합니다(경계값 포함). x가 -1 미만이거나 1을 초과하면 null을 리턴합니다.
    acos(0.4) = 1.15927948072741
  • atan(X) arctangent of X. The result is in radians.
    x의 역탄젠트를 계산합니다.
    atan() 함수는 -π/2에서 π/2의 라디안 범위에서 값을 리턴합니다
    atan(0.45) = 0.422853926132941
  • atan2(X,Y) arctangent of Y/X. The result is in radians.
    y/x의 역탄젠트를 계산합니다.
    atan2() 함수는 -π에서 π의 라디안 범위에서 값을 리턴합니다.
    atan2(0.45, 0.23) = 1.09829939127783

Example

명령>select asin(0.2);
결과>0) asin(0.2)
1) 0.201357920790331
명령>select acos(0.4);
결과>0) acos(0.4)
1) 1.15927948072741
명령>select atan(0.45);
결과>0) atan(0.45)
1) 0.422853926132941
명령>select atan2(0.45, 0.23);
결과>0) atan2(0.45, 0.23)
1) 1.09829939127783

쌍곡선 함수(雙曲線函數 hyperbolic function)

  • sinh(X) hyperbolic sine of X. X is in radians.
    sinh() 함수는 x의 쌍곡 사인을 계산합니다.
    sinh(pi()/2) = 2.30129890230729
  • cosh(X) hyperbolic cosine of X. X is in radians.
    cosh() 함수는 x의 쌍곡 코사인을 계산합니다.
    cosh(7.2) = 669.715755490113
  • tanh(X) hyperbolic tangent of X. X is in radians.
    tanh() 함수는 x의 쌍곡 탄젠트를 계산합니다.
    tanh(pi/4) = 0.655794202632672

Example

명령>select sinh(pi()/2);
결과>0) sinh(pi()/2)
1) 2.30129890230729
명령>select cosh(7.2);
결과>0) cosh(7.2)
1) 669.715755490113
명령>select tanh(pi()/4);
결과>0) tanh(pi()/4)
1) 0.655794202632672

역쌍곡함수(逆雙曲函數, inverse hyperbolic function)

  • asinh(X) hyperbolic arcsine of X. X 모든 실수
    asinh(2) = 1.44363547517881, asinh(-3) = -1.81844645923207
  • acosh(X) hyperbolic arccosine of X. 1≤ X
    acosh(2) = 1.31695789692482, acosh(3) = 1.76274717403909
  • atanh(X) hyperbolic arctangent of X. −1< X < 1
    atanh(0.2) = 0.202732554054082, atanh(-0.3) =-0.309519604203112

Example

명령>select asinh(2), asinh(-3);
결과>0) asinh(2)|asinh(-3)
1) 1.44363547517881|-1.81844645923207
명령>select acosh(2), acosh(3);
결과>0) acosh(2)|acosh(3)
1) 1.31695789692482|1.76274717403909
명령>select atanh(0.2), atanh(-0.3);
결과>0) atanh(0.2)|atanh(-0.3)
1) 0.202732554054082|-0.309519604203112

동영상 설명

Redis SQL Functions


어원

  • 제곱근 root: 기원전 1800년과 기원전 1600년 사이에 작성된 YBC 7289(영어판) 점토판에는 √2의 근삿값을 계산한 결과가 적혀 있다. (1;24,51,10)을 10진법으로 바꾸면 1.41421296..으로 실제 √2의 값 1.41421356..과 소숫점 아래 다섯 자리까지 일치한다.
    메소포타미아 60진법 쐐기 문자: 1=𒁹 10=𒌋 60=𒐕 600=𒐞 3600=𒊹
    √2가 무리수라는 것을 처음으로 증명한 사람은 피타고라스의 제자 히파소스로 알려져 있다.
    페르시아의 수학자 콰리즈미(783~850)는 《약분·소거 계산론(영어판)》에서 제곱근을 ‘자드르(جذر‎)’라고 불렀다. ‘자드르(جذر‎)’는 ‘근본’·‘기반’·‘뿌리’ 등을 뜻하는데 이것에 유럽에 전해지면서 ‘뿌리’라는 뜻의 라틴어 단어 ‘라딕스(radix)’로 번역되었다.
    아랍 수학자들은 ‘자드르(جذر‎)’의 첫글자인 짐(ﺟ)을 제곱근을 위한 기호로 썼는데, 이렇게 쓰인 가장 오래된 문헌으로는 이븐 알야사민(아랍어판)(?~1204)의 저작이 있다. 한편 유럽에서는 레기오몬타누스(1436~1476)가 대문자 R을 제곱근 기호로 쓰기 시작했다. 현대적인 근호 √의 기원은 아랍 문자 ﺟ이 변형된 것이라는 설과 소문자 r이 변형된 것이라는 설 등이 있다. 현대적인 근호가 제일 먼저 쓰인 책은 크리스토프 루돌프(독일어판)의 독일어 대수학 교과서인 《Behend vnnd Hübsch Rechnung durch die kunstreichen regeln Algebre, so gemeincklich die Coss genennt werden》(1525)이다.
    출처: wikiwand.com/ko/제곱근
  • 원주율 파이(π): 윌리엄 존스(William Jones, 1675년 ~ 1749년 7월 3일)는 1706년 그리스 문자로 ‘둘레’를 뜻하는 'περιφέρεια'(영어: perimeter)의 첫 알파벳에서 따온 ‘파이(π)’를 자신의 저서에 처음으로 사용했다.
  • sin: sin은 현(弦)을 의미하는 힌두어가 라틴어로 번역되면서 나온 sinus에서 나온 것으로 sine의 약자이다.
    사인 함수가 sine이 된 것은 실제로는 오역에서 비롯된 것이다. sine은 라틴어 sinus(시누스)에서 나온 것인데 이 말은 '옷의 주름, 접힘' 같은 뜻을 나타내고 삼각함수나 원호의 현과는 직접 무관하다. 1150년경 이탈리아 수학자 게라르도(Gherardo of Cremona)가 아랍어 수학 책을 번역하면서 아랍어로 현이나 사인 함수를 나타나는 jiba(지바)를 옷의 주름을 가리키는 jaib(자이브)와 혼동해서 sinus로 옮긴 데서 사인 함수가 sinus, 여기서 영어로 sine이 된 것이다.
  • cos: cos은 complementary sine이 줄어서 된 것으로 sine을 보완한다는 뜻이며 cosine의 약자이다.
    코사인(cosine)은 ‘complementary sine’의 준말로 ‘여각의 사인’이란 라틴어 ‘cosinus’에서 유래했다. 코사인의 cos이란 기호는 1729년 스위스의 수학자 오일러가 처음 사용했다. 물론 오일러 역시 cos을 독창적으로 만든 것은 아니며, 건터와 마찬가지로 이전에 쓰이던 기호를 개량한 것이다. 우선, 1620년 건터가 라틴어 complementum(영어의 complement)와 sinus를 합친 ‘co.sinus’를 제안했고, 1658년 뉴턴이 cosinus로 수정했다. 이 cosinus가 영어로 cosine으로 번역된 뒤, 오일러가 이를 축약해 cos이라는 기호를 쓴 것이다.
  • tan: tan는 접선을 뜻하는 tangent의 줄임 말이다.
    탄젠트는 원래는 사인이나 코사인처럼 각도에 대한 함수가 아니라 어떤 물체의 그림자 길이에서 높이를 계산하는 데서 고안된 것이다. 그래서 중세에는 움브라 렉타(umbra recta: 바른 그림자, 수직으로 세운 막대가 수평면에 드리우는 그림자)와 움브라 베르사(umbra versa: 반대 그림자, 수평으로 된 막대가 수직면에 드리우는 그림자)와 같이 그림자와 관련된 이름으로 불렸으며 (이들 라틴어 이름도 아랍어 책을 번역하면서 만들어진 것이다), 이 개념을 접선의 기울기와 연관지어 탄젠트라고 부른 것은 덴마크 수학자 토마스 핀케(Thomas Fincke, 1561-1656)가 최초이다.


<< UNION Functions Redis functions >>

Email 답글이 올라오면 이메일로 알려드리겠습니다.