索引和约束的创建

==> 学习汇总(持续更新)
==> 从零搭建后端基础设施系列(一)-- 背景介绍


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);	

        删除方式是先删除引用表,再删除被引用表.	 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值