復合主鍵sql
❶ 當表中的主鍵是復合主鍵時如何用sql語句向表中添加信息
一樣,還是別違反主鍵的唯一約束就行了。復合主鍵顧名思意,組合的意思。所以只要2個欄位的內容組合不重復就可以通過檢測。例如A,A與A,B是不違反該復合主鍵約束的(僅以兩個欄位的復合主鍵為例)。
❷ 什麼是sql中的復合主鍵
復合主鍵應該是一張表中,由幾個欄位來定的唯一性,因為某幾列的組合就能唯一確立一條記錄,因此他們的組合為一張表的主鍵。通常,一張表有一個主鍵欄位,是唯一非空的。而復合主鍵是一張表由幾個欄位來定唯一性,即每條記錄的col1和col2欄位唯一。
❸ 如何在資料庫表中建立復合主鍵(即多個欄位同時作為
(即多個欄位同時作為主鍵)主鍵是資料庫表的一個重要屬性,建立主鍵可以避免表中存在完全相同的記錄,也就是說主鍵在一張表中的記錄值是唯一的。
建立主鍵有兩種方法:一種是在資料庫提供的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…………)
GO
ALTER TABLE 表名 WITH NOCHECK ADD
CONSTRAINT [PK_表名] PRIMARY KEY NONCLUSTERED
(
[欄位名1],
[欄位名2]
)
GO
例:
CREATE TABLE Student
(Son CHAR(12) PRIMARY KEY,
CREATE TABLE Course
(Con CHAR(4),
PRIMARY KEY (Con),
);
CREATE TABLE SC
(Sno CHAR(12),
Con CHAR(4),
PRIMARY KEY(Sno,Con),
FOREIGN KEY(Sno)REFERENCES Student(Sno),
FOREIGN KEY(Cno)REFERENCES Course(Cno));
❹ sql 聯合主鍵和復合主鍵
復合主鍵 是指你表的主鍵含有一個以上的欄位組成
聯合主鍵是多個主鍵聯合形成一個主鍵組合
❺ SQL裡面怎麼設置復合主鍵
CREATE TABLE [UserRole] (
a INT NOT NULL,
b INT NOT NULL, c INT NOT NULL,
PRIMARY KEY(a,b)
) ;
這是在查詢分析器里運行的。
如果手工建表的話,只需按住Ctrl鍵同時選擇兩個欄位就可以設置復合主鍵了。
❻ 在SQL中,什麼是復合主鍵
所謂的復合主鍵 就是指你表的主鍵含有一個以上的欄位組成
比如
create table test
(
name varchar(19),
id number,
value varchar(10),
primary key (name,id)
)
上面的name和id欄位組合起來就是你test表的復合主鍵
它的出現是因為你的name欄位可能會出現重名,所以要加上ID欄位這樣就可以保證你記錄的唯一性
一般情況下,主鍵的欄位長度和欄位數目要越少越好
❼ 怎麼用sql語句在已有表上設置復合主鍵
例如:
已有一個表test_key,其中a1列為主鍵。
create table TEST_KEY
(
a1 VARCHAR2(3) not null,
a2 VARCHAR2(3),
b1 VARCHAR2(3),
b2 VARCHAR2(3)
);
alter table TEST_KEY
add constraint PK_TEST_KEY primary key (A1)
using index;
現在要將a2,b1也增加到主鍵中與原有的a1一起組成復合主鍵。語句如下:
alter table TEST_KEY
drop constraint PK_TEST_KEY cascade;
alter table TEST_KEY
add constraint PK_TEST_KEY primary key (A1, A2, B1)
using index;
這樣就可以了。
❽ 怎麼在已有表上設置復合主鍵(表中已有主鍵,還要在加幾個主鍵)用sql語句
例如:
已有一個表test_key,其中a1列為主鍵。
create
table
TEST_KEY
(
a1
VARCHAR2(3)
not
null,
a2
VARCHAR2(3),
b1
VARCHAR2(3),
b2
VARCHAR2(3)
);
alter
table
TEST_KEY
add
constraint
PK_TEST_KEY
primary
key
(A1)
using
index;
現在要將a2,b1也增加到主鍵中與原有的a1一起組成復合主鍵。語句如下:
alter
table
TEST_KEY
drop
constraint
PK_TEST_KEY
cascade;
alter
table
TEST_KEY
add
constraint
PK_TEST_KEY
primary
key
(A1,
A2,
B1)
using
index;
這樣就可以了。
❾ 怎樣在sql server中創建復合主鍵
sql
server創建復合主鍵的2種方法創建復合主鍵:
方法一:創建表之後,alter
table
table_name
add
primary
key(欄位1,欄位2)
方法二:CREATE
TABLE
表名
(欄位名1
Int
Not
Null,
欄位名2
nvarchar(13)
Not
Null
欄位名3…………
欄位名N…………)
GO
ALTER
TABLE
表名
WITH
NOCHECK
ADD
CONSTRAINT
[PK_表名]
PRIMARY
KEY
NONCLUSTERED
(
[欄位名1],
[欄位名2]
)
GO