数据库MySQL基础(四):搭建一个简易的成绩管理系统

news/2024/6/17 0:21:12 标签: mysql

文章目录

  • 成绩管理系统
    • 【1】学生表
    • 【2】课程表
    • 【3】成绩表

成绩管理系统

mysql> create database gradesystem;
Query OK, 1 row affected (0.00 sec)

mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| gradesystem        |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.04 sec)

mysql> use gradesystem;
Database changed
mysql> show tables;
Empty set

【1】学生表

学生表(student):

  • 学生ID:sid
  • 学生姓名:sname
  • 学生性别:gender
sidsnamegender
1Tommale
2Jackmale
3Rosefemale
mysql> create table student
    -> (
    -> sid int NOT NULL auto_increment,
    -> sname varchar(20) NOT NULL,
    -> gender varchar(10) NOT NULL,
    -> primary key(sid)
    -> );
Query OK, 0 rows affected (0.26 sec)

【2】课程表

课程表(course)

  • 课程ID:cid
  • 课程名:cname
cidcname
1math
2physics
3chemistry
mysql> create table course
    -> (
    -> cid int NOT NULL auto_increment,
    -> cname varchar(20) NOT NULL,
    -> primary key(cid)
    -> );
Query OK, 0 rows affected (0.22 sec)

【3】成绩表

成绩表(mark)

  • 成绩ID:mid
  • 学生ID:sid
  • 课程ID:cid
  • 成绩:score
midsidcidscore
11180
22185
33160
41260
52290
63250
mysql> create table mark
    -> (
    -> mid int NOT NULL auto_increment,
    -> sid int NOT NULL,
    -> cid int NOT NULL,
    -> score int NOT NULL,
    -> foreign key(sid) references student(sid),
    -> foreign key(cid) references course(cid),
    -> primary key(mid)
    -> );
Query OK, 0 rows affected (0.28 sec)

外键(foreign key)的使用,目标字段一定要在前面先定义,再在后面设置外键索引


mysql> show tables;
+-----------------------+
| Tables_in_gradesystem |
+-----------------------+
| course                |
| mark                  |
| student               |
+-----------------------+
3 rows in set (0.05 sec)
mysql> insert into student values(1, 'Tom', 'male'), (2, 'Jack', 'male'), (3, 'Rose', 'female');
mysql> select * from student;
+-----+-------+--------+
| sid | sname | gender |
+-----+-------+--------+
|   1 | Tom   | male   |
|   2 | Jack  | male   |
|   3 | Rose  | female |
+-----+-------+--------+
3 rows in set (0.08 sec)
mysql> insert into course values(1, 'math'), (2, 'physics'), (3, 'chemistry');
Query OK, 3 rows affected (0.06 sec)
Records: 3  Duplicates: 0  Warnings: 0

mysql> select * from course
    -> ;
+-----+-----------+
| cid | cname     |
+-----+-----------+
|   1 | math      |
|   2 | physics   |
|   3 | chemistry |
+-----+-----------+
3 rows in set (0.05 sec)
mysql> insert into mark values(1, 1, 1, 80),(2, 2, 1, 85),(3, 3, 1, 90), (4, 1, 2, 60),(5, 2, 2, 90), (6, 3, 2, 95);

http://www.niftyadmin.cn/n/1488582.html

相关文章

操作系统面试题(十六):再讲下虚拟存储器

虚拟存储器 虚拟存储器是基于前面说过的局部性原理,在程序运行时,可以将部分程序装入内存,而将其他部分留在外存,程序依然运行 外存的大小往往远大于内存,由于局部性原理的作用,我们可以运行的软件的内存…

操作系统面试题(十七):虚拟内存技术如何实现的?

虚拟内存技术 虚拟内存技术的实现是建立在离散分配的内存管理的基础上的 目前最常用的三种实现虚拟内存技术的方法: 请求分页存储管理请求分段存储管理请求段页式存储管理 以上三种方式,无论哪种,都需要以下三个条件: 一定容…

计算机网络面试题(十七):地址栏输入URL后发生了什么?

文章目录DNS域名服务器地址栏输入URL后发生了什么这也是一道面试常见题目,也是我们在学习计算机网络时需要去理解的一个知识点 DNS域名服务器 DNS(Domain Name System 域名系统) 互联网中识别主机的方式有两种:主机名和IP地址 人…

Python多进程和多线程(一):基础概念

文章目录多进程和多线程【1】单核CPU【2】多核CPU【3】进程(process)【4】线程(thread)【5】多任务实现方式【6】小结多进程和多线程 现代的操作系统(例如:MaxOSX,Unix,Linux,Windows)都是支持…

Python网络编程(一):基础概念

网络通信 自动互联网诞生以来,现在基本上所有的程序都是网络程序,很少再有单机版的程序了。计算机网络就是将各个计算机连接到一起,让网络中的计算机可以相互通信 网络通信:如何在程序中实现两个计算机的通信 例:用户…

操作系统面试题(十八):什么是实时系统

实时系统 实时系统对时间做出了严格的要求,实时系统分为两种 硬实时系统软实时系统 硬实时操作系统 规定了系统某个动作必须在规定时间内完成/发生 有时候系统的一些操作过早、过久都会对OS造成损伤 软实时系统 软实时系统可以接受偶尔违反时限要求,…

计算机网络面试题(十八):HTTPS工作原理

文章目录HTTPS工作原理【1】HTTP的安全缺陷【2】HTTPS的三个功能【3】HTTPS工作流程HTTPS工作原理 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer) 以安全为目标的HTTP通道,即HTTP的安全版本 HTTPS HTTP SSL/TSLHTTPS的握手…

操作系统面试题(十九):什么是RR调度算法

RR调度算法 RR(Round Robin) RR调度算法主要针对分时系统,将时间片以相同部分并循环的分配给每个进程 RR调度算法没有优先级的概念 RR算法的特点: 算法实现简单每个进程都会占有时间片,不会出现线程饥饿的问题