=============================================================================
SQL join
JOIN 类型,以及它们之间的差异:
"Persons" 表:
| Id_P | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Adams | John | Oxford Street | London |
| 2 | Bush | George | Fifth Avenue | New York |
| 3 | Carter | Thomas | Changan Street | Beijing |
"Id_P" 列是 Persons 表中的的主键。
"Orders" 表:
| Id_O | OrderNo | Id_P |
|---|---|---|
| 1 | 77895 | 3 |
| 2 | 44678 | 3 |
| 3 | 22456 | 1 |
| 4 | 24562 | 1 |
| 5 | 34764 | 65 |
"Id_O" 列是 Orders 表中的的主键,同时,"Orders" 表中的 "Id_P" 列用于引用 "Persons" 表中的人,而无需使用他们的确切姓名。"Id_P" 列把上面的两个表联系了起来。
建表语句:
ALTER TABLE Persons ADD CONSTRAINT pk_PersonID PRIMARY KEY (Id_P);
create table OrdersALTER TABLE Orders ADD CONSTRAINT pk_OrderID PRIMARY KEY (Id_O);
#添加外键约束
ALTER TABLE OrdersADD CONSTRAINT fk_PerOrders FOREIGN KEY (Id_P) REFERENCES Persons(Id_P);如需撤销 FOREIGN KEY 约束,请使用下面的 SQL:
MySQL:
ALTER TABLE OrdersDROP FOREIGN KEY fk_PerOrdersSQL Server / Oracle / MS Access:
ALTER TABLE OrdersDROP CONSTRAINT fk_PerOrders插入数据:insert into Persons values (1,‘Adams‘,‘John‘,‘Oxford Street‘,‘London‘ );
INSERT INTO Persons VALUES (3,‘Bush‘, ‘George‘, ‘Fifth Avenue‘, ‘New York‘);INSERT INTO Persons VALUES (2,‘Gates‘, ‘Bill‘, ‘Changan Street‘, ‘Beijing‘);
insert into orders values(1,‘20150730100‘,2);
insert into orders values(2,‘20150730100‘,3);insert into orders values(3,‘20150730100‘,2);insert into orders values(4,‘20150730100‘,3);
insert into orders values(5,‘20150730100‘,3);
insert into orders values(6,‘20150730100‘,1);
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM Persons, Orders WHERE Persons.Id_P = Orders.Id_P
也可以使用关键词 JOIN 来从两个表中获取数据。
SELECT Persons.LastName, Persons.FirstName, Orders.OrderNo FROM PersonsINNER JOIN OrdersON Persons.Id_P = Orders.Id_P ORDER BY Persons.LastName
结果集:
| LastName | FirstName | OrderNo |
|---|---|---|
| Adams | John | 22456 |
| Adams | John | 24562 |
| Carter | Thomas | 77895 |
| Carter | Thomas | 44678 |
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/sinat_26342009/article/details/47149233