select的意思是投影。也就是说将原有的数据的每一行做一个转换,得到一行新的数据。
也就是 原始数据 可以视作一个集合 SetA
select 后得到的是一个新的集合 SetB,则select是一个将SetA 映射到 SetB 的函数。
而max min avg等叫做聚合函数,它们将select得到的集合聚合起来。
select concat(teacher_name,'x') 后面可以跟一个伪列名,比如 select concat(teacher_name,'x') as teacher_namex
“列”这个名词在数据库的教材上叫做元组(tuple),比如说一条记录,有2列,id, name, score,那么可以看称是一个三元组。
为什么是select concat(teacher_name,'x') as teacher_namex,而不是直接把teacher_namex存入数据库,这是因为后者导致teacher_name和teacher_namex两个字段出现重复,造成冗余。
冗余的数据造成两个不好的后果,一个是浪费存储,一个是如果更改了其中一列,而没有更改另一列,造成数据不一致。
避免冗余的概念在数据库教材上叫做数据库三大范式。
select concat(teacher_id,teacher_name)
假设id是123,name是张三,那么结果是 '123张三'