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进行底层开发更可笑的东西。

相关推荐
MXsoft6181 分钟前
华为服务器(iBMC)硬件监控指标解读
大数据·运维·数据库
TheITSea12 分钟前
云服务器宝塔安装静态网页 WordPress、VuePress流程记录
java·服务器·数据库
王ASC1 小时前
ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值。ojdbc8版本23.2.0.0驱动BUG【已解决】
数据库·sql·oracle
Dlwyz1 小时前
问题: redis-高并发场景下如何保证缓存数据与数据库的最终一致性
数据库·redis·缓存
如意机反光镜裸2 小时前
如何快速将Excel数据导入到SQL Server数据库
数据库
不爱学习的啊Biao2 小时前
初识mysql数据库
数据库·mysql·oracle
执键行天涯2 小时前
【日常经验】修改大数据量的表字段类型,怎么修改更快
sql
SRC_BLUE_173 小时前
SQLI LABS | Less-55 GET-Challenge-Union-14 Queries Allowed-Variation 2
oracle·c#·less
宛唐羁客3 小时前
ODBC连接PostgreSQL数据库后,网卡DOWN后,客户端进程阻塞问题解决方法
网络·数据库
sevevty-seven3 小时前
幻读是什么?用什么隔离级别可以防止幻读
大数据·sql