联接与多张表的操作

1 AS的作用

as能把select的查询结果填入新表

create table profession
( id int(11) not null auto_increment primary key,
  profession varchar(20)
) as
select profession from my_contacts
group by profession
order by profession;

2 列的别名

列名改变了查询结果中的列名,但并未改变来源列的名称。别名只是临时的。

3 表的别名

与列的别名相同,as可以省略

select profession (as) mc_prof 
from my_contacts (as) mc
group by profession
order by profession;

4 联接

1 交叉联接

交叉联接(cross join)也称为笛卡尔积、交叉积,返回两张表的每一行相差的结果

select t.toy,b.boy
from toys as t
cross join
boys as b;
/*cross join 可以省略*/

2 内联接

交叉联接是内联接的一种。内联接就是通过查询中的条件移除了某些结果数据行的交叉连接。

select somecolumns
from table1 
inner join
table2
on somecondition;
/*on可以换为where*/

根据条件的不同可以分为相等联接、不等联接和自然联接。

/*相等联接*/
select t.toy,b.boy
from toys as t
inner join
boys as b
on b.toy_id=t.toy_id;

不等联接的条件为“<>”
自然联接是不使用“on”字句的内联接。只有在联接的列在两张表中的名称都相同时才有用。

select t.toy,b.boy
from toys as t
natural join
boys as b;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值