#创建?个库表
create table Student -- 学?表
(
Sno char(3) NOT NULL Primary key , -- 学号 ,设为主键,不允许空值
Sname char(8) NOT NULL, -- 学?姓名
Ssex char(2)NOT NULL, -- 学?性别
Sbirthday datetime, -- 学?出?年?
Class char(5) -- 学?所在班级
);
create table Teacher -- 教师表
(
Tno char(3)NOT NULL primary key, -- 教?编号设为主键
Tname char(4)NOT NULL, -- 教?姓名
Tsex char(2)NOT NULL, -- 教?性别
Tbirthday datetime, -- 教?出?年?
Prof char(6), -- 职称
Depart varchar(10)NOT NULL -- 教?所在部?
)
create table Course -- 课程表
(
Cno char(5) NOT NULL Primary key , -- 课程号设为主键
Cname varchar(10) NOT NULL, -- 课程名称
Tno char(3) NOT NULL references Teacher(Tno) -- 教?编号设为外键
)
create table Score -- 成绩表
(
Sno char(3) NOT NULL references Student(Sno), -- 学号设为外码
Cno char(5) NOT NULL references Course(Cno), -- 课程号设为外码
Degree Decimal(4,1), -- 成绩
primary key(Sno,Cno) -- 学号和课程号设为联合主键
)
insert into Student values(108,‘曾华‘,‘男‘,‘1977-09-01‘,‘95033‘);
insert into Student values(105,‘匡明‘,‘男‘,‘1975-10-02‘,‘95031‘);
insert into Student values(107,‘王丽‘,‘?‘,‘1976-01-23‘,‘95033‘);
insert into Student values(101,‘李军‘,‘男‘,‘1976-02-20‘,‘95033‘);
insert into Student values(109,‘王芳‘,‘?‘,‘1975-02-10‘,‘95031‘);
insert into Student values(103,‘陆君‘,‘男‘,‘1974-06-03‘,‘95031‘);
insert into Teacher values(804,‘李诚‘,‘男‘,‘1958-12-02‘,‘副教授‘,‘计算机系‘);
insert into Teacher values(856,‘张旭‘,‘男‘,‘1969-03-12‘,‘讲师‘,‘电??程系‘);
insert into Teacher values(825,‘王萍‘,‘?‘,‘1972-05-05‘,‘助教‘,‘计算机系‘) ;
insert into Teacher values(831,‘刘冰‘,‘?‘,‘1977-08-14‘,‘助教‘,‘电??程系‘);
insert into Course values(‘3-105‘,‘计算机导论‘,825);
insert into Course values(‘3-245‘,‘操作系统‘,804);
insert into Course values(‘6-166‘,‘数字电路‘,856);
insert into Course values(‘9-888‘,‘?等数学‘,831);
insert into Score values(103,‘3-245‘,86);
insert into Score values(105,‘3-245‘,75);
insert into Score values(109,‘3-245‘,68);
insert into Score values(103,‘3-105‘,92);
insert into Score values(105,‘3-105‘,88);
insert into Score values(109,‘3-105‘,76);
insert into Score values(101,‘3-105‘,64);
insert into Score values(107,‘3-105‘,91);
insert into Score values(108,‘3-105‘,78);
insert into Score values(101,‘6-166‘,85);
insert into Score values(107,‘6-166‘,79);
insert into Score values(108,‘6-166‘,81);
基础题:
-- 1、 查询Student表中的所有记录的Sname、Ssex和Class列。
select sname,ssex,class from student;
-- 2、 查询教师所有的单位即不重复的Depart列。
select depart,group_concat(tname) from teacher group by depart;
-- 3、 查询Student表的所有记录。
Select*fromstudent;
-- 4、 查询Score表中成绩在60到80之间的所有记录。
Select * from score where degree between 60 an 80;
-- 5、 查询Score表中成绩为85,86或88的记录。
Select * from score where degree in (85,86,88);
-- 6、 查询Student表中"95031"班或性别为"?"的同学记录。
Select * from student where class=’95031’ or ssex=’女’;
-- 7、 以Class降序查询Student表的所有记录。
Select * from student order by class desc;
-- 8、 以Cno升序、Degree降序查询Score表的所有记录。
Select * from score order by cno asc,degree desc;
-- 9、 查询"95031"班的学??数。
Select count(*) from student where class=’95031’
-- 10、 查询Score表中的最?分的学?学号和课程号。(?查询或者排序)
Select sno,cno from score where degree=(select Max(degree) from score);
-- 10.1 查询Score表中除了每?课程最?分的学?学号和课程号。(?查询或者排序)
Select sno,cno from score where degree not in (select Max(degree) from score group by cno);
拔?题:
-- 11、查询每?课的平均成绩。
-- 12、查询Score表中?少有5名学?选修的并以3开头的课程的平均分数。
-- 13、查询分数?于70,?于90的Sno列。
-- 14、查询所有学?的Sname、Cno和Degree列。
-- 15、查询所有学?的Sno、Cname和Degree列。
-- 16、查询所有学?的Sname、Cname和Degree列。
-- 17、查询"95033"班学?的平均分。