mysql结合场景编写语句

目录

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

1、 王者(单表查询)

mysql结合场景编写语句_第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)

mysql结合场景编写语句_第2张图片

  • 查询所有学生的信息
select * from students;

mysql结合场景编写语句_第3张图片

  • 查询姓名是张飞的学生信息
select * from students where name='张飞';

mysql结合场景编写语句_第4张图片

  • 查询1班是上海的学生
select * from students where class='1班' and hometown='上海';

mysql结合场景编写语句_第5张图片

  • 查询家乡是北京或者上海的学生
select * from students where hometown = '北京' or hometown = '上海';

mysql结合场景编写语句_第6张图片

  • 查询小乔的年龄
select age from students where name = '小乔';

mysql结合场景编写语句_第7张图片

  • 查询家乡不在北京的学生
select * from students where hometown != "北京";

mysql结合场景编写语句_第8张图片

  • 查询年龄小于20的女同学
select * from students where age < 20 and sex = '女';

mysql结合场景编写语句_第9张图片

  • 查询年龄为18至20的学生
select * from students where age between 18 and 20;

mysql结合场景编写语句_第10张图片

  • 查询北京学生的年龄总和
select sum(age) from students where hometown = '北京';

mysql结合场景编写语句_第11张图片

  • 查询女生的平均年龄
select avg(age) from students where sex = '女';

mysql结合场景编写语句_第12张图片

  • 查询姓名包含白的学生
select * from students where name like '%白%';

mysql结合场景编写语句_第13张图片

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

mysql结合场景编写语句_第14张图片

  • 查询女生的最大年龄
select * from students where sex = "女" order by age desc limit 1;

mysql结合场景编写语句_第15张图片

  • 查询各种性别的人数
select count(1),sex from students group by sex;

mysql结合场景编写语句_第16张图片

  • 查询男生总人数
select count(1) from students where sex='男';

mysql结合场景编写语句_第17张图片

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

mysql结合场景编写语句_第18张图片

  • 查询名人表中性别是男的作者
select * from celebrity where ssex="男";

mysql结合场景编写语句_第19张图片

  • 查询静夜思的作者
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="杜甫";

mysql结合场景编写语句_第20张图片

  • 查询名人表中男女人数
select ssex,count(1) from celebrity group by ssex;

mysql结合场景编写语句_第21张图片

  • 查询白居易写的作品名称和对于的名句
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="白居易";

mysql结合场景编写语句_第22张图片

  • 查询年纪在25到30岁之间的个数
select count(1) from celebrity where sage between 25 and 30;

mysql结合场景编写语句_第23张图片

  • 查询名人表中最后两条数据信息
select * from celebrity order by sid desc limit 2;

mysql结合场景编写语句_第24张图片

  • 查询李白作品名称,名句和年纪
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="李白";

mysql结合场景编写语句_第25张图片

  • 将作品为望岳的朝代修改为北宋
update works set wdynasty="北宋" where wwork="望岳";

mysql结合场景编写语句_第26张图片

  • 新增名人表中一个作者王维,年纪25,性别男
insert into celebrity (sname,ssex,sage) values("王维","男",25);

mysql结合场景编写语句_第27张图片

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

mysql结合场景编写语句_第28张图片

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、订单信息(多表查询)

mysql结合场景编写语句_第29张图片

  • 请用sql查询平台上性别为女的用户信息
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、学生成绩系统

mysql结合场景编写语句_第30张图片

  • 1)查询学生表中所有学生记录。
SELECT * FROM tb_student;
  • 2)查询学生表中学号、姓名,显示3-8条记录
select id,name from tb_student limit 2,6;
  • 3)查询学生表中姓张的学生记录
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;
  • 5)查询学生表中各分数编号对应的人数
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;
  • 7)查询成绩表中各等级的最低分
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 );
  • 10)查找出优秀的学生的个数(内连接)
select count(1) from tb_student where sid in (select id from tb_scores where grade="优秀")

你可能感兴趣的:(软件测试,mysql)