MySQL创建一个简易学生成绩系统

启动MySQL服务并进入MySQL shell

创建一个数据库gradesystem

CREATE DATABASE gradesystem;

数据库里面放三张表
第一张学生表student:学生id(主键)、学生姓名、学生性别

sidsnamegender
1zhangsanmale
2lisimale
3xiaohongfemale
student

第二张课程表course:课程id(主键)、课程名字

cidcname
1math
2physics
3chemistry
course

成绩表mark:成绩 id(主键) 、学生 id 、课程 id 和分数

midsidcidscore
11180
22185
33186
41270
52286
63290
71380
82385
93390
mark

接下来的一切操作都是在MySQL shell里面操作的
创建学生表student

CREATE TABLE student(
    sid INT(2) NOT NULL,
    sname CHAR(20) NOT NULL,
    gender CHAR(20) NOT NULL
);

创建课程表course

CREATE TABLE course(
    cid INT(2) NOT NULL,
    cname CHAR(20) NOT NULL
);

创建成绩表mark

CREATE TABLE mark(
    mid INT(2) NOT NULL,
    sid INT(2) NOT NULL,
    cid INT(2) NOT NULL,
    score INT(3)
);

添加主键,因为刚才建表的时候没有添加主键

添加键的语法

添加主键约束 alter table 表名 add constraint 主键名 primary key 表名(主键字段名)

添加外键约束 alter table 表名 add constraint 外建名 foreign key (外键字段名)references 关联表名 (关联字段名)

联合主键的写法:

primary key (字段1,字段2,……)

备注:在添加主键时,(主键字段名)这个主键字段名也可以写多个 (字段1,字段2,……)。这就算是添加联合主键的方法吧。

设置另外两个也是一样的

给mark设置外键

ALTER TABLE mark ADD CONSTRAINT PK_sid FOREIGN KEY (sid) REFERENCES student(sid);
ALTER TABLE  ADD CONSTRAINT PK_cid FOREIGN KEY (cid) REFERENCES course(cid);

这里写外键还行

创建表的时候是这么添加的
例如

CREATE TABLE student(
    sid INT(2) NOT NULL,
    sname CHAR(20) NOT NULL,
    gender CHAR(20) NOT NULL,
    PRIMARY KEY (sid)
);

开始往student表里面插入数据

INSERT INTO student (sid, sname, gender) VALUES (1, 'zhangsan', 'male');
INSERT INTO student (sid, sname, gender) VALUES (2, 'lisi', 'male');
INSERT INTO student (sid, sname, gender) VALUES (3, 'xiaohong', 'female');

course中插入数据

INSERT INTO course (cid, cname) VALUES (1, 'math');
INSERT INTO course (cid, cname) VALUES (2, 'physics');
INSERT INTO course (cid, cname) VALUES (3, 'chemistry');

mark中插入数据

INSERT INTO mark (mid, sid, cid, score) VALUES (1, 1, 1, 80);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 2, 1, 85);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 3, 1, 86);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 1, 2, 70);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 2, 2, 86);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 3, 2, 90);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 1, 3, 80);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 2, 3, 85);
INSERT INTO mark (mid, sid, cid, score) VALUES (1, 3, 3, 90);

最后可通过SELECT * FROM mark来查看成绩表和同样命令来查看其它两个表。

相关文章

发表回复

您的电子邮箱地址不会被公开。