總是會忘記器虾,于是就mark下
inner join :交集 | WHERE
left join :以指定的左表列進行交集
right join :以指定的右表列進行交集
full outer join / union :并集
cross join :笛卡爾積 / A x B 的映射
以下為詳解:
-
inner join :交集 | WHERE
SELECT (字段們) FROM (表們) WHERE [條件](表A.字段A = 表B.字段B)
DELETE (表們) FROM (表們) WHERE [條件](表A.字段A = 表B.字段B)
或 DELETE FROM (表們) USING (表們) WHERE [條件](表A.字段A = 表B.字段B)
-
left join :以指定的左表列進行交集
SELECT (字段們) FROM (表A) LEFT JOIN (表B) ON [條件](表A.字段A = 表B.字段B)
// 找出2個表中的相同記錄,并同時刪除2個表的數(shù)據(jù)
DELETE (表們) FROM (表A) LEFT JOIN (表B) ON [條件](表A.字段A = 表B.字段B) WHERE [條件](表X.字段=值)
right join :以指定的右表列進行交集
full outer join / union :并集
cross join :笛卡爾積 / A x B 的映射
附:如何創(chuàng)建關聯(lián)表
// CONSTRAINT 外鍵名稱(fk_xxx) FOREIGN KEY (關聯(lián)字段) REFERENCES 被關聯(lián)表(被關聯(lián)表的關聯(lián)字段)
CREATE TABLE accounts(
account_id INT NOT NULL AUTO_INCREMENT,
customer_id INT( 4 ) NOT NULL ,
account_type ENUM( 'savings', 'credit' ) NOT NULL,
balance FLOAT( 9 ) NOT NULL,
PRIMARY KEY ( account_id ),
FOREIGN KEY (customer_id) REFERENCES customers(customer_id)
) ENGINE=INNODB;
CREATE TABLE customers(
customer_id INT NOT NULL AUTO_INCREMENT,
name VARCHAR(20) NOT NULL,
address VARCHAR(20) NOT NULL,
city VARCHAR(20) NOT NULL,
state VARCHAR(20) NOT NULL,
PRIMARY KEY ( customer_id )
)
參考列表