设定有一个数据库,里面有4张表:mysql
表结构以下:sql
属性名 | 数据类型 | 含 义 |
---|---|---|
sno | int | 学号(主键) |
sname | varchar | 学生姓名 |
ssex | varchar | 学生性别 |
sbirthday | date | 学生出生年月 |
classid | varchar | 学生所在班级 |
属性名 | 数据类型 | 含 义 |
---|---|---|
cno | varchar | 课程号(主键) |
cname | varchar | 课程名称 |
tno | int | 教师编号(外键) |
属性名 | 数据类型 | 含 义 |
---|---|---|
sno | int | 学号(外键) |
cno | varchar | 课程号(外键) |
sdegree | float | 成绩 |
属性名 | 数据类型 | 含 义 |
---|---|---|
tno | int | 编号(主键) |
tname | varchar | 教师姓名 |
tsex | varchar | 教师性别 |
tbirthday | date | 教师出生年月 |
professional | varchar | 职称 |
department | varchar | 教师所在部门 |
先建立数据库mysql_test,而且设置这个数据库的编码字符集为utf-8。数据库
学生表:函数
create table student( sno int(10), sname varchar(10), ssex varchar(10), sbirthday date, classid varchar(10) ); alter table student add primary key(sno);
教师表:编码
create table teacher( tno int(10), tname varchar(12), tsex varchar(10), tbirthday date, professional varchar(20), department varchar(20) ); alter table teacher add primary key(tno);
课程表:spa
create table course( cno varchar(10), cname varchar(20), tno int(10) ); alter table course add primary key(cno); alter table course add constraint fk_course_teacher foreign key(tno) references teacher(tno);
成绩表:操作系统
create table score( sno int(10), cno varchar(10), sdegree float(5) ); alter table score add constraint fk_score_student foreign key(sno) references student(sno); alter table score add constraint fk_score_course foreign key(cno) references course(cno);
insert into student (sno,sname,ssex,sbirthday,classid) values(108,'曾华','男','1996-9-1','95033'),(105,'匡明','男','1995-10-2','95031'), (107,'王丽','女','1996-1-23','95033'),(101,'李军','男','1996-2-20','95033'), (109,'王芳','女','1995-2-10','95031'),(103,'陆君','男','1994-6-3','95031'); insert into teacher(tno,tname,tsex,tbirthday,professional,department) values(804,'李诚','男','1978-12-2','副教授','计算机系'), (856,'张旭','男','1979-3-12','讲师','电子工程系'), (825,'王萍','女','1982-5-5','助教','计算机系'), (831,'刘冰','女','1984-8-14','助教','电子工程系'); insert into course(cno,cname,tno) values('3-105','计算机导论',825),('3-245','操做系统',804), ('6-166','数字电路',856),('9-888','高等数学',831); insert into score(sno,cno,sdegree) values (103,'3-245',86), (105,'3-245',75), (109,'3-245',68), (103,'3-105',92), (105,'3-105',88), (109,'3-105',76), (101,'3-105',64), (107,'3-105',91), (108,'3-105',78), (101,'6-166',85), (107,'6-166',79), (108,'6-166',81);
学生表:3d
教师表:code
课程表:blog
成绩表:
注意:having 后面只能跟聚合函数,如avg、min、max、sum等聚合函数
CREATE TABLE GRADE(
LOW INT(3),
UPP INT(3),
RANK VARCHAR(1)
);
INSERT INTO GRADE VALUES(90,100,'A');
INSERT INTO GRADE VALUES(80,89,'B');
INSERT INTO GRADE VALUES(70,79,'C');
INSERT INTO GRADE VALUES(60,69,'D');
INSERT INTO GRADE VALUES(0,59,'E');
– 现查询全部同窗的学号,所选课程号和等级(RANK列)