赞
踩
本文是由YuDrag独家创作的————————作业
如有错误之处,还请各位大佬指正,小弟课下之余将认真修改。感谢各位!!!
下次作业再见!!!
学生信息管理数据库:面对学生和教师信息进行存储和进行相关的操作
面对不同的用户对象,将存储的不同的信息,没有权限管理!!!
学生:学生的基础信息:姓名,性别,年龄,电话,班级以及选课信息
老师:老师的基础信息:姓名,性别,年龄,电话,以及教授科目
这里的学生与科目之间是一对多的关系,一个学生可以选择多个科目
老师和科目则是一对一的关系,一个老师教授一个科目
接下来进行ER图:
将ER图转化为关系模式:
学生(姓名,性别,学号,科目,班级,电话,年龄)
教师(姓名,性别,教师编号,电话,年龄,教授科目)
设计表格:
Student表
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
stu_num | int | 4 | 是 | 学生表主键 |
stu_name | varchar | 20(一个汉字三个字节) | 否 | 学生姓名 |
stu_gender | varchar | 4 | 否 | 学生性别 |
stu_cla | varchar | 20 | 否 | 学生班级 |
stu_tel | int | 4 | 否 | 学生电话 |
stu_age | int | 4 | 否 | 学生年龄 |
Teacher表
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
tea_num | int | 4 | 是 | 教师表主键 |
tea_name | varchar | 20 | 否 | 教师姓名 |
tea_gender | varchar | 4 | 否 | 教师性别 |
tea_tel | int | 4 | 否 | 教师电话 |
tea_age | int | 4 | 否 | 教师年龄 |
Course表
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
Cou_id | int | 4 | 是 | 主键 |
cou_name | varchar | 20 | 否 | 课程名称 |
tea_num | int | 4 | 否 | 教师编号 |
Score表
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
stu_num | varchar | 20 | 是 | 学生编号 |
tea_num | int | 4 | 否 | 教师编号 |
score | int | 4 | 否 | 分数 |
Pickcourse表:
字段名 | 数据类型 | 长度 | 是否主键 | 说明 |
Id | int | 4 | 是 | 主键 |
stu_id | int | 4 | 否 | 学生编号 |
cou_id | int | 4 | 否 | 课程编号 |
创建表格:
2.创建student表:
mysql> create table student(
-> stu_num int(4) primary key auto_increment,
-> stu_name varchar(20),
-> stu_gender varchar(4),
-> stu_age int(4)
-> stu_tel int(4),
-> stu_cla varchar(20)
2.创建teacher表:
mysql> create table teacher(
-> tea_num int(4),
-> tea_name varchar(20),
-> tea_gender varchar(4),
-> tea_tel int(4),
-> tea_age int(4),
mysql> ALTER TABLE teacher ADD PRIMARY KEY(tea_num);
3.创建course表:
mysql> create table course(
-> cou_name varchar(20),
-> tea_num int(4));
mysql> ALTER TABLE course add cou_id int(4) primary key FIRST;
4.创建score表:
mysql> create table score(
-> stu_num int(4),
-> tea_num int(4),
-> score int(4));
mysql> ALTER TABLE score ADD PRIMARY KEY(tea_num,stu_num);
插入数据:
1.向student表插入多条数据:
INSERT INTO student(stu_name,stu_gender,stu_age,stu_tel,stu_cla) VALUES('张一','男',18,12345678,'java'),('张二','男',19,123458,'c++'),('张三','男',20,1345678,'java'),('张四','女',22,125678,'java'),('张五','女',24,15678,'c++'),('张六','男',54,1234345678,'java'),('张七','男',43,1234538,'c++');
2.向course表插入多条数据:
mysql> INSERT INTO course(
-> cou_name,tea_num) values(
-> '数学',01),('语文',02),('英语',03);
3.向teacher表中插入多条数据:
mysql> INSERT INTO teacher(
-> tea_name,tea_gender,tea_tel,tea_age) values(
-> '数学老师','男','123',54),('语文老师','男','143',34),('英语老师','男','145',65);
4.向scores表中插入多条数据:
Insert into score values (1,1,78),(1,2,54),(1,3,70),(2,1,38),(2,2,8),(2,3,48),(3,1,98),(3,2,78),(3,3,68),(4,1,99),(4,2,78),(4,3,98),(5,1,28),(5,2,58),(5,3,58),(6,1,88),(6,2,74),(6,3,18),(7,3,34),
(7,2,72),(7,1,89);
基础的数据操作:
#5.1 查询学生所有信息
SELECT * FROM student;
#5.2 查询老师所有信息
SELECT * FROM teacher;
#5.3 查询选课了XX科目的学生信息
SELECT c.cou_name 科目, s.* FROM student s,pickcourse p,course c WHERE s.stu_num = p.stu_id AND p.cou_id = c.cou_id AND c.cou_id = 1;
#5.4 对应科目的老师信息
SELECT c.cou_name 科目,t.* FROM teacher t,course c WHERE t.tea_num = c.tea_num AND c.cou_id = 1;
#5.5 修改学生信息
UPDATE student SET stu_name = '张二二', stu_age = 45 WHERE stu_num = 2;
#5.6 删除学号为xx的学生信息
DELETE FROM student WHERE stu_num = 6;
#5.7 学号为xx的学生选择xx课程
SELECT p.cou_id 学科编号, c.cou_name 学科名称 FROM student s,pickcourse p,course c WHERE s.stu_num = 1 AND s.stu_num = p.stu_id AND p.cou_id = c.cou_id;
#5.8 查询年龄大于20岁的学生信息
SELECT student.* FROM student WHERE stu_age > 20;
#5.9 学号为xx的学生修改其电话号码
UPDATE student SET stu_tel = 1213234 WHERE stu_num = 2;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。