mysql题

  1. 考核内容
    7.1某电商网商品库存管理系统数据的查询操作
    7.1.1商品管理
    1)每件商品的单件利润是多少?
    【代码7-1-1】查询每件商品的单件利润
    select name as ‘商品名称’,(outprice-inprice) as ‘商品利润’ from tbl_commodity;
    上述代码执行效果如下图:

图1 查询数据

2)查询进价大于等于10的商品信息
【代码7-1-2】查询进价大于等于10的商品信息
Select name ,inprice from tbl_commodity where inprice >=10;
上述代码执行效果如下图:

图1 查询数据
3)查询进价小于10的商品信息
【代码7-1-2】查询进价小于10的商品信息
Select name ,inprice from tbl_commodity where inprice <=10;
上述代码执行效果如下图:

图1 查询数据

4)查询进价小于30并且商品类型为1的商品信息
【代码7-1-2】查询进价小于30并且商品类型为1的商品信息
select name , inprice, type from tbl_commodity where inprice < 30 and type = 1;
上述代码执行效果如下图:

图1 查询数据

5)查询进价小于10或商品类型为1的商品信息
【代码7-1-2】查询进价小于10或商品类型为1的商品信息
Select name , inprice, type FROM tbl_commodity where inprice < 10 or type = 1;
上述代码执行效果如下图:

图1 查询数据
6)查询进价在10-20之间
【代码7-1-2】查询进价在10-20之间
select name,type from tbl_commodity where inprice between 10 and 20;
上述代码执行效果如下图:

图1 查询数据

7)查询商品售价为空的商品信息
【代码7-1-2】查询商品售价为空的商品信息
Select name from tbl_commodity where outprice is null;
上述代码执行效果如下图:

图1 查询数据

8)查询商品进价为10或20或30的商品信息
【代码7-1-2】查询商品进价为10或20或30的商品信息
select * from tbl_commodity where inprice = 10 or inprice = 20 or inprice = 30
;
上述代码执行效果如下图:

图1 查询数据

9)商品名称包括’玩具’的所有商品
【代码7-1-2】商品名称包括’玩具’的所有商品
Select name from tbl_commodity where name like ‘%玩具%’;
上述代码执行效果如下图:

图1 查询数据

10)根据商品进价从低到高排序输出
【代码7-1-2】根据商品进价从低到高排序输出
Select name , inprice from tbl_commodity order by inprice asc;
上述代码执行效果如下图:

图1 查询数据

11)根据商品售价从高到低排序输出
【代码7-1-2】根据商品售价从高到低排序输出
Select name , outprice from tbl_commodity order by outprice desc;
上述代码执行效果如下图:

图1 查询数据

12)商品售价排行榜前5名
【代码7-1-2】商品售价排行榜前5名
select name,outprice from tbl_commodity order by outprice desc limit 5;
上述代码执行效果如下图:

图1 查询数据

13)商品售价排行榜第6-10名
【代码7-1-2】商品售价排行榜第6-10名
Select name , outprice from tbl_commodity order by outprice desc limit 6, 10;
上述代码执行效果如下图:

图1 查询数据

14)计算每种商品的平均进价
【代码7-1-2】计算每种商品的平均进价
select type, avg( inprice ) from tbl_commodity group by type;
上述代码执行效果如下图:

图1 查询数据

7.1.2客户管理
15)根据客户姓名查询客户信息tbl_teacher
【代码7-1-2】根据客户姓名(刘德华)查询客户信息
select *from tbl_customer where name=“刘德华”;
上述代码执行效果如下图:

图1 查询数据

16)根据客户手机号查询客户信息
【代码7-1-2】根据客户手机号(123)查询客户信息
select * from tbl_customer where phone=‘123’;
上述代码执行效果如下图:

图1 查询数据

17)查询出一共有多少男性客户
【代码7-1-2】查询出一共有多少男性客户
select count( name)as 男性用户 from tbl_customer WHERE gender = 1;
上述代码执行效果如下图:

