1. 연산자 우선 순위
다음 목록은 연산자 우선 순위를 낮은 것부터 보여줍니다. 같은 줄에 나열된 연산자는 동일한 우선순위를 갖습니다.
:=
||, OR, XOR
&&, AND
NOT
BETWEEN, CASE, WHEN, THEN, ELSE
=, , >=, >, , !=, IS, LIKE, REGEXP, IN
|
&
>
-, +
*, /, DIV, %, MOD
^
-(1달러 빼기 기호), ~(1달러 비트 반전)
!
BINARY, COLLATE
참고: HIGH_NOT_PRECEDENCE SQL 모드가 활성화되면 NOT은 ! 연산자와 동일한 우선순위를 갖습니다.
2. 괄호
( ... ) 괄호를 사용하여 표현식의 연산 순서를 지정합니다. 예:
mysql> SELECT 1+2*3; -> 7 mysql> SELECT (1+2)*3; -> 9
3. 🎜>
비교 연산의 결과는 1(TRUE), 0(FALSE) 또는 NULL입니다. 이러한 연산은 숫자와 문자열에 사용할 수 있습니다. 필요에 따라 문자열은 자동으로 숫자로 변환되고, 숫자는 자동으로 문자열로 변환됩니다. 이 장의 일부 함수(예: LEAST() 및 GREATEST())에는 1(TRUE), 0(FALSE) 및 NULL이 포함되지 않습니다. 그러나 결과 값은 다음 규칙에 따라 작동하는 비교 연산을 기반으로 합니다. MySQL은 다음 규칙에 따라 숫자 비교를 수행합니다. 하나 또는 두 매개변수가 모두 NULL인 경우, 그렇지 않은 경우 NULL-안전한 및 기타 연산자의 경우 비교 연산의 결과는 NULL입니다. 동일한 비교 연산의 두 매개변수가 모두 문자열인 경우 문자열을 기준으로 비교가 이루어집니다. 두 매개변수가 모두 정수인 경우 정수로 비교하세요. 16진수 값은 숫자로 비교할 필요가 없을 때 2진수 문자열로 처리됩니다. 매개변수 중 하나가 TIMESTAMP 또는 DATETIME 열이고 다른 매개변수가 상수인 경우 비교 전에 상수가 타임스탬프로 변환됩니다. 이는 ODBC가 보다 원활하게 진행되도록 하기 위한 것입니다. 이는 IN()의 매개변수에는 적용되지 않습니다. 신뢰성을 높이기 위해 일반적으로 비교 시 완전한 날짜/날짜/시간 문자열이 사용됩니다. 다른 경우에는 인수가 부동 소수점 숫자로 비교됩니다. 기본적으로 문자열 비교에서는 대소문자를 구분하지 않으며 기존 문자 집합을 사용합니다(기본적으로 cp1252 Latin1, 영어에도 적합). 비교를 위해 CAST() 함수를 사용하여 값을 다른 유형으로 변환할 수 있습니다. CONVERT()를 사용하여 문자열 값을 다른 문자 집합으로 변환합니다. 다음 예에서는 비교 작업에서 문자열을 숫자로 변환하는 과정을 보여줍니다. mysql> SELECT 1 > '6x';->mysql> 7 > '6x';
-> 1
mysql> 'x6';
-> 🎜>
mysql> SELECT 0 = 'x6';-> 1빠른 검색을 위해 문자열 열을 비교할 때 열을 사용할 수 없습니다. 찾다. str_col이 인덱스된 문자열 열인 경우 인덱스는 다음 문에서 검색 기능을 수행할 수 없습니다. SELECT * FROM tbl_name WHERE str_col=1;이유는 다양합니다. 문자열을 변환할 수 있습니다. 숫자 값 1: '1', ' 1', '1a', ... =은 다음과 같습니다: mysql> 0;-> 0mysql> SELECT '0' = 0;-> 1mysql> 0;-> 1mysql> SELECT '0.01' = 0;mysql> = 0.01;-> 1 NULL 안전 같음 이 연산자는 = 연산자와 동일한 비교 작업을 수행하지만 둘 다인 경우 opcode는 NULL이고, 결과 값은 1이며 NULL이 아니며, 하나의 opcode가 NULL인 경우 결과 값은 0이고 NULL이 아닙니다. mysql> 1 1, NULL NULL;->mysql> SELECT 1 = 1, NULL = NULL, 1 = NULL;
-> 1, NULL, NULL
같지 않음:
mysql> SELECT '.01'
-> ' 0.01';
-> 0
mysql> SELECT 'zapp' 'zappp';
-> < ;=
작거나 같음:
mysql> SELECT 0.1
-> 1
:
mysql> SELECT 2
-> 0
>=
mysql> 2 >= 2;
-> 1
>
이 다음보다 큼:
mysql> ; 2;
-> 0
IS boolean_value는 boolean_value가 아닙니다.
부울 값은 TRUE, FALSE 또는 UNKNOWN일 수 있습니다. .
mysql> SELECT 1은 TRUE, 0은 FALSE, NULL은 알 수 없음;
-> 1, 1, 1
mysql> IS NOT UNKNOWN, NULL IS NOT UNKNOWN;
-> 1, 1, 0
IS NULL IS NOT NULL
값이 NULL인지 확인합니다.
mysql> SELECT 1은 NULL, 0은 NULL, NULL은 NULL;
-> 0, 0, 1
mysql> NULL;
-> 1, 1, 0
ODBC 프로그램과 원활하게 작동하기 위해 MySQL은 IS NULL을 사용할 때 다음과 같은 추가 기능을 지원합니다.
최신 AUTO_INCREMENT 값이 있는 행을 찾기 위해 값이 생성된 직후에 다음 형식의 문을 사용합니다. SQL_AUTO_IS_NULL=0이 설정된 경우 이 작업을 실행할 수 없습니다.
NOT NULL이라는 DATE 및 DATETIME 열의 경우 다음 문을 사용하여 특정 날짜 '0000-00-00'을 찾을 수 있습니다.
o SELECT * FROM tbl_name WHERE date_column IS NULL
ODBC 자체는 '0000-00-00' 시간 값을 지원하지 않기 때문에 이 단계를 실행하려면 일부 ODBC 응용 소프트웨어를 사용해야 합니다.
expr BETWEEN min AND max
expr이 min보다 크거나 같고 expr이 max보다 작거나 같으면 BETWEEN의 반환 값은 1 또는 0입니다. 모든 매개변수가 동일한 유형인 경우 위의 관계는 표현식(min
mysql> 2와 3 사이에서 1 선택;
-> 0
mysql> 'a'와 'c' 사이에서 'b' 선택;
-> 1
mysql> 2와 '3' 사이에서 2개 선택;
-> 2와 'x-3 사이에서 2개 선택 ';
-> 0
expr NOT BETWEEN min AND max
이것은 NOT(expr BETWEEN min AND max)와 동일합니다.
· COALESCE(value,...)
반환 값은 목록에서 NULL이 아닌 첫 번째 값입니다. NULL이 아닌 값이 없으면 반환 값은 NULL입니다.
mysql> SELECT COALESCE(NULL,1);
-> 1
mysql> SELECT COALESCE(NULL,NULL,NULL);
-> NULL
· GREATEST(value1,value2,...)
2개 이상의 매개변수가 있는 경우 가장 큰(최대값) 매개변수가 반환됩니다. 매개변수를 비교하는 규칙은 LEAST()와 동일합니다.
mysql>SELECT GREATEST(2,0);
->2
mysql>SELECT GREATEST(34.0,3.0,5.0,767.0);
-> 767.0
mysql> SELECT GREATEST('B','A','C');
-> 없음 인수가 NULL인 경우 GREATEST()의 반환 값은 NULL입니다.
· expr IN (값,...)
expr이 IN 목록의 값이면 반환 값은 1이고, 그렇지 않으면 반환 값은 0입니다. 모든 값이 상수인 경우 해당 계산 및 분류는 expr 유형을 기반으로 합니다. 이때 정보 검색에는 이진 검색이 사용됩니다. IN 값 목록이 모두 상수로 구성되어 있다면 IN이 매우 빠르다는 뜻입니다. expr이 대소문자를 구분하는 문자열 표현식인 경우 문자열 비교도 대소문자를 구분하여 수행됩니다.
mysql> SELECT 2 IN (0,3,5,'wefwf');
-> 0
mysql> SELECT 'wefwf' IN (0,3 ,5,'wefwf');
-> 1
IN 목록에 나열되는 값의 개수는 max_allowed_packet 값에 의해서만 제한됩니다.
SQL 표준에 따르기 위해 왼쪽의 표현식이 NULL이거나, 테이블에서 일치하는 항목을 찾을 수 없거나, 테이블의 표현식이 NULL인 경우 IN All의 반환 값은 다음과 같습니다. NULL입니다.
IN() 구문을 사용하여 특정 유형의 하위 쿼리를 작성할 수도 있습니다.
· expr NOT IN (값,...)
NOT(expr IN (값,...))과 같습니다.
ISNULL(expr)
expr이 NULL이면 ISNULL()의 반환 값은 1이고, 그렇지 않으면 반환 값은 0입니다.
mysql> SELECT ISNULL(1+1);
-> 0
mysql> SELECT ISNULL(1/0);
-> 🎜>
=를 사용하여 NULL 값을 비교하는 것은 일반적으로 오류입니다. ISNULL() 함수는 IS NULL 비교 연산자와 일부 동일한 특성을 가지고 있습니다. IS NULL 에 대한 참고 사항을 참조하세요. · INTERVAL(N,N1,N2,N3,...)N mysql> SELECT 간격(23, 1, 15, 17, 30, 44, 200);-> 3mysql> , 10, 100, 1000 );-> 2mysql> 선택 간격(22, 23, 30, 44, 200);-> 0 · LEAST(value1,value2,...)파라미터가 2개 이상인 경우 반환값은 가장 작은(최소값) 파라미터입니다. 인수를 비교하려면 다음 규칙을 사용하십시오. 반환 값이 INTEGER 컨텍스트에서 사용되거나 모든 매개변수가 정수 값인 경우 정수 값으로 비교됩니다. 반환 값이 REAL 컨텍스트에서 사용되거나 모든 매개변수가 실수 값인 경우 실수 값으로 비교됩니다. 매개변수가 대소문자 구분 문자열인 경우 매개변수는 대소문자 구분 문자열에 따라 비교됩니다. 다른 경우에는 인수를 대소문자를 구분하는 문자열로 비교합니다. 독립변수가 NULL인 경우 LEAST()의 반환값은 NULL입니다. mysql> SELECT LEAST(2,0);->0mysql> SELECT LEAST(34.0,3.0,5.0,767.0);-> 3.0mysql> SELECT LEAST('B','A','C');-> 위의 변환 규칙은 일부 경계에서 이상한 결과를 생성합니다.mysql & gt; Select Cast (Least (3600, 9223372036854775808.0) as Signed); 정수 컨텍스트. 정수 표현은 숫자 값을 보존하는 데 도움이 되지 않으므로 부호 있는 정수를 포함합니다. 4. 논리 연산자 SQL에서는 모든 논리 연산자의 평가 결과가 TRUE, FALSE 또는 NULL(UNKNOWN)입니다. MySQL에서는 1(TRUE), 0(FALSE), NULL로 표시됩니다. 대부분은 다른 데이터베이스 SQL에 공통적이지만 일부 서버는 TRUE에 대해 0이 아닌 값을 반환할 수 있습니다. NOT !논리적 NOT. 피연산자가 0이면 반환된 값은 1이고, 피연산자가 0이 아니면 반환된 값은 0이며, 피연산자가 NOT NULL이면 반환된 값은 NULL입니다. mysql> SELECT NOT 10;-> 0mysql> SELECT NOT 0; mysql> NULL 아님;mysql> SELECT (1+1);mysql> SELECT !1+1;-> 1표현식은 (!1)+1과 동일한 방식으로 평가되므로 결과는 1입니다. AND &&논리 AND. 모든 피연산자가 0이 아니고 NULL이 아니면 계산된 결과는 1입니다. 하나 이상의 피연산자가 0이면 결과는 0입니다. 다른 경우에는 반환 값이 NULL입니다. mysql> SELECT 1 && 1;-> 1mysql> SELECT 1 && 0;-> 🎜>mysql> SELECT 1 && NULL;-> NULLmysql> SELECT 0 && NULL;-> SELECT NULL && 0;-> 0OR ||논리적 OR. 두 피연산자가 모두 NULL이 아닌 경우 두 피연산자 중 하나가 0이 아니면 결과는 1이고, 그렇지 않으면 결과는 0입니다. 한 피연산자가 NULL인 경우 다른 피연산자가 0이 아니면 결과는 1이고, 그렇지 않으면 결과는 NULL입니다. 두 피연산자가 모두 NULL이면 결과는 NULL입니다. mysql> 1 || 1;-> 1-> >
mysql> 0 || 0;
-> 0
mysql> NULL;
-> 🎜>mysql> 1 || NULL;
-> 1
XOR
논리적 XOR. 피연산자가 NULL인 경우 반환 값은 NULL입니다. NULL이 아닌 피연산자의 경우 홀수 피연산자가 0이 아니면 계산된 결과는 1이고, 그렇지 않으면 0입니다.
mysql> SELECT 1 XOR 1;
-> 0
mysql> SELECT 1 XOR NULL;
-> ; NULL
mysql> SELECT 1 XOR b의 계산은 (a AND (NOT b)) OR ((NOT a) AND b)와 동일합니다.

