Q:为什么创建索引
A:设置表中的各种约束,以保证数据的一致性
*Topic1:主键约束(PRIMARY KEY) = 唯一性约束(UNIQUE) + 非空约束(NOT NULL)
*Topic2:唯一性约束(UNIQUE)
*Topic3:检查约束(CHECK)
*Topic4:外键约束(FOREIGN KEY)
*Topic5:非空约束(NOT NULL)
一、非空约束
1、在创建表时设置非空约束
语法:CREATE TABLE table_name(column_name datatype NOT NULL,…);
2、在修改表时添加非空约束
语法:ALTER TABLE table_name MODIFY column_name datatype NOT NULL;
注:添加非空约束的字段不能有null数据存在。可先删除表中的数据。DELETE FROMM table_name;
3、在修改表时去除非空约束
语法:ALTER TABLE table_name MODIFY column_name datatype NULL;
//在创建表时设置非空约束
create table userinfo_1
(id number(6,0),
username varchar2(20) not null,
userpwd varchar2(20) not null);
desc userinfo_1
//在修改表时添加非空约束
alter table userinfo modify username varchar(20) not null;
desc userinfo
//在修改表时去除非空约束
alter table userinfo modify username varchar(20) null;
desc userinfo
二、主键约束
作用:确保表当中每一行数据的唯一性
(1)创建主键约束
1。一张表只能设计一个主键约束
2。主键约束可以由多个字段构成(联合主键或符合主键)
表级约束:CONSTRAINT constraint_name constraint_type(column_name1,…);
联合主键:CONSTRAINT constraint_name PRIMARY KEY(column_name1,…);
数据字典:USER_CONSTRAINTS 查看定义的约束信息。
//1.在创建表时设置主键约束(列级)
语法:CREATE TABLE table_name(
column_name datatype PRIMARY KEY,...);
//2.在创建表时设置主键约束(表级)
语法:CREATE TABLE table_name(
column_name datatype,...,
CONSTRAINT pk_name PRIMARY KEY(column_name1,...)); //pk_name 通常用pk_column1_column2表示
//3.数据字典:user_constraints 可以查看某个表中的主键约束信息。desc user_constraints
查看约束的名字:select constraint_name from user_constraints where table_name='tbl_name';表名要大写
//1.在创建表时设置主键约束(列级)
create table userinfo_p
(id number(6,0) primary key,
username varchar2(20),
userpwd varchar2(20));
desc userinfo_p