저장 프로시저 커서 데이터베이스 검색

SQLBeginner
지금 연습하기

소개

이 프로젝트에서는 커서를 사용하여 학기가 봄인 section 테이블에서 강좌 정보를 출력하는 방법을 배우게 됩니다. 강좌 세부 정보를 검색하는 저장 프로시저를 생성한 다음, 프로시저를 실행하여 결과를 표시합니다.

🎯 과제

이 프로젝트에서 다음을 배우게 됩니다:

  • MySQL 서버를 시작하고 데이터베이스를 임포트하는 방법
  • 커서를 사용하여 저장 프로시저를 생성하는 방법
  • 저장 프로시저를 실행하여 데이터베이스에서 데이터를 검색하는 방법

🏆 성과

이 프로젝트를 완료하면 다음을 수행할 수 있습니다:

  • 커서를 사용하여 데이터베이스에서 데이터를 검색하는 방법을 이해합니다.
  • 데이터베이스 작업을 캡슐화하는 저장 프로시저를 생성합니다.
  • 저장 프로시저를 실행하여 원하는 데이터를 표시합니다.

MySQL 시작 및 데이터베이스 가져오기

이 단계에서는 MySQL 서버를 시작하고 edusys.sql 데이터베이스를 MySQL 로 임포트하는 방법을 배우게 됩니다.

  1. MySQL 서버 시작:

    sudo /etc/init.d/mysql start
    
  2. MySQL 터미널에 로그인:

    mysql -uroot
    
  3. edusys.sql 데이터베이스 임포트:

    SOURCE ~/project/edusys.sql
    

저장 프로시저 생성

이 단계에서는 학기가 봄인 section 테이블에서 강좌 정보를 검색하는 저장 프로시저를 생성하는 방법을 배우게 됩니다.

  1. /home/labex/project 디렉토리에 getSection.sql이라는 새 파일을 생성합니다.

  2. getSection.sql 파일에서 구분 기호 (delimiter) 를 //로 정의합니다:

    DELIMITER //
    
  3. getSectionProcude() 저장 프로시저를 생성합니다:

    CREATE PROCEDURE getSectionProcude()
    BEGIN
        SELECT course_id, year, room_number
        FROM section
        WHERE semester = 'Spring';
    END //
    
  4. 구분 기호를 기본값으로 다시 설정합니다:

    DELIMITER ;
    

저장 프로시저 실행

이 단계에서는 getSectionProcude() 저장 프로시저를 실행하여 강좌 정보를 검색하는 방법을 배우게 됩니다.

  1. MySQL 프롬프트에서 다음 명령을 실행하여 subquery.sql 스크립트를 실행합니다:

    SOURCE ~/project/getSection.sql
    
  2. 저장 프로시저를 실행합니다:

    CALL getSectionProcude();
    

    이렇게 하면 학기가 봄인 강좌 정보가 출력됩니다.

    MariaDB [edusys]> CALL getSectionProcude();
    +-----------+------+-------------+
    | course_id | year | room_number |
    +-----------+------+-------------+
    | CS-101    | 2018 | 101         |
    | FIN-201   | 2018 | 101         |
    | MU-199    | 2018 | 101         |
    | HIS-351   | 2018 | 514         |
    | CS-190    | 2017 | 3128        |
    | CS-190    | 2017 | 3128        |
    | CS-319    | 2018 | 3128        |
    | EE-181    | 2017 | 3128        |
    | CS-319    | 2018 | 100         |
    | CS-315    | 2018 | 120         |
    +-----------+------+-------------+
    10 rows in set (0.001 sec)
    

요약

축하합니다! 이 프로젝트를 완료했습니다. LabEx 에서 더 많은 랩을 연습하여 기술을 향상시킬 수 있습니다.

✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습✨ 솔루션 확인 및 연습