sqlserver- 主键 & 外键

例:
在这里插入图片描述

/* 产品销售 */
if (exists (select * from master.dbo.sysdatabases where name='LeetCode'))
	begin
		use master
		drop database LeetCode
		select 1
	end
go
create database LeetCode
go
use LeetCode
go

-- product
if (exists (select * from sys.objects where name='Product'))
	drop table Product
go
create table Product
(
	product_id int primary key,  -- 主键
	product_name varchar(20)
);
insert into Product values(100, 'Nokia'), (200, 'Apple'), (300, 'Samsung');
go
-- Sales
if (exists (select * from sys.objects where name='Sales'))
	drop table Sales
go
create table Sales
(
	sale_id int identity primary key,  -- 自增主键
	product_id int,
	year int,
	quantity int,
	price int,
	foreign key (product_id) references Product(product_id)  -- 外键
);
insert into Sales values(100, 2008, 10, 5000), (100, 2009, 12, 5000), (200, 2011, 15, 9000);
go

-- result
select p.product_id, sum(s.quantity) as total_quantity from Product p
	inner join Sales s
	on p.product_id=s.product_id
	group by p.product_id

-- Check
select * from Sales;
go
select * from Product;
go
exec sp_tables
go
select * from sysobjects where xtype='U'
go
select product_id, sum(quantity) as total_quantity from Sales group by product_id

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值