Oracle PL / SQL约束

约束是表及其列的规则,用于约束可以插入,更新或删除的数据的方式和数据。

约束对列和表都可用。

列约束

列可以具有定义可以将什么值列表输入到其中的规则。

NOT NULL约束意味着列必须具有值。

它不能为未知,或为空。

下表使用DDL创建具有NOT NULL列约束的作者表。

CREATE TABLE authors ( id number(38) not null, name varchar2(100) not null, birth_date date, gender varchar2(30) 
); 

表约束

表可以具有强制列值的唯一性和与其他表中的其他行的关系的有效性的规则。

下面仅讨论三个:唯一键,主键和外键。

唯一键约束

唯一键约束是一个或多个列上的规则,它们要求值的组合是唯一的。

唯一索引或唯一约束中的列可以为NULL。

以下代码显示了根据作者表创建唯一约束的DDL。

ALTER TABLE authors ADD CONSTRAINT authors_uk1 UNIQUE ( name, birth_date, gender ); 

主键约束

主键约束是一个或多个列上的规则,它们要求值的组合是唯一的。

您应该为数据库中的每个表定义主键约束。

以下代码显示了DDL以针对作者表创建主键约束。

ALTER TABLE authors ADD CONSTRAINT authors_pk primary key ( id ); 

创建主键约束的语法如下:

ALTER TABLE <table_name> ADD 
CONSTRAINT <constraint_name> 
PRIMARY KEY ( 
<column_name_1>, 
<column_name_2>,... 
<column_name_N> ); 

其中<table_name>是表的名称,<constraint_name>是主键约束的名称,<column_name>是要在约束中使用的列。

外键约束

外键是来自另一个表的一个或多个列,指向或连接到第一个表的主键。

外键是用外键约束定义的。

外键约束是针对从属表或子表定义的。

以下代码显示了根据作者出版品表创建外键约束的DDL。

ALTER TABLE author_books ADD CONSTRAINT author_books_fk1 FOREIGN KEY (author_id) REFERENCES authors (id); 

创建外键约束的语法如下:

ALTER TABLE <table_name> ADD 
CONSTRAINT <constraint_name> 
FOREIGN KEY ( 
<column_name_1>, 
<column_name_2>,... 
<column_name_N> ) 
REFERENCES <referenced_table_name> ( 
<column_name_1>, 
<column_name_2>,... 
<column_name_N> ); 

<table_name>是要约束的表的名称,<constraint_name>是外键约束的名称,<referenced_table_name>是要引用的表的名称,<column_name>是同时属于引用表的键,并且对应于从属表中具有相同值的列。

以下代码显示了根据作者出版物表创建主键约束的DDL。

ALTER TABLE author_books ADD 
CONSTRAINT author_books_pk 
PRIMARY KEY ( id); 

 CSDN:程序猿 寄语:
1、作为一个真正的程序员,首先应该尊重编程,热爱你所写下的程序,他是你的伙伴,而不是工具。
2、程序员可以让步,却不可以退缩,可以羞涩,却不可以软弱,总之,程序员必须是勇敢的。
3、编程是一种单调的生活,因此程序员比普通人需要更多的关怀,更多的友情。
4、程序不是年轻的专利,但是,他属于年轻。
5、没有情调,不懂浪漫,也许这是程序员的一面,但拥有朴实无华的爱是他们的另一面。
6、一个好汉三个帮,程序员同样如此。
7、一个100行的代码调试都可能会让程序员遇到很多挫折,所以,面对挫折,我们永远不能低头。
8、调试完一个动态连接函数,固然值得兴奋,但真正的成功远还在无数个函数之后。
9、程序是我的生命,但我相信爱她甚过爱我的生命。
10、信念和目标,必须永远洋溢在程序员内心。
11、就算我们站在群山之颠,也别忘记雄鹰依旧能从我们头顶飞过。骄傲是比用JAVA进行底层开发更可笑的东西。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/39030.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

