SQL資料庫基礎教學,建立學生成績管理系統,包含資料表建立、資料新增及查詢操作

SQL資料庫基礎教學,建立學生成績管理系統,包含資料表建立、資料新增及查詢操作

今天開始SQL練習,練習的題目是建立一個資料庫用於管理高中班級的學生資料以及記錄學生測驗的成績。
在開始之前,先簡單瞭解一下SQL是什麼。

SQL(Structured Query Language)是一種用於管理關聯式資料庫(RDBMS)的標準語言。SQL允許用戶從資料庫中檢索和操作資料,包括添加、刪除、更新和查詢資料。SQL可用於訪問和處理大量數據,使得用戶能夠輕鬆地執行複雜的查詢和數據操作。
SQL的語法結構是基於關係代數和元組演算理論的,它包括各種命令,如SELECT、INSERT、UPDATE、DELETE、CREATE、ALTER和DROP等,以及用於組合多個查詢結果的操作符,如UNION、INTERSECT和EXCEPT。
由於SQL是一種標準語言,所以幾乎所有的關聯式資料庫系統都支持SQL。知道如何使用SQL是資料庫管理、數據分析等領域中非常重要的一項技能。
首先我們開啟SQL的CMD介面,新增資料庫使用的指令是CREATE,我們要建立一個名為「highschool」的資料庫。
接著進入這個資料庫,建立儲存學生資料和考試成績的資料表。
建立儲存學生資料的資料表「students」,其中包含四個欄位:id、name、age 和 gender。id 欄位是主鍵,用於唯一標示每個學生。
接著再建立一個名為「grades」的資料表,用於儲存學生的成績,其中包含四個欄位:id、student_id、subject 和 score。id 欄位是主鍵,同時使用外鍵「FOREIGN」指令把student_id 欄位和前面「students」資料表中的學生id關連起來。
資料表都建立完成後,我們可以試著新增學生的資料和成績,要使用「INSERT」指令操作。
新增成績時,我們在student_id的欄位填入1號,這樣這筆數學成績就會連上1號同學Alice,表示這是Alice的考試成績。
「INSERT」指令可以接受一次新增多筆資料,我們只要將每一筆分別以括號包起來,並在括號間用逗點隔開,逐一填上要新增的值就可以了。
這樣就完成4名學生資料和數學及英文考試的資料更新了。
完成資料庫和學生資訊與成績資料表的建立後,我們可以用「SELECT」指令查詢剛剛建立的資料表,驗證一下我們填入的資料是否正確。
| id | name | age | gender |
|---|---|---|---|
| 1 | Alice | 16 | Female |
| 2 | Bob | 16 | Male |
| 3 | Cathy | 17 | Female |
| 4 | David | 16 | Male |
| id | student_id | subject | score |
|---|---|---|---|
| 1 | 1 | Math | 90 |
| 2 | 2 | Math | 85 |
| 3 | 3 | Math | 92 |
| 4 | 4 | Math | 78 |
| 5 | 1 | Englisg | 87 |
| 6 | 2 | English | 80 |
| 7 | 3 | English | 88 |
| 8 | 4 | English | 85 |
另外我們也可以使用「WHERE」指令設定查詢的條件。
| id | name | age | gender |
|---|---|---|---|
| 2 | Bob | 16 | Male |
更進一步,我們可以使用「JOIN...ON」指令將兩個資料表聯集起來查詢,列出學生的座號、姓名和考試成績。
| id | name | subject | score |
|---|---|---|---|
| 1 | Alice | Math | 90 |
| 1 | Alice | Englisg | 87 |
| 2 | Bob | Math | 85 |
| 2 | Bob | English | 80 |
| 3 | Cathy | Math | 92 |
| 3 | Cathy | English | 88 |
| 4 | David | Math | 78 |
| 4 | David | English | 85 |
再將這個語法與「WHERE」結合,我們就能找出特定學生在特定科目的成績啦!(這邊要注意的小細節在於WHERE指令的篩選條件要指明來自那個資料表,才能正確找出結果)
| id | name | subject | score |
|---|---|---|---|
| 2 | Bob | Math | 85 |
本篇文章完成了一個基本的資料庫建立和新增資料,接下來我們要幫這個資料庫增加一個前端介面,讓使用者能方便的查詢/新增/修正學生資料和考試成績,下篇文章見啦!