숫자 함수 목록

위에서 말했듯이 DBMS는 단순히 특정 유형의 데이터를 저장하는 것만으로는 충분하지 않으며 이러한 유형의 데이터에 대한 광범위한 초고속 작업을 지원해야 합니다.

그리고 아시다시피 모든 DBMS는 다양한 숫자 유형과 연산을 지원합니다. 오늘 당신은 그들 중 가장 인기있는 것을 알게 될 것입니다.

MySQL의 모든 숫자 함수는 조건부로 5개의 그룹으로 나눌 수 있습니다.

  • 산술 연산
  • 비트 연산
  • 반올림 함수
  • 대수 함수
  • 삼각 함수

그건 그렇고, 당신은 Java 언어 덕분에 그들 중 많은 것에 익숙하므로 그들이 당신에게 놀라지 않을 것이라고 생각합니다. 그러나 순서대로 시작합시다.

전체 기능 목록은 여기에서 확인할 수 있습니다 .

산술 연산

원칙적으로 예상치 못한 것은 없으며 다른 곳과 동일한 표준 작업이 모두 있습니다.

#
1 +, -, *, / 2+2*2 더하기, 빼기, 곱하기, 나누기(완벽하지 않습니다!)
2 % 13% 5 나눗셈의 나머지
모드 13MOD5 나눗셈의 나머지
4 DIV 13 디비전 5 정수로 나누기

흥미로운 점은 두 정수를 나누면 실수가 된다는 것입니다. 정수로 나누려면 DIV 연산자를 사용해야 합니다.

정수로 나눈 나머지를 얻으려면 Java 언어에서와 같이 MOD 또는 % 연산자를 사용해야 합니다. 나는 여기에서 모든 것이 분명하기 때문에 예를 제시하지 않을 것입니다.

비트 연산

Java에서와 마찬가지로 SQL에서 숫자에 대해 비트 연산을 수행할 수도 있습니다. 뉘앙스가 있지만. 사용 가능한 비트 연산 목록은 아래 표에 나와 있습니다.

# 메모
1 & 0b1111 & 0b1000 비트 AND
2 | 0b1111 | 0b0001 비트 OR
^^ 0b1111^0b1111 비트 XOR
4 ~ ~0b1111 비트 반전
5 >> 128 >> ​​5 비트 오른쪽으로 이동
6 << 2 << 5 왼쪽으로 비트 이동
7 BIT_COUNT() BIT_COUNT(255) 1인 비트 수를 반환합니다.

MySQL 버전 8.0 이전에는 이러한 작업이 64비트 길이의 BIGINT 데이터 유형에서만 수행될 수 있었으며 Java의 long 유형과 유사했습니다. 그러나 고려 중인 MySQL 8.0에서는 개념이 변경되었습니다. 이제 이러한 작업을 특수 바이너리 유형에서 수행할 수 있습니다.

  • 바이너리
  • VARBINARY
  • 또한 BLOB 유형(바이트 배열)에 대해

다른 모든 유형은 단순히 BIGINT 유형으로 변환되며 작업은 이전과 같이 수행됩니다(처음 64비트에서만).

반올림 함수

고통스럽게 친숙한 MySQL 함수의 반올림을 위해 사용됩니다. 그 목록은 아래 표에 나와 있습니다.

# 메모
1 CEIL(), CEILING() CEIL(5.1) = 6 실수를 반올림합니다.
2 바닥() 바닥(5.9) = 5 실수를 내림합니다.
둥근() 라운드(4.1) = 4 실수를 가장 가까운 정수로 반올림합니다.
4 잘라내기() 잘라내기(4.123, 2) = 4.12 숫자를 N 소수점 이하 자릿수로 자릅니다.
5 랜드() 0.61914388706828 0과 1 사이의 임의의 실수를 반환합니다.
6 랜드(N) 0.93845168309142 0과 1 사이의 임의의 실수를 반환합니다. N은 시드 값으로 사용됩니다.

Java의 첫 번째 퀘스트 이후로 모든 반올림 기능에 익숙했습니다. 여기서는 TRUNCATE() 및 RANDOM(N) 함수만 관심을 가질 수 있습니다.

TRUNCATE (숫자, 수량) 함수는 첫 번째 매개변수로 실수를 사용하고 두 번째 매개변수로 소수점 이하 자릿수를 남깁니다. 숫자는 원하는 소수 자릿수로 잘립니다.

RAND(N) 함수의 경우 상황이 좀 더 복잡합니다. 아시다시피 컴퓨터는 난수를 생성할 수 없습니다. 대신 소위 의사 난수 시퀀스를 생성합니다. 즉, 하나의 숫자만 보면 랜덤인지 아닌지 명확하지 않지만 숫자의 순서는 이미 랜덤과 유사할 수 있습니다. 개발자는 무작위와 매우 유사한 일련의 숫자를 생성하여 이를 활용합니다.

이 경우, 시퀀스의 각각의 새로운 번호는 이 시퀀스의 이전 번호를 기반으로 까다로운 규칙에 따라 생성됩니다 . 따라서 특정 시작 번호(시드라고도 함)를 난수 생성 알고리즘에 전달하면 매번 동일한 시퀀스의 난수를 받게 됩니다 .