Ⅰ sql 联合主键和复合主键
复合主键 是指你表的主键含有一个以上的字段组成
联合主键是多个主键联合形成一个主键组合
Ⅱ sql联合主键的作用
举个简单的例子,
班上有相同姓名的学生,也有相同生日的学生,但一般没有既是同名又是同生日的学生,
因此在不考虑用序号做主键的情况下,可以考虑使用姓名以及生日这2个字段来做联合主键。
Ⅲ 联合主键,SQL语句怎么写
建立主键有两种方法:一种是在数据库提供的GUI环境中建立,另一种是通过SQL语句执行建立,下面分别介绍。
1.在数据库提供的GUI环境中建立(以SQL7为例)。
输入表信息后按Ctrl键同时选中多行,然后点上面的主键按钮就行了。
2.通过SQL语句执行建立。又分两种,一是在建表语句中直接写,二是建表之后更改表结构。
在建表语句中直接写:
Create Table 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null Primary Key (字段名1, 字段名2),
字段名3字段名N )建表之后更改表结构:
CREATE TABLE 表名 (字段名1 Int Not Null,
字段名2 nvarchar(13) Not Null字段名3字段名N)GOALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED([字段名1],
Ⅳ sql数据库两个外键做联合主键
lz的说法有误
主键不能建立在外键约束上,但是它可以建立在外键约束对应的列上。
所以你要做的就是对两个外键约束对应的列加复合主键
ALTER
TABLE
表名
WITH
NOCHECK
ADD
CONSTRAINT
[PK_表名]
PRIMARY
KEY
NONCLUSTERED
(
[字段名1],
[字段名2]
)
-----------------------------------
zjwssg解元同学
外键约束对应的列也可以是唯一键哎
Ⅳ sql 中设置联合主键怎么设
这个操作很简单,就是按住ctrl键,或者是shift键,然后右键你要设置主键的那个属性列,直接选择设置主键即可!
Ⅵ 求助高手!!关于sql联合主键比较的问题
select *
from student,shiyanshi A Left Join AuthRec B ON A.CardID=B.CardSn And A.nodeid=B.nodeid
where B.nodeid IS NULL
Ⅶ sql 联合主键问题
你的查询和联合主键没有什么关系吧?
直接
selectid
from表
wherea=3and(b=4orb=8)
这样不就可以了?
Ⅷ SQL2014如何设置联合主键
设置默认值
alter
table
<表名>
add
<列名>
<默认值类型>
default
'<默认值>'
设置主键
alter
table
<表名>
add
constraint
<主键名>
primary
key(<列名>)
设置联合主键
alter
table
<表名>
add
constraint
<主键名>
primary
key(<列名1>,<列名2>,...,<列名n>)
约束
alter
table
<表名>
add
constraint
<约束名>
check
(<约束语句>)
在输入语句的时候<>是不需要的
Ⅸ SQL Server 怎么建立联合主键
建立联合主键有两种方式:
一种是在建表时就写出,语句如下:
create
table
表名
(字段名1
int
not
null,
字段名2
nvarchar(13)
not
null
primary
key
(字段名1,
字段名2),
字段名3…………
字段名n…………
)
另一种是在建表后更改,语句如下:
alter
table
你的表名
add
constraint
pk_你的表名
primary
key
(字段1,字段2)
alter
table
表名
with
nocheck
add
constraint
[pk_表名]
primary
key
nonclustered
(
[字段名1],
[字段名2]
)
创建联合主键还可以这样写:
create
table
huayunkeji_today(device_id
int
,
year
int,
month
int,
day
int,
hour
int,
temperature
float,
humidity
float,
primary
key(device_id,year,month,day,hour));
(9)sql联合主键join扩展阅读:
联合主键的使用情况及优点:
联合主键就是用2个或2个以上的字段组成主键。用这个主键包含的字段作为主键,这个组合在数据表中是唯一,且加了主键索引。
可以这么理解,比如,你的订单表里有很多字段,一般情况只要有个订单号bill_no做主键就可以了,但是,现在要求可能会有补充订单,使用相同的订单号,那么这时单独使用订单号就不可以了。
再使用个订单序列号bill_seq来作为区别。把bill_no和bill_seq设成联合主键。即使bill_no相同,bill_seq不同也是可以的。
Ⅹ sql如何通过三个表都有的两个字段所组成的联合主键查询三个表中想要的字段!
按该表结构,一个商品属于多个类别,那么查询中的类别编号就不唯一,不能只有一个字段。姑且按照上述理解给出答案:
select a.type_one 类别描述一编号, b.type_text类别描述一描述, a.type_two 类别描述二编号, c.type_text 类别描述二描述, a.type_three 类别描述三编号, d.type_text 类别描述三描述, a.proct_id 商品编号 from proct_category_price a join proct_category b on a.type_one = b.id and a.proct_id = b.proct_id join proct_category c on a.type_two = c.id and a.proct_id = c.proct_id join proct_category d on a.type_three = d.id and a.proct_id = d.proct_id