mysql 连左查询

 1 create table teacher(  2      tid int unsigned auto_increment primary key,  3      tname varchar(30) not null

 4 )engine=myisam charset =utf8;  5 insert into teacher values(null,'王老师');  6 insert into teacher values(null,'李老师');  7 insert into teacher values(null,'方老师');  8 select * from teacher;  9 -- 按照降序排序 10 select * from teacher order by tid desc; 11 -- 按照升序排列 12 select * from teacher order by convert (tname using gbk) asc; 13 create table student( 14 sid int unsigned auto_increment primary key, 15 sname varchar(10), 16 sgender enum('','','保密'), 17 sscore tinyint unsigned, 18 sdept varchar(50), 19 stid int unsigned  -- 必须和老师的tid要用一致的类型 20 )engine=myisam auto_increment=201501 charset utf8; 21 insert into student values (null,'李四','',90,'法学',1); 22 insert into student values (null,'李二','',null,'法学',1); 23 insert into student values (null,'王二','',50,'法学',3); 24 select * from student; 25 -- 统计总共有多少人数 26 select count(*) 人数 from student; 27 -- 统计总共有多少男生人数 28  select count(*) 男生人数 from student where sgender =''; 29  -- 统计分数为空的学生有多少人 30  select count(*) from student where sscore is null; 31  -- 所有学生的平均,最高分,最低分, 成绩 32  select count(*) 总人数 ,avg(sscore) 平均分 ,max(sscore),min(sscore)from student; 33  -- 统计各专业的人数 34 select sdept 专业,count(*) 人数,max(sscore) 最高分,min(sscore) 最低分 35 from student where sgender='' group by sdept order by avg(sscore) desc; 36 -- 清除重复的专业从student表里面 37 select distinct sdept from student; 38 -- 查找最高分和最低分 39 select * from student where sscore in(select max(sscore)from student) 40 union 41 select * from student 42 select * from teacher; 43 where sscore in(select min(sscore)  from student) 44 --  -- 显示学生学号 姓名 成绩 代课老师姓名 45 select sid,sname,sscore,tname  代课老师  from student,teacher where stid = tid; 46 -- 连左查询 和上面同样的效果 47 select sid,sname,sscore,tname from student left join teacher on stid=tid; 48 -- 显示老师id 姓名 学生 成绩 49 select tid,tname ,sname,sscore from teacher lef join student on stid =tid 50  order by tname asc; 51 

52 

53 

54  

55  

 

你可能感兴趣的:(mysql)