<div style="font-size:16px;">
<p>工作之后发现自己已经不太会写sql了,除了业务方面的学习,技术上也不能落下啊。于是打算做一遍这50题,通过实际操作来加深对sql的理解。</p>
<p>CREATE TABLE student (</p>
<p>sid varchar(10),</p>
<p>sname varchar(10),</p>
<p>sage datetime,</p>
<p>ssex varchar(10)</p>
<p>);</p>
<p>insert into student values('01' , '赵雷' , '1990-01-01' , '男');</p>
<p>insert into student values('02' , '钱电' , '1990-12-21' , '男');</p>
<p>insert into student values('03' , '孙风' , '1990-05-20' , '男');</p>
<p>insert into student values('04' , '李云' , '1990-08-06' , '男');</p>
<p>insert into student values('05' , '周梅' , '1991-12-01' , '女');</p>
<p>insert into student values('06' , '吴兰' , '1992-03-01' , '女');</p>
<p>insert into student values('07' , '郑竹' , '1989-07-01' , '女');</p>
<p>insert into student values('08' , '王菊' , '1990-01-20' , '女');</p>
<p>CREATE TABLE course (</p>
<p>cid varchar(10),</p>
<p>cname varchar(10),</p>
<p>tid varchar(10)</p>
<p>);</p>
<p>insert into course values('01' , '语文' , '02');</p>
<p>insert into course values('02' , '数学' , '01');</p>
<p>insert into course values('03' , '英语' , '03');</p>
<p>CREATE TABLE teacher (</p>
<p>tid varchar(10),</p>
<p>tname varchar(10)</p>
<p>);</p>
<p>insert into teacher values('01' , '张三');</p>
<p>insert into teacher values('02' , '李四');</p>
<p>insert into teacher values('03' , '王五');</p>
<p>CREATE TABLE sc (</p>
<p>sid varchar(10),</p>
<p>cid varchar(10),</p>
<p>score decimal(18, 1)</p>
<p>);</p>
<p>insert into sc values('01' , '01' , 80);</p>
<p>insert into sc values('01' , '02' , 90);</p>
<p>insert into sc values('01' , '03' , 99);</p>
<p>insert into sc values('02' , '01' , 70);</p>
<p>insert into sc values('02' , '02' , 60);</p>
<p>insert into sc values('02' , '03' , 80);</p>
<p>insert into sc values('03' , '01' , 80);</p>
<p>insert into sc values('03' , '02' , 80);</p>
<p>insert into sc values('03' , '03' , 80);</p>
<p>insert into sc values('04' , '01' , 50);</p>
<p>insert into sc values('04' , '02' , 30);</p>
<p>insert into sc values('04' , '03' , 20);</p>
<p>insert into sc values('05' , '01' , 76);</p>
<p>insert into sc values('05' , '02' , 87);</p>
<p>insert into sc values('06' , '01' , 31);</p>
<p>insert into sc values('06' , '03' , 34);</p>
<p>insert into sc values('07' , '02' , 89);</p>
<p>insert into sc values('07' , '03' , 98);</p>
<p>查询"01"课程比"02"课程成绩高的学生的信息及课程分数</p>
<p>keyword : 自连接(SELF JOIN)</p>
<p>SELECT student.*, sc1.score AS 'course-01', sc2.score AS 'course-02'</p>
<p>FROM student, sc sc1, sc sc2</p>
<p>WHERE student.sid = sc1.sid</p>
<p>AND sc1.sid = sc2.sid</p>
<p>AND sc1.cid = '01'</p>
<p>AND sc2.cid = '02'</p>
<p>AND sc1.score > sc2.score</p>
<p align="center"><img alt="9abffdd334fa" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-3d795cd176cb29f4bb7cd48bbbee4616"></p>
<p>1.1 查询存在" 01 "课程但可能不存在" 02 "课程的情况(不存在时显示为 null )</p>
<p>keyword : LEFT JOIN</p>
<p>SELECT *</p>
<p>FROM</p>
<p>( SELECT * FROM sc WHERE sc.cid = '01' ) sc1</p>
<p>LEFT JOIN ( SELECT * FROM sc WHERE sc.cid = '02' ) sc2 ON sc1.sid = sc2.sid</p>
<p align="center"><img alt="9abffdd334fa" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-3d795cd176cb29f4bb7cd48bbbee4616"></p>
<p>1.2 查询同时存在01和02课程的情况</p>
<p>keyword : 子查询</p>
<p>SELECT *</p>
<p>FROM</p>
<p>( SELECT * FROM sc WHERE sc.cid = '01' ) sc1,</p>
<p>( SELECT * FROM sc WHERE sc.cid = '02' ) sc2</p>
<p>WHERE sc1.sid = sc2.sid</p>
<p align="center"><img alt="9abffdd334fa" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-3d795cd176cb29f4bb7cd48bbbee4616"></p>
<p>1.3 查询选择了02课程但没有01课程的情况</p>
<p>keyword : NOT IN</p>
<p>SELECT *</p>
<p>FROM sc</p>
<p>WHERE cid = '02' AND sid NOT IN ( SELECT sid FROM sc WHERE cid = '01' )</p>
<p align="center"><img alt="9abffdd334fa" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-3d795cd176cb29f4bb7cd48bbbee4616"></p>
<p>2.查询平均成绩大于等于 60 分的同学的学生编号和学生姓名和平均成绩</p>
<p>keyword : GROUP BY、HAVING</p>
<p>--注意版本默认的model问题</p>
<p>SELECT sc.sid,s.sname,avg(score)</p>
<p>FROM student s INNER JOIN sc ON s.sid = sc.sid</p>
<p>GROUP BY sid</p>
<p>HAVING (avg(score) >= 60)</p>
<p align="center"><img alt="9abffdd334fa" src="https:// |
|