图1 查询数据

18)查询出一共有多少女性客户
【代码7-1-2】查询出一共有多少女性客户
select count( name )as 女性用户 from tbl_customer WHERE gender = 0;
上述代码执行效果如下图:

图1 查询数据
7.1.3订单管理
19)使用子查询来获取指定客户买了什么
【代码7-1-2】使用子查询来获取指定客户(刘德华)买了什么
SELECT NAME
FROM
tbl_commodity
WHERE
id IN (
SELECT
cid
FROM
tbl_order
WHERE
cuid in ( SELECT id FROM tbl_customer WHERE NAME = ‘刘德华’ ));
上述代码执行效果如下图:

图1 查询数据

20)使用连接查来获取指定客户买了什么
【代码7-1-2】使用连接查来获取指定客户(刘德华)买了什么
SELECT c.name FROM tbl_commodity as c INNER JOIN ( SELECT o.cid as id from tbl_order as o INNER join tbl_customer as cu on o.cuid=cu.id WHERE cu.name =‘刘德华’ ) as a on a.id=c.id;
上述代码执行效果如下图:

图1 查询数据

7.2某中学在线考试系统数据的查询操作
7.2.1学生管理
1)根据姓名查询学生信息(4分)
【代码7-1-2】根据姓名(jack)查询学生信息
select * from tbl_student where sname=‘Jack’;
上述代码执行效果如下图:

图1 查询数据
2)查询年龄小于30岁的学生信息(4分)
【代码7-1-2】查询年龄小于30岁的学生信息
select * from tbl_student where sage<30;
上述代码执行效果如下图:

图1 查询数据
3)查询年龄在25至30之间的学生信息(4分)
【代码7-1-2】查询年龄在25至30之间的学生信息
select * from tbl_student where sage BETWEEN 25 and 30;
上述代码执行效果如下图:

图1 查询数据
4)按照年龄从大到小顺序输出学生信息(4分)
【代码7-1-2】按照年龄从大到小顺序输出学生信息
Select * from tbl_student order by sage desc;
上述代码执行效果如下图:

图1 查询数据
5)查询年龄最小的学生信息(4分)
【代码7-1-2】查询年龄最小的学生信息
select * from tbl_student order by sage asc limit 1;
上述代码执行效果如下图:

图1 查询数据

7.2.2老师管理
6)查询姓“刘”“张”的老师的个数(4分)
【代码7-1-2】查询姓“刘”“张”的老师的个数
select count(*) from tbl_teacher where tname like ‘刘%’ or tname like ‘张%’;
上述代码执行效果如下图:

图1 查询数据
7)查询老师的总数(4分)
【代码7-1-2】查询老师的总数
SELECT count( tid ) FROM tbl_teacher ORDER BY tid;
上述代码执行效果如下图:

图1 查询数据
8)查询每个老师的授课数目(4分)
【代码7-1-2】查询每个老师的授课数目
SELECT a.tname ,count(b.cid) as 科目数 FROM tbl_teacher a,tbl_course b WHERE a.tid=b.tid GROUP BY a.tname;
上述代码执行效果如下图:

图1 查询数据
9)查询每个老师有多少学生(4分)
【代码7-1-2】查询每个老师有多少学生
SELECT a.tname,COUNT(c.sid) as 学生数 FROM tbl_teacher a,tbl_course b,tbl_sc c WHERE a.tid=b.tid and b.cid=c.cid GROUP BY a.tname;
上述代码执行效果如下图:

图1 查询数据

7.2.3科目管理
10)根据科目名称查询科目信息(4分)
【代码7-1-2】根据科目名称(体育)查询科目信息
select * from tbl_course where cname=‘体育’;

上述代码执行效果如下图:

图1 查询数据
11)查询每个科目对应的老师名字(4分)
【代码7-1-2】查询每个科目对应的老师名字
SELECT a.cid,a.cname,b.tname FROM tbl_course a,tbl_teacher b
WHERE a.tid=b.tid ;

