一般我們連線兩張表時,都是select ***,xx from x1,x2 where x1.a=x2.a。其實資料庫還有4中join操作。
例如:表1:
student
s_id
name
***張三男李四
女王五男錶2:
class
c_id
idname
1.連線查詢
select s.name s_name,s.*** s_***,c.name c_name
from student s,class c
where s.s_id=c.s_id
結果:s_name
s_***
c_name張三男
李四女李四男
2.inner join
select s.name s_name,s.*** s_***,c.name c_name
from student s inner join class c on s.s_id=c.s_id
結果:s_name
s_***
c_name張三男
李四女李四女
可以看出inner join 和我們直接連線查詢沒什麼差別!
3.left join
select s.name s_name,s.*** s_***,c.name c_name
from student s left join class c on s.s_id=c.s_id
結果:s_name
s_***
c_name張三男
李四女李四女
王五男4.right join
select s.name s_name,s.*** s_***,c.name c_name
from student s right join class c on s.s_id=c.s_id
結果:s_name
s_***
c_name張三男
李四女李四女
5.full join
select s.name s_name,s.*** s_***,c.name c_name
from student s full join class c on s.s_id=c.s_id
結果:s_name
s_***
c_name張三男
李四女王五男
李四女綜上可以看出:
普通連線和 inner join連線沒什麼差別!
left join:左表所有行都輸出,如果找不到右表對應字段,即該字段為null
right join:右表所有行都輸出,如果找不到左表對應字段,即該字段為null
full join:左右錶行全部對應輸出,如果找不到對應字段,即為null
2 資料庫連線
1.註冊驅動 class.forname com.mysql.cj.jdbc.driver 對於我的電腦為mysql8.0版本的2.建立連線 connection connection null string url jdbc mysql localhost 3306 grade user root...
MySQL資料庫2 建立表
1.建立表的語法形式 create table 表名 屬性名 資料型別 完整性約束條件 屬性名 資料型別 完整性約束條件 屬性名 資料型別 表名表示所要建立表的名稱,屬性名表示表中字段的名稱,資料型別表示指定 欄位的資料型別,注 1 表名不能為sql關鍵字,如create,updata,order,...
mysql表連線例項 mysql資料庫表的連線例項
一般所說的左連線,是指左,右。先說左外連線和右外連線 sql select from t1 id name 1 aaa 2 bbb sql select from t2 id age 1 20 3 30 左外連線 object object sql select from t1 left join ...