以学生管理信息系统数据库stuMIS为例进行操作。
一、创建数据库及数据表
1.创建数据库
create database stuMIS
use stuMIS
2.创建数据表department
create table department(
departid int primary key,
departname varchar(20) not null unique,
office varchar(20),
tel varchar(14),
chairman varchar(20)
)engine=innodb;
engine=innodb——MySQL版本较新的无需写入命令。下同,不再赘述。
3.创建数据表class
create table class(
classid varchar(10) primary key,
departid int,
classname varchar(40) not null unique,
monitor varchar(10),
constraint fk_departid foreign key(departid) references department(departid)
)engine=innodb;
4.创建数据表course
create table course(
cid varchar(10) primary key,
cname varchar(40) not null,
teacher varchar(10),
ctpye varchar(20),
ctime varchar(30),
smallnum int,
registernum int
)engine=innodb;
注意:由于monitor如果作为外键,会造成class和student互为父子表,添加、删除、修改会造成很多限制。故此处去除掉monitor的外键约束。但monitor如何保障其必须是现有的学生?可以从程序端来进行限制。
5.创建数据表student
create table student(
stuid varchar(10) primary key,
stuname varchar(10) not null,
stusex varchar(2) default '男',
stupwd varchar(7) not null,
stuage int,
classid varchar(10),
addr varchar(40),
constraint fk_classid foreign key(classid) references class(classid)
)engine=innodb;
6.创建数据表score
create table score(
stuid varchar(10),
cid varchar(10),
score int,
primary key(stuid,cid),
constraint fk_stuid foreign key(stuid) references student(stuid),
constraint fk_cid foreign key(cid) references course(cid)
)engine=innodb;
二、插入数据
要求,几种插入方式都试一试。
1.插入department数据表数据
1,'计算机系','a502','4040','孙丰伟'
2,'经济管理系','a305','4024','李红艳'
3,'水晶石','a218','4012','吴可鹏'
4,'通信系','a308','4089','张楠'
5,'机电系','a216','4033','吴宝玉'
6,'建筑系','a212','4036','包伟丽'
命令:
|
2.插入class数据表数据
注:样例数据提供的monitor就是学生姓名
'15111',1,'软件中软一班' ,'王波'
'15112',1,'软件中软二班','江河'
'15113',1,'软件中软三班' ,'任永琼'
'15114',1,'软件普软四班' ,'张泽星'
'15121',1,'网络一班','张丽'
'15231',2,'物流一班','张松'
'15611',6,'桥梁一班','张敏芳'
'15321',3,'通信一班','沈佳萍'
'15411',4,'动漫一班','谢嘉'
'15511',5,'汽修一班','李平'
'15221',1,'电商一班','李世群'
命令:
|
3.插入student数据表数据
('1511101','何英国','女','123456',17,'15111','长春'),
('1511102','方振','男','123456',16,'15111', '长春') ,
('1511103','雷英飞','男','abc123',18,'15111','四平'),
('1511104','金丹','女','765123',20,'15111','松原'),
('1511105','秦淼英','女','123',21,'15111','延吉'),
('1511201','奉雷刚','男','1511201',19,'15112','四平'),
('1511202','杨卫红','女','1511202',17,'15112','延吉'),
('1511203','周晓影','女','1511203',18,'15112','白山'),
('1511204','张义军','男','1511204',20,'15112','松原'),
('1511205','朱寒松','男','1511205',21,'15112','长春'),
('1523101','罗峰','男','1523101',17,'15231','延吉'),
('1523102','宁梦涵','女','1523102',18,'15231','延吉'),
('1523103','谭倩倩','女','1523103',18,'15231','长春'),
('1523104','谭倩倩','女','1523104',21,'15231','长春'),
('1523105','谭倩倩','女','1523105',21,'15231','松原'),
('1551101','蔡诗川','女','1511201',18,'15511','白山'),
('1551102','陈露玲','女','1511202',18,'15511','吉林'),
('1551103','程英','女','1511203',18,'15511','吉林'),
('1551104','王作杰','男','1511204',19,'15511','长春'),
('1551105','艾清','男','1511205',19,'15511','长春'),
('1522101','董泽琼','女','123456',20,'15221','吉林'),
('1522102','任海文','男','123456',17,'15221','吉林'),
('1522103','孙雪琴','女','abc123',17,'15221','松原'),
('1522104','李爱华','女','765123',18,'15221','长春'),
('1522105','何茂林','男','123',18,'15221','吉林')
命令:
|
4.插入course数据表数据
('10101','工程测量','孙瑞晨','工程技术','周一3-4节',20,16),
('10103','桥梁工程','黄金晓','工程技术','周一1-2节',15,12),
('10107','道路建筑材料','陈婷婷','工程技术','周二3-4节',20,17),
('20103','仓储与配送管理','陈科','管理','周二5-6节',15,26),
('20106','物流管理','严莉莉','管理','周一3-4节',30,36),
('30106','计算机应用基础','胡灵','计算机','周三7-8节',20,31),
('30107','计算机组装与维护','盛利','计算机','周三3-4节',30,36),
('30108','电子电工技术','吴晓红','计算机','周四1-2节',20,28),
('30214','数据库技术及应用','曾飞燕','计算机','周四3-4节',30,33),
('40103','通信设备管理','丁亮','通信','周五1-2节',30,37),
('51204','动画设计','李明华','动漫','周五3-4节',20,28),
('61008','机械制图','张世清','建筑','周五3-4节',20,28)
命令:
|
5.插入score数据表数据
('1511101','30106',89),('1511102','30106',96),
('1511103','30106',59),('1511104','30106',65),
('1511105','30106',88),('1511201','30106',99),
('1511202','30106',55),('1511203','30106',67),
('1511204','30106',65),('1511205','30106',78),
('1511101','30214',89),('1511102','30214',96),
('1511103','30214',59),('1511104','30214',65),
('1511105','30214',88),('1511201','30214',79),
('1511202','30214',45),('1511203','30214',87),
('1511204','30214',95),('1523101','20106',88),
('1523102','20106',90),('1523103','20106',95),
('1523104','20106',66),('1523105','20106',53),
('1522101','20103',63),('1522102','20103',20),
('1522103','20103',98),('1522104','20103',85),
('1522105','20103',65)
命令:
|
三、修改数据
1.修改学号1523103的学生年龄为19
命令:
|
2.将计算机系修改为信息工程学院,将通信系改为电气工程学院
命令:
|
3.将61008课程最少人数改为30,注册人数改为35
命令:
|
4.将机电系(部门号为5)、汽修一班的班长改为“何英国”
命令:
|
5、将1511202选修的30106课程成绩提高20%
命令:
四、完成下面的简单查询
1.查询所有学生的基本信息(student表所有列)
命令:
|
2.查询所有系部的名称和联系电话
命令:
|
3.查询所有课程名称和该课程的授课教师信息
命令:
|
4.查询所有班级名称和班长信息
命令:
|
5.查询所有学生的姓名、年龄和家庭住址,表头用汉字显示(使用别名)
命令:
|
6.查询student表中的班级编号(要求去掉重复)
命令:
|
7.查询有学生选课的课程号(注意,不是查看所有课程的课程号,而是有人选修了的课程的课程号)
命令:
|