2019. 1. 17. 14:31ㆍSQL
#1 서브쿼리 ★★★★★★★★
>> SELECT 명령 <table's sample54>
<table's sample5
① a열에 최소값을 가진 행을 삭제
>>기존 방식
SELECT MIN(a) FROM sample54; >> 서브쿼리를 이용
↓
DELETE FROM sample54 WHERE a=20;
- 하나의 값을 반환하는 패턴 (스칼라 서브쿼리) >>SELECT MIN(a) FROM sample54;
패턴 - 복수의 행이 반환되지만 열은 하나인 패턴 >>SELECT no FROM sample54;
패턴 - 하나의 행이 반환되지만 열이 복수인 패턴 >>SELECT MIN(a), MAX(no) FROM sample54;
패턴 - 복수의 행, 복수의 열이 반환되는 패턴 >>SELECT no, a FROM sample54; * SELECT 명령이 하나의 값만 반환하는 것을
'스칼라 값을 반환한다'고 한다! * = 연산자를 사용하여 비교할 경우에는 스칼라 값끼리 비교할
필요가 있다. ③ SELECT 구에서 서브쿼리 사용하기 MySQL - SELECT (SELECT COUNT(*) FROM sample51) AS sq1, (SELECT COUNT(*) FROM sample54) AS sq2; Oracle - ** 3단계 중첩구조으로도 사용가능 SELECT * FROM (SELECT * FROM (SELECT * FROM sample54) sq1) sq2; ⑤ FROM구에서 서브쿼리 사용하기 >>sample54를 가져와서 sq라는 가상쿼리에 저장② 스칼라 값 (단일 값)
- 서브쿼리의 패턴
패턴
⑥ Oracle에서 정렬 이후 상위 몇건 가져오기
<table's sample54>
>> sample54의 a열을 내림차순으로 정렬 이후 , sq가상 테이블 생성
가상쿼리 ROWNUM 2행이하로 설정
- ROWNUM이란 '행번호'란 뜻으로 INSERT된 순서로 가상열 (Oracle만의 규칙)
>>
위 내용의의 서브쿼리만 실행
<Table's sample551>
- IN과 NULL
IN 은 = 으로 동작함. NULL = NULL 로 계산 안됨.
NULL은 IS NULL을 사용해서 비교해야 함.
'SQL' 카테고리의 다른 글
| 2019.02.26 SQL구문 예제-SELECT(1) (0) | 2019.02.26 |
|---|---|
| 2019.01.21 CREATE,DROP,ALTER (0) | 2019.01.21 |
| 2019.01.17 데이터 갱신(UPDATE),집계함수,그룹화(GROUP BY) (0) | 2019.01.17 |
| 2019.01.16 SQL 연습문제#1 (0) | 2019.01.16 |
| 2019.01.15 SQL의 기본설정, SELECT,ORDER (0) | 2019.01.15 |