문제 (6) - 집합연산자

집합연산자 실습문제를 풀어보자!
Chapter 5 - 집합 연산자

문제1.

집합 A = {L M N O P}로 설정하고 집합 B = {P Q R S T}로 설정하면 다음 연산은 각각 어떤 집합을 생성할까요?

  • A union B
  • A union all B
  • A intersect B
  • A except B

unionunion all의 차이는 중복제거다.

  • A union B 는 중복제거를 하므로,
    • A union B = {L M N O P Q R S T}
  • A union all B 는 중복제거를 하지 않으므로, 교집합인 P 가 2번 나타날 것이다.
    • A union all B = {L M N O P P Q R S T}
  • intersect는 교집합만을 추출하므로,
    • A intersect B = {P}
  • except는 A에서 B와, 교집합을 빼는 것이므로,
    • A except B = {L M N O}

문제2.

성이 L로 시작하는 모든 배우와 고객의 이름과 성을 찾는 복합 쿼리를 작성하라.

  • (성이 L로 시작하는 모든 배우 + 성이 L로 시작하는 모든 고객)의 이름과 성이 나타나도록 쿼리를 짜야 한다.
  • 중복제거를 한다고 가정해보겠다.
    • actor 테이블과 customer 테이블을 합치되, 이때 조건을 성이 L로 시작하게 설정한다.
SELECT 
	c.first_name AS fname
	, c.last_name AS lname
FROM customer c
WHERE c.last_name LIKE 'L%'
UNION 
SELECT 
	a.first_name
	, a.last_name
FROM actor a
WHERE a.last_name LIKE 'L%' ;

24개의 결과값이 반환된다.

fname     |lname       |
----------+------------+
MISTY     |LAMBERT     |
JACOB     |LANCE       |
RENEE     |LANE        |
HEIDI     |LARSON      |
DARYL     |LARUE       |
LAURIE    |LAWRENCE    |
JEANNE    |LAWSON      |
LAWRENCE  |LAWTON      |
KIMBERLY  |LEE         |
LOUIS     |LEONE       |
SARAH     |LEWIS       |
GEORGE    |LINTON      |
MAUREEN   |LITTLE      |
DWIGHT    |LOMBARDI    |
JACQUELINE|LONG        |
AMY       |LOPEZ       |
BARRY     |LOVELACE    |
PRISCILLA |LOWE        |
VELMA     |LUCAS       |
WILLARD   |LUMPKIN     |
LEWIS     |LYMAN       |
JACKIE    |LYNCH       |
MATTHEW   |LEIGH       |
JOHNNY    |LOLLOBRIGIDA|

문제3.

last_name 열을 기준으로 문제2의 결과를 정렬하라.

  • 정렬기준인 order by는 쿼리문의 가장 마지막에 위치하도록 하라 했다.
  • 그리고 이때 정렬기준은 쿼리문의 맨 첫줄의 별칭과 동일하게 하라고 했으니까
SELECT 
	c.first_name AS fname
	, c.last_name AS lname
FROM customer c
WHERE c.last_name LIKE 'L%'
UNION 
SELECT 
	a.first_name
	, a.last_name
FROM actor a
WHERE a.last_name LIKE 'L%' 
ORDER BY lname ;

24개의 결과값이 성(last name) 기준으로 정렬되었당 😊

fname     |lname       |
----------+------------+
MISTY     |LAMBERT     |
JACOB     |LANCE       |
RENEE     |LANE        |
HEIDI     |LARSON      |
DARYL     |LARUE       |
LAURIE    |LAWRENCE    |
JEANNE    |LAWSON      |
LAWRENCE  |LAWTON      |
KIMBERLY  |LEE         |
MATTHEW   |LEIGH       |
LOUIS     |LEONE       |
SARAH     |LEWIS       |
GEORGE    |LINTON      |
MAUREEN   |LITTLE      |
JOHNNY    |LOLLOBRIGIDA|
DWIGHT    |LOMBARDI    |
JACQUELINE|LONG        |
AMY       |LOPEZ       |
BARRY     |LOVELACE    |
PRISCILLA |LOWE        |
VELMA     |LUCAS       |
WILLARD   |LUMPKIN     |
LEWIS     |LYMAN       |
JACKIE    |LYNCH       |

좋은 웹페이지 즐겨찾기