InnoDB는 Redologs 및 Undologs를 사용하여 데이터 일관성과 신뢰성을 보장합니다. 1. Redologs는 사고 복구 및 거래 지속성을 보장하기 위해 데이터 페이지 수정을 기록합니다. 2. 결점은 원래 데이터 값을 기록하고 트랜잭션 롤백 및 MVCC를 지원합니다.

설명 명령에 대한 주요 메트릭에는 유형, 키, 행 및 추가가 포함됩니다. 1) 유형은 쿼리의 액세스 유형을 반영합니다. 값이 높을수록 Const와 같은 효율이 높아집니다. 2) 키는 사용 된 인덱스를 표시하고 NULL은 인덱스가 없음을 나타냅니다. 3) 행은 스캔 한 행의 수를 추정하여 쿼리 성능에 영향을 미칩니다. 4) Extra는 최적화해야한다는 Filesort 프롬프트 사용과 같은 추가 정보를 제공합니다.

Temporary를 사용하면 MySQL 쿼리에 임시 테이블을 생성해야 할 필요성이 있으며, 이는 별개의, 그룹 비 또는 비 인덱스 열을 사용하여 순서대로 발견됩니다. 인덱스 발생을 피하고 쿼리를 다시 작성하고 쿼리 성능을 향상시킬 수 있습니다. 구체적으로, 설명 출력에 사용되는 경우, MySQL은 쿼리를 처리하기 위해 임시 테이블을 만들어야 함을 의미합니다. 이것은 일반적으로 다음과 같은 경우에 발생합니다. 1) 별개 또는 그룹을 사용할 때 중복 제거 또는 그룹화; 2) OrderBy가 비 인덱스 열이 포함되어있을 때 정렬하십시오. 3) 복잡한 하위 쿼리 또는 조인 작업을 사용하십시오. 최적화 방법은 다음과 같습니다. 1) Orderby 및 GroupB

