(学习笔记)Oracle约束

约束指表中的字段要满足某些要求或条件,又或者带有某些意义

1.主键约束:作用是保证一条数据的唯一性。例如,有一张班级姓名表,某一天来了两位同学,恰好两位同学是同名同姓,则需要一个非空且唯一的字段来区别两位同学。主键约束分为两种,主键具有非空约束和唯一约束的性质,语法如下

  1.单主键:语法——create table student (id number(2,0) primary key, name nvarchar2(10)); 其中primary key为设置主键关键字

  2.多主键(联合/复合主键):语法——create table student (id number(2,0), nvarchar2(10), constraint pk_id_name(约束名) primary key(id, name)(指定哪几个字段) ); 

2.外键约束:用来描述表与表的对象关系,带有外键的一方叫做’从表‘,另一方就是’主表‘, 外键可以为空且主表的参照必须为主键,同时外键的值必须在主表字段中存在

  在创建表时指定外键——语法:主表 create table student (id number(3,0) primary key, name nvarchar2(3));

                从表create table card (id number(3,0) primary key, card_number nvarchar2(30,0), student_id number(3,0), constraint fk_student_id foreign                 key(student_id) references student(id));  可以理解为 “创建约束(constraint)——约束名为fk_student_id的student_id外键(fk_student_id                 foreign key(student_id))——参考、参照(references)——student表的id字段(student(id))

  通过alter修改表结构指定外键——语法:主表 create table student (id number(3,0) primary key, name nvarchar2(3));    

                  从表create table card (id number(3,0) primary key, card_number nvarchar2(30,0), student_id number(3,0));

                  alter table card add constraint fk_student_id foreign key(student_id) references student(id);  和上面的结构相似,只不过这里是用alter

                  修改表的的方式 add 添加约束                

3.非空约束:表示此约束字段不能为空,即插入数据时要指定此字段的值(除非此字段有默认值)。语法——在create table 或者alter table 语句中的字段类型后加上‘NOT NULL’。

4.唯一约束:表示带有唯一约束的字段的值在本字段中的所有值只能是唯一的,包括null也只能有一个。

      在创建表时设置唯一约束:语法——create table student (id number(3,0), name nvarchar2(3,0), constraint un_name unique(name));  创建约束(constraint)——

      名字为un_name的唯一约束,设置到name字段上(un_name unique(name))

       通过alter修改表结构设置唯一约束:语法——create table student (id number(3,0), name nvarchar2(3,0));

                      alter table student add constraint un_name unique(name)  结构和上面类似,通过 add 添加约束的方式

3.检查约束:检查约束的目的是为了让字段的值具有实际意义,例如,员工信息表中的薪水字段不可能为负值,否则将不具有意义

      通过创建表时设置检查约束——语法:create table employee (id number(3,0), name nvarchar(3,0), salary number(5,0), constraint ck_salary check(salary > 0));

                    创建约束名为ck_salary检查约束,关键字 check后面跟着检查表达式

      通过aler修改表结构的方式——语法create table employee (id number(3,0), name nvarchar2(3,0), salary number(5,0));

                    alter table employee add constraint ck_salary cheack(salary > 0);  同上

  

猜你喜欢

转载自www.cnblogs.com/yemingqianduzou/p/9340469.html