约束和分页
非空约束–只支持列级约束
– not null 非空约束,规定某个字段不能为空
create table emp1(
id int (10),
name varchar(20) not null default ‘张三’
);
insert into emp1
values(101, null);
添加非空约束
alter table emp2
modify name varchar (20) not null;
select * from emp2;
取消非空约束
alter table emp2
modify name varchar (25) null;
唯一约束 unique ,规定某个字段在整个表是唯一的
create table emp3(
id int (10),
name varchar(20),
phone varchar(30),
email varchar(30),
constraint emp3_phone_un unique (phone)
);
组合唯一约束
create table emp4(
id int (10),
name varchar (20),
phone varcahr (30),
email varchar(30),
constraint emp3_phone_email_un unique(phone, email)
);
insert into emp4
values(101,‘张三’,‘1251’,‘1t5542@qq.com’);
添加唯一约束
alter table emp4
add constraint emp4_name_un unique (name);
删除唯一约束
alter table emp4
drop index emp4_name_un ;
– sql会给唯一约束创建索引
主键约束 primary key (非空且唯一),既支持列级也支持表级
– 列级
create table emp5(
id int(19) auto_increment primary key,
name varchar (20)
);
select *from emp5;
insert into emp5
values (101, ‘张三’);
– 表级
create table emp6(
id int(10),
name varchar(20),
constraint emp6_id_pk primary key (id)
);
insert into emp6
values into emp6
values (null, ‘张三’);
添加主键约束
alter table emp6
drop constraint emp6_id_pk primary key(id);
删除主键约束
alter table emp6
drop pirmary key;
alter table emp6
modify id int (10) null
外键约束 – foreign key
外键约束:通常关联另一个表的主键,出现在外键表中的数据,一定要出现在主键表中
creat table dept1(
dept_id int primary key,
dept_name varchar(20)
);
select * from dept1;
create table emp7(
id int (10),
name varchar(20),
depart_id int(10),
constraint empt7_departId_fk foreign key (depart_id) references dept1(dept_id)
);
添加
insert into dept1
values(10,‘it’);
insert into emp7
values(101,‘张三’,10);
删除数据
先删除外键
或者使用on delect set null–(级联置空);子表中相应的列置空
on delect cascade – (级联删除):当父表中的列被删除时,子表中相应的列也被删除
添加外键约束
alter table emp7
add constraint emp7_departid_fk foreign key (depart_id) references dept1(dept_id);
删除外键约束
alter table emp7
drop foreign key emp7_departid_fk;
分页
limit 关键字进行分页,使用在整个语句的最末尾
–公式:(当前页数-1)*每页条数,每页条数
select employee_i, last_name, salary
from employees
order by salary desc
limit 0, 10;