上述代码执行效果如下图:

图1 查询数据
12)查询每个科目有多少学生在学(4分)
【代码7-1-2】查询每个科目有多少学生在学
Select t1.cid,t1.cname,t2.n from tbl_course t1 join (select cid,count(*) as n from tbl_sc group by cid )t2
On
T1.cid = t2.cid;

上述代码执行效果如下图:

图1 查询数据
13)查询科目名称中带有’s’关键字的科目信息(4分)
【代码7-1-2】查询科目名称中带有’语’关键字的科目信息
Select * from tbl_course where cname like ‘%语%’;

上述代码执行效果如下图:

图1 查询数据
14)查询不止1个老师教的科目(4分)
【代码7-1-2】查询不止1个老师教的科目

SELECT cname FROM tbl_course WHERE cid in(
SELECT cid FROM tbl_course HAVING count(cname)>1);
上述代码执行效果如下图:

图1 查询数据

7.2.4成绩管理

15)查询平均成绩大于60分的同学的学号和平均成绩(5分)
【代码7-1-2】查询平均成绩大于60分的同学的学号和平均成绩
SELECT sid, avg( score ) FROM tbl_sc GROUP BY sid HAVING avg( score )> 60;
上述代码执行效果如下图:

图1 查询数据
16)查询所有同学的学号、姓名、选课数、总成绩 (10分)
【代码7-1-2】查询所有同学的学号、姓名、选课数、总成绩

上述代码执行效果如下图:

图1 查询数据
17)查询所有课程成绩小于60分的同学的学号、姓名(5分)
【代码7-1-2】查询所有课程成绩小于60分的同学的学号、姓名
Select a.sid,a.sname from tbl_student a,tbl_sc b where a.sid=b.sid and b.score<60;
上述代码执行效果如下图:

图1 查询数据
18)查询不同老师所教不同课程平均分从高到低显示(10分)
【代码7-1-2】查询不同老师所教不同课程平均分从高到低显示

上述代码执行效果如下图:

### MySQL 练习汇总 以下是与 MySQL 相关的一些常见练习及其解答: #### 目一:查询选修了课程编号为 `course_id=2` 的学生 ID 列 可以通过子查询实现此功能。具体 SQL 如下所示: ```sql SELECT student_id FROM score WHERE course_id = 2; ``` 上述语句通过条件过滤获取指定课程的学生列[^1]。 --- #### 目二:查询学过“大牛”老师所教授的全部课程的同学姓名 该目涉及多张之间的关联操作,需利用嵌套子查询完成逻辑筛选。SQL 实现如下: ```sql SELECT student.name FROM score INNER JOIN student ON score.student_id = student.id WHERE score.course_id IN ( SELECT course.id FROM course INNER JOIN teacher ON course.teacher_id = teacher.id WHERE teacher.name = '大牛' ) GROUP BY score.student_id; ``` 这里的关键在于使用 `IN` 子句匹配教师授课情况,并结合分组函数确保每位同学满足条件[^2]。 --- #### 目三:计算两位日期间的年份差异 MySQL 提供内置函数 `TIMESTAMPDIFF()` 来处理时间间隔运算。例如求解入职时间和当前时刻相差多少整年数可写成: ```sql SELECT TIMESTAMPDIFF(YEAR, hiredate, NOW()) AS years_diff FROM employees; ``` 其中参数依次代单位类型(此处设为 YEAR)、起始日期以及终止日期[^3]。 --- #### 目四:展示全体员工对的部门名与其薪资水平 这是典型的跨联结案例之一,借助标准连接语法即可达成目标。示范代码片段如下: ```sql SELECT e.ename, d.dname, e.sal FROM emp e JOIN dept d ON e.deptno = d.deptno; ``` 以上脚本将雇员基本信息同其所属机构信息相融合呈现出来。 --- ### 注意事项 对于复杂查询建议先理清业务需求再逐步构建达式结构;同时注意字段命名冲突规避问以免影响最终结果准确性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值