查询数据准备
CREATE TABLE Student(
sno VARCHAR(20) PRIMARY KEY,
sname VARCHAR(20) not null,
ssex VARCHAR(10) not null,
sbirthday datetime,
class VARCHAR(20)
);
CREATE TABLE Teacher(
tno VARCHAR(20) PRIMARY KEY,
tname VARCHAR(20) not null,
tsex VARCHAR(10) not null,
tbirthday datetime,
prof VARCHAR(20) not null,
depart VARCHAR(20) not null
);
CREATE TABLE Course(
cno VARCHAR(20) PRIMARY KEY,
cname VARCHAR(20) not null,
tno VARCHAR(20) not null,
foreign key(tno) references Teacher(tno)
);
CREATE TABLE Score(
sno VARCHAR(20) not null,
cno VARCHAR(20) not null,
degree decimal,
foreign key(sno) references Student(sno),
foreign key(cno) references Course(cno),
PRIMARY key(sno,cno)
);
INSERT INTO student VALUES('101','曾华','男','1977-09-01','95033');
INSERT INTO student VALUES('102','匡明','男','1975-10-02','95031');
INSERT INTO student VALUES('103','王丽','女','1976-01-23','95033');
INSERT INTO student VALUES('104','李军','男','1976-02-20','95033');
INSERT INTO student VALUES('105','王芳','女','1975-02-10','95031');
INSERT INTO student VALUES('106','陆军','男','1974-06-03','95031');
INSERT INTO student VALUES('107','王尼玛','男','1976-02-20','95033');
INSERT INTO student VALUES('108','张全蛋','男','1975-02-10','95031');
INSERT INTO student VALUES('109','赵铁柱','男','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('103','6-166','85');
INSERT INTO score VALUES('105','6-166','79');
INSERT INTO score VALUES('109','6-166','81');
查询练习
select * from student;
select sname,ssex,class from student;
select distinct depart from teacher;
select * from score where degree between 60 and 80;
select * from score where degree>60 and degree<80;
select * from score where degree in(85,86,88);
select * from student where class='95031' or ssex='女';
select * from student order by class desc;
select * from score order by cno asc,degree desc;
select count(*) from student where class='95031';
select sno,cno from score where degree=(select max(degree) from score);
select sno,cno from score order by degree desc limit 0,1;
select cno,avg(degree) from score group by cno;
select cno,avg(degree),count(*) from score group by cno having count(cno)>=2 and cno like '3%';
select sno,degree from score where degree>70 and degree<90;
select sno,degree from score where degree between 70 and 90;
select sname,cno,degree from student,score where student.sno = score.sno;
select sno,cname,degree from course,score where course.cno = score.cno;
select sname,cname,degree from student,course,score where student.sno=score.sno and course.cno = score.cno;
select cno,avg(degree) from score where sno in(select sno from student where class='95031') group by cno;
select * from score where cno='3-105' and degree>(select degree from score where sno='109' and cno='3-105');
select * from score where degree>(select degree from score where sno='109' and cno='3-105');
select sno,sname,sbirthday from student where year(sbirthday) in (select year(sbirthday) from student where sno in (108,101));
select * from score where cno=(select cno from course where tno=(select tno from teacher where tname='张旭'));
INSERT INTO score VALUES('101','3-105','90');
INSERT INTO score VALUES('102','3-105','91');
INSERT INTO score VALUES('104','3-105','89');
select tname from teacher where tno in(select tno from course where cno in(select cno from score group by cno having count(*)>5));
INSERT INTO student VALUES('110','张飞','男','1974-06-03','95038');
select * from student where class in('95031','95033');
select cno from score where degree>85 group by cno;
select * from score where cno in (select cno from course where tno in(select tno from teacher where depart='计算机系'));
select * from teacher where depart ='计算机系' and prof not in(select prof from teacher where depart='电子工程系')
union
select * from teacher where depart ='电子工程系' and prof not in(select prof from teacher where depart='计算机系');
select * from score where cno='3-105' and degree>any(select degree from score where cno='3-245') order by degree desc;
select * from score where cno='3-105' and degree>all(select degree from score where cno='3-245');
select tname as name,tsex as sex,tbirthday as birthday from teacher
union
select sname,ssex,sbirthday from student;
select tname as name,tsex as sex,tbirthday as birthday from teacher where tsex = '女'
union
select sname,ssex,sbirthday from student where ssex = '女';
select * from score a where degree< (select avg(degree) from score b where a.cno=b.cno);
select tname,depart from teacher where tno in(select tno from course);
select class from student where ssex='男' group by class having count(*)>1;
select * from student where sname not like '王%';
select sname,year(now())-year(sbirthday) as '年龄' from student;
select max(sbirthday) as 'MAX',min(sbirthday) as 'MIN' from student;
select * from student order by class desc,sbirthday asc;
select * from course where tno in (select tno from teacher where tsex = '男');
select * from score where degree =(select max(degree) from score);
select sname from student where ssex= (select ssex from student where sname='李军');
select sname from student where ssex= (select ssex from student where sname='李军') and class=(select class from student where sname='李军');
select * from score where cno=(select cno from course where cname ='计算机导论') and sno in(select sno from student where ssex = '男');
CREATE TABLE grade(
low INT(3),
upp INT(3),
grade CHAR(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');
select sno,cno,grade from score,grade where degree between low and upp;
CREATE TABLE person(
id int,
name VARCHAR(20),
cardId int
);
CREATE TABLE card(
id int,
name VARCHAR(20)
);
INSERT INTO card VALUES (1,'饭卡');
INSERT INTO card VALUES (2,'建行卡');
INSERT INTO card VALUES (3,'农行卡');
INSERT INTO card VALUES (4,'工商卡');
INSERT INTO card VALUES (5,'邮政卡');
INSERT INTO person VALUES (1,'张三',1);
INSERT INTO person VALUES (2,'李四',3);
INSERT INTO person VALUES (3,'王五',6);
select * from person inner join card on person.cardId = card.id;
select * from person left join card on person.cardId = card.id;
select * from person right join card on person.cardId = card.id;
select * from person left join card on person.cardId = card.id
union
select * from person right join card on person.cardId = card.id;
转载请注明原文地址:https://blackberry.8miu.com/read-143.html