mysql 하위 쿼리란 무엇인가요?
하위 쿼리는 내부 쿼리라고도 하며 내부 쿼리를 포함하는 쿼리를 외부 쿼리라고 합니다. 하위 쿼리를 사용하면 하나의 쿼리를 다른 쿼리 내에 중첩할 수 있습니다.
mysql 데이터베이스 하위 쿼리 문의 특성: 하위 쿼리는 단일 값을 반환하는 한 표현식을 사용할 수 있는 모든 곳에서 사용할 수 있습니다. 하위 쿼리는 반환 값 수, 하위 쿼리의 외부 종속성, 비교 연산자를 기반으로 합니다. 페이징 쿼리 SQL 문에 자주 사용됩니다.
하위 쿼리는 선택, 삽입, 업데이트, 삭제 및 기타 문에 중첩될 수 있습니다.
대부분의 경우 하위 쿼리는 중간 결과 집합으로 작동합니다.
하위 쿼리 중첩이 가능합니다. 중첩 제한은 메모리 및 표현식 복잡성에 따라 다릅니다
표현식을 사용할 수 있는 모든 곳에서 단일 값을 반환하는 한 하위 쿼리를 사용할 수 있습니다.
Can 반환값 개수에 따라 스칼라 서브쿼리, 다중값 서브쿼리
로 나뉜다. 서브쿼리의 외부 종속성: 독립 서브쿼리, 상관 서브쿼리
비교 연산자의 차이에 따라: IN, EXISTS, ANY , SOME, ALL 및 기타 형식
먼저 두 개의 테이블(학생 테이블과 교사 테이블)을 만듭니다.
# 创建学生表 mysql> create table tb_student( -> stu_ID long, -> class varchar(5), -> score int -> ); Query OK, 0 rows affected (0.23 sec) # 创建教师表 mysql> create table tb_teacher( -> tea_ID long, -> class varchar(5), -> age int -> ); Query OK, 0 rows affected (0.49 sec)
테이블에 일부 값을 삽입합니다
insert into tb_student values(1, "A", 20); insert into tb_student values(2, "A", 30); insert into tb_student values(3, "A", 70); insert into tb_student values(4, "B", 60); insert into tb_student values(5, "B", 70); insert into tb_student values(6, "B", 80); insert into tb_teacher values(1, "A", 25); insert into tb_teacher values(2, "B", 40);
이제 준비가 완료되었으니 하위 쿼리 연습을 해보겠습니다
예시 1: 각 학급의 교사 ID 및 해당 학급 평균 점수
mysql> select tea_ID, -> (select avg(score) from tb_student as s where s.class = t.class group by class) -> as Avg from tb_teacher as t; +--------+---------+ | tea_ID | Avg | +--------+---------+ | 1 | 40.0000 | | 2 | 70.0000 | +--------+---------+ 2 rows in set (0.00 sec)
예 2: 각 학급의 교사 연령 및 학생 수 합격한 학생 (60이 합격선)
mysql> select age, -> (select count(*) from tb_student as s where s.class = t.class && s.score >= 60 group by class) -> as Count from tb_teacher as t order by Count desc; +------+-------+ | age | Count | +------+-------+ | 40 | 3 | | 25 | 1 | +------+-------+ 2 rows in set (0.00 sec)
관련 추천 :
mysql 페이징 쿼리문 데이터베이스 query_MySQL
video :고급 데이터 쿼리 - where 절 - 6일 후에 MySQL을 사용해 보세요
위 내용은 mysql 서브쿼리란 무엇인가요? MySQL 데이터베이스 서브쿼리 실제 사용예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!