You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid;
316
309
</string>
317
-
<key>table</key>
318
-
<string>tb_score</string>
319
310
<key>view</key>
320
311
<string>SP_VIEW_CUSTOMQUERY</string>
321
312
<key>windowVerticalDividerPosition</key>
@@ -330,6 +321,137 @@ select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stui
330
321
<array/>
331
322
<key>queryHistory</key>
332
323
<array>
324
+
<string>-- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
325
+
explain select stuname from tb_student where stuid=any(
326
+
select stuid from tb_score group by stuid having count(stuid)>2
327
+
)</string>
328
+
<string>explain select stuname from tb_student where stuid in (
329
+
select stuid from tb_score group by stuid having count(stuid)>2
330
+
)</string>
331
+
<string>select stuname from tb_student where stuid in (
332
+
select stuid from tb_score group by stuid having count(stuid)>2
333
+
)</string>
334
+
<string>select stuname from tb_student where stuid=(
335
+
select stuid from tb_score group by stuid having count(stuid)>2
336
+
)</string>
337
+
<string>-- 如果存在名为school的数据库就删除它
338
+
drop database if exists school;
339
+
-- 创建名为school的数据库并设置默认的字符集和排序方式
340
+
create database school default charset utf8 collate utf8_bin;
alter table tb_score add constraint uni_score_stuid_couid unique (stuid, couid);
400
+
-- 插入学院数据
401
+
insert into tb_college (collname, collmaster, collweb) values
402
+
('计算机学院', '左冷禅', 'http://www.abc.com'),
403
+
('外国语学院', '岳不群', 'http://www.xyz.com'),
404
+
('经济管理学院', '风清扬', 'http://www.foo.com');
405
+
-- 插入学生数据
406
+
insert into tb_student (stuid, stuname, stusex, stubirth, stuaddr, collid) values
407
+
(1001, '杨逍', 1, '1990-3-4', '四川成都', 1),
408
+
(1002, '任我行', 1, '1992-2-2', '湖南长沙', 1),
409
+
(1033, '王语嫣', 0, '1989-12-3', '四川成都', 1),
410
+
(1572, '岳不群', 1, '1993-7-19', '陕西咸阳', 1),
411
+
(1378, '纪嫣然', 0, '1995-8-12', '四川绵阳', 1),
412
+
(1954, '林平之', 1, '1994-9-20', '福建莆田', 1),
413
+
(2035, '东方不败', 1, '1988-6-30', null, 2),
414
+
(3011, '林震南', 1, '1985-12-12', '福建莆田', 3),
415
+
(3755, '项少龙', 1, '1993-1-25', null, 3),
416
+
(3923, '杨不悔', 0, '1985-4-17', '四川成都', 3);
417
+
-- 插入老师数据
418
+
insert into tb_teacher (teaid, teaname, teatitle, collid) values
419
+
(1122, '张三丰', '教授', 1),
420
+
(1133, '宋远桥', '副教授', 1),
421
+
(1144, '杨逍', '副教授', 1),
422
+
(2255, '范遥', '副教授', 2),
423
+
(3366, '韦一笑', '讲师', 3);
424
+
-- 插入课程数据
425
+
insert into tb_course (couid, couname, coucredit, teaid) values
426
+
(1111, 'Python程序设计', 3, 1122),
427
+
(2222, 'Web前端开发', 2, 1122),
428
+
(3333, '操作系统', 4, 1122),
429
+
(4444, '计算机网络', 2, 1133),
430
+
(5555, '编译原理', 4, 1144),
431
+
(6666, '算法和数据结构', 3, 1144),
432
+
(7777, '经贸法语', 3, 2255),
433
+
(8888, '成本会计', 2, 3366),
434
+
(9999, '审计学', 3, 3366);
435
+
-- 插入选课数据
436
+
insert into tb_score (stuid, couid, scdate, scmark) values
437
+
(1001, 1111, '2017-09-01', 95),
438
+
(1001, 2222, '2017-09-01', 87.5),
439
+
(1001, 3333, '2017-09-01', 100),
440
+
(1001, 4444, '2018-09-03', null),
441
+
(1001, 6666, '2017-09-02', 100),
442
+
(1002, 1111, '2017-09-03', 65),
443
+
(1002, 5555, '2017-09-01', 42),
444
+
(1033, 1111, '2017-09-03', 92.5),
445
+
(1033, 4444, '2017-09-01', 78),
446
+
(1033, 5555, '2017-09-01', 82.5),
447
+
(1572, 1111, '2017-09-02', 78),
448
+
(1378, 1111, '2017-09-05', 82),
449
+
(1378, 7777, '2017-09-02', 65.5),
450
+
(2035, 7777, '2018-09-03', 88),
451
+
(2035, 9999, curdate(), null),
452
+
(3755, 1111, date(now()), null),
453
+
(3755, 8888, date(now()), null),
454
+
(3755, 9999, '2017-09-01', 92)</string>
333
455
<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid where scmark is not null order by scmark desc limit 5 offset 10</string>
334
456
<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid where scmark is not null order by scmark desc limit 10, 5</string>
335
457
<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid where scmark is not null order by scmark desc limit 5, 5</string>
@@ -347,29 +469,11 @@ select stuname, couname, scmark from tb_student t1, tb_course t2, tb_score t3 wh
347
469
<string>select stuname, avgmark from tb_student t1, (select stuid, avg(scmark) as avgmark from tb_score group by stuid) t2 where t1.stuid=t2.stuid</string>
348
470
<string>select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
349
471
<string>select stuname, ifnull(total,0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
350
-
<string>-- 查询选了两门以上的课程的学生姓名(子查询/分组条件/集合运算)
351
-
select stuname from tb_student where stuid=(
352
-
select stuid from tb_score group by stuid having count(stuid)>2
353
-
)
354
-
355
-
-- 查询学生姓名、课程名称以及成绩(连接查询)
356
-
357
-
-- 查询选课学生的姓名和平均成绩(子查询和连接查询)
358
-
359
-
-- 外连接(outer join):左外连接 / 右外连接 / 全外连接
360
-
-- 查询每个学生的姓名和选课数量(左外连接和子查询)
361
-
select stuname, ifnull(total, 0) from tb_student t1 left outer join (select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
362
-
<string>select stuname, total from tb_student t1 left outer join
363
-
(select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
364
-
<string>select stuname, total from tb_student t1 inner join
365
-
(select stuid, count(stuid) as total from tb_score group by stuid) t2 on t1.stuid=t2.stuid</string>
366
-
<string>select stuid, count(stuid) from tb_score group by stuid</string>
367
-
<string>select stuname, couname, scmark from tb_student t1 inner join tb_score t3 on t1.stuid=t3.stuid inner join tb_course t2 on t2.couid=t3.couid</string>
0 commit comments