索引和数据完整性约束的总结

来源:互联网 发布:squid nginx 比较 编辑:程序博客网 时间:2024/06/11 05:05
索引:索引是根据表中一列或若干列按照一定顺序建立的列值与记录行之间的对应关系表.


索引的分类:
1.普通索引(index)
2.唯一索引(unique)
3.主键(primary key)
4.全文索引(fulltext)


创建索引:
使用create index语句:
create index index_name
on tab_name(字段名);
使用alter table语句:
alter table tab_name
add index(字段名),
add primary key(字段名);
在创建表时创建索引:
create table xs_kc(
学号 char(6) not null,
课程号 char(3) not null,
成绩 tinyint(1),
学分 tinyint(1) check(学分<6),
primary key(学号,课程号),
index cj(成绩
);


删除索引:
使用drop index语句删除索引:
drop index index_name on tab_name;
使用alter table语句删除索引:
alter table tab_name
drop primary key,//删除主键
drop index index_name,//删除索引
drop foreign key fk_symbol;//删除外键


数据完整性约束
主键约束:
create table xs(
学号 char(6) not null primary key,
姓名 char(8) not null unique,
专业名 char(10),
性别 tinyint (1)not null check(性别 in(0,1)),
出生日期 date not null,
总学分 tinyint (1),
照片 blob,
备注 text
);


替代键约束:
create table xs1
(
学号 varchar(6) null,
姓名 varchar(8) not null unique,
出生日期 datetime null,
primary key(学号)
);
关键字unique表示姓名是一个替代键,其列值必须是唯一的.


参照完整性约束:
create table xs1
(
学号 varchar(6) null,
姓名 varchar(8) not null unique,
出生日期 datetime null,
primary key(学号),
foreign key(学号)
references key(学号)
on update cascade
);


check完整性约束:
create table student
(
学号 char(6) not null,
性别 char(1) not null check(性别 in('男','女'))
);


命名完整性约束:
create table xs1
(
学号 varchar(6) null,
姓名 varchar(8) not null unique,
出生日期 datetime null,
constraint primary_key_xs1,
primary key(姓名)
);


删除完整性约束:
alter table xs drop primary key;




原创粉丝点击