Guest User

Untitled

a guest
Dec 19th, 2018
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.71 KB | None | 0 0
  1. 서브쿼리
  2. SYNTAX : ( SELECT 명령 )
  3.  
  4.  
  5. #스칼라값이란?
  6. SELECT 명령의 결과의 값이 한개 인것 (=단일 값)
  7.  
  8. 서브쿼리 패턴
  9. 1> 단일 값(스칼라 값)을 반환하는 패턴
  10. SELECT count(no) FROM 테이블명;
  11.  
  12. 2> 복수의 행이 반환되지만 열은 하나인 패턴
  13. SELECT no FROM 테이블명;
  14.  
  15. 3> 하나의 행이 반환되지만 열이 복수인 패턴
  16. SELECT name, age FROM member WHERE no = 1;
  17.  
  18. 4> 복수의 행 과 복수의 열이 반환되는 패턴
  19. SELECT no, name, age FROM member;
  20.  
  21. #응용패턴
  22. 1. DELETE의 WHERE구에서 서브쿼리 사용(1번 패턴)
  23. DELETE FROM 테이블명1 WHERE 컬럼명A = ( SELECT min(컬럼명A) FROM 테이블명1 );
  24.  
  25. 2. SELECT 구에서 서브쿼리 사용
  26. SELECT
  27. ( SELECT min(no) FROM member) AS min_no ,
  28. ( SELECT max(no) FROM member) AS max_no
  29. FROM dual;
  30.  
  31. 3. UPDATE SET구에서 사용
  32. UPDATE member
  33. SET name = ( SELECT name FROM member WHERE no = 2);
  34. WHERE no = 1;
  35.  
  36.  
  37. 4. FROM구 에서 서브쿼리 사용 (중첩구조)
  38. SELECT * FROM (SELECT * FROM member) m;
  39.  
  40. (실무적용) 오라클에서 FROM구에 서브쿼리를 이용하여 페이지 번호 처리
  41. SELECT *
  42. FROM (
  43. SELECT id, name , floor(rownum /(10) + 1) page FROM member
  44. ) m
  45. WHERE m.page = 2 ;
  46.  
  47.  
  48. 5. INSERT 명령에서 서브쿼리
  49. 5-1 VALUES구 일부로 서브쿼리 사용
  50. INSERT INTO member
  51. (
  52. user_id, name
  53. )
  54. VALUES(
  55. (SELECT user_id FROM member WHERE no = 2) ,
  56. (SELECT name FROM member WHERE no = 3 )
  57. );
  58.  
  59. 5-2 VALUES구 대신하여 서브쿼리 사용
  60. INSERT INTO member
  61. SELECT * FROM member_backup WHERE no = 2;
  62. 단 컬럼명이 동일해야 한다.
Add Comment
Please, Sign In to add comment