数据库语句怎么加外键

数据库语句怎么加外键,第1张

为数据库表添加外键方法(以SqlSever2005数据库为例):

1、新建两张表,一张为主表,一张为副表。主表里的外键就是连接到副表的主键

2、首先在主表中添加一个外键字段,如下:

3、在主表上右击,选择关系,如下:

4、点击“添加”。

5、再点击上图中标出的位置,如下:

6、图中标出的“主键表”就选择上面的副表。如下:

7、主键表底下的就选择副表的主键,如下:

8、外键表底下的就选择刚才新建的外键字段。如下:

9、再点击“确定”。

10、点击“是”,即可完成外键的添加。

个人理解,仅供参考。主码是用于唯一标识一行数据的,类似unique,比如插入的时候会查重。可能也有别的作用,如索引啊之类的,我没学透也不敢胡说。至于外码,是标识这一个关系(表)中的某个属性或者属性集是其他关系(表)中的码,那么插入时就会去另一个表中查看有没有这个码。如果没有,则插入失败。它能够用来增强两个关系(表)的联系。如果没有外码的限制,那么即使另一个表没有这个码,也能插入。

建议去看下廖雪峰的教学,举了个例子,写的很明白。

因为患者编号是唯一的,患者姓名不是唯一的

外键其实就是表的主键,主键必须是唯一的

如果对于数据库而言,用C也是可以的,只不过相对来说A更合适

希望我的回答能帮助到你

问题一:数据库中的外键是什么意思 设表t1,t2中都有一个name字段,而且是t1的主键

那么如果设t2中的name为外键的话

向t2中添加数据的时候,如果name值不在t1之中就会报错

问题二:数据库中什么是主键,什么是外键 主键(Primary key): 也称为主码或主关键字,用于惟一地确定一个元组的属性或属性组(复合主码)。每个关系都有一个并且只有一个主码。

外键(Foreign Key):也称为外码或外部关键字。如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。在关系数据库中可以通过外键使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系,从(子)关系(n方)称为参照关系。

问题三:SQL 数据库 外键 首先楼主要明白不同表中的相同字段是没有任何关系的 ,然后也没看到你的B表

你的问题:你的第一个问题你自己不觉得是自相矛盾吗?

A表中的主键是B表的外键,那么这个外键在B表中可以是主键吗? 这句话你的意思就相当于问 主键和外键可以是一个字段吗? 那么回答肯定是否定的 。一个字段要么是主键 要么是外键 不可能又是主键又是外键 ,然后主键和主键是同一级别的 没有谁约束谁,只有主键可以约束外键,然后我给楼主讲解一下主外键的关系,不要死记硬背定义,要理解。

比如a表的主键 如果是b表的外键的话 那么这个外键的每一个值都必须在a的主键里存在,如果b的这个外键定义可以为空的话,那么b这个外键的值只有两个情况:要么值在a的主键里选,要么为空。

就这么简单的一句话。

问题四:数据库中外键的概念及作用 表A中有字段(如身份z号)做了主键,表B中也有这个字段(身份z号),这里的身份z号一定来自表A同样字段里的骸容,那么表B的这个字段就叫表A字段的外键,也就是两个表以身份z号这个字段建立了联系。

表A中身份z号字段里面的身份z号一定是唯一的,不能有重复,而表B里面的同一个身份z号可以出现多次。这称为表A身份z号字段与表B身份z号字段建立了一对多的关系。

外键的作用就是可以让身份z号保证是来自表A中,也就是保证了数据的规范性;如果要删除A表中的某个身份z号,那么首先要删除B表中同样的身份z号,这保证了数据的完整性

问题五:在SQl中、主外键主要到底 是干什么用的? 主键Primary key,唯一标示一个实体。是保证数据库的实体完整性,保证数据中数据的正确性和合理性,取值非空唯一。例子:create table 学生表(学号 int primary key)

外键Foreign,是用来使表与表之间联系。用来保证数据库的参照完整性,外键的取值必须来自参照表参照列的值,可以为空也可不为空。例子:create table 选课表(学号 int foreign key references 学生表(学号))

连接查询与内外键的关系:

连接的 连接条件:A表的主键 = B表的外键如果做连接的两表没有主外键关系,那么连接结果是笛卡尔积,没有意义。

例:学生表和选课表做连接,select from 学生表,选课表where 学生表学号(主键)=选课表学号(外键)

主外键可以建级联级触发器,用来做级联删除、更新。作用原理还是因为主外键将两表联系。

问题六:数据库主外键之间的关系 主键:在表中的作用是1确保表数据的唯一性(一个表中只有一个主键)2可以通过主键查找到某一条信息

外键:是基于主键上的关联,如果没有主键外键也就没有意义,关联好了的时候,可以更方便你对数据库的增、删、修、改,而不是对一个个表一个个来做动作!!

区别:一个表可以有多个外键,但主键只有一个!

