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');
可以根据个人操作习惯进行多个同时更改
第一章练习到此结束,第二章练习过几天有待更新.....