外键约束的语法(sql怎么设置外键)

2025-04-01 22:50:02 0

外键约束的语法(sql怎么设置外键)

本文目录

sql怎么设置外键

创建数据库时就是有主键的创建了主键,但是表之间的关系没有联系,要建数据库关系图只有主键没有外键时不行的。

建外键的前提是此外键必须是另外一个表的主键。建外键的步骤:

第一步、打开要建外键表的设计器,右击选择“关系”。

第二步、然后弹出“外键关系”窗体,我们选择“添加”,然后点击“表和列规范”后面的小按钮。

第三步、弹出另外一个窗体让我们选择主键表和列,记住要选择相同的,选好之后点击确定。

第四步、展开INSERT和UPDATE规范,在更新规则和删除规则有四个选项,分别是“不执行任何操作”、“级联”、“设置为NULL”、“设置默认值”。

默认的不执行任何操作。如果是“不执行任何操作”,当我们删除或更新主键表的数据时,会告诉用户不能执行删除或更新该操作。

“级联”的意思是当我们删除或更新主键表的数据时,会删除或更新外键表中所涉及的相关数据的所有行。

“设置Null”的意思是当我们删除或更新主键表的数据时,外键表中的外键列的值会设为Null,但前提是该列允许为空。

“设置默认值”的意思是如果我们将外键列定义了默认值,当我们删除或更新主键表的数据时,外键表中的外键列的值设为定义的默认值。

当然也可以用代码创建,在创建数据库表T——Card时只要加上一句代码就可以了。“Foreign key (studentNo) references T_Student(studentNo)“。如果已经创建了改表,那如何用代码实现了,这也很简单也就一句代码“ add constraint CMPKey(外键名) foreign key(studentNo) references T_Student(studentNo)”。

怎么在SQL中设置外键

两种方法,命令与图形化图形化,在控制台左边的小窗格中,找到要设置的表格名,右键,新建外键,然后根据要求设置既可。(新建关系图--》添加表 然后直接用鼠标拖字段连接就可以建立外键约束了 )

命令方式sql ce表中建立外键约束的语法:CREATE TABLE DetectTable(UserID integer,StartTime datetime not null,EndTime datetime not null,MassName nvarchar(10), foreign key (UserID) references UserTable(UserID)),其中,UserID为UserTable表中的主键。

什么是外键约束

外键约束是指用于在两个表之间建立关系,需要指定引用主表的哪一列。

外键约束对子表如此检查处理:

在子表上进行INSERT、UPDATE 操作的限制是,要和主表中的主键值匹配,或为NULL, 否则不允许。

外键约束对父表如此检查处理:

在父表_上进行UPDATE、DELETE操作的限制,取决于在定义子表的外键时指定的ON UPDATE、ON DELETE子句(不同的DBMS支持的情况不尽相同)。众ON DELETE子 句各选项的作用:

1、No ACTION :删除主表记录,如果子表中有和主表匹配的记录,则不允许(产生一个错误提示)。此为默认操作(不指定ON DELETE子句, 系统自动采取的操作)。

2、CASCADE  (级联):删除主表记录,也将删除子表中的匹配记录。

3、SET NULL :删除主表记录,将子表中的匹配记录的外键值改为NULL。

4、SET DEFAULT :删除主表记录,将子表中的匹配记录的外键值改为默认值。众ONUPDATE子句各选项的作用。

扩展资料

外键的用途是确保数据的完整性。它通常包括以下几种: 

1、实体完整性,确保每个实体是唯一的(通过主键来实施) 

2、域完整性,确保属性值只从一套特定可选的集合里选择 

3、关联完整性,确保每个外键或是NULL(如果允许的话)或含有与相关主键值相配的值。

约束的主要目的是控制存储在外键表中的数据,但它还可以控制对主键表中数据的修改。例如,如果在 publishers 表中删除一个出版商,而这个出版商的 ID 在 titles 表中记录书的信息时使用了。

则这两个表之间关联的完整性将被破坏,titles 表中该出版商的书籍因为与 publishers 表中的数据没有链接而变得孤立了。

FOREIGN KEY 约束防止这种情况的发生。如果主键表中数据的更改使之与外键表中数据的链接失效,则这种更改是不能实现的,从而确保了引用完整性。

如果试图删除主键表中的行或更改主键值,而该主键值与另一个表的 FOREIGN KEY 约束值相关,则该操作不可实现。