MySQL/InnoDB는 4 개의 트랜잭션 격리 수준을 지원합니다. Readuncommitted, ReadCommitted, ReturableRead 및 Serializable. 1. READUCMITTED는 커밋되지 않은 데이터를 읽을 수 있으므로 더러운 판독 값을 유발할 수 있습니다. 2. ReadCommitted는 더러운 읽기를 피하지만 반복 할 수없는 독서가 발생할 수 있습니다. 3. RepeatableRead는 더러운 읽기와 반복 할 수없는 독서를 피하는 기본 레벨이지만 팬텀 독서가 발생할 수 있습니다. 4. 직렬화 가능한 것은 모든 동시성 문제를 피하지만 동시성을 줄입니다. 적절한 격리 수준을 선택하려면 균형 잡힌 데이터 일관성 및 성능 요구 사항이 필요합니다.

MySQL은 웹 응용 프로그램 및 컨텐츠 관리 시스템에 적합하며 오픈 소스, 고성능 및 사용 편의성에 인기가 있습니다. 1) PostgreSQL과 비교하여 MySQL은 간단한 쿼리 및 높은 동시 읽기 작업에서 더 잘 수행합니다. 2) Oracle과 비교할 때 MySQL은 오픈 소스와 저렴한 비용으로 인해 중소 기업에서 더 인기가 있습니다. 3) Microsoft SQL Server와 비교하여 MySQL은 크로스 플랫폼 응용 프로그램에 더 적합합니다. 4) MongoDB와 달리 MySQL은 구조화 된 데이터 및 트랜잭션 처리에 더 적합합니다.

