mysql-约束和分页

约束和分页

非空约束–只支持列级约束

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值