9.5 식의 구문
다음 규칙은 MySQL에서의 식의 구문이 정의됩니다. 여기에 나온 문법은 MySQL 소스 배포판의 sql/sql_yacc.yy 파일에서 주어진 문법에 따라 있습니다. 일부 조건에 대한 자세한 내용은 문법 후에 표시되는 지침을 참조하십시오.
expr:exprORexpr|expr||expr|exprXORexpr|exprANDexpr|expr&&expr| NOTexpr|!expr|boolean_primaryIS [NOT] {TRUE | FALSE | UNKNOWN} |boolean_primaryboolean_primary:boolean_primaryIS [NOT] NULL |boolean_primary<=>predicate|boolean_primarycomparison_operatorpredicate|boolean_primarycomparison_operator{ALL | ANY} (subquery) |predicatecomparison_operator: = |> = |> | <= | <| <> |! =predicate:bit_expr[NOT] IN (subquery) |bit_expr[NOT] IN (expr[,expr] ...) |bit_expr[NOT] BETWEENbit_exprANDpredicate|bit_exprSOUNDS LIKEbit_expr|bit_expr[NOT] LIKEsimple_expr[ESCAPEsimple_expr] |bit_expr[NOT] REGEXPbit_expr|bit_exprbit_expr:bit_expr|bit_expr|bit_expr&bit_expr|bit_expr<<bit_expr|bit_expr>>bit_expr|bit_expr+bit_expr|bit_expr-bit_expr|bit_expr*bit_expr|bit_expr/bit_expr|bit_exprDIVbit_expr|bit_exprMODbit_expr|bit_expr%bit_expr|bit_expr^bit_expr|bit_expr+interval_expr|bit_expr-interval_expr|simple_exprsimple_expr:literal|identifier|function_call|simple_exprCOLLATEcollation_name|param_marker|variable|simple_expr||simple_expr| +simple_expr| -simple_expr| ~simple_expr|!simple_expr| BINARYsimple_expr| (expr[,expr] ...) | ROW (expr,expr[,expr] ...) | (subquery) | EXISTS (subquery) | {identifierexpr} |match_expr|case_expr|interval_expr
참고 :
연산자 우선 순위에 대해서는 섹션 12.3.1 "연산자 우선 순위" 를 참조하십시오.
리터럴 값의 구문은 섹션 9.1 "리터럴 값" 을 참조하십시오.
식별자의 구문은 섹션 9.2 "스키마 객체 이름" 을 참조하십시오.
변수는 사용자 변수 시스템 변수 저장 프로그램의 로컬 변수 또는 매개 변수가 있습니다.
사용자 변수 : 섹션 9.4 "사용자 정의 변수"
시스템 변수 : 섹션 5.1.5 "시스템 변수 사용"
로컬 변수 : 섹션 13.6.4.1 "로컬 변수 DECLARE 구문"
파라미터 : 섹션 13.1.15 "CREATE PROCEDURE 및 CREATE FUNCTION 구문"
param_marker 은 준비된 문 플레이스 홀더에 사용되는 것처럼 ? 입니다. 섹션 13.5.1 "PREPARE 구문" 을 참조하십시오.
는 단일 값을 반환 서브 쿼리, 즉 스칼라 서브 쿼리를 나타냅니다. 섹션 13.2.10.1 "스칼라 피연산자로 서브 쿼리" 를 참조하십시오. ( subquery )
{ 는 ODBC 이스케이프 구문이며, ODBC과의 호환성을 위해 인정 받고 있습니다. 값은 identifier expr }expr 입니다. 구문의 칼 한 괄호는 문자 그대로 기록해야합니다. 그들은 구문 설명의 다른 부분에서 이용되고있는 것 같은 메타 구문은 없습니다.
match_expr 는 MATCH 식을 나타냅니다. 섹션 12.9 "전체 텍스트 검색 함수" 를 참조하십시오.
case_expr 는 CASE 식을 나타냅니다. 섹션 12.4 "제어 흐름 함수" 를 참조하십시오.
interval_expr 시간 간격을 나타냅니다. 구문은 INTERVAL 입니다. 여기서 expr unitunit 는 HOUR , DAY , WEEK 등의 지정자입니다. unit 지정자의 전체 목록은 섹션 12.7 "날짜 및 시간 함수" 의 DATE_ADD() 함수의 설명을 참조하십시오.
일부 연산자의 의미는 SQL 모드에 따라 다릅니다.
기본적으로
||논리OR연산자입니다.PIPES_AS_CONCAT이 활성화되어있는 경우,||는^와 단항 연산자 간의 우선 순위를 가진 문자열 연결입니다.기본적으로
!는NOT보다 높은 우선 순위입니다.HIGH_NOT_PRECEDENCE이 활성화되어있는 경우!와NOT의 우선 순위는 동일합니다.
섹션 5.1.7 "서버 SQL 모드" 를 참조하십시오.