MySQL Index Cardinality는 쿼리 성능에 중대한 영향을 미칩니다. 1. 높은 카디널리티 인덱스는 데이터 범위를보다 효과적으로 좁히고 쿼리 효율성을 향상시킬 수 있습니다. 2. 낮은 카디널리티 인덱스는 전체 테이블 스캔으로 이어질 수 있으며 쿼리 성능을 줄일 수 있습니다. 3. 관절 지수에서는 쿼리를 최적화하기 위해 높은 카디널리티 시퀀스를 앞에 놓아야합니다.

MySQL 학습 경로에는 기본 지식, 핵심 개념, 사용 예제 및 최적화 기술이 포함됩니다. 1) 테이블, 행, 열 및 SQL 쿼리와 같은 기본 개념을 이해합니다. 2) MySQL의 정의, 작업 원칙 및 장점을 배우십시오. 3) 인덱스 및 저장 절차와 같은 기본 CRUD 작업 및 고급 사용량을 마스터합니다. 4) 인덱스의 합리적 사용 및 최적화 쿼리와 같은 일반적인 오류 디버깅 및 성능 최적화 제안에 익숙합니다. 이 단계를 통해 MySQL의 사용 및 최적화를 완전히 파악할 수 있습니다.

MySQL의 실제 응용 프로그램에는 기본 데이터베이스 설계 및 복잡한 쿼리 최적화가 포함됩니다. 1) 기본 사용 : 사용자 정보 삽입, 쿼리, 업데이트 및 삭제와 같은 사용자 데이터를 저장하고 관리하는 데 사용됩니다. 2) 고급 사용 : 전자 상거래 플랫폼의 주문 및 재고 관리와 같은 복잡한 비즈니스 로직을 처리합니다. 3) 성능 최적화 : 인덱스, 파티션 테이블 및 쿼리 캐시를 사용하여 합리적으로 성능을 향상시킵니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

Dreamweaver Mac版
시각적 웹 개발 도구

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

Atom Editor Mac 버전 다운로드
가장 인기 있는 오픈 소스 편집기

Eclipse용 SAP NetWeaver 서버 어댑터
Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.
