롸?
Subquery - 2 본문
Any, All 연산자
-
<any : 서브쿼리의 반환값 중 최대값 보다 작은 ~
-
>any : 서브쿼리의 반환값 중 최소값 보다 큰~
-
<all : 서브쿼리의 반환값 중 최소값 보다 작은 ~
-
>all : 서브쿼리의 반환값 중 최대값 보다 큰 ~
From절에서 서브쿼리
ex) 전체 평균 연봉과 최대 연봉 사이의 연봉을 받는 직원은?
SELECT *
FROM 직원 A, (SELECT AVG(연봉) avgs, MAX(연봉) maxs FROM 직원) B
WHERE A.연봉 BETWEEN B.avgs AND B.maxs;
Group by의 having절에 서브쿼리
ex) 부서별 평균 연봉 중 2번 부서의 평균 연봉보다 많은 직원?
SELECT 부서번호, AVG(연봉) FROM 직원
GROUP BY 부서번호 HAVING AVG(연봉) > (SELECT AVG(연봉) FROM 직원 WHERE 부서번호=2)
exists 연산자와 서브쿼리
ex) 직원이 있는 부서 출력
SELECT *
FROM 부서 dep
WHERE EXISTS (SELECT '임시값' FROM 직원 WHERE 부서번호=dep.부서번호)
상관 서브쿼리 : 본쿼리와 서브쿼리가 서로서로 값을 참조하는 경우, 서브쿼리만 따로 실행이 불가능하다.
ex) 각 부서의 최대 급여자는?
SELECT *
FROM 직원 A
WHERE A.연봉=(SELECT MAX(B.연봉) FROM 직원 B WHERE A.부서번호=B.부서번호)
테이블 생성
-
CREATE TABLE 테이블명 AS SELECT * FROM 복사할테이블명
-
CREATE TABLE 테이블명 AS SELECT * FROM 복사할테이블명 WHERE 조건
자료 추가
-
INSERT INTO 테이블명 SELECT * FROM WHERE 조건
-
INSERT INTO 티이블명(복사할 칼럼명, ... ) SELECT 복사할칼럼명, ... FROM 테이블명 WHERE 조건
자료 수정
-
UPDATE 테이블명 SET 수정할자료칼럼명=(SELECT 칼럼명 FROM 테이블명 WHERE 조건) WHERE 조건
자료 삭제
-
DELETE FROM 테이블명 WHERE 삭제할자료칼럼명=(SELECT 칼럼명 FROM 테이블명)
'DB > Maria DB' 카테고리의 다른 글
View (0) | 2020.02.14 |
---|---|
트랜잭션(Transactions) (0) | 2020.02.13 |
Subquery - 1 (0) | 2020.02.13 |
Union & Merge (0) | 2020.02.13 |
Join (0) | 2020.02.12 |
Comments