当前位置: 首页 > news >正文

约束:对于数据的限制

主键约束

主键约束:唯一约束+非空约束,该字段上的数据不能重复且不能为null

注意:一张表必须有且只有一个主键

添加主键约束 -- 方式一(推荐)
CREATE TABLE user(username VARCHAR(32) PRIMARY KEY,password VARCHAR(32),nick_name VARCHAR(32),name VARCHAR(32),age INT(3),salary DECIMAL(20,2)
)

添加主键约束 -- 方式二
CREATE TABLE user(username VARCHAR(32),password VARCHAR(32),nick_name VARCHAR(32),name VARCHAR(32),age INT(3),salary DECIMAL(20,2),phone VARCHAR(32)
)
alter table user add primary key(username);

添加主键约束 -- 方式三
CREATE TABLE user(username VARCHAR(32),password VARCHAR(32),nick_name VARCHAR(32),name VARCHAR(32),age INT(3),salary DECIMAL(20,2),phone VARCHAR(32),primary key(username,password)
)

删除主键约束
alter table user drop primary key;

唯一约束

理解:该字段上的数据不能重复,但可以为null

创建唯一约束
alter table user add unique(phone);

删除唯一约束
alter table user drop index phone;

非空约束

理解:该字段上的数据不能为null,但可以重复

添加非空约束
alter table user modify password varchar(32) not null;

删除非空约束
alter table user modify password varchar(32) null;

需求:设置password字段为非空字段,设置默认值为'000000'
alter table user modify password varchar(32) not null default '000000';

外键约束

理解:验证两个字段的参照完整性

创建外键约束
alter table user add foreign key(nationality_id) references nationality(id);

删除外键约束

注意:外键名使用SHOW CREATE TABLE user;查看

alter table user drop foreign key user_ibfk_1;

注意:项目中不用外键

原因:使用外键约束效率会降低,因为添加数据、修改数据会去外键指向的表中查询

外键的优点:不会有脏数据的出现

外键的缺点:添加数据、修改数据会去外键指向的表中查询

缺点的解决方案:客户端选项就不会出现未有的数据

http://www.lryc.cn/news/390657.html

相关文章:

  • 【总线】AXI4第七课时:AXI的额外的控制信息(PROT和CACHE)
  • MAVEN 重新配置参考
  • ByteTrack论文阅读笔记
  • LVS+Keepalived 高可用集群搭建实验
  • 代码随想三刷动态规划篇7
  • linux应用开发基础知识(八)——内存共享(mmap和system V)
  • 上海小程序开发需要进行定制开发吗?
  • Qt开发 | qss简介与应用
  • 模块一SpringBoot(一)
  • C语言 | Leetcode C语言题解之第213题打家劫舍II
  • ​​​​Linux LVS 负载均衡群集
  • onTouch()与onTouchEvent()的区别
  • 计算机网络网络层复习题2
  • [JS]面向对象ES6
  • ctfshow web sql注入 web242--web249
  • 发送微信消息和文件
  • 数组-螺旋矩阵
  • GitStack详细配置与使用指南
  • LoadRunner-Virtual User Generator组件学习
  • NAT地址转换实验,实验超简单
  • pip常用命令详解
  • vue3从入门到精通
  • kubuadm 方式部署 k8s 集群
  • Android studio 打包低版本的Android项目报错
  • 【教程】lighttpd配置端口反向代理
  • 微服务之服务保护策略【持续更新】
  • 微信小程序的开发
  • Oracle中CREATE FORCE VIEW的说明和例子
  • C#反射基本应用
  • 1.英语中的从句学习