目录
-
-
-
-
- 1、 王者(单表查询)
- 2、 名人名诗名句(多表查询)
- 3、 企业通讯录(多表查询)
- 4、订单信息(多表查询)
- 5、学生成绩系统
1、 王者(单表查询)

create table students(
studentNo int PRIMARY key auto_increment,
name varchar(225),
sex varchar(20),
hometown varchar(225),
class varchar(20),
card varchar(225)
)
insert into students VALUES
(1,'王昭君','女','北京','1班','3401254624521',20),
(2,'诸葛亮','男','上海','2班','3401252524521',18),
(3,'张飞','男','南京','3班','3401230124521',24),
(4,'白起','男','北京','4班','3401854624521',22),
(5,'大乔','女','天津','3班','3401821034521',19),
(6,'孙尚香','女','上海','1班','3401034624521',18),
(7,'百里守策','男','山西','4班','34018003521',20),
(8,'小乔','女',NULL,'3班',NULL,15),
(9,'百里守约','男','上海','4班',NULL,21),
(10,'妲己','女','广东','1班','3401854624521',26)

select * from students;

select * from students where name='张飞';

select * from students where class='1班' and hometown='上海';

select * from students where hometown = '北京' or hometown = '上海';

select age from students where name = '小乔';

select * from students where hometown != "北京";

select * from students where age < 20 and sex = '女';

select * from students where age between 18 and 20;

select sum(age) from students where hometown = '北京';

select avg(age) from students where sex = '女';

select * from students where name like '%白%';

- 查询所有学生信息,按年龄从大到小排序,年龄相同时,再按学号从小到大排序
select * from students order by age desc,studentNo asc;

select * from students where sex = "女" order by age desc limit 1;

select count(1),sex from students group by sex;

select count(1) from students where sex='男';

2、 名人名诗名句(多表查询)

select * from celebrity where ssex="男";

select c.sname from celebrity c inner join summary s on c.sid=s.sid inner join works w on s.wid=w.wid where w.wwork="静夜思";

select sname,sage from celebrity where sname="李白" or sname="杜甫";

select ssex,count(1) from celebrity group by ssex;

select w.wwork,s.sassess,c.sname from celebrity c inner join summary s on c.sid=s.sid inner join works w on s.wid=w.wid where c.sname="白居易";

select count(1) from celebrity where sage between 25 and 30;

select * from celebrity order by sid desc limit 2;

select c.sname,w.wwork,s.sassess from celebrity c inner join summary s on c.sid=s.sid inner join works w on s.wid=w.wid where c.sname="李白";

update works set wdynasty="北宋" where wwork="望岳";

insert into celebrity (sname,ssex,sage) values("王维","男",25);

3、 企业通讯录(多表查询)

select b1.linownid,b2.grpname,b3.linname,b3.mobileno from b1 inner join b3 on b1.lid=b3.lid inner join b2 on b2.gid=b3.gid where linownid="591122630";
4、订单信息(多表查询)

select * from user where sex="女";
- 请用sql查询当前所用用户下单信息(不展示未下单用户)
select * from user inner join ordero on user.userid=ordero.uid;
- 请用SQL查询出用户名为张三的所有订单(三标联查)
select * from user inner join ordero on user.userid=ordero.uid inner join reviews on ordero.orderid=reviews.oid where user.name="张三";
5、学生成绩系统

SELECT * FROM tb_student;
select id,name from tb_student limit 2,6;
select * from tb_student where name like "张%";
- 4)查询学生表中学号、姓名、分数编号,按照分数编号升序。
select * from tb_student stu inner join tb_scores sco on stu.sid=sco.id order by sco.id;
select sco.id,count(1) from tb_student stu inner join tb_scores sco on stu.sid=sco.id group by sco.id;
- 6)查询成绩表中分数80-100的成绩编号、分数、等级
select id,score,grade from tb_scores where score between 80 and 100;
select grade,min(score) from tb_scores group by grade;
- 8)查找出成绩在70-90之间的所有学生id、姓名、成绩、等级(内连接)
select stu.id,stu.name,sco.score,sco.grade from tb_student stu inner join tb_scores sco on stu.sid=sco.id where sco.score between 70 and 90;
- 9)查找出成绩最低的学生id、姓名及成绩(子查询)
select stu.id,stu.name,sco.score from tb_student stu inner join tb_scores sco on stu.sid=sco.id where stu.sid = (select id from tb_scores sco order by sco.score limit 1 );
select count(1) from tb_student where sid in (select id from tb_scores where grade="优秀")