題目
搭建一個簡易的成績管理系統的數據庫
介紹
現需要構建一個簡易的成績管理系統的數據庫,來記錄幾門課程的學生成績。數據庫中有三張表分別用於記錄學生信息、課程信息和成績信息。
數據庫表的數據如下:
學生表(student):學生 id 、學生姓名和性別
課程表:課程 id 和課程名
成績表:成績 id 、學生 id 、課程 id 和分數
服務器中的 MySQL 還沒有啟動,請注意 MySQL 的 root 賬戶默認密碼為空。
目標
1.MySQL 服務處於運行狀態
2.新建數據庫的名稱為 gradesystem
3.gradesystem 包含三個表:student、course、mark;
- student 表包含3列:sid(主鍵)、sname、gender;
- course 表包含2列:cid(主鍵)、cname;
- mark 表包含4列:mid(主鍵)、sid、cid、score ,注意與其他兩個表主鍵之間的關系。
4.將上述表中的數據分別插入到各個表中
提示
- 建立表時注意 id 自增和鍵約束
- 每個表插入語句可通過一條語句完成
解法
啟動mysql:
sudo service mysql start mysql -u root
創建一個名為gradesystem
的數據庫:
create database gradesystem; use gradesystem;
創建student
表:
create table student ( sid int(10)primary key, sname char(10), gender char(10) );
創建course
表:
create table course ( cid int(10)primary key, sname char(10) );
創建mark
表:
create table mark ( mid int(10)primary key, sid int(10),foreign key (sid) references student(sid), cid int(10),foreign key (cid) references course(cid), score int(100) );
student
插入數據:
insert into student values(1,'Tom','male'); insert into student values(2,'Jack','male'); insert into student values(3,'Rose','female');
course
插入數據:
insert into course values(1,'math'); insert into course values(2,'physics'); insert into course values(3,'chemistry');
mark
插入數據:
insert into mark values(7,1,3,95); insert into mark values(8,2,3,75); insert into mark values(9,3,3,85);
最后可以查看這三張表:
select * from student; /* +-----+-------+--------+ | sid | sname | gender | +-----+-------+--------+ | 1 | Tom | male | | 2 | Jack | male | | 3 | Rose | female | +-----+-------+--------+ */ select * from course; /* +-----+-----------+ | cid | sname | +-----+-----------+ | 1 | math | | 2 | physics | | 3 | chemistry | +-----+-----------+ */ select * from mark; /* +-----+------+------+-------+ | mid | sid | cid | score | +-----+------+------+-------+ | 7 | 1 | 3 | 95 | | 8 | 2 | 3 | 75 | | 9 | 3 | 3 | 85 | +-----+------+------+-------+ */