大家好,又见面了,我是你们的朋友全栈君。
在慕课网上学习时记的关于oracle中约束概念的基础笔记,当初一直对约束的概念不清不楚的,所以找了些资料来看
create table table_name ( column_name datatype not null, ... )
alter table table_name modify column_name datatype not null; 注意:在设置非空约束之前,表中不应该有数据
alter table table_name modify column_name datattype null;
方式一: create table table_name( column_name datatype PRIMARY KEY,... );
方式二:(创建联合主键) constraint constraint_name primary key(column_name1,...)
alter table table_name add constraint constraint_name primary key(column_name1,...);
alter table table_name rename constraint old_name to new_name
alter table table_name disable|enable constraint constraint_name; (禁用或启用约束) alter table table_name drop constraint constraint_name; (通过主键名删除约束) alter table table_name drop primary key[cascade]; (因为一个表只有一个主键,所以也可以直接这样删除主键;可选参数cascade用于级联删除,比如有外键的情况)
create table table1(从表) ( column_name datatype references table2(主表)(column_name),... ); 设置外键约束时,主表的字段必须是主键;主从表中相应的字段必须是同一个数据类型;从表中外键字段的值必须来自主表中相应字段的值,或者为null 例子 先创建一个主表 create table typeinfo ( typeid varchar2(10) primary key, 设置主键 typename varchar2(20) ); 接下来创建一个从表 create table userinfo ( id varchar2(10) primary key, 设置主键 username varchar2(20), typeid_new varchar2(10) references typeinfo(typeid) (将 typeid_new 设为外键,引用的是 typeinfo 表的主键) );
constraint contraint_name(约束名) foreign key(column_name) references table_name(column_name) [on delete cascade] []中的东西表示级联删除,添加以后,则删除主表的字段值,从表的外键也会删除 create table userinfo ( id varchar2(10) primary key, 设置主键 username varchar2(20), typeid_new varchar2(10), constraint fk_typeid_new foreign key(typeid_new) references typeinfo(typeid) ); 在修改表时添加外键约束 create table userinfo ( id varchar2(10) primary key, 设置主键 username varchar2(20), typeid_new varchar2(10) ); alter table userinfo add constraint fk_typeid_alter foreign key(typeid_new)references typeinfo(typeid);
disable|enable constraint constraint_name (放到alter table 后面使用) 通过user_constraints表查看有哪些约束 select table_name,constraint_name,constraint_type,status from user_constraints where table_name='APPR_ITM_DEFINE_EX'
alter table userinfo disable constraint fk_typeid_alter;
drop constraint constraint_name;(放到alter table 后面使用)
如下: alter table userinfo drop constraint fk_typeid_alter;
方式一(列集) create table table_name(column_name datatype unique,...) create table userinfo ( id varchar2(10) primary key, 设置主键 username varchar2(20) unique, 设置唯一约束 typeid_new varchar2(10) ); 方式二(表集) constraint constraint_nameunique(column_name) create table userinfo ( id varchar2(10) primary key, 设置主键 username varchar2(20) , typeid_new varchar2(10), constraint un_username unique(username) 设置唯一约束 ); 如果要设置多个唯一约束,需要继续添加constraint constraint_nameunique(column_name)才行,不能写在一个constraint中
create table userinfo ( id varchar2(10) primary key, 设置主键 username varchar2(20) , typeid_new varchar2(10) ); alter table userinfo add constraint un_username unique(username);
1.禁用唯一约束 disable|enable constraint constraint_name (放到alter table 后面使用) 禁用约束 alter table userinfo disable constraint un_username; 2.删除唯一约束 drop constraint constraint_name;(放到alter table 后面使用) 如下: alter table userinfo drop constraint un_username;
以上内容来自慕课网的相关教程
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155133.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...