问题七:数据库语句怎么加外键 1,创建表的时候添加:foreign key (你的外键) references (表名)(字段名);

2,创建好之后修改:

alter table dbomh_User

add constraint FK_mh_User__id foreign key (你的外键) references (表名)(字段名);

问题八:SQL数据库外键 创建外键时可以指定级联删除选项,设置后主表数据被删除,从表数据也会被删除,反之则不然。

参考:hibaidu/a97475

sql外键约束NO ACTION,CASCADE,SET NULL,SET DEFAULT

NO ACTION

指定如果试图删除/修改某一行,而该行的键被其他表的现有行中的外键所引用,则产生错误并回滚 DELETE/UPDATE语句。

CASCADE、SET NULL 和 SET DEFAULT

允许通过删除或更新键值来影响指定具有外键关系的表,这些外键关系可追溯到在其中进行修改的表。如果为目标表也定义了级联引用 *** 作,那么指定的级联 *** 作也将应用于删除或更新的那些行。不能为具有 timestamp 列的外键或主键指定 CASCADE。

ON DELETE CASCADE

指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则也将删除所有包含那些外键的行。

ON UPDATE CASCADE

指定如果试图更新某一行中的键值,而该行的键值被其他表的现有行中的外键所引用,则组成外键的所有值也将更新到为该键指定的新值。 (如果 timestamp 列是外键或被引用键的一部分,则不能指定 CASCADE。 )

ON DELETE SET NULL

指定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。目标表的所有外键列必须可为空值,此约束才可执行。

ON UPDATE SET NULL

指定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为 NULL。目标表的所有外键列必须可为空值,此约束才可执行。

ON DELETE SET DEFAULT

指 定如果试图删除某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具 有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON DELETE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。

ON UPDATE SET DEFAULT

指 定如果试图更新某一行,而该行的键被其他表的现有行中的外键所引用,则组成被引用行中的外键的所有值将被设置为它们的默认值。目标表的所有外键列必须具 有默认值定义,此约束才可执行。如果某个列可为空值,并且未设置显式的默认值,则会使用 NULL 作为该列的隐式默认值。因 ON UPDATE SET DEFAULT 而设置的任何非空值在主表中必须有对应的值,才能维护外键约束的有效性。

问题九:数据库里面的主键和外键及候选键是什么意思啊? 的唯一字段的主键:表内,你可以不重复

外键:本表里面的字段其他相关表的主键字段内

候选键:不仅是多余的属性

问题十:数据库中什么是主键,什么是外键 主键(Primary key): 也称为主码或主关键字,用于惟一地确定一个元组的属性或属性组(复合主码)。每个关系都有一个并且只有一个主码。

外键(Foreign Key):也称为外码或外部关键字。如果一个属性集不是所在关系的关键字,但是是其他关系的关键字,则该属性集称为外部关键字。在关系数据库中可以通过外键使两个关系关联,这种联系通常是一对多(1:n)的,其中主(父)关系(1方)称为被参照关系,从(子)关系(n方)称为参照关系。

修改一下

foreign key (BudNo) REFERENCES Building(BudNo),

foreign key (BudUnit) REFERENCES Building(BudUnit),

foreign key (RoomNo) REFERENCES Building(RoomNo),

修改为

foreign key (BudNo, BudUnit, RoomNo) REFERENCES Building(BudNo, BudUnit, RoomNo)

SQL 2008 Express 下测试通过。

1> create table Building

2> (BudNo int check (BudNo>=1 and BudNo<=30),

3>  BudUnit int check (BudUnit>=1 and BudUnit <=5),

4>  RoomNo int,

5>  Dno char(20),

6>  RoomArea float not null,

7>  RoomType char(20),

8>  BudUnitCost float not null,

9>  BudAllCost float not null,

10>  PayDate date,

11>  StructurePicture char(5),

12>  ExpectStructurePicture char(5),

13>  States char(10),

14> primary key(BudNo, BudUnit, RoomNo),

15> -- foreign key(Dno) REFERENCES Developer(Dno),

16> )

17> go

1> create table Contracts

2> (

3> Cno char(20) primary key,

4> BudNo int check (BudNo>=1 and BudNo<=30),

5> BudUnit int check (BudUnit>=1 and BudUnit <=5),

6> RoomNo int,

7> ConNo char(20),

8> Sno char(20),

9> EveryMonthMoney float,

10> CountMonth int,

11> Cdeadline date,

12> DownGold float,

13> Interests float,

14> CR char(20),

15> foreign key (BudNo, BudUnit, RoomNo) REFERENCES Building(BudNo, BudUnit, Roo

mNo)

16> -- foreign key (ConNo ) REFERENCES Consumer(ConNo),

17> -- foreign key (Sno ) REFERENCES Staff(Sno),

18> )

19> go

1>

以上就是关于数据库语句怎么加外键全部的内容,包括:数据库语句怎么加外键、SQL中外码有什么用、数据库外码问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9770929.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存