>  기사  >  데이터 베이스  >  【MySQL 09】자주 사용하는 기능

【MySQL 09】자주 사용하는 기능

黄舟
黄舟원래의
2017-02-04 13:25:321028검색

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

  • 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)

  • DAYNAME(date) 날짜의 요일 이름을 반환합니다. 예: SELECT DAYNAME(CURRENT_DATE);

  • FROM_UNIXTIME(ts,fmt) 지정된 fmt 형식에 따른 형식 UNIX 타임스탬프 ts

  • HOUR(time)은 시간(0~23)의 시 값을 반환합니다.

  • MINUTE(time)은 시간의 분을 반환합니다. 값(0~59)

  • MONTH(date) 날짜(1~12)의 월 값을 반환합니다.

  • MONTHNAME(날짜) 날짜 월 이름을 반환합니다. 예: 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 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 비밀번호 암호화 프로세스와 다른 알고리즘을 사용합니다. >

  • SHA()는 문자열 str의 SHA(보안 해시 알고리즘) 체크섬을 계산합니다.
  • 예:
  • SELECT ENCRYPT('root',' salt'); 🎜>SELECT ENCODE('xufeng','key');

    SELECT DECODE(ENCODE('xufeng','key'),'key')
    #암호화와 복호화를 함께 수행
    SELECT AES_ENCRYPT( '루트','키');
    SELECT AES_DECRYPT(AES_ENCRYPT('루트','키'),'키')
    SELECT MD5('123456')
    SELECT SHA('123456) ');


    6. 제어 흐름 기능
MySQL에는 조건부 작업을 위한 4가지 기능이 있습니다. 이러한 기능은 SQL 조건부 논리를 구현하여 개발자가 일부 애플리케이션 비즈니스 논리를 데이터베이스 백엔드.

MySQL 제어 흐름 함수:
  • CASE WHEN[test1] THEN [result1]…ELSE [기본값] END
  • testN이 다음과 같은 경우 true이면 결과N을 반환하고, 그렇지 않으면 기본값을 반환

  • CASE [테스트] WHEN[val1] THEN [결과]…ELSE [기본값]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'); 제공된 매개변수가 동일한지 여부. 동일하면 NULL이 반환됩니다. 동일하지 않으면 첫 번째 매개변수가 반환됩니다.
  • 예: SELECT NULLIF(1,1),NULLIF('A','B'),NULLIF(2+3,4+1);
  • 많은 스크립팅 언어에서 제공하는 IF() 함수와 마찬가지로 MySQL의 IF() 함수도 간단한 조건부 테스트를 생성할 수 있습니다. 첫 번째는 판단할 표현식입니다. 표현식이 true이면 IF()는 두 번째 매개변수를 반환하고, false이면 IF()는 세 번째 매개변수를 반환합니다.
  • 예: SELECTIF(1eccf31e50338154ca5b472639ff61fde100,'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 이 조건에서는 해당 조건 테스트가 참인지 여부에 따라 반환되는 결과가 달라집니다.

  • 예:

  • 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)를 참고해주세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.