约束是表及其列的规则,用于约束可以插入,更新或删除的数据的方式和数据。
约束对列和表都可用。
列约束
列可以具有定义可以将什么值列表输入到其中的规则。
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进行底层开发更可笑的东西。