웹개발/웹 개발[데이터베이스-MySQL]

데이터베이스 [JOIN] 함수 2

jhshdksa 2022. 12. 19. 20:30

[JOIN] 함수 실습하기


'LEFT OUTER JOIN' 예제 4 - 문제

 

 아래의 형식을 출력하시오 

 

1. 'INSERT'을 이용하여 아래의 데이터를 테이블에 작성할 것

 

2. 테이블을 6개 사용할 것 (mst 테이블 5개 dtl 테이블 1개)

course_mst / student_mst / emp_mst / status_mst (지정된 테이블 4개 포함)

 

3. 테이블을 정규화 할 것

 

4. SELECT와 JOIN을 사용하여 아래의 형식을 출력할 것


데이터 베이스 & 테이블 생성하기


👇 위 테이블들의 칼럼을 지정하고 'INSERT'문을 이용하여 테이블 작성하기 👇

 

>> 전체 수강정보에 대한 테이블

>> 수강정보에 '수강명', '학생 성명' 그리고 '상태'는 종속되어있다.

 

>> (학생)성명에 대한 테이블

 

>> 이름은 중복될 수 있기 때문에 NULL값을 허용해준다.

NULL 허용을 할 경우 : 중복은 금지되고, 비어있는(null) 것은 허용

 

>> 담당자에 대한 테이블

 

>> 상태에 대한 테이블

 

>> 수강명에 대한 테이블

 

>> 담당자는 수강명에 종속되지 않기 때문에 '정규화'를 위해 성명에 종속된 dtl을 추가 생성한다.


👇 'SELECT'와 'LEFT OUTER JOIN'을 사용하여 실행하기 👇

'subject_mst / student_mst / status_mst'는 'course_mst'에 종속되어 있지만

'emp_mst'는 'student_mst'에 종속된 'student_dtl'에 종속되어 있다. 


👇 내용 추가하기 👇

student_mst에 학생을 추가하고 student_mst를 기준으로 JOIN 하여라

'student_mst'에 학생을 추가하고 emp_id(담당자)를 3(문자영)으로 지정하였다.

 

student_mst(학생)을 기준으로 JOIN 했을 때 'student_mst'값은 모두 출력되고

'course_mst'값 중에 비워져 있는 값은 NULL값으로 출력된다.


👇 'JOIN'으로 조합된 테이블을 'ORDER BY'로 정렬하기 👇

SQL 쿼리문은 실행 순서를 지켜야 한다.

 

FROM and JOIN

WHERE

GROUP BY

HAVING

SELECT

ORDER BY

LIMIT

위의 결과값의 설명 👇👇

'FROM'과 'JOIN'에서 테이블을 가지고 와서 정렬한다.

'SELECT'를 통해 결과 값을 출력한다.

 

출력된 값을 과목명 순으로 정렬하고 싶을 때에는??

>> 'ORDER BY'사용한다.

 

>> 과목명을 기준으로 'SELECT'문이 '오름차순'정렬되었다.

 

ORDER BY란?

'SELECT'문을 사용할 때 출력되는 결과물을 정렬하고자 하는 'Column(열)'을 기준으로

내림차순 또는 오름차순으로 정렬해주는 기능

 

'ORDER BY'는 여러 번 지정 가능하다.

 

위의 'ORDER BY'를 실행할 경우 👇

`순번`으로 오름차순 정렬된 다음

정렬된 순번 내에서 `과목명`으로 오름차순 되었다.

ORDER BY는 AS(ALIAS)가 아닌 테이블 이름 그대로를 입력하여 사용할 수 있다.


지금까지 데이터베이스의 함수인 [JOIN]과 [ORDER BY]에 대해 알아보았습니다.

 

다음 포스팅에서는 [GROUP BY]에 대해 알아보도록 하겠습니다.

 

긴 글 읽어주셔서 감사드립니다