unique在mysql中是什么意思

unique这玩意儿在MySQL里挺实用的。
就是保证某一列或者好几列合起来,值不能有重复的。

原理嘛,其实挺简单的。
你一搞unique约束,MySQL就在那列或者那几列上搞个索引。
有了索引,查东西就快得多。
你要是想插或者改数据,结果跟别的数据重复了,MySQL就直接报错,不让你这么干。

好处是挺多的。
第一,数据肯定完整,不会出现重复的值。
第二,查东西快,特别是你用unique列去查的时候。
第三,数据一致性强,别的表或者程序拿这个unique列当键的时候,不容易出问题。

举个例子,你有个学生表Student,里面StudentID这列你想搞成unique的。
写法大概是这样: sql CREATE TABLE Student( StudentID INT PRIMARY KEY, Name VARCHAR(2 5 5 ), Age INT, UNIQUE(StudentID) );
不过要注意几点。
unique跟primary key有点像,但primary key还要求那列不能空。
unique可以搞多个列合在一起unique,比如StudentID和Name一起不能重复。
unique那列,NULL值是不算的,因为NULL默认算是一样的。
unique可以跟其他约束一起用,比如允许空值(nullable)。

mysql外键约束有哪些要求

这就是坑:创建外键约束前,主表必须存在。

别信:外键列数据类型不一致也能建立外键。

别这么干:在非事务存储引擎上设置外键。

实操提醒:外键约束前确认主表存在,数据类型严格匹配。

mysql constraint用法

哎哟喂,听你这么一说,感觉挺专业的哈。
不过我以前搞MySQL的时候,没怎么琢磨这么多花里胡哨的约束,都是实际问题逼着我去学的。

就拿唯一索引来说吧,我05 年刚入行的时候,搞一个电商系统,用户表里面搞了个手机号字段,我就加了唯一索引。
结果呢,用户注册手滑输了两遍一样的手机号,直接就报错了。
所以啊,加了唯一索引,那就要有处理这种异常情况的预案。

外键约束也是,我1 4 年在深圳做项目的时候,订单表和用户表之间加了外键,还搞了级联删除。
结果有一次不小心删了个用户,下面一大堆订单跟着全没了,差点没把我急死。
所以现在我对外键,尤其是ON DELETE CASCADE这种,都得特别小心。

检查约束我碰得比较少,毕竟MySQL 8 .0那会儿我刚转正没多久。
不过我记得有个老哥搞了个活动系统,用检查约束保证活动价格不能是负数,那倒是挺实用的。

总的来说,约束是好东西,能保证数据不乱来。
但用不好,也容易出大问题。
所以啊,还是得结合实际情况,该加的加,不该加的别瞎加。