집 >데이터 베이스 >MySQL 튜토리얼 >MYSQL 데이터베이스 함수 모음 요약
1. 수학 함수
ABS(x) x의 절대값을 반환합니다
BIN(x) x의 2진수를 반환합니다(OCT는 8진수 반환, HEX는 16진수 반환)
CEILING(x) x(숫자의 밑수)보다 x2의 거듭제곱으로 제곱한 가장 작은 정수 값을 반환합니다. ,...,xn) 집합에서 가장 작은 값을 반환합니다
LN(x) x의 자연 로그를 반환합니다
LOG(x,y) x
MOD(x, y) x/y의 모듈러스(나머지)를 반환합니다.
PI()는 파이(pi)의 값을 반환합니다.
RAND()는 매개변수( 시드) RAND() 난수 생성기가 지정된 값을 생성하도록 합니다.
ROUND(x,y)는 소수점 이하 자릿수가 y인 매개변수 x의 반올림된 값을 반환합니다.
SIGN(x)는 숫자의 부호를 나타내는 값을 반환합니다. >TRUNCATE(x,y) 숫자 x를 잘린 결과를 반환합니다. y 소수점 이하 자릿수
2. 집계 함수(GROUP BY 절의 SELECT 쿼리에 주로 사용됨)
AVG( col) 지정된 열의 평균값을 반환합니다.
COUNT (col) 지정된 열에 있는 NULL이 아닌 값의 개수를 반환합니다.
MIN(col) 지정된 열의 최소값을 반환합니다.
MAX(col) 지정된 열의 최대값을 반환합니다. ValueSUM(col) 지정된 컬럼의 모든 값의 합을 반환GROUP_CONCAT(col) 그룹에 속한 컬럼 값을 연결하여 형성된 결과를 반환
3. String 함수
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) 목록에서 str의 위치LCASE(str) 또는 LOWER(str)는 문자열 str의 모든 문자를 변경한 결과를 반환합니다. 소문자로
LEFT(str,x)는 문자열 str 문자에서 가장 왼쪽 x를 반환합니다.
LENGTH(s)는 문자열 str에서 문자 수를 반환합니다.
LTRIM(str)은 문자열에서 선행 공백을 잘라냅니다. string str
POSITION(substr,str)은 문자열의 하위 문자열 substr을 반환합니다. str에서 처음으로 나타나는 str
QUOTE(str) 백슬래시를 사용하여 str에서 작은따옴표를 이스케이프합니다
REPEAT(str, srchstr, rplcstr) 문자열 str을 x번 반복한 결과를 반환합니다.
REVERSE(str) 문자열 str을 반전한 결과를 반환합니다.
RIGHT(str,x) 문자열 str에서 가장 오른쪽 x 문자를 반환합니다.
RTRIM(str ) 문자열 str의 끝 부분에 있는 공백을 반환합니다
STRCMP(s1 ,s2) 문자열 s1과 s2를 비교
TRIM(str) 문자열의 시작과 끝 부분에 있는 모든 공백을 제거합니다
UCASE(str) 또는 UPPER(str) 문자열 str의 모든 문자를 대문자로 변환한 후 반환합니다. 결과
4. 날짜 및 시간 함수
CURDATE() 또는 CURRENT_DATE()는 현재 날짜를 반환합니다
CURTIME() 또는 CURRENT_TIME()은 현재 시간을 반환합니다.
DATE_ADD(date,INTERVAL int 키워드)는 날짜와 간격 시간 int(int는 키워드에 따라 형식이 지정되어야 함)의 결과를 반환합니다. 예: SELECTDATE_ADD(CURRENT_DATE ,INTERVAL 6 MONTH);
DATE_FORMAT(date,fmt) 지정된 fmt 형식의 날짜 값 형식에 따라
DATE_SUB(date,INTERVAL int 키워드)는 날짜와 간격 시간 int의 결과를 반환합니다(int 형식이어야 함). 키워드에 따라), 예: SELECTDATE_SUB(CURRENT_DATE,INTERVAL 6 MONTH );DAYOFWEEK(date) 날짜(1~7)로 표시되는 요일을 반환합니다.DAYOFMONTH(date) 요일을 반환합니다. 날짜로 표시되는 월(1~31)
DAYOFYEAR(date) 날짜에 대한 연도(1~366)를 반환합니다. fmt 형식, UNIX 타임스탬프 ts 형식
HOUR(time) 시간의 시간 값을 반환합니다. (0~23)
MINUTE(time) 시간(0~59)의 분 값을 반환합니다.
MONTH(date ) 날짜(1~12)의 월 값을 반환합니다.
MONTHNAME(date) 날짜의 월 이름(예: SELECT MONTHNAME(CURRENT_DATE);
NOW() 현재 날짜 및 시간을 반환합니다.
QUARTER(date ) 다음과 같이 해당 연도의 분기(1~4) 날짜를 반환합니다. SELECT QUARTER(CURRENT_DATE);
WEEK(date) 날짜를 해당 연도의 주로 반환합니다(0~53)
YEAR(date ) 날짜의 연도를 반환합니다(1000~9999)
몇 가지 예:
현재 시스템 시간 가져오기: SELECT FROM_UNIXTIME(UNIX_TIMESTAMP());
SELECT EXTRACT(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을 해독한 결과를 반환합니다. key
DECODE(str,key) 키 사용 암호화된 문자열 str
ENCRYPT(str,salt)를 키로 해독하고 UNIXcrypt() 함수를 사용하고 키워드 salt(키와 마찬가지로 비밀번호를 고유하게 결정할 수 있는 문자열)를 사용하여 문자열 str<을 암호화합니다. 🎜>ENCODE (str,key) key를 키로 사용하여 문자열 str을 암호화합니다. ENCODE() 호출 결과는 BLOB 유형에 저장되는 이진 문자열입니다.
MD5()의 MD5 체크섬을 계산합니다. string str
PASSWORD(str) 문자열 str의 암호화된 버전을 반환합니다. 이 암호화 프로세스는 되돌릴 수 없으며 UNIX 비밀번호 암호화 프로세스와 다른 알고리즘을 사용합니다.
SHA()는 문자열 str의 SHA(Secure Hash Algorithm) 체크섬을 계산합니다.
예:
SELECT ENCRYPT('root','salt');
SELECT ENCODE('xufeng' ,'key ');
SELECT DECODE(ENCODE('xufeng','key'),'key');#암호화와 복호화를 함께 수행
SELECT AES_ENCRYPT('root','key');
SELECT AES_DECRYPT (AES_ENCRYPT('root','key'),'key');
SELECT MD5('123456');
SELECT SHA('123456');
6. 제어 흐름 기능 MySQL에는 조건부 작업을 수행하는 데 사용되는 4가지 기능이 있습니다. 이러한 기능을 사용하면 SQL 조건부 논리를 구현하고 개발자가 일부 애플리케이션 비즈니스 논리를 데이터베이스 배경으로 변환할 수 있습니다.
MySQL 제어 흐름 함수:
CASE WHEN[test1] THEN [result1]...ELSE [default] END testN이 true이면 결과N을 반환하고, 그렇지 않으면 기본값을 반환합니다.
CASE [test] WHEN[val1 ] THEN [result]...ELSE [default]END test와 valN이 같으면 resultN을 반환하고, 그렇지 않으면 기본값을 반환합니다.
IF(test,t,f) test가 true이면 t를 반환하고, 그렇지 않으면 f를 반환합니다. IFNULL(arg1,arg2) arg1이 비어 있지 않으면 arg1을 반환하고, 그렇지 않으면 arg2를 반환합니다.
NULLIF(arg1,arg2) arg1=arg2이면 NULL을 반환하고, 그렇지 않으면 arg1을 반환합니다.
이러한 함수 중 첫 번째는 IFNULL()입니다. , 두 개의 매개변수가 있으며 첫 번째 매개변수가 판단됩니다. 첫 번째 매개변수가 NULL이 아니면 함수는 호출자에게 첫 번째 매개변수를 반환하고, NULL이면 두 번째 매개변수를 반환합니다.
예: SELECT IFNULL(1,2), IFNULL(NULL,10),IFNULL(4*NULL,'false');
NULLIF() 함수는 제공된 두 매개변수가 동일한지 확인합니다. 같으면 NULL이 반환됩니다. 그렇지 않으면 첫 번째 매개변수가 반환됩니다.
예: SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
많은 스크립팅에서 제공하는 IF() 함수와 동일 MySQL의 IF() 함수는 간단한 조건부 테스트를 생성할 수도 있습니다. 첫 번째는 판단할 표현식입니다. If()는 false인 경우 두 번째 매개변수를 반환합니다. ()는 세 번째 매개변수를 반환합니다.
예: SELECTIF(1<10,2,3),IF(56>100,'true','false');
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
이 조건에서 반환되는 결과는 해당 조건 테스트가 true인지 여부에 따라 달라집니다.
예:
mysql>SELECT CASE '녹색'
WHEN 'red' THEN 'stop'
WHEN 'green' THEN 'go' END;
SELECT CASE 9 WHEN 1 THEN 'a' WHEN 2 THEN 'b' ELSE 'N/A' END;
SELECT CASE WHEN (2+2)=4 THEN 'OK' WHEN(2+2)<>4 THEN 'not OK' END ASSTATUS;
SELECT Name,IF((IsActive = 1),'Activated ' ,'활성화되지 않음') 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 성적 FROM 점수 ;
SELECT IF(ENCRYPT('sue','ts')=upass,'allow','deny') 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() 함수로, 큰 숫자 값을 쉼표로 구분된 읽기 쉬운 시퀀스로 형식화할 수 있습니다.
예:
SELECT FORMAT(34234.34323432,3);
SELECT DATE_FORMAT(NOW(),'%W,%D %M %Y %r');
SELECT DATE_FORMAT(NOW() ,'%Y-%m-%d');
SELECT DATE_FORMAT(19990330,'%Y-%m-%d');
SELECT DATE_FORMAT(NOW(),'%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 쿼리로 검색된 총 행 수를 반환합니다.
USER() 또는 SYSTEM_USER () 현재 로그인 사용자 이름 반환
VERSION() MySQL 서버의 버전을 반환합니다.
예:
SELECT DATABASE(),VERSION(),USER();
SELECTBENCHMARK(9999999,LOG(RAND) ()*PI ())); #이 예에서 MySQL은 LOG(RAND()*PI()) 표현식을 9999999번 계산합니다.
위 내용은 MYSQL 데이터베이스 함수 모음 요약의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!