DDL数据库对象管理
ddl数据库对象管理
约束的分类:
主键约束:primary key 要求主键列数据唯一,并且不允许为空。
外键约束:foreign key 用于在两表之间建立关系,需要指定引用主表的哪一列。
检查约束:check 某列取值范围限制、格式限制等。 例如性别列
唯一约束:unique 数据的唯一性,可以空,但只能有一个
非空约束:not null 该列数据不能为空
注意:1.not null 约束只能在列级上定义。
2. 外键需要关联主键表的主键列或唯一列,这里关联唯一列
3. 创建外键表时:先创建主键表,在创建外键 。删除表时:先删除外键表,在删除主键表
1.创建表格
-- create table 表格名称(列名 数据类型 约束 ,列名 数据类型 ,约束);
create table cla
(
clano number,
claid nvarchar2(20),
claname nvarchar2(20)
);
--在创建完列后,同时创建约束(列级约束)
例如:
create table t1(
id number constraint pk_t1 primary key, -- 声明约束可以使用constraint pk_t1指定约束名
name varchar(20) constraint un_t1_name unique not null, -- 唯一和非空
sex char(2) constraint ck_t1_sex check( sex in ('男','女')),
tid number constraint fk_t1_t references t(id)
);
--在创建完表格列后,在列下面创建约束(表级约束)
例如:
create table t2(
id number ,
name varchar(20) not null, -- not null 只能定义在列的后面,称为列级约束
sex char(2),
tid number ,
constraint pk_t2 primary key(id), ---先定义列后编写的约束称为表级约束;
constraint un_t2_name unique(name) ,
constraint ck_t2_sex check( sex in ('男','女')),
constraint fk_t2_t foreign key (tid) references t(id) -- 在表格后指定外键列时需要使用 foreign key指定外键列
);
--联合主键,联合唯一
create table t3(
id number ,
sid number ,
name nvarchar2(20),
name2 nvarchar2(20),
constraint pk_t3 primary key(id,sid), -- 联合主键
constraint un_t3_name_name2 unique(name,name2) -- 联合唯一
);
2.修改表格
--修改表格之添加主键,唯一约束,外键约束,检查约束
例如:
1.alter table cla add constraint pk_cla primary key (clano);
2.alter table cla add constraint un_cla_claid unique (claid);
3.alter table stu add constraint fk_stu_cla foreign key (classid) references cla (clano);
4.alter table stu add constraint ck_stu_sex check (sex in ('男','女'));
3.删除表格
语法: drop table 表格名称
注意:删除主键表前,需要先删除外键表上的引用关系
drop table cla2;
4. 查询表格 (不属于ddl)-----
select table_name from user_tables;
补充:
1 . references 和 reference 的区别
references 可以在定义列的同时引用主键表;reference不可以
2. 声明约束可以使用constraint pk_t1指定约束名
3. 外键需要关联主键表的主键列或唯一列
4.如果没有声明约束或指定约束名称,则系统会默认生成一个名称