文件夹读取难题:详解原因与数据恢复策略

一、文件夹读取不到文件的现象描述 在日常的计算机使用中&#xff0c;有时我们会遇到文件夹读取不到文件的情况。这通常表现为在尝试打开某个文件夹时&#xff0c;其中的文件列表并未正常显示&#xff0c;或者文件虽然显示但无法访问。这种问题不仅影响用户的工作效率&#xf…

Spark SQL----用于格式化和解析的数字Pattern

Spark SQL----用于格式化和解析的数字Pattern 一、描述二、语法三、Elements四、函数类型和错误处理五、例子5.1 to_number函数5.2 try_to_number 函数5.3 to_char函数 一、描述 诸如to_number和to_char之类的函数支持在字符串和Decimal类型的值之间进行转换。这些函数接受指示…

通俗易懂的chatgpg的原理简介

目录 一、深度学习与语言模型 二、ChatGPT训练三步走 三、情景学习与思维链 四、修改提示语优化结果 五、能力评估和注意问题 六.算法原理 简介&#xff1a; ChatGPT的人工智能原理主要基于深度学习技术&#xff0c;特别是大规模的预训练语言模型和Transformer结构。Cha…

【redis】redis事务

1、基本概念 Redis事务是一组命令的集合&#xff0c;这组命令要么全部执行&#xff0c;要么全部不执行&#xff0c;以保证数据的一致性。传统数据库中的事务相比&#xff0c;Redis事务有其独特之处&#xff0c;尤其是它不支持事务回滚。 2、特性 原子性&#xff1a;事务中的所…

马斯克宣布xAI将在8月份推出Grok-2大模型 预计年底推出Grok-3

在今年内&#xff0c;由特斯拉创始人马斯克创立的人工智能初创公司xAI将推出两款重要产品Grok-2和Grok-3。马斯克在社交平台上透露了这一消息&#xff0c;其中Grok-2预计在今年8月份面世&#xff0c;而Grok-3则计划于年底前亮相。 除此之外&#xff0c;马斯克还表示&#xff0c…

spring-05

什么是 Spring 的依赖注入 Spring 的依赖注入&#xff08;Dependency Injection&#xff0c;简称 DI&#xff09;是一种设计模式&#xff0c;用于管理和组织对象之间的依赖关系。在传统的程序设计中&#xff0c;对象通常会通过直接创建其他对象的实例来解决依赖关系&#xff0c…

EI期刊投稿要多久

EI检索的文章&#xff0c;无论是期刊还是会议论文&#xff0c;从投稿到发表的时间长度不一&#xff0c;受到多种因素的影响&#xff0c;包括期刊的审稿速度、会议的安排、以及EI的检索周期。 对于EI期刊文章&#xff0c;整个过程通常需要5到8个月&#xff0c;有时甚至更长。这包…

Java中如何优雅地处理TimeoutException异常?

Java中如何优雅地处理TimeoutException异常&#xff1f; 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在Java编程中&#xff0c;TimeoutException异常是一个…

[信号与系统]IIR滤波器与FIR滤波器相位延迟定量的分析。

IIR滤波器与FIR滤波器最大的不同&#xff1a;相位延迟 IIR滤波器相位延迟分析 相位响应和延迟 这里讨论一下理想延迟系统的相位延迟。 对于一个给定的系统频率响应 H ( e j w ) H(e^{jw}) H(ejw)可以表示为 H ( e j w ) ∣ H ( e j w ) ∣ e Φ ( w ) H(e^{jw}) |H(e^{jw…

【面试系列】SQL 高频面试题

欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;欢迎订阅相关专栏&#xff1a; ⭐️ 全网最全IT互联网公司面试宝典&#xff1a;收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来&#xff1a;详细讲解AIGC的概念、核心技术、…

iptable精讲

SNAT策略 SNAT策略的典型应用环境 局域网主机共享单个公网IP地址接入Internet SNAT策略的原理 源地址转换&#xff0c;Source Network Address Translantion 修改数据包的源地址 部署SNAT策略 1.准备二台最小化虚拟机修改主机名 主机名&#xff1a;gw 主机名&#xff1…

