mysql查表操作題目詳解
阿新 • • 發佈:2022-05-13
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'); 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' , '王五'); # 教師表 teacher 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;