您的位置 首页 数据库

mysql 多表查询过程使用别名

mysql 多表查询过程使用别名

在进行数据信息查询时,有些表和有些字段会被经常调用到,而且生成环境中表明和字段名会比较的复杂,在调用时不是很方便;

而且有些时候,查询的SQL语句信息会出现在代码中,在编写代码时也会不太规范,同时也不方便阅读,因此出现了数据库别名概念;

在进行数据库别名应用时,会经常用到两种别名:

  • 表别名:(应用更广泛)
# 举例说明别名作用,在没有使用别名时
select teacher.tname,group_concat(student.sname)  
from teacher 
join course 
on teacher.tno=course.tno 
join sc 
on course.cno=sc.cno 
join student 
on sc.sno=student.sno 
where sc.score<60 
group by teacher.tno;

 

# 进行表别名化

select a.tname,group_concat(d.sname)  
from teacher as a
join course as b
on a.tno=b.tno 
join sc as c
on b.cno=c.cno 
join student as d
on c.sno=d.sno 
where c.score<60 
group by a.tno;
  • 列别名:


# 举例说明别名作用,在没有使用别名时
select a.tname,group_concat(d.sname)  
from teacher as a
join course as b
on a.tno=b.tno 
join sc as c
on b.cno=c.cno 
join student as d
on c.sno=d.sno 
where c.score<60 
group by a.tno;

 


# 进行列别名化

select a.tname as '老师名',group_concat(d.sname)  as '不及格学生名'
from teacher as a
join course as b
on a.tno=b.tno 
join sc as c
on b.cno=c.cno 
join student as d
on c.sno=d.sno 
where c.score<60 
group by a.tno;

# 进行列别名化

select teacher.tname as a,course.cname as b,avg(sc.score) as c
from teacher 
join course 
on teacher.tno=course.tno
join sc 
on course.cno=sc.cno 
group by teacher.tno,course.cno 
order by c;
-- 列别名信息是可以在group by子句之后进行调用的

 

欢迎来撩 : 汇总all

白眉大叔

关于白眉大叔linux云计算: 白眉大叔

热门文章