MySQL上机练习第一章
上机目的
- 熟悉Mysql软件的安装;
2.熟悉数据库、数据表的代码创建;
上机内容
写出Teach数据库中5个关系模式,并标注主键外键
S(学生关系)
Sno 学号 |
Sn 姓名 |
Sex 性别 |
Age 年龄 |
Dept 系别 |
S1 |
赵亦 |
女 |
17 |
计算机 |
S2 |
钱尔 |
男 |
18 |
信息 |
S3 |
孙珊 |
女 |
20 |
信息 |
S4 |
李思 |
男 |
21 |
自动化 |
S5 |
周武 |
男 |
19 |
计算机 |
S6 |
吴丽 |
女 |
20 |
自动化 |
C(课程关系)
Cno 课程号 |
Cn 课程名 |
Ct 课时 |
C1 |
程序设计 |
60 |
C2 |
微机原理 |
80 |
C3 |
数字逻辑 |
60 |
C4 |
数据结构 |
80 |
C5 |
数据库原理 |
60 |
C6 |
编译原理 |
54 |
C7 |
操作系统 |
60 |
T(教师关系)
Tno 教师号 |
Tn 姓名 |
Sex 性别 |
Age 年龄 |
Prof 职称 |
Sal 工资 |
Comm 岗津 |
Dept 系别 |
T1 |
李力 |
男 |
47 |
教授 |
1500 |
3000 |
计算机 |
T2 |
王平 |
女 |
28 |
讲师 |
800 |
1200 |
信息 |
T3 |
刘伟 |
男 |
30 |
讲师 |
900 |
1200 |
计算机 |
T4 |
张雪 |
女 |
51 |
教授 |
1600 |
3000 |
自动化 |
T5 |
张兰 |
女 |
39 |
副教授 |
1300 |
2000 |
信息 |
SC(选课关系)
Sno 学号 |
Cno 课程号 |
Score 成绩 |
S1 |
C1 |
90 |
S1 |
C2 |
85 |
S2 |
C4 |
70 |
S2 |
C5 |
57 |
S2 |
C6 |
80 |
S2 |
C7 |
|
S3 |
C1 |
75 |
S3 |
C2 |
70 |
S3 |
C4 |
85 |
S4 |
C1 |
93 |
S4 |
C2 |
85 |
S4 |
C3 |
83 |
S5 |
C2 |
89 |
TC(授课关系)
Tno 教师号 |
Cno 课程号 |
T1 |
C1 |
T1 |
C4 |
T2 |
C5 |
T3 |
C1 |
T3 |
C5 |
T4 |
C2 |
T4 |
C3 |
T5 |
C5 |
T5 |
C7 |
S表:
列名 |
含义 |
数据类型 |
是否可空 |
主外键 |
SNo |
学生学号 |
char(10) |
N |
PK |
SN |
学生姓名 |
varchar(20) |
N |
|
Sex |
性别 |
char(2) |
Y |
|
Age |
年龄 |
int |
Y |
|
Dept |
所在系别 |
varchar(20) |
Y |
|
C表:
列名 |
含义 |
数据类型 |
是否可空 |
主外键 |
CNo |
课程代码 |
char(10) |
N |
PK |
CN |
课程名称 |
varchar(10) |
N |
|
CT |
课时 |
int |
Y |
|
T表:
列名 |
含义 |
数据类型 |
是否可空 |
主外键 |
TNo |
教师号 |
char(10) |
N |
PK |
TN |
教师姓名 |
varchar(20) |
N |
|
Sex |
性别 |
char(2) |
Y |
|
Age |
年龄 |
int |
Y |
|
Prof |
职称 |
char(10) |
Y |
|
Sal |
工资 |
int |
Y |
|
Comm |
岗位津贴 |
int |
Y |
|
Dept |
系别 |
varchar(20) |
Y |
|
SC表:
列名 |
含义 |
数据类型 |
是否可空 |
主外键 |
SNo |
学号 |
char(10) |
N |
PK,FK |
CNo |
课程代码 |
char(10) |
N |
PK,FK |
Score |
成绩 |
decimal(5,2) |
Y |
|
TC表:
列名 |
含义 |
数据类型 |
是否可空 |
主外键 |
TNo |
教师号 |
char(10) |
N |
Pk,FK |
CNo |
课程代码 |
char(10) |
N |
PK,FK |
1.创建数据库、使用数据库
CREATE DATABASE IF NOT EXISTS Teach DEFAULT CHARACTER SET utf8;
USE Teach;
2.创建S表
CREATE TABLE IF NOT EXISTS S(
Sno CHAR(10) PRIMARY KEY,
Sn VARCHAR(20) NOT NULL,
Sex CHAR(2),
Age int,
Dept VARCHAR(20)
)DEFAULT CHARSET=utf8;
3.创建C表
CREATE TABLE IF NOT EXISTS C(
CNo CHAR(10) PRIMARY KEY,
CN VARCHAR(10) NOT NULL,
CT INT
)DEFAULT CHARSET=utf8;
4.创建T表
CREATE TABLE IF NOT EXISTS T(
TNo char(10) PRIMARY KEY,
TN VARCHAR(20) NOT NULL,
Sex char(2),
Age INT,
Prof char(10),
Sal int,
Comm int,
Dept VARCHAR(20)
)DEFAULT CHARSET=utf8;
5.S,C,T表填充数据
INSERT INTO S(Sno,Sn,Sex,Age,Dept)
VALUES
('S1','赵亦','女',17,'计算机'),
('S2','钱尔','男',18,'信息'),
('S3','孙珊','女',20,'信息'),
('S4','李思','男',21,'自动化'),
('S5','周武','男',19,'计算机'),
('S6','吴丽','女',20,'自动化');
INSERT INTO C(Cno,Cn,Ct)
VALUES
('C1','程序设计',60),
('C2','微机原理',80),
('C3','数字逻辑',60),
('C4','数据结构',80),
('C5','数据库原理',60),
('C6','编译原理',54),
('C7','操作系统',60);
INSERT INTO T(Tno,Tn,Sex,Age,Prof,Sal,Comm,Dept)
VALUES
('T1','李力','男',47,'教授',1500,3000,'计算机'),
('T2','王平','女',28,'讲师',800,1200,'信息'),
('T3','刘伟','男',30,'讲师',900,1200,'计算机'),
('T4','张雪','女',51,'教授',1600,3000,'自动化'),
('T5','张兰','女',39,'副教授',1300,2000,'信息');
6.创建SC表
CREATE TABLE IF NOT EXISTS SC(
Sno CHAR(10),
CNo CHAR(10),
Score decimal(5,2),
PRIMARY KEY(Sno,CNo)
)DEFAULT CHARSET=utf8;
7.SC表填充数据
INSERT INTO SC(Sno,CNo,Score)
VALUES
('S1','C1',90),
('S1','C2',85),
('S2','C4',70),
('S2','C5',57),
('S2','C6',80),
('S2','C7',NULL),
('S3','C1',75),
('S3','C2',70),
('S3','C4',85),
('S4','C1',93),
('S4','C2',85),
('S4','C3',83),
('S5','C2',89);
8.创建TC表
CREATE TABLE IF NOT EXISTS TC(
TNo CHAR(10),
CNo CHAR(10),
PRIMARY KEY(TNo,CNo)
)DEFAULT CHARSET=utf8;
9.TC表填充数据
INSERT INTO TC(TNo,CNo)
VALUES
('T1','C1'),
('T1','C4'),
('T2','C5'),
('T3','C1'),
('T3','C5'),
('T4','C2'),
('T4','C3'),
('T5','C5'),
('T5','C7');
10.使用SQL命令在学生信息表中添加 “Birthdary”字段,其数据类型为DATE,并放在“Age”字段的后面
ALTER TABLE S ADD Birthdary DATE;
ALTER TABLE S MODIFY Birthdary DATE AFTER Age;
11.更新S表中Birthdary的字段信息
UPDATE S
SET Birthdary=('1986-9-13')
WHERE Sno=('S1');
UPDATE S
SET Birthdary=('1984-2-23')
WHERE Sno=('S2');
UPDATE S
SET Birthdary=('1984-1-27')
WHERE Sno=('S3');
UPDATE S
SET Birthdary=('1986-9-10')
WHERE Sno=('S4');
UPDATE S
SET Birthdary=('1984-2-20')
WHERE Sno=('S5');
UPDATE S
SET Birthdary=('1984-3-20')
WHERE Sno=('S6');
可以根据个人操作习惯进行多个同时更改
第一章练习到此结束,第二章练习过几天有待更新.....