mysql查表操作题目详解
sql数据表
数据表
--1.学生表 student(s_id,s_name,s_age,s_sex)
s_id 学生编号,s_name 学生姓名,sage 出生年月,s_sex 学生性别
--2.课程表 course(c_id,c_name,t_id)
c_id 课程编号,c_name 课程名称,t_id 教师编号
--3.教师表 teacher(t_id,t_name)
t_id 教师编号,t_name 教师姓名
--4.成绩表 sc(s_id,c_id,sc_score)
s_id 学生编号,c_id 课程编号,sc_score 分数
导入数据方法:将以下 mysql 语句,完整复制到navicat窗口,然后运行即可导入,不需要另外创建表(自带建表语句):这些语句第一条是创建表(create table),后面都是插入数据到表中(insert into table )。
学生表 student

create table student(s_id varchar(10),s_name varchar(10),s_age datetime,s_sex varchar(10));
insert into student values('01' , '赵雷' , '1990-01-01' , '男');
insert into student values('02' , '钱电' , '1990-12-21' , '男');
insert into student values('03' , '孙风' , '1990-05-20' , '男');
insert into student values('04' , '李云' , '1990-08-06' , '男');
insert into student values('05' , '周梅' , '1991-12-01' , '女');
insert into student values('06' , '吴兰' , '1992-03-01' , '女');
insert into student values('07' , '郑竹' , '1989-07-01' , '女');
insert into student values('09' , '张三' , '2017-12-20' , '女');
insert into student values('10' , '李四' , '2017-12-25' , '女');
insert into student values('11' , '李四' , '2017-12-30' , '女');
insert into student values('12' , '赵六' , '2017-01-01' , '女');
insert into student values('13' , '孙七' , '2018-01-01' , '女');
课程表course

create table course(c_id varchar(10),c_name nvarchar(10),t_id varchar(10));
insert into course values('01' , '语文' , '02');
insert into course values('02' , '数学' , '01');
insert into course values('03' , '英语' , '03');
教师表teacher

create table teacher(t_id varchar(10),t_name varchar(10));
insert into teacher values('01' , '张三');
insert into teacher values('02' , '李四');
insert into teacher values('03' , '王五');
成绩表score

create table sc(s_id varchar(10),c_id varchar(10),sc_score decimal(18,1));
insert into sc values('01' , '01' , 80);
insert into sc values('01' , '02' , 90);
insert into sc values('01' , '03' , 99);
insert into sc values('02' , '01' , 70);
insert into sc values('02' , '02' , 60);
insert into sc values('02' , '03' , 80);
insert into sc values('03' , '01' , 80);
insert into sc values('03' , '02' , 80);
insert into sc values('03' , '03' , 80);
insert into sc values('04' , '01' , 50);
insert into sc values('04' , '02' , 30);
insert into sc values('04' , '03' , 20);
insert into sc values('05' , '01' , 76);
insert into sc values('05' , '02' , 87);
insert into sc values('06' , '01' , 31);
insert into sc values('06' , '03' , 34);
insert into sc values('07' , '02' , 89);
insert into sc values('07' , '03' , 98);
查询‘01’课程比'02'课程成绩高的学生信息及课程分数
解题思路:
-- 分析题目关键词,“学生信息”、“课程分数”、“课程编号”
-- 第一步:锁定使用表,学生表、成绩表,这两张表提供题目所需信息
-- 第二步:通过sid主键连接学生表和成绩表
SELECT
*
FROM student a
INNER JOIN sc b
on a.s_id=b.s_id
-- 第三部:进行同一学生不同成绩比较,那么就还需要连接一个成绩表,利用sid相同、cid不同进行关联
SELECT
*
FROM student a
INNER JOIN sc b
on a.s_id=b.s_id
INNER JOIN sc c
on a.s_id=c.s_id AND b.c_id='01' AND c.c_id='02'
-- 第四部:最终回到题目,只需要筛选一下课程,利用where比较分数即可
SELECT
*
FROM student a
INNER JOIN sc b
on a.s_id=b.s_id
INNER JOIN sc c
on a.s_id=c.s_id AND b.c_id='01' AND c.c_id='02'
where b.sc_score>c.sc_score;


浙公网安备 33010602011771号