34,590
社区成员
发帖
与我相关
我的任务
分享
--判断如果系统里存在't_EmployeeBasicInfo'表则删除该表
if OBJECT_ID('t_EmployeeBasicInfo','U') is not null drop table t_EmployeeBasicInfo
go
--创建t_EmployeeBasicInfo表
create table t_EmployeeBasicInfo
(
ID varchar(20),
Name varchar(50),
Department varchar(100)
)
go
--插入数据
insert into t_EmployeeBasicInfo
select 'ID0001','Andy','IT' union all
select 'ID0002','Job','BIO' union all
select 'ID0003','Jack','BEM'
go
--判断如果系统里存在't_EmployeeEducation'表则删除该表
if OBJECT_ID('t_EmployeeEducation','U') is not null drop table t_EmployeeEducation
go
--创建t_EmployeeEducation表
create table t_EmployeeEducation
(
ID varchar(20),
University varchar(50),
Major varchar(50)
)
go
--插入数据
insert into t_EmployeeEducation
select 'ID0002','东南大学','Business' union all
select 'ID0003','华东师范','Software Development' union all
select 'ID0004','复旦大学','Medical professional'
go
--查询't_EmployeeBasicInfo'表数据
select * from t_EmployeeBasicInfo
go
--查询't_EmployeeEducation'表数据
select * from t_EmployeeEducation
go
--左连接 写法1
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
left join t_EmployeeEducation B on A.ID=B.ID
--左连接 写法2
/* 请写出其他写法 */
go
--右连接 写法1
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
right join t_EmployeeEducation B on A.ID=B.ID
--右连接 写法2
/* 请写出其他写法 */
go
--内连接 写法1
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
inner join t_EmployeeEducation B on A.ID=B.ID
--内连接 写法2
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A,t_EmployeeEducation B where A.ID=B.ID
go
--外连接 写法1
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
full join t_EmployeeEducation B on A.ID=B.ID
--外连接 写法2
/* 请写出其他写法 */
go
--交叉连接 写法1
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
cross join t_EmployeeEducation B
order by A.ID
--交叉连接 写法2
/* 请写出其他写法 */
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A, t_EmployeeEducation B
order by A.ID
--左连接:
where A.ID*=B.ID
--右连接
where A.ID=*B.ID
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
cross join t_EmployeeEducation B
order by A.ID
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A
, t_EmployeeEducation B
select A.ID,
A.Name,
A.Department,
B.ID,
B.University,
B.Major
from t_EmployeeBasicInfo A, t_EmployeeEducation B where A.ID*=B.ID
--很久以前的链接查询是这样的
--右连接
SELECT Student.sno ,
Sname ,
Ssex ,
Sage ,
Cno ,
Grade
FROM Student ,
SC
WHERE Student.Sno = SC.Sno(*) ;
--左连接:
SELECT Student.sno ,
Sname ,
Ssex ,
Sage ,
Cno ,
Grade
FROM Student ,
SC
WHERE Student.Sno(*) = SC.Sno ;