집 >데이터 베이스 >MySQL 튜토리얼 >【MySQL 09】자주 사용하는 기능
1. 수학 함수
ABS(x)는 x의 절대값을 반환합니다.
BIN(x)은 이진수(OCT)를 반환합니다. ) of x는 8진수를 반환하고 HEX는 16진수를 반환합니다.)
CEILING(x)는 x보다 큰 가장 작은 정수 값을 반환합니다.
EXP(x) x의 거듭제곱으로 거듭제곱한 값 e(자연 로그의 밑)를 반환합니다.
FLOOR(x) x보다 작은 가장 큰 정수 값을 반환합니다. x1,x2,…,xn)은 집합에서 가장 큰 값
LEAST(x1,x2,…,xn)은 집합에서 가장 작은 값을 반환합니다.
LN(x) x의 자연 로그를 반환합니다. LOG(x,y)는 x의 밑 y 로그를 반환합니다.
MOD(x,y)는 x를 반환합니다. /y의 모듈(나머지) PI()는 반환합니다. 파이 값(pi)
RAND()는 0과 1 사이의 임의 값을 반환하며, 이는 매개 변수(시드)를 제공하여 사용할 수 있습니다. RAND() 난수 생성기는 다음을 생성합니다. 지정된 값.
ROUND(x,y)는 매개변수 x의 소수점 이하 자릿수를 반올림한 값을 반환합니다.
SIGN(x)는 대표 숫자 x를 반환합니다. 소수 자릿수가 있는 결과의 부호
2. 집계 함수
AVG(col)는 지정된 열의 평균을 반환합니다.
MIN(col)은 지정된 열의 최소값을 반환합니다
MAX(col)는 지정된 열의 최대값을 반환합니다
SUM( col) 지정된 열에 있는 모든 값의 합계를 반환합니다.
GROUP_CONCAT(col) 속한 열 값을 연결한 결과를 반환합니다. 그룹
3. 문자열 함수
ASCII(char)는 문자의 ASCII 코드 값을 반환합니다. BIT_LENGTH(str)은 비트를 반환합니다. 문자열 길이
CONCAT(s1,s2…,sn)은 s1,s2…,sn을 문자열
CONCAT_WS(sep, s1,s2...,sn)은 s1,s2...를 연결하고 sn은 문자열로 연결되며 sep 문자
INSERT(str,x,y,instr)로 구분되어 x번째 위치에서 시작하는 y 문자 길이의 부분 문자열이 있는 문자열 str 문자열 instr에 대해 결과를 반환합니다.
FIND_IN_SET(str,list)는 If를 쉼표로 구분된 목록 목록으로 분석합니다. str을 찾으면 목록에서 str의 위치를 반환
LCASE(str) 또는 LOWER(str)는 문자열 str의 모든 문자를 소문자로 변경한 결과를 반환합니다
LEFT(str,x)는 문자열 str을 반환합니다. 가장 왼쪽의 str에서 선행 공백을 잘라냅니다.
POSITION(substr,str) 문자열의 위치를 반환합니다. 문자열 str에서 하위 문자열 substr의 첫 번째 발생
QUOTE(str) 백슬래시를 사용하여 str
REPEAT(str, srchstr,rplcstr) 문자열 str을 x번 반복한 결과를 반환
REVERSE(str) 문자열 str을 반전한 결과를 반환
RIGHT (str,x) 문자열 str에서 가장 오른쪽 x 문자를 반환합니다
RTRIM(str) 문자열 str
YEAR(date) 날짜의 연도를 반환합니다(1000~9999) 몇 가지 예: 현재 시스템 시간 가져오기:
SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
Select TEXTRACT(YEAR_MONTH FROM CURRENT_DATE);
SELECT EXTRACT(DAY_SECOND FROM CURRENT_DATE);
SELECT EXTRACT(HOUR_MINUTE FROM CURRENT_DATE);
두 날짜 값 간의 차이(월 수)를 반환합니다.
SELECT PERIOD_DIFF(200302,199802)
Mysql에서 나이 계산:
SELECT DATE_FORMAT(FROM_DAYS(TO_DAYS(NOW())-TO_DAYS(생일)),'%Y')+0 AS age FROM 직원;
이 그런데 만약 Brithday가 미래의 연월일이라면 계산 결과는 0이 됩니다.
다음 SQL 문은 직원의 절대 연령을 계산합니다. 즉, 생일이 미래 날짜인 경우 음수 값을 얻습니다.
SELECT DATE_FORMAT(NOW(), '%Y') - DATE_FORMAT(생년월일, '%Y') -(DATE_FORMAT(NOW(), '00-%m-%d ')
5. 암호화 함수
AES_ENCRYPT(str,key): 고급 암호화 표준을 사용하여 키 문자열 str을 반환합니다. 알고리즘 암호화, AES_ENCRYPT 호출 결과는 BLOB 유형
에 저장된 이진 문자열입니다. AES_DECRYPT(str,key)는 문자열 str에 고급 암호화를 사용하기 위해 키 키를 반환합니다. 표준 알고리즘 해독
DECODE(str,key): key를 키로 사용하여 암호화된 문자열 str
ENCRYPT(str , salt ): UNIXcrypt() 함수를 사용하여 문자열 str
ENCODE(str,key)를 키워드 salt(키와 마찬가지로 비밀번호를 고유하게 결정할 수 있는 문자열)로 암호화합니다. ): key를 키로 사용하여 문자열 str을 암호화합니다. ENCODE() 호출 결과는 BLOB 유형
MD5()에 저장되는 이진 문자열입니다. MD5를 계산합니다. 문자열 검사합
PASSWORD(str)은 문자열 str의 암호화된 버전을 반환합니다. 이 암호화 프로세스는 되돌릴 수 없으며 UNIX 비밀번호 암호화 프로세스와 다른 알고리즘을 사용합니다. >
SELECT DECODE(ENCODE('xufeng','key'),'key')
#암호화와 복호화를 함께 수행
SELECT AES_ENCRYPT( '루트','키');
SELECT AES_DECRYPT(AES_ENCRYPT('루트','키'),'키')
SELECT MD5('123456')
SELECT SHA('123456) ');
IF() 함수는 가능한 결과가 2개밖에 없을 때 사용하기에 적합합니다. 그러나 현실 세계에서는 조건부 테스트에서 여러 분기가 필요하다는 것을 알 수 있습니다. 이 경우 MySQL은 PHP 및 Perl 언어의 switch-case 조건부 루틴과 동일한 CASE 기능을 제공합니다.
CASE 함수의 형식은 다소 복잡하며 일반적으로 다음과 같습니다. CASE [평가할 표현식] WHEN [val 1] THEN [결과 1] WHEN [val 2] THEN [결과 2] WHEN [ 값 3] THEN [결과 3] …… WHEN [값 n] THEN [결과 n] ELSE [기본 결과] END
여기서 첫 번째 매개변수는 판정 또는 표현식 뒤에 일련의 WHEN-THEN 블록이 따르며, 각 블록의 첫 번째 매개변수는 비교할 값을 지정하고 true인 경우 결과를 반환합니다. 모든 WHEN-THEN 블록은 ELSE 블록으로 끝납니다. END가 모든 외부 CASE 블록을 종료하면 이전 블록이 각각 일치하지 않으면 ELSE 블록에 지정된 기본 결과가 반환됩니다. ELSE 블록이 지정되지 않고 모든 WHEN-THEN 비교가 거짓인 경우 MySQL은 NULL을 반환합니다.
CASE 함수에는 다음과 같이 사용하기 매우 편리한 또 다른 구문이 있습니다. CASE WHEN [조건부 테스트 1] THEN [결과 1] WHEN [조건부 테스트 2] THEN [ 결과 2] ELSE [기본 결과] END 이 조건에서는 해당 조건 테스트가 참인지 여부에 따라 반환되는 결과가 달라집니다.
예:
mysql>SELECT CASE 'green' WHEN 'red' THEN 'stop' WHEN 'green ' THEN 'go' END;
SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END CASE WHEN(2+2) =4 THEN 'OK' WHEN(2+2)<>4 THEN 'not OK' END ASSTATUS;
SELECT Name,IF((IsActive = 1),'has 활성화됨','비활성화됨') AS RESULT FROMUserLoginInfo; SELECT fname,lname,(math+sci+lit) AS total, CASE WHEN (math+sci+lit) < 50 THEN 'D' WHEN (math+sci+lit ) BETWEEN 50 AND 150 THEN 'C' WHEN (math+sci+lit) BETWEEN 151 AND 250 THEN 'B' ELSE 'A' END AS grade FROM mark; SELECT IF(ENCRYPT('sue','ts')=upass , '허용','거부') AS LoginResultFROM 사용자 WHERE uname = 'sue';#A 로그인 확인
7. 서식 지정 기능
DATE_FORMAT(date,fmt)는 문자열 fmt에 따라 날짜 값의 형식을 지정합니다.
FORMAT(x,y)는 x를 쉼표로 구분된 일련의 숫자로 형식화하고, y는 소수점 이하 자릿수입니다. 결과의 장소
INET_ATON(ip) IP 주소의 숫자 표현을 반환합니다.
INET_NTOA(num) 다음이 나타내는 IP 주소를 반환합니다. 숫자
TIME_FORMAT(time,fmt) 문자열 fmt에 따라 시간 값의 형식을 지정합니다.
가장 간단한 것은 FORMAT() 함수로, 큰 값을 형식화할 수 있습니다. 쉼표로 구분된 사람이 읽을 수 있는 시퀀스입니다.
예:
형식 선택(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');
SELECT DATE_FORMAT(NOW(),'%Y-%m- %d');
날짜_형식 선택(19990330,'%Y-%m-%d');
날짜_형식 선택(지금 (),'%h:%i %p');
SELECT INET_ATON('10.122.89.47');
SELECT INET_NTOA (175790383);
8. 유형 변환 기능
MySQL은 데이터 유형을 변환하기 위해 CAST() 함수를 제공합니다. 값을 지정된 데이터 유형으로 변환합니다.
유형은 다음과 같습니다: BINARY, CHAR, DATE, TIME, DATETIME, SIGNED, UNSIGNED
예:
SELECT CAST(NOW() AS SIGNED INTEGER),CURDATE()+0; SELECT ‘f’=BINARY ‘F’,’f’=CAST(‘F’ AS BINARY);
9. 시스템 정보 함수
DATABASE()는 현재 데이터베이스 이름을 반환합니다.
BENCHMARK(count,expr) expr이 실행됩니다. count times
CONNECTION_ID()는 현재 고객의 연결 ID를 반환합니다.
FOUND_ROWS()는 마지막 SELECT 쿼리로 검색된 총 행을 반환합니다. Number
USER() 또는 SYSTEM_USER()는 현재 로그인 사용자 이름을 반환합니다.
VERSION()은 MySQL 서버 버전을 반환합니다.
예:
SELECT DATABASE(),VERSION(),USER()
SELECT BENCHMARK(9999999,LOG(RAND()*PI()))
#The 예제에서 MySQL은 LOG(RAND()*PI()) 표현식을 9999999번 계산합니다.
위 내용은 [MySQL 09]에서 자주 사용하는 기능에 대한 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지(www.php.cn)를 참고해주세요!