【Android面试八股文】为什么要用ContentProvider?它与SQL的实现上有什么区别

一、ContentProvider相比SQL的几个显著的区别和优势 ContentProvider是Android平台上的一个组件,主要用于在不同的应用程序之间共享数据,提供了一种标准化的接口来访问和操作数据。 它与直接使用SQL数据库有几个显著的区别和优势: 数据共享和访问控制: ContentProvider:…

嵌入式以太网硬件构成与MAC、PHY芯片功能介绍

一.以太网电路基本构成 1.总体介绍 对于上述三部分&#xff0c;并不一定都是独立的芯片&#xff0c;主要有以下几种情况&#xff1a; CPU内部集成了MAC和PHY&#xff0c;难度较高&#xff1b; CPU内部集成MAC,PHY采用独立芯片(主流方案)&#xff1b; CPU不集成MAC和PHY&#…

招生报名系统教培招生小程序

招生报名系统&#xff1a;轻松实现教培招生新高度 &#x1f680; 招生报名系统&#xff0c;开启智慧教育新时代 在当今数字化快速发展的时代&#xff0c;教育行业也迎来了变革的浪潮。招生报名系统作为这一变革的先锋&#xff0c;为教育机构提供了全新的招生渠道和管理方式。通…

原型模式的实现

1. 引言 1.1 背景 在实际编程中,有时需要频繁创建多个相似但稍有不同的对象。如果采用传统的对象创建方式,容易造成代码冗余,对象重复初始化操作也可能带来大量的的资源消耗(如时间、内存等)。这样不仅降低了灵活性,导致难以适应状态的变化,还降低了代码的可扩展性。 …

挑战与成长:面对他人成就引发的焦虑与迷茫

挑战与成长&#xff1a;面对他人成就引发的焦虑与迷茫 对于追求知识和技能的人来说&#xff0c;看到他人做出自己尚未达到的成就确实会带来焦虑感。这种焦虑常常源于对自己能力的质疑和对未来的不确定性。 在我的学习和发展过程中&#xff0c;有时确实会看到其他模型或系统能…

实操Nginx+Tomcat多实例部署,实现负载均衡和动静分离

192.168.10.10 192.168.10.20 192.168.10.30 location ~ \.jsp$ {proxy_pass http://192.168.10.50:8080;} location ~ \.(jsp|html)$ {root /usr/share/nginx/html;}192.168.10.40和192.168.10.50用脚本完成搭建此处安装附上脚本&#xff1a; #!/bin/bash# 定义变量 JDK_PACKA…

等保测评——云计算安全扩展(云计算关键技术)

虚拟化技术: 虚拟化是云计算的核心技术之一&#xff0c;它为云计算服务提供基础架构层面的支撑&#xff0c;是ICT&#xff08;信息通信技术&#xff09;服务快速走向云计算的最主要驱动力。虚拟化作为云计算的重要组成部分&#xff0c;最大的好处是能增强系统的弹性和灵活性&a…

【微服务网关——Websocket代理】

1.Websocket协议与原理 1.1 连接建立协议 1.1.1 客户端发起连接请求 客户端通过 HTTP 请求发起 WebSocket 连接。以下是一个 WebSocket 握手请求的例子&#xff1a; GET /chat HTTP/1.1 Host: server.example.com Upgrade: websocket Connection: Upgrade Sec-WebSocket-Key…

题目:只通过+1和×2两种操作,最少几次能把0变成20240701?

偶然在网上看到了一个题目&#xff0c;看了看视频和评论&#xff0c;感觉挺有意思&#xff0c;记录一下。 只通过1和2两种操作&#xff0c;最少几次能把0变成20240701&#xff1f;_哔哩哔哩_bilibili 题目&#xff1a;只通过1和2两种操作&#xff0c;最少几次能把0变成202407…