집 >데이터 베이스 >MySQL 튜토리얼 >mysql 하위 쿼리문에 대한 자세한 설명
MySQL은 데이터 저장 및 관리에 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. MySQL에서 하위 쿼리는 일반적인 명령문 형식입니다. 이 기사에서는 MySQL의 하위 쿼리 문을 소개하고 독자가 하위 쿼리를 더 잘 이해하고 사용하는 데 도움이 되는 몇 가지 예를 제공합니다.
1. 하위 쿼리란 무엇입니까
하위 쿼리는 다른 쿼리 내에 포함된 쿼리 문으로, 일반적으로 SELECT, INSERT, UPDATE 또는 DELETE 문에 중첩됩니다. MySQL에서는 하위 쿼리가 쿼리의 일부로 실행될 수 있으며 검색 조건이나 계산된 항목을 제공할 수 있습니다. 하위 쿼리는 쿼리를 더욱 유연하고 정확하며 효율적으로 만들 수 있는 매우 강력한 명령문 형식입니다. 하위 쿼리는 여러 수준으로 중첩될 수 있지만 쿼리를 너무 복잡하게 만들지 않도록 주의하세요.
2. 하위 쿼리 구문
MySQL의 하위 쿼리 구문은 표현식 하위 쿼리와 SELECT 하위 쿼리의 두 가지 유형으로 나눌 수 있습니다.
SELECT … FROM … WHERE 컬럼 이름 연산자(SELECT 컬럼 이름 FROM 테이블_이름 WHERE 조건);
이 구문에서 상수와 필드 이름 사이의 연산자는 같음, 같지 않음, 작음일 수 있습니다. , 보다 큼 등 또한 하위 쿼리의 결과에는 행과 열이 하나만 있어야 하며, 그렇지 않으면 오류가 반환됩니다. 동시에 하위 쿼리를 사용하여 결과 집합의 최대값, 최소값, 합계 및 평균을 쿼리할 수도 있습니다.
SELECT 컬럼 이름1, 컬럼 이름2, … FROM table_name WHERE 컬럼_이름 연산자(SELECT 컬럼 이름 FROM 테이블_이름 WHERE 조건);
이 구문에서는 SELECT 하위 쿼리가 외부 쿼리 중간의 WHERE 절에 추가됩니다. . 하위 쿼리는 단일 값을 반환해야 하며, 그렇지 않으면 오류가 반환됩니다. 또한 SELECT 하위 쿼리는 WHERE 절에서 모든 유형의 비교 작업을 수행할 수 있습니다.
3. 하위 쿼리의 예
다음 예에서는 MySQL의 하위 쿼리 사용법을 보여줍니다.
SELECT 학생 ID, 학생 이름, 점수 FROM 학생 WHERE 점수 > (SELECT AVG(점수) FROM 학생);
이 명령문에서는 먼저 학생 테이블에서 각 학생의 학생 ID, 이름 및 점수를 쿼리한 다음 pass 하위 쿼리는 학급의 평균 점수를 계산하고 평균 점수를 각 학생의 점수와 비교합니다. 결국 적격 학생 정보가 반환됩니다.
SELECT Department_name, AVG(salary) as avg_salary FROM 직원 INNER JOIN 부서 ON Employee.department_id = Department.department_id WHERE 급여 > (SELECT AVG(salary) FROM 직원) GROUP BY 부서_이름;
이 문에서는 첫 직원 평균 연봉보다 높은 연봉을 받는 사람을 부서 테이블에 조인하고 하위 쿼리를 사용하여 회사 전체의 평균 연봉을 계산합니다. 마지막으로 부서명별로 그룹핑하여 각 부서의 이름과 평균 연봉을 구합니다.
SELECT COUNT(*) FROM books WHEREauthor_id IN (SELECTauthor_id FROMauthor WHERE name = 'John Smith') AND length > 100;
이 문에서 먼저 저자 "John Smith"의 ID를 쿼리합니다. 그런 다음 저자 ID와 책 길이를 기준으로 적합한 책을 필터링합니다. 마지막으로 COUNT 함수를 사용하여 쿼리 결과 집합의 레코드 수를 반환합니다.
4. 요약
MySQL의 하위 쿼리는 쿼리의 정확성과 효율성을 더욱 향상시킬 수 있는 매우 유용한 명령문 형식입니다. 이 글에서는 MySQL의 서브쿼리 구문과 예제를 소개하며, 학습을 통해 MySQL의 서브쿼리 문을 더 잘 이해하고 마스터할 수 있으며, 독자들이 MySQL 데이터베이스를 더 잘 적용할 수 있도록 도와줍니다.
위 내용은 mysql 하위 쿼리문에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!