1樓:匿名使用者
student name是唯一嗎?
name建議查詢的時候查出來 用student的id比較好
2樓:手機使用者
可以設定多個外來鍵的,在關係圖中可以看到。
mysql中怎麼在乙個表中建立多個外來鍵,也就是說乙個表中有兩個欄位是參照另外兩個表的主鍵,這個怎麼建啊!
3樓:匿名使用者
create table erollment(sno varchar(8) not null,cno varchar(3) not null,tno varchar(6) not null,grade double not null,primary key(sno,cno,tno),foreign key (sno) references student(sno),
foreign key (cno) references courses(cno),foreign key (tno) references teacher(tno));
資料庫建表時乙個表最多可以有幾個主鍵,幾個外來鍵
4樓:匿名使用者
乙個表最多只能有乙個主鍵,但外來鍵可以有若干個。主鍵不一定是單個字段,也可以是多個字段組成的聯合主鍵。
5樓:澄江秋色
主鍵在乙個表中只有乙個,但主鍵有兩種,單一的和復合的,想設復合主鍵要先建立約束,外來鍵可以有多個.
6樓:迷o_o蝶
補充 澄江秋色 的
主鍵只有乙個
但是可以設定為多個字段為主鍵,也即復合主鍵。
外來鍵就隨便你自己設定了也即可以有多個,可以設定除主鍵以外的其他字段全部是外來鍵的。
7樓:翁格虎嘉悅
補充澄江秋色
主鍵設定
字段主鍵
即復合主鍵
外來鍵隨便自設定
即設定除主鍵外其
字段全部外來鍵
8樓:匿名使用者
資料庫在建表的時候,乙個表最多有1個主鍵,可以有多個外來鍵。也就是說,關係型資料庫中的一條記錄中有若干個屬性,若其中某乙個屬性組(注意是組)能唯一標識一條記錄,該屬性組就可以成為乙個主鍵,乙個表裡的主鍵就是唯一的關鍵字,就像是每個人的身份證號,都沒有重複,唯一的乙個。
表和表之間可以通過某乙個屬性產生關聯。比如a表裡面有乙個人的身份證號,姓名,性別等資訊,姓名性別有可能重複,但是身份證號沒有重複的。在b表裡面有身份證號,戶口所在地,工資數等資訊。
兩張表通過身份證號產生關聯,我們可以從b表根據戶口所在查到本條記錄的身份證號再到a表查出姓名性別等資訊。
9樓:匿名使用者
看看這個就明白了
mysql如何新增多個外來鍵
10樓:匿名使用者
1)主鍵是什麼,主鍵在資料表中是唯一的標示,主鍵在乙個表中是不允許重複的;
2)外來鍵是什麼,外來鍵是主鍵表的乙個對應關係表的連線標示;
在建立外來鍵前你要確定,外來鍵表是否已經建立;
從你的sql語句中可以看出你的錯誤:不說你關聯表是不是存在;
先看你主鍵建立:gid int not null primary key,
你在這裡已經把gid這個屬性定義為主鍵了,在下面foreign key (gid) references goods (gid),gid欄位設定為外來鍵就明顯的有語法錯誤;
怎樣在用sql語句建立表的同時新增外來鍵約束
11樓:智者總要千慮
像下面這樣就好了,foreign key(外來鍵) references 表名(字段)
foreign key (`operatorid`) references `jr_operator` (`id`)
12樓:匿名使用者
alter table 表2 add
consraint fk_a_b foreign key(uid) references 表1(uid);
如何在資料庫表中新增多個主鍵約束
13樓:du瓶邪
1.(sql 方式) alter table 表名 add constraint 主鍵名 primary key (以","分隔的屬性列表)
2.(操作方式) 在表設計器中選中兩個欄位再設為主鍵.
14樓:匿名使用者
乙個表只能有乙個主鍵,該主鍵可以由乙個字段組成,也可以由多個字段組成,多個字段組成的稱為聯合主鍵。
15樓:達摩王
其實ms sql不能這樣設定2個主鍵:create table hello(id int primary key,name varchar(40) primary key);
設定聯合主鍵應該是:create table hello(id int,name varchar(20),constraint 別名 primary key (id,name));
16樓:積木時代
為什麼要多個主鍵?
你的目的是要同字段中的資料唯一不重複的話, 可以所有 唯一約束.
表已建立好了,想新增外來鍵約束,**怎麼寫
17樓:sky不用太多
alter table 表 add constraint 外來鍵約束名稱 foreign key (列) references 表 (主鍵列);
如果公共關鍵字在乙個關係中是主關鍵字,那麼這個公共關鍵字被稱為另乙個關係的外來鍵。由此可見,外來鍵表示了兩個關係之間的相關聯絡。以另乙個關係的外來鍵作主關鍵字的表被稱為主表,具有此外鍵的表被稱為主表的從表。
外來鍵又稱作外關鍵字。
設f是基本關係r的乙個或一組屬性,但不是關係的鍵,ks是基本關係s的主鍵。如果f與ks相對應,則稱f是r的外來鍵,並稱基本關係r為參照關係,基本關係s為被參照關係或目標關係。
換而言之,如果關係模式r中的某屬性集不是r的主鍵,而是另乙個關係r1的主鍵則該屬性集是關係模式r的外來鍵,通常在資料庫設計中縮寫為fk。
在實際操作中,將乙個表的值放入第二個表來表示關聯,所使用的值是第乙個表的主鍵值(在必要時可包括復合主鍵值)。此時,第二個表中儲存這些值的屬性稱為外來鍵(foreign key)。[1]
顯然目標關係的主碼和參照關係的外碼必須定義在乙個或同一組的域上。關係r和s不一定是不同的關係,即外來鍵不一定要與相應的主鍵同名。如在學生(學號,姓名,性別,專業號,年齡,班長)關係中,「學號」是主鍵,「班長」屬性表示該學生所在班級的班長的學號,它引用了本關係中「學號」屬性,因此「班長」是外來鍵,這裡學生關係既是參照關係也是被參照關係。
不過在實際應用中為了便於識別,當主鍵與相應的外來鍵屬於不同關係時,往往取相同的名字。
18樓:
alter table tb_name add constraint fk_name foreing key (tb_name.id) references tb_stu(id);
該語句是在 tb_name表上新增乙個外來鍵約束,引用 tb_stu的主鍵,fk_name是約束的名字。
刪除約束:alter table tb_name drop constraint fk_name ;
19樓:手機使用者
if exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[tblcommdevice]') and objectproperty(id, n'isusertable') = 1)
drop table [dbo].[tblcommdevice]
gocreate table [dbo].[tblcommdevice]
(commdevid int identity(1,1) not null,
personid int not null,
commtype varchar(20) null,
commvalue varchar(60) not null,
constraint pk_tblcommdevice primary key clustered (petitionid) with fillfactor = 90 on [primary]
) on [primary]
gocreate index [ix_tblcommdevice] on [dbo].[tblcommdevice]([commtype]) with fillfactor = 60 on [primary]
goif exists (select * from dbo.sysobjects where id = object_id(n'[dbo].[tblperson]') and objectproperty(id, n'isusertable') = 1)
drop table [dbo].[tblperson]
gocreate table [dbo].[tblperson]
(personid int identity(1,1) not null,
lastname varchar(20) not null,
firstname varchar(20) not null,
mailingaddr varchar(40) null,
city varchar(20) null,
state varchar(2) null,
zip varchar(10) null,
persontype varchar(1) null,
constraint pk_tblperson primary key clustered (personid) with fillfactor = 90 on [primary]
) on [primary]
gocreate index [ix_tblperson] on [dbo].[tblperson]([firstname]) with fillfactor = 60 on [primary]
gocreate index [ix_tblperson_1] on [dbo].[tblperson]([lastname], [firstname]) with fillfactor = 60 on [primary]go
sql如何把查詢出來的多個表建立成臨時表
select into temp from select a,b,c from table1 union all select a,b,c from table2 1 sql server使用select into會自動生成臨時表,不需要事先建立。select into temp from syso...
如何SQL建立表,sql語句 如何建立乙個表啊
use test go create table dbo article goodid varchar 50 not null,goodname varchar 100 null,price numeric 18,10 not null,goodsum nchar 10 null,constrain...
C 為什麼同類要建立多個物件,C 為什麼同一個類要建立多個物件 5
這麼說吧,人類是也是一種類,每個人都是一個人類的具體表現形式 每個人都有很多共同的屬性,但是也有 每個人的特性,如果上帝只造了一個 人,那他多沒意思,沒有其他人跟他 有社會聯絡,比如不能xxoo神馬的,所以說呢,你只建立一個物件,就沒 什麼意思咯。 你不需要為一個類建立一個物件也能呼叫類的函式,前提...