1. 表結(jié)構(gòu)完全一樣
創(chuàng)新互聯(lián)專注骨干網(wǎng)絡(luò)服務(wù)器租用十年,服務(wù)更有保障!服務(wù)器租用,溫江服務(wù)器租用 成都服務(wù)器租用,成都服務(wù)器托管,骨干網(wǎng)絡(luò)帶寬,享受低延遲,高速訪問。靈活、實(shí)現(xiàn)低成本的共享或公網(wǎng)數(shù)據(jù)中心高速帶寬的專屬高性能服務(wù)器。
insert into 表1
select * from 表2
2. 表結(jié)構(gòu)不一樣(這種情況下得指定列名)
insert into 表1 (列名1,列名2,列名3)
select 列1,列2,列3 from 表2
mysql
兩個(gè)表中的信息關(guān)聯(lián)起來(lái)使用方法:
1、創(chuàng)建主表:
create
table
UserInfo(
UserID
int
identity(1,1)
primary
key,
--遞增主鍵
UserAccounts
varchar(20),
UserName
varchar(20),
UserPwd
varchar(10));
2、創(chuàng)建附表(含外鍵)
create
table
News(
NewsID
int
identity(1,1)
primarykey,
UserID
int,
NewsTitle
varchar(
50
),
NewsRelease
varchar(
200
),
NewsReleaseTime
datetime,
FOREIGN
KEY
(UserID)
REFERENCES
UserInfo(UserID));
--外鍵約束
如果附表已存在,但沒外鍵,可采用以下方法:
alter
table
profession
add
constraint
fk_prov_id
foreign
key(prov_id)
references
province(prov_id)
on
update
cascade
on
delete
cascade;
方法和操作步驟如下:
1、首先,創(chuàng)建一個(gè)測(cè)試表,如下圖所示,然后進(jìn)入下一步。
2、其次,插入測(cè)試數(shù)據(jù),如下圖所示,然后進(jìn)入下一步。
3、接著,完成上述步驟后,查詢表中的數(shù)據(jù),“select t.* from test_tbl2 t?”,如下圖所示,然后進(jìn)入下一步。
4、最后,完成上述步驟后,編寫sql,兩個(gè)表通過pid與id關(guān)聯(lián), “select t1.*, t2.* from test_tbl1 t1 join test_tbl2 t2 on t1.p_id = t2.id;”,如下圖所示。這樣,問題就解決了。
第一:內(nèi)聯(lián)(inner join)
如果想把用戶信息、積分、等級(jí)都列出來(lái),那么一般會(huì)這樣寫:
select * from T1, T3 where T1.userid = T3.userid
(其實(shí)這樣的結(jié)果等同于select * from T1 inner join T3 on T1.userid=T3.userid )。
把兩個(gè)表中都存在userid的行拼成一行(即內(nèi)聯(lián)),但后者的效率會(huì)比前者高很多,建議用后者(內(nèi)聯(lián))的寫法。
SQL語(yǔ)句:
select * from T1 inner join T2 on T1.userid = T2.userid
運(yùn)行結(jié)果
T1.userid username password T2.userid jifen dengji
1 jack jackpwd 1 20 3
第二:左聯(lián)(left outer join)
顯示左表T1中的所有行,并把右表T2中符合條件加到左表T1中;
右表T2中不符合條件,就不用加入結(jié)果表中,并且NULL表示。
SQL語(yǔ)句:
select * from T1 left outer join T2 on T1.userid = T2.userid
運(yùn)行結(jié)果
T1.userid username password T2.userid jifen dengji
1 jack jackpwd 1 20 3
2 owen owenpwd NULL NULL NULL
第三:右聯(lián)(right outer join)。
顯示右表T2中的所有行,并把左表T1中符合條件加到右表T2中;
左表T1中不符合條件,就不用加入結(jié)果表中,并且NULL表示。
SQL語(yǔ)句:
select * from T1 right outer join T2 on T1.userid = T2.userid
運(yùn)行結(jié)果
T1.userid username password T2.userid jifen dengji
1 jack jackpwd 1 20 3
NULL NULL NULL 3 50 6
第四:全聯(lián)(full outer join)
顯示左表T1、右表T2兩邊中的所有行,即把左聯(lián)結(jié)果表 + 右聯(lián)結(jié)果表組合在一起,然后過濾掉重復(fù)的。
SQL語(yǔ)句:
select * from T1 full outer join T2 on T1.userid = T2.userid