SQL 数据库建表语句:学生、教师、课程和成绩表

本文提供 SQL 数据库建表语句,用于创建学生、教师、课程和成绩表,并提供示例数据。这些表结构和数据可以用于演示数据库关系和 SQL 查询。

表结构

教师表 Teacher(Tn,Tname)

  • Tn: 教师编号 (INT, 主键)
  • Tname: 教师姓名 (VARCHAR(50))

学生表 Student(Sn,Sname,Sage,Ssex)

  • Sn: 学号 (INT, 主键)
  • Sname: 学生姓名 (VARCHAR(50))
  • Sage: 学生年龄 (INT)
  • Ssex: 学生性别 (VARCHAR(10))

课程表 Course(Cn,Cname,Tn)

  • Cn: 课程编号 (INT, 主键)
  • Cname: 课程名称 (VARCHAR(50))
  • Tn: 教师编号 (INT, 外键关联 Teacher 表)

成绩表 SC(Sn,Cn,score)

  • Sn: 学号 (INT, 外键关联 Student 表)
  • Cn: 课程编号 (INT, 外键关联 Course 表)
  • score: 成绩 (INT)

建表语句

CREATE TABLE Teacher (
  Tn INT PRIMARY KEY,
  Tname VARCHAR(50)
);

CREATE TABLE Student (
  Sn INT PRIMARY KEY,
  Sname VARCHAR(50),
  Sage INT,
  Ssex VARCHAR(10)
);

CREATE TABLE Course (
  Cn INT PRIMARY KEY,
  Cname VARCHAR(50),
  Tn INT,
  FOREIGN KEY (Tn) REFERENCES Teacher(Tn)
);

CREATE TABLE SC (
  Sn INT,
  Cn INT,
  score INT,
  PRIMARY KEY (Sn, Cn),
  FOREIGN KEY (Sn) REFERENCES Student(Sn),
  FOREIGN KEY (Cn) REFERENCES Course(Cn)
);

测试数据

INSERT INTO Teacher (Tn, Tname) VALUES
(1, 'Teacher A'),
(2, 'Teacher B'),
(3, 'Teacher C');

INSERT INTO Student (Sn, Sname, Sage, Ssex) VALUES
(1001, 'Student A', 18, 'Male'),
(1002, 'Student B', 19, 'Female'),
(1003, 'Student C', 20, 'Male');

INSERT INTO Course (Cn, Cname, Tn) VALUES
(1, 'Math', 1),
(2, 'Science', 2),
(3, 'English', 3);

INSERT INTO SC (Sn, Cn, score) VALUES
(1001, 1, 90),
(1001, 2, 85),
(1001, 3, 95),
(1002, 1, 75),
(1002, 2, 80),
(1002, 3, 85),
(1003, 1, 85),
(1003, 2, 90),
(1003, 3, 80);

使用示例

以下是一些常见的 SQL 查询示例:

  • 查询所有学生的信息:
SELECT * FROM Student;
  • 查询所有数学老师的信息:
SELECT * FROM Teacher WHERE Tn IN (SELECT Tn FROM Course WHERE Cname = 'Math');
  • 查询所有选修了数学课程的学生姓名和成绩:
SELECT S.Sname, SC.score
FROM Student S
JOIN SC ON S.Sn = SC.Sn
JOIN Course C ON SC.Cn = C.Cn
WHERE C.Cname = 'Math';

原文地址: https://www.cveoy.top/t/topic/qvON 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录