# 建立資料庫 **1h** 因為只是示範歡迎直接到[這裡](https://github.com/PYH1107/eduproject/tree/main/data)下載已經整理好的資料 但下面也會跟大家分享建立假資料的方法以及所使用的套件 [ToC] ## 繪製你的 ER Diagram ### 資料庫的概念 在資料庫中,「schema」指的是資料庫結構的定義,包括了表格(tables)、欄位(fields)和資料類型等資訊。而「表格」(table)則是存儲資料的容器,由多個欄位組成,每個欄位有其特定的資料類型,表格內的每一行(row)代表一筆資料記錄。 簡而言之,schema 是資料庫的藍圖,而表格是按照這個藍圖建立的實際資料存儲結構。 ### ERD 範例 ## mySQL workbench 的操作 ### method 1 1. 建立 schema ![image](https://hackmd.io/_uploads/S1JiXv4xA.png) 2.建立table ![image](https://hackmd.io/_uploads/SJfrj1cfC.png) ```sql= -- 1. 创建新的 schema CREATE SCHEMA `new_schema` ; -- 2. 切换到新 schema USE `new_schema` ; CREATE TABLE SnakeSpecies ( species_id INT AUTO_INCREMENT PRIMARY KEY, common_name VARCHAR(255) NOT NULL, scientific_name VARCHAR(255) NOT NULL, description TEXT, average_size_cm INT, average_lifespan_years INT, conservation_status VARCHAR(255) ); CREATE TABLE Characteristics ( characteristic_id INT AUTO_INCREMENT PRIMARY KEY, species_id INT, temperament VARCHAR(255), color_pattern VARCHAR(255), diet_type VARCHAR(255), habitat VARCHAR(255), FOREIGN KEY (species_id) REFERENCES SnakeSpecies(species_id) ); CREATE TABLE CareRequirements ( care_id INT AUTO_INCREMENT PRIMARY KEY, species_id INT, temperature_range VARCHAR(255), humidity_range VARCHAR(255), enclosure_size VARCHAR(255), special_requirements TEXT, FOREIGN KEY (species_id) REFERENCES SnakeSpecies(species_id) ); CREATE TABLE UserReviews ( review_id INT AUTO_INCREMENT PRIMARY KEY, species_id INT, review_text TEXT, rating INT, review_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (species_id) REFERENCES SnakeSpecies(species_id) ); ``` ### method 2 1. 建立 schema ![image](https://hackmd.io/_uploads/S1JiXv4xA.png) 2. 把 csv 進行import ![image](https://hackmd.io/_uploads/r1Dn7vVgR.png) 3. 建立 table ![image](https://hackmd.io/_uploads/BJaFQv4eC.png) ## 如果要刪掉 schema 在要刪掉的 schema 點右鍵,選擇 drop schema ![image](https://hackmd.io/_uploads/S1f601cfC.png) ### 示範影片資料夾 [雲端共用](https://drive.google.com/drive/folders/13jVsjn2SZW_4OUCVxNq7g4ehslLeyzhp?usp=sharing)