mysql创建四张表 分别存储 学生信息 课程信息 分数表 教师信息表

这篇博客介绍了如何在MySQL中创建四个表,分别是学生信息表、课程信息表、分数表和教师信息表,并展示了各表的字段定义和数据插入操作。此外,还给出了若干SQL查询示例,包括查询学生信息、课程信息、成绩等,以及涉及联表查询和统计分析的复杂查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学生信息表 Student
字段名 字段类型 字段约束 / 含义
Sno Varchar(3) Not null / 学员编号
Sname Varchar(4) Not null / 学员姓名
Ssex Varchar(2) Not null / 性别
Sbirthday Datetime 生日
Classnum Varchar(5) 班级号

CREATE TABLE STUDENT
(
SNO VARCHAR(3) NOT NULL,
SNAME VARCHAR(4) NOT NULL,
SSEX VARCHAR(2) NOT NULL,
SBIRTHDAY DATETIME,
CLASS VARCHAR(5)
)
课程信息表 course
字段名 字段类型 字段约束 / 含义
Cno Varchar(5) Not null / 课程编号
Cname Varchar(10) Not null / 课程名称
Tno Varchar(10) Not null / 授课老师编号

CREATE TABLE COURSE
(CNO VARCHAR(5) NOT NULL,
CNAME VARCHAR(10) NOT NULL,
TNO VARCHAR(10) NOT NULL)
成绩表score
字段名 字段类型 字段约束 / 含义
Sno Varchar(3) Not null / 学员编号
Cno Varchar(5) Not null / 课程编号
Degree Double(3,1) Not null / 分数

CREATE TABLE SCORE
(SNO VARCHAR(3) NOT NULL,
CNO VARCHAR(5) NOT NULL,
DEGREE NUMERIC(10, 1) NOT NULL)
讲师表teacher
字段名 字段类型 字段约束 / 含义
Tno Varchar(3) Not null / 讲师编号
Tname Varchar(4) Not null / 讲师姓名
Tsex Varchar(2) Not null / 讲师性别
Tbirthday Datetime Not null / 出生日期
Prof Varchar(6) 等级
Depart Varchar(10) 所属院系

CREATE TABLE TEACHER
(TNO VARCHAR(3) NOT NULL,
TNAME VARCHAR(4) NOT NULL, TSEX VARCHAR(2) NOT NULL,
TBIRTHDAY DATETIME NOT NULL, PROF VARCHAR(6),
DEPART VARCHAR(10) NOT NULL);

向表中存储数据
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (108 ,‘曾华’ ,‘男’ ,1977-09-01,95033);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (105 ,‘匡明’ ,‘男’ ,1975-10-02,95031);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (107 ,‘王丽’ ,‘女’ ,1976-01-23,95033);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (101 ,‘李军’ ,‘男’ ,1976-02-20,95033);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (109 ,‘王芳’ ,‘女’ ,1975-02-10,95031);
INSERT INTO STUDENT (SNO,SNAME,SSEX,SBIRTHDAY,CLASS) VALUES (103 ,‘陆君’ ,‘男’ ,1974-06-03,95031);
GO
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES (‘3-105’ ,‘计算机导论’,825)
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES (‘3-245’ ,‘操作系统’ ,804);
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES (‘6-166’ ,‘数据电路’ ,856);
INSERT INTO COURSE(CNO,CNAME,TNO)VALUES (‘9-888’ ,‘高等数学’ ,100);
GO
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,‘3-245’,86);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,‘3-245’,75);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (109,‘3-245’,68);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (103,‘3-105’,92);
INSERT INTO SCORE(SNO,CNO,DEGREE)VALUES (105,‘3-105’,88);
INSERT INTO SCORE(SNO,

### 如何在 MySQL创建数据库 #### 创建数据库MySQL 中,创建一个新的数据库非常简单。通过 `CREATE DATABASE` 命令可以轻松完成这一操作。该命令的基本语法如下: ```sql CREATE DATABASE 数据库名; ``` 这条语句用于告知 MySQL 创建一个名为指定名称的新数据库[^3]。 为了确保新创建数据库能够正常工作并满足特定需求,在创建之前应该考虑一些重要因素。例如,选择合适的字符集和排序规则对于支持多语言环境非常重要。可以通过扩展上述命令来设置这些参数: ```sql CREATE DATABASE example_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; ``` 这段代码不仅创建了一个新的数据库 `example_db`,还指定了其使用的字符编码为 UTF-8 和相应的排序方式[^1]。 #### 设计格结构前需考量的因素 当准备在一个已存在的数据库内建立一张或多张时,有几个方面值得特别注意。首先是确定每张所代的实际实体及其属性;其次是定义各字段的数据类型以及可能施加在其上的任何约束条件,比如主键、外键或是唯一性限制等。合理的规划有助于提高系统的性能,并减少后期维护成本。 #### 创建过程详解 一旦决定了要存储哪些信息之后就可以着手编写具体的建语句了。这里给出几个常见的例子作为参考: ##### 学生 (Student) 此用来保存有关学生的个人信息,如学号、姓名、性别等基本信息。 ```sql CREATE TABLE Student ( student_id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(50), gender ENUM('M', 'F'), birth_date DATE ); ``` 在这段 SQL 代码里,`student_id` 字段被设定为主键并且自动增长,意味着每次插入一条记录时它都会自动生成唯一的编号。同时设置了其他三个列分别示名字(`name`)、性别(`gender`)及出生日期(`birth_date`)的信息[^4]。 ##### 课程 (Course) 这张负责描述学校开设的各种科目情况,包括但不限于编号、名称等内容。 ```sql CREATE TABLE Course ( course_id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(100), description TEXT ); ``` 此处定义了一种较为简单的模式——仅有两个非空字符串类型的字段:一个是标识符 (`course_id`) ,另一个则是标题 (`title`) 。此外还有一个可选的文字说明区域 (`description`) 可供填写更详细的介绍文字。 ##### 选修关系 (Enrollment) 最后是连接两者之间的桥梁——即学生与他们所参加的具体科目的关联列。这通常涉及到至少两方共同拥有的某些特征值来进行匹配对照。 ```sql CREATE TABLE Enrollment ( enrollment_id INT AUTO_INCREMENT PRIMARY KEY, student_id INT NOT NULL, course_id INT NOT NULL, grade DECIMAL(4,2), FOREIGN KEY (student_id) REFERENCES Student(student_id), FOREIGN KEY (course_id) REFERENCES Course(course_id) ); ``` 以上述脚本为例,除了常规的身份识别码之外,还包括了来自另外两张的关键索引项(`student_id`, `course_id`),并通过外键机制建立了相互间的联系。值得注意的是成绩分数也被纳入其中以便日后查询统计之用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值