집 >데이터 베이스 >MySQL 튜토리얼 >mysql 서브쿼리란 무엇인가요? MySQL 데이터베이스 서브쿼리 실제 사용예
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!