소개
이 프로젝트에서는 MySQL 에서 데이터베이스 뷰를 생성하고 사용하는 방법을 배우게 됩니다. 데이터베이스 뷰는 기본 데이터를 사용자 정의된 관점으로 제공하는 가상 테이블로, 사용자로부터 특정 데이터 프로세스를 숨기고 데이터 접근을 단순화할 수 있습니다.
👀 미리보기
MariaDB [edusys]> SELECT * FROM comp_spring_2018_taylor;
+-----------+-------------+
| course_id | room_number |
+-----------+-------------+
| CS-319 | 3128 |
+-----------+-------------+
1 row in set (0.00 sec)
🎯 과제
이 프로젝트에서 다음을 배우게 됩니다:
- MySQL 서버를 시작하고 데이터베이스를 임포트하는 방법
- 특정 학기, 위치 및 학과에서 제공되는 모든 주요 강좌의 강의실 번호를 표시하는 뷰를 정의하는 방법
- 이전 뷰의 결과를 특정 건물에 위치한 강좌만 포함하도록 필터링하는 뷰를 정의하는 방법
🏆 성과
이 프로젝트를 완료하면 다음을 수행할 수 있습니다:
- 데이터베이스 뷰의 개념과 이점을 이해합니다.
- 데이터 접근을 단순화하고 불필요한 복잡성을 숨기기 위해 사용자 정의 뷰를 생성합니다.
- 실제 시나리오에서 뷰를 정의하고 사용하기 위해 SQL 쿼리에 대한 지식을 적용합니다.
MySQL 시작 및 데이터베이스 가져오기
이 단계에서는 MySQL 서버를 시작하고 edusys.sql 데이터베이스를 임포트하는 방법을 배우게 됩니다.
- 다음 명령을 사용하여 MySQL 서버를 시작합니다:
sudo service mysql start
- 다음 명령을 사용하여 MySQL 명령줄 인터페이스에 접속합니다:
sudo mysql
- 다음 명령을 사용하여
edusys.sql데이터베이스를 임포트합니다:
source /home/labex/project/edusys.sql;
이렇게 하면 edusys 데이터베이스가 MySQL 서버로 임포트됩니다.
comp_spring_2018 뷰 정의
이 단계에서는 comp_spring_2018 뷰를 정의하는 방법을 배우게 됩니다.
~/project디렉토리에comp_spring_2018_taylor.sql파일을 생성합니다.- 다음 SQL 쿼리를 사용하여
comp_spring_2018뷰를 생성하는 코드를 파일에 추가합니다:
CREATE VIEW comp_spring_2018 AS
SELECT course.course_id, building, room_number
FROM section, course
WHERE course.course_id = section.course_id AND semester = 'Spring' AND year = 2018 AND dept_name = 'Comp. Sci.';
이 뷰는 2018 년 봄 학기에 "Comp. Sci." 학과에서 제공하는 모든 강좌의 course_id, building, 및 room_number를 표시합니다.
comp_spring_2018_taylor 뷰 정의
이 단계에서는 comp_spring_2018_taylor 뷰를 정의하는 방법을 배우게 됩니다.
comp_spring_2018_taylor.sql파일을 엽니다.- 이전 단계에서 추가한 코드 다음에 다음 SQL 쿼리를 사용하여
comp_spring_2018_taylor뷰를 생성합니다:
CREATE VIEW comp_spring_2018_taylor AS
SELECT course_id, room_number
FROM comp_spring_2018
WHERE building = 'Taylor';
이 뷰는 2018 년 봄 학기에 "Comp. Sci." 학과에서 제공하며 "Taylor" 건물에 위치한 모든 강좌의 course_id 및 room_number를 표시합니다.
솔루션 검증
솔루션을 검증하려면 다음 SQL 쿼리를 실행할 수 있습니다:
source /home/labex/project/comp_spring_2018_taylor.sql;
SELECT * FROM comp_spring_2018_taylor;
다음과 같은 출력이 표시되어야 합니다:
+-----------+-------------+
| course_id | room_number |
+-----------+-------------+
| CS-319 | 3128 |
+-----------+-------------+
1 row in set (0.00 sec)
축하합니다! 프로젝트를 성공적으로 완료했습니다.
요약
축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.
