数据库原理与应用》P77设计性实验
学生实验数据库(stuexpm)是实验 中多次用到的另一个数据库,包含学生表 (StudentInfo)、课程表(CourseInfo)、成绩表表(ScoreInfo)和教师表(TeacherInfo)。
StudentInfo 表、CourseInfo 表、ScoreI nfo 表和 TeacherInfo 表的表结构分别如表 4.9至表 4.12 所示。
使用 SQL 语句创建学生实验数据库(stuexpm),并结合课本P88完善表格数据。
#(1)创建数据库stuexpm
CREATE DATABASE stuexpm;
#(2)创建studentinfo表,显示studentinfo表的基本结构
USE stuexpm;
CREATE TABLE StudentInfo
(
StudentID VARCHAR(6) NOT NULL PRIMARY KEY COMMENT '学号',
NAME VARCHAR(8) NOT NULL COMMENT '姓名',
Sex VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
Birthday DATE NOT NULL COMMENT '出生日期',
Speciality VARCHAR(12) NULL COMMENT '专业',
Address VARCHAR(50) NULL COMMENT '家庭地址'
)COMMENT '学生表';
#添加数据内容/记录
#课本p81-例5.4
#表5.1
USE stuexpm;
INSERT INTO StudentInfo
VALUES
('181001','成志强','男','1998-08-17','计算机','北京市海淀区'),
('181002','孙红梅','女','1997-11-23','计算机','成都市锦江区'),
('181003','朱丽','女','1998-02-19','计算机','北京市海淀区'),
('181004','王智勇','男','1997-12-05','电子信息工程',NULL),
('181005','周璐璐','女','1998-02-24','电子信息工程','上海市浦东区'),
('181006','郑永波','男','1997-09-19','电子信息工程','上海市浦东区');
#查看数据内容/记录
SELECT * FROM studentinfo;
----------------------------------------------------------分割线----------------------------------------------------------------------
#表4.10
USE stuexpm;
CREATE TABLE CourseInfo
(
CourseID VARCHAR(4) NOT NULL PRIMARY KEY COMMENT '课程号',
CourseName VARCHAR(16) NOT NULL COMMENT '课程名',
Credit TINYINT NULL COMMENT '学分'
)COMMENT '课程表';
INSERT INTO CourseInfo
VALUES
('1004','数据库系统','4'),
('1025','物联网技术','3'),
('4002','数字电路','3'),
('8001','高等数学','4'),
('1201','英语','4');
#查看数据内容/记录
SELECT * FROM CourseInfo;
----------------------------------------------------------分割线----------------------------------------------------------------------
#表4.11
USE stuexpm;
CREATE TABLE ScoreInfo
(
StudentID VARCHAR(6) NOT NULL COMMENT '',
CourseID VARCHAR(4) NOT NULL COMMENT '',
Grade TINYINT NULL COMMENT '成绩',
primary key (sno,cno)
)COMMENT '成绩表';
INSERT INTO ScoreInfo
VALUES
('181001','1004','95'),
('181002','1004','85'),
('181003','1004','91'),
('181001','4002','93'),
('181002','4002','76'),
('181004','4002','88'),
('181001','8001','94'),
('181002','8001','89'),
('181003','8001','86'),
('184001','8001','85'),
('184002','8001',NULL),
('184004','8001','94'),
('181001','1201','92'),
('181002','1201','78'),
('181003','1201','94'),
('184001','1201','85'),
('184002','1201','79'),
('184004','1201','94');
#查看数据内容/记录
SELECT * FROM ScoreInfo;
#表4.12
USE stuexpm;
CREATE TABLE TeacherInfo
(
TeacherID VARCHAR(6) NOT NULL PRIMARY KEY COMMENT '教师编号',
TeacherName VARCHAR(8) NOT NULL COMMENT '姓名',
TeacherSex VARCHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
TeacherBirthday DATE NOT NULL COMMENT '出生日期',
School VARCHAR(12) NULL COMMENT '学院',
Address VARCHAR(20) NULL COMMENT '地址'
)COMMENT '教师表';
INSERT INTO TeacherInfo
VALUES
('100005','李慧强','男','1968-09-25','计算机学院','北京市海淀区'),
('100024','刘松','男','1976-02-17','计算机学院','北京市海淀区'),
('400021','陈霞飞','女','1975-12-07','通信学院','上海市黄埔区'),
('800004','刘泉明','男','1978-08-16','数学学院','广州市越秀区'),
('120007','张莉','女','1982-03-21','外国语学院','成都市锦江区');
#查看数据内容/记录
SELECT * FROM TeacherInfo;
----------------------------------------------------------分割线---------------------------------------------------------------------
学生信息数据库(stusys)的表结构和样本数据。
学生信息数据库(stusys)中的表--学生表(student)、课程表(course)、成绩表(score)、教师表(teacher)、讲课表(lecture)的表结构和样本数据,介绍如下。
1.学生信息数据库(stusys)的表结构
数据库 stusys 的表结构见表 B. 1~表 B. 5。
#课本P306-307
CREATE DATABASE stusys;
USE stusys;
CREATE TABLE student
(
sno CHAR(6) NOT NULL PRIMARY KEY COMMENT '学号',
sname CHAR(8) NOT NULL COMMENT '姓名',
ssex CHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
sbirthday DATE NOT NULL COMMENT '出生日期',
speciality CHAR(12) NULL COMMENT '专业',
tc TINYINT NULL COMMENT '总学分'
)COMMENT '学生表';
----------------------------------------------------------分割线---------------------------------------------------------------------
USE stusys;
CREATE TABLE course
(
cno CHAR(4) NOT NULL PRIMARY KEY COMMENT '课程号',
cname CHAR(16) NOT NULL COMMENT '课程名',
credit TINYINT NULL COMMENT '学分'
)COMMENT '课程表';
----------------------------------------------------------分割线--------------------------------------------------------------------
USE stusys;
CREATE TABLE score
(
sno CHAR(6) NOT NULL COMMENT '学号',
cno CHAR(4) NOT NULL COMMENT '课程号',
grade TINYINT NULL COMMENT '成绩'
)COMMENT '成绩表';
----------------------------------------------------------分割线--------------------------------------------------------------------
USE stusys;
CREATE TABLE teacher
(
tno CHAR(6) NOT NULL PRIMARY KEY COMMENT '教师编号',
tname CHAR(8) NOT NULL COMMENT '姓名',
tsex CHAR(2) NOT NULL DEFAULT '男' COMMENT '性别',
tbirthday DATE NOT NULL COMMENT '出生日期',
title CHAR(12) NULL COMMENT '职称',
tschool CHAR(12) NULL COMMENT '学院'
)COMMENT '教师表';
----------------------------------------------------------分割线--------------------------------------------------------------------
USE stusys;
CREATE TABLE lecture
(
tno CHAR(6) NOT NULL PRIMARY KEY COMMENT '教师编号',
cno CHAR(4) NOT NULL COMMENT '课程号',
location CHAR(10) NULL COMMENT '上课地点'
)COMMENT '讲课表';
----------------------------------------------------------分割线--------------------------------------------------------------------
2.学生信息数据库(stusys)的样本数据
数据库 stusys 的样本数据见表 B.6~表 B.10。
insert into student
values
('191001','刘清泉','男','1998-06-21','计算机','52'),
('191002','张慧玲','女','1999-11-07','计算机','50'),
('191003','冯涛','男','1999-08-12','计算机','52'),
('196001','董明霞','女','1999-05-02','通信',50),
('196002','李茜','女','1998-07-25','通信','48'),
('196004','周俊文','男','1998-03-10','通信','52');
select * from student;
----------------------------------------------------------分割线--------------------------------------------------------------------
insert into course
values
('1004','数据库系统','4'),
('1025','物联网技术','3'),
('4002','数字电路','3'),
('8001','高等数学','4'),
('1201','英语','4');
select * from course;
----------------------------------------------------------分割线--------------------------------------------------------------------
insert into score
values
('191001','1004','95'),
('191002','1004','87'),
('191003','1004','93'),
('196001','4002','90'),
('196002','4002','79'),
('196004','4002','88'),
('191001','8001','92'),
('191002','8001','88'),
('191003','8001','84'),
('196001','8001','87'),
('196002','8001',null),
('196004','8001','94'),
('191001','1201','92'),
('191002','1201','78'),
('191003','1201','84'),
('196002','1201','76'),
('196004','1201','92');
select * from score;
----------------------------------------------------------分割线--------------------------------------------------------------------
insert into teacher
values
('100006','何艺杰','男','1970-06-23','教授','计算机学院'),
('100023','孙浩然','男','1979-04-19','教授','计算机学院'),
('400017','李亚兰','女','1988-11-04','讲师','通信学院'),
('800028','袁万明','男','1978-08-15','副教授','数学学院'),
('120046','刘颖','女','1976-12-15','副教授','外国语学院');
select * from teacher;
----------------------------------------------------------分割线--------------------------------------------------------------------
insert into lecture
values
('100006','1004','2-311'),
('400017','4002','1-106'),
('800028','8001','6-104'),
('120046','1201','6-215');
select * from lecture;
————————————————