SQL server从入门精通----表的复制与多表连接查询
时间:2021-07-01 10:21:17
帮助过:2人阅读
select into table2 from table1
--insert into table2 select table1 讲解
create table userInformation
(
id int identity(
10001,
1),
uid int,
name nvarchar(
30),
age int,
birthday nvarchar(
30),
address nvarchar(
50),
country nvarchar(
20),
province nvarchar(
20),
city nvarchar(
20),
remark nvarchar(
200),
--constraint DF_uid Foreign key(uid) references Q_user(uid)
)
select * from userInformation
alter table userInformation
add constraint DF_uid
Foreign key(uid)
references Q_user(uid)
--将 Q_user 查询的当作表赋值给表(含结构和数据) userInformation(要求此表不存在)
select uid,uName
into userInformation
from Q_user
--将Q_user查询的数据插入到 userInformation
insert into userInformation(uid,name)
select uid,uName
from Q_user
--多表查询
--全连接
select *
from userInformation,Q_user
--内连接
select *
from Q_user b,userInformation a
where a.uid
=b.uid
--内连接(两张 表向中间连接,只要相同的)
select * from Q_user a
inner join userInformation b
--inner 可以省略
on a.uId
=b.uid
--左连接 (以左边的表为基础,连接右边有连接数据,没有为null)
select * from Q_user a
left join userInformation b
--inner 可以省略
on a.uId
=b.uid
--右连接(以右边的表为基础)
select * from Q_user a
right join userInformation b
--inner 可以省略
on a.uId
=b.uid
--自连接(就是连接自己 给一张表取不同的别名就好了)
select * from Q_user a
right join Q_user b
--inner 可以省略
on a.uId
=b.uid
----------------union--------
--union 联合两张表的数据,相同数据只显示其中的一条
--union all 完全将两张表联合,不管数据的相同
--不管是union还是union all,前表与后表的列名一定要是一致的,而且不能出现text的列-----------------
select * from Q_user
union select * from Q_user
select * from Q_user
union all select * from Q_user
SQL server从入门精通----表的复制与多表连接查询
标签: