1. 程式人生 > >資料庫-連線查詢 總彙

資料庫-連線查詢 總彙

內連線、外連線、自然連線

內連線:

select someColumn from table1 inner join table2 on condition(=、>、<、in 、not in、between and)
效果: 查詢 符合 condition的2張表的資料
在這裡插入圖片描述

外連線

  • 左外連線
    select someColumn from table1 left join table2 on condition(=、>、<、in 、not in、between and)
    效果:查詢符合約束的以左表為基準的資料(右邊如無對應則顯示null)
  • 右外連線
    select someColumn from table1 rightjoin table2 on condition(=、>、<、in 、not in、between and)
    效果:查詢符合約束的以右表為基準的資料(左邊如無對應則顯示null)
    建表語句:
create table lt1(
id int primary key auto_increment,
age int not null
);
aler table lt1 rename lt;
alter table lt modify id int auto_increment;  
insert into rt(age) values(1);

在這裡插入圖片描述
在後面新增where約束,則是對該結果集的進一步篩選;1和3列的列名相同但是分屬於不同表;where left.id=1結果如下:
在這裡插入圖片描述
where rigth.id=1 結果如下:
在這裡插入圖片描述

  • 自然連線
    不同於內連線,沒有顯式的約束條件,而是相同的列名自然進行等值連線
select * from lt natural join rt;

在這裡插入圖片描述
由於進行的是列名的完全等值匹配,所以結果集中的列名在用where約束時候,rt.idlt.id 效果一樣