索引和约束的创建
来源:互联网 发布:阿里云客服好干吗 编辑:程序博客网 时间:2024/05/24 02:38
1.索引
创建索引的语法:create index 索引名 on 表名(字段1,字段2,……,字段n) 例子: create index idx_person_name on person(name); create index idx_person_nameage on person(name,age); 删除索引的语法:drop index 索引名 on 表名 例子: drop index idx_person_name on person; drop index idx_person_nameage on person;
2.约束
1).非空约束 使用not null定义,创建表时默认是允许为空的 例子:create table person(id int not null,name varchar(20)); 2).唯一约束 使用unique定义,意思是一个字段中不能有两个值相同 单字段唯一约束: 例子:create table person(id int unique,name varchar(20)); 复合字段唯一约束: 复合字段中单一的字段值可以重复,但是多个字段值不能同时重复 定义复合唯一约束需要定义在所有字段列表之后,语法如下:constraint 约束名 unique(字段1,……,字段n) 例子:create table person( number varchar(20), departmentnumber varchar(20), name varchar(20), age int, constraint unic_dep_num unique(number,departmentnumber) ); 可以在一个表中添加多个复合唯一约束,只要约束名不一样就行. 例子:create table person( number varchar(20), departmentnumber varchar(20), name varchar(20), age int, constraint unic_1 unique(number,departmentnumber), constraint unic_2 unique(departmentnumber,name) ); 使用alter table语句可以为一张已经存在的数据表添加新的约束 alter table 表面 add constraint 唯一约束名 unique(字段1,……,字段n) 例子:alter table person add constraint unic_3 unique(name,age); alter table 语句也能删除已经创建好的复合唯一约束 alter table 表名 drop index 唯一约束名 例子:alter table person drop index unic_1; 3).check约束 check约束会检查输入到记录中的值是否满足一个条件,如果不满足这个条件则对数据库做出的修改不会成功. 注意:MYSQL中的check只是个修饰作用,并无实际效果 例子:create table person( number varchar(20), name varchar(20), age int check(age>0), workyear int check(workyear>0) ); 还可以命名约束 CONSTRAINT chk_Person CHECK (Id_P>0) 撤销约束 例子:ALTER TABLE Persons DROP CHECK chk_Person 4).主键约束 主键必须能够唯一标识一条记录,也就是主键字段中的值必须是唯一的,而且不能包含null值,所以从某种意义来说主键约束是uinque约束和非空约束的组合. 例子:create table person( number varchar(20) primary key, name varchar(20), age int ) 5).外键约束 语法:foreign key 外键字段 references 外键表名(外键表的主键字段) 也可以用alter table语句的方式添加外键约束 alter table book add constraint fk_book_author foreign key(authorid) references author(id); 删除方式是先删除引用表,再删除被引用表.
0 0
- 索引和约束的创建
- 如何删除通过主键和唯一约束创建的索引
- 主键和索引的创建,增加各种约束
- Oracle主键约束、唯一键约束、唯一索引的区别【主键约束和唯一键约束均会隐式创建同名的唯一索引】
- ORACLE的索引和约束
- oracle的约束和索引
- Oracle的约束和索引
- Oracle的约束和索引
- oracle的约束和索引
- MySQL的约束和索引
- ORACLE的索引和约束详解
- ORACLE的索引和约束详解
- ORACLE的索引和约束详解
- ORACLE的索引和约束详解
- ORACLE的索引和约束详解
- ORACLE的索引和约束详解
- ORACLE的索引和约束详解(转)
- ORACLE的索引和约束详解
- 《黑客与画家》 读书笔记(一)
- ^A在linux的处理
- 375. Guess Number Higher or Lower
- Fesco的SimpleDraweeView属性
- 通配符
- 索引和约束的创建
- 【剑指Offer】中链表
- 我的梦想
- Eclipse调试Java的10个技巧
- RxJava使用详解二
- runtime 实现 归档和解档
- Android补间动画(5)所有动画集合
- MySQL中文乱码问题
- Qt之QThread(深入理解)