若要成功更改或删除 FOREIGN KEY 约束的行,可以先在外键表中删除外键数据或更改外键数据,然后将外键链接到不同的主键数据上去。 

参考资料来源:百度百科--外键

参考资料来源:百度百科--约束

SQL2005中的外键约束主要有什么作用(求详细答案)

外键是表中的一个列,其值必须在另一个表的主键中列出。外键主要作用是保证数据引用的完整性,定义外键后,不允许删除在另一个表中具有关联行的行。比如,有一个客户表a,一个订单表B:客户ID为表A的主键,每个客户都有唯一的ID号,订单号为表B的主键,每个订单都有唯一的订单号。订单表中的客户ID列中的值不一定是唯一的,允许一个客户有多个订单,但客户的ID值必须在客户表A中已存在。定义外键后,要删除客户表A中的行,必须确保客户没有在订单表B中没有订单才能删除成功。

SQL语句的外键约束是什么

create table score。

SQL的主键和外键的作用:外键取值规则:空值或参照的主键值。

(1)插入非空值时,如果主键表中没有这个值,则不能插入。

(2)更新时,不能改为主键表中没有的值。

(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。

(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

简而言之,SQL的主键和外键就是起约束作用。

alter table 外键表名 add constraint 约束名称 foreign key (外键字段) references 主键表名(约束列名)。

如果表A中的Ids是主键,要约束表B中得Aid列,那么语句应该是:alter table B add constraint A_B_Ids foreign key(Aid) references A(Ids)。

SQL 外键约束怎么用语句写出来 谢谢 最好详细点

createtablescore(课程号intprimarykey,scoreint)createtablestudent(学号intprimarykey,课程号int,foreignkey(课程号)referencesscore(课程号))--------------------------公共关键字是课程号score表中的主键课程号是student表中的非主键,所以score表中的课程号是表student的外键。---如果公共关键字在一个关系中是主键,那么这个公共关键字被称为另一个关系的外键

sql用命令创建主键与外键

1、为了方便大家理解,使用一个例子来帮助大家理解。意思大概就是通过引用表二中的字段完成对表一字段的约束。方法:

2、这里一共两个表,先创建外键表,因为先有外键,主键才能引用。首先创建数据库,新建查询。

3、新建外键表【teacher】,输入命令:create table teacher。添加需要的字段teacher_xingming并设置它为【主键】。输入命令:teacher_xingming nchar(10) primary key,

4、选中需要执行的命令行,单击【执行】,下方会有是否成功的提示。现在对表进行刷新操作后,会发现已经成功创建了一个新表【teacher】。

5、接下来就要创建学生表了,create table student( student_xingming nchar(10) primary key not null,——该程序段意思为创建一个【student】表,表中新建一个主键【student_xingming字段,类型为nchar(10) ,并不允许为空。】

6、继续写,输入:student_banji nchar(10) not null,——表中新建一个【student_banji字段,类型为nchar(10) ,并不允许为空。】

7、创建外键,输入命令student_jiaoshi  nchar(10) foreign key references teacher(teacher_xingming)看起来很长,实际意思很简单:表中新建一个【student_jiaoshi字段】,它是外键,nchar(10)类型,它来至 teacher_xingming中的内容。

8、选中,点击【执行】,没有错误,就说明成功了。刷新一下表,看看是不是多了一个表【student】?所有约束已经创建好了。

9、来试一下看看是否真正实现所说的功能。打开【teacher表】,填写“刘老师”。打开【student表】,前面任意填,最后填写“刘老师”,没有错误说明没问题。

10、如何想测试约束是否真的有效,填写其他内容,看看是否成功,只要不是【teacher】字段中的内容,他就会报错。

外键约束的语法(sql怎么设置外键)

本文编辑:admin
外键约束的语法 ,sql ,s

更多文章:


dumplings什么意思(dumplings和jiaozi的区别)

dumplings什么意思(dumplings和jiaozi的区别)

本文目录dumplings和jiaozi的区别gyoza和dumplings的区别dumpling是什么意思英语dumpling什么意思dumplings 是什么意思dumplings是什么意思dumplings和jiaozi的区别dump

2025年3月22日 14:00

微服务有哪些设计原则?python grpc如何给proto文件中map类型的变量赋值

微服务有哪些设计原则?python grpc如何给proto文件中map类型的变量赋值

本文目录微服务有哪些设计原则python grpc如何给proto文件中map类型的变量赋值在Ubuntu的环境下怎么交叉编译grpc到cortex-a9架构微服务有哪些设计原则微服务应用4个设计原则:我们总结了四个原则推荐给大家:AKF拆

2025年3月24日 23:30

api怎么调用(java中API怎么调用啊)

api怎么调用(java中API怎么调用啊)

本文目录java中API怎么调用啊api函数怎么用如何调用API函数Api怎么调用能举下例吗支付宝的API调用怎么用java中API怎么调用啊1,java中的api并不能直接调用的,常说的调用api其实是调用相关的类和接口,这些类和接口里包

2025年3月6日 19:20

centos镜像下载官网(Redhat镜像现在哪里有)

centos镜像下载官网(Redhat镜像现在哪里有)

本文目录Redhat镜像现在哪里有怎么弄虚拟机镜像文件请问怎么安装windows linux 双系统Redhat镜像现在哪里有首先非常感谢在这里能为你解答这个问题,让我带领你们一起走进这个问题,现在让我们一起探讨一下。目前没有,RHEL 的

2025年2月23日 19:30

多线程编程是什么(什么是多线程,多线程编程的好处是什么)

多线程编程是什么(什么是多线程,多线程编程的好处是什么)

本文目录什么是多线程,多线程编程的好处是什么什么是多线程编程 java 笔试面试什么是多线程编程什么时候使用什么是多线程,多线程编程的好处是什么举个例子,你要做饭,你要做的饭是米饭和一个炒菜。如果是单线程,那么你可以如下做:第一种方法:先炒

2025年2月25日 15:30

mac地址是啥(电脑的mac地址是什么意思)

mac地址是啥(电脑的mac地址是什么意思)

本文目录电脑的mac地址是什么意思物理地址和mac地址是什么MAC地址是什么MAC地址是什么意思mac地址是什么意思MAC地址 是 通常所说的什么mac地址是什么地址电脑的mac地址是什么意思MAC(Media Access Control

2025年2月28日 06:40

tomcat宕机(centos怎样编写tomcat宕机自动重新启动)

tomcat宕机(centos怎样编写tomcat宕机自动重新启动)

本文目录centos怎样编写tomcat宕机自动重新启动请教tomcat一段时间就死机是什么情况tomcat为什么老是宕机,ajp协议有什么需要注意的地方如何提高tomcat服务器的性能Apache httpd +tomcat ProxyP

2025年2月13日 01:00

basic语言教程(那里有关于BASIC语言的TXT教程)

basic语言教程(那里有关于BASIC语言的TXT教程)

本文目录那里有关于BASIC语言的TXT教程我想学basic语言,请问怎么入门,股票指标就是用这个需要编辑的BASIC语言什么教材最好想学BASIC语言(不是VB)哪有完整的教程用什么编写BASIC语言谢谢怎么学习basic那里有关于BAS

2025年2月28日 19:40

trunk配置命令(Cisco交换机Trunk配置命令!)

trunk配置命令(Cisco交换机Trunk配置命令!)

本文目录Cisco交换机Trunk配置命令!H3C 配置TRUNK的命令是什么锐捷交换机配置vlan和trunk的主要命令思科2960交换机配置命令都有哪些trunk 接口的配置怎么配置cisco二层交换机和三层交换机怎么设置trunk交换

2025年3月18日 16:10

随机数字表下载(随机数表下载)

随机数字表下载(随机数表下载)

本文目录随机数表下载我想获得200个随机数:1-200,怎么做随机数字表随机数表下载自己做个啊在EXCEL表格内全部填上=RAND()就可以得到0以下的随机数了如果要限定范围的话,如随机数是10以下的,就改为=RAND()*11如果只想产生

2025年4月4日 03:50

我要自学网视频教程免费教程自学电脑(我要自学网上有教裁剪的视频教程吗)

我要自学网视频教程免费教程自学电脑(我要自学网上有教裁剪的视频教程吗)

本文目录我要自学网上有教裁剪的视频教程吗我要自学网,怎么收费的,是不是无限观看关于学习类的网站有哪些大家有没有我要自学网的破解版啊,谢谢大家我要自学网上有教裁剪的视频教程吗因为现在短视频的崛起,任何企业,任何工作室或者个人都需要剪辑大量的视

2025年3月24日 11:50

yielded是什么意思(yield spread是什么意思)

yielded是什么意思(yield spread是什么意思)

本文目录yield spread是什么意思yielded的中文是什么yield是什么函数street-convention-yield是什么意思yield的意思yield spread是什么意思  yield spread:利差  利差是指

2025年2月16日 01:20

Stata应用领域有哪些?怎么在stata中导入excel数据

Stata应用领域有哪些?怎么在stata中导入excel数据

本文目录Stata应用领域有哪些怎么在stata中导入excel数据怎么看stata相关性检验结果Stata应用领域有哪些Stata是一款完整的、集成的统计软件包,可满足数据分析、数据管理和图形制作的一切需求。Stata不是分模块出售的,这

2025年2月18日 02:50

browser是什么(QQBrowser是什么)

browser是什么(QQBrowser是什么)

本文目录QQBrowser是什么手机上FTBrowser是什么软件QQBrowser是什么QQbrowser是QQ浏览器。QQ浏览器是腾讯科技(深圳)有限公司开发的一款浏览器,其前身为TT浏览器。QQ浏览器秉承TT浏览器1-4系列方便易用的

2025年3月6日 05:10

killbackground(ipad如何通过手摇来清除后台程序)

killbackground(ipad如何通过手摇来清除后台程序)

本文目录ipad如何通过手摇来清除后台程序killbackground ios8能用吗killbackground怎么用killbackground怎么设置怎么用设置及使用教程详解苹果手机killbackground怎么设置ios7 kil

2025年2月26日 19:00

fade是什么意思中文(Faded,这单词的意思是什么)

fade是什么意思中文(Faded,这单词的意思是什么)

本文目录Faded,这单词的意思是什么“fade”和“faded”分别是什么意思fade是什么意思啊如何背“fade”是什么意思fade什么意思Faded,这单词的意思是什么Faded的中文翻译意思是已褪色的,已凋谢的。词汇分析音标:英

2025年3月13日 19:10

iframe操作讲解(jquery iframe操作详细解析)

iframe操作讲解(jquery iframe操作详细解析)

本文目录jquery iframe操作详细解析如何操作iframe 中某些元素怎样用jQuery 操作IFRAMEjquery怎么操作iframejquery iframe操作详细解析使用jquery操作iframe1、内容里有两个ifam

2025年3月5日 00:20

手机一键换ip(如何在手机上修改ip地址)

手机一键换ip(如何在手机上修改ip地址)

本文目录如何在手机上修改ip地址手机ip怎么改地址推荐几款好用的一键换手机或者电脑ip的软件手机怎么换ip手机如何更换ip如何改自己手机的IP地址安卓手机怎么改ip地址怎样把手机IP切换到不同的地方手机上面的IP怎么更换 如何在手机上修改i

2025年3月21日 01:50

openeuler图形化界面(新装的openeuler没有文件)

openeuler图形化界面(新装的openeuler没有文件)

本文目录新装的openeuler没有文件epson-lq-630k打印机打印增值税发票左边距和上边距怎么设计华为将发布新操作系统openEuler欧拉,此举有何深意新装的openeuler没有文件看看是不是保存好了。首先,在搜索框输入关键字

2025年2月17日 12:40

update是什么意思翻译成中文(Update翻译成汉语是什么意思)

update是什么意思翻译成中文(Update翻译成汉语是什么意思)

本文目录Update翻译成汉语是什么意思Update是什么意思啊update中文是什么意思windows update是什么意思中文Update翻译成汉语是什么意思updatevt.更新,使现代化; 校正,修正; n.现代化; 更新的信息;

2025年3月6日 07:50

近期文章

java 数组(Java数组)
2025-04-05 09:40:02
mfc指的是什么?mfc是什么
2025-04-05 09:30:02
journal of alloys and compounds(Journal of Alloys and Compounds投稿求助)
2025-04-05 08:40:02
本站热文

harbor,port,pier的区别?谁能解释“harbour“(港口)与“pier“(码头)的区别
2025-02-22 17:40:03 浏览:18
ibatis foreach(ibatis 批量update操作)
2025-02-10 23:40:06 浏览:7
endless rain(endless rain表达什么情感)
2025-02-14 06:00:02 浏览:6
标签列表

热门搜索