96SEO 2026-02-19 20:45 0
。

它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
Integrity)是指数据的精确性(Accuracy)和可靠性(Reliability)。
它是防止数据库中存在不符合语义规定的数据和防止因错误信息的输入输出造成无效操作或错误信息而提出的。
为了保证数据的完整性SQL规范以约束的方式对表数据进行额外的条件限制。
Integrity)用户自定义完整性(User-defined
约束是表级的强制规定。
可以在创建表时规定约束(通过CREATE
列级约束只能作用在一个列上跟在列的定义后面。
表级约束可以作用在多个列上不与列一起而是单独定义。
位置支持的约束类型是否可以起约束名列级约束列的后面语法都支持但外键没有效果不可以表级约束所有列的下面默认和非空不支持其他支持可以(主键没有效果)
NULL非空约束规定某个字段不能为空UNIQUE唯一约束规定某个字段在整个表中唯一的PRIMARY
默认所有的类型的值都可以是NULL包括INT、FLOAT等数据类型。
非空约束只能出现在表对象的列上只能某个列单独限定非空不能组合非空。
一个表可以有很多列都分别限定了非空。
空字符串不等于NULL0也不等于NULL。
用来限制某个字段/某列的值不能重复。
【允许出现多个空值NULL】
同一个表可以有多个唯一约束。
唯一约束可以是某一列的值唯一也可以多个列组合的值唯一。
唯一性约束允许列值为空。
在创建唯一约束的时候如果不给唯一约束命名就默认和列名相同。
MYSQL会给唯一约束的列上默认创建一个唯一索引。
添加唯一性约束的列上也会自动创建唯一索引。
删除唯一约束只能通过删除唯一索引的方式删除。
删除时需要指定唯一索引名唯一索引名就和唯一约束名一样。
如果创建唯一约束时并未指定名称如果是单列就默认和列名相同如果是组合列那么默认和()中排在第一个的列名相同。
也可以自定义唯一性约束名。
主键约束相当于唯一约束非空约束的组合主键约束列不允许重复也不允许出现空值。
一个表最多只能有一个主键约束建立主键约束可以在列级别创建也可以在表级别上创建。
主键约束对应着表中的一列或者多列(复合主键)。
如果是多列组合的复合主键约束那么这些列都不允许为空值并且组合的值不允许重复。
MySQL的主键名是PRIMARY就算自己命名了主键约束名也没用。
当创建主键约束时系统默认会在所在的列或列组合上建立对应的主键索引(能够根据主键查询的就根据主键查询效率更高)。
如果删除主键约束了主键约束对应的索引就会自动删除了。
注意不要修改主键字段的值。
修改了主键的值可能会破坏数据的完整性。
一个表最多只能有一个自增长列。
当需要产生唯一标识或顺序值时可设置自增长。
自增长列约束的列必须是键列(主键列唯一键列)。
自增约束的列的数据类型必须是整数类型。
如果自增列指定了0和null会在当前最大值的基础上自增如果自增列手动指定了具体值直接赋值为具体值。
8.0之前自增主键AUTO_INCREMENT的值如果大于max(primary
1在MySQL重启后会重置AUTO_INCREMENTmax(primary
1这种现象在某些情况下会导致业务主键冲突或者其他难以发现的问题。
5.7系统中对于自增主键的分配规则是由InnoDB数据字典内部一个计数器来决定的而该计数器只在内存中维护并不会持久到磁盘中。
当数据库重启时该计数器会被初始化。
8.0将自增主键的计数器持久化到重做日志中。
每次计数器发生改变都会将其写入重做日志中。
如果数据库重启InnoDB会根据重做日志中的信息来初始化计数器的内存值。
主表(父表)被引用的表被参考的表。
从表(子表)引用别人的表参考别人的表。
从表的外键列必须引用/参考主表的主键或唯一约束的列。
在创建外键约束时如果不给外键约束命名默认名不是列名而是自动产生一个外键名也可以指定外键约束名。
创建(CREATE)表时看指定外键约束的话先创建主表在创建从表。
删除表时先删从表(或先删除外键约束)在删除主表。
当主表的记录被从表参照时主表的记录将不允许删除如果要删除数据需要先删除从表中依赖该记录的数据然后才可以删除主表的数据。
在从表中指定外键约束并且一个表可以建立多个外键约束。
从表的外键列与主表被参照的列名字可以不相同但是数据类型必须一样逻辑意义一致。
如果类型不一样创建子表时就会出现错误ERROR
150)。
当创建外键约束时系统默认会在所在的列上建立对应的普通索引。
但是索引名是外键的约束名。
删除外键约束后必须手动删除对应的索引。
Cascade方式在父表上update/delete记录时同步update/delete掉子表的匹配记录。
Set
null方式在父表上update/delete记录时将子表上匹配记录的列设为null但是要注意子表的外键列不能为not
action方式如果子表中有匹配的记录则不允许对父表对应候选键进行update/delete操作。
Restrict方式同no
default方式(在可视化工具SQLyog中可能显示空白)父表有变更时子表将外键列设置成一个默认的值但Innodb不能识别。
如果没有指定等级就相当于Restrict方式。
对于外键约束最好是采用ON
--------------------------------
--------------------------------
--------------------------------
--------------------------------
--------------------------------
如果两个表之间有关系(一对一、一对多)他们之间是否一定要建外键约束
建外键约束你的操作(创建表、删除表、添加、修改、删除)会受到限制从语法层面受到限制。
不建外键约束你的操作(创建表、删除表、添加、修改、删除)不受限制要保证数据的引用完整性只能依靠程序员的自觉或者是在Java程序中进行限定。
在MySQL里外建约束是有成本的需要消耗系统资源。
对于大并发的SQL操作有可能会不适合。
比如大型网站的中央数据库可能会因为外建约束的系统开销而变得非常慢。
所以MySQL允许你不使用系统自带的外键约束在应用层面完成检查数据的一致性的逻辑。
也就是说即使你不用外键约束也要想办法通过应用层面的附加逻辑来实现外键约束的功能确保数据的一致性。
5.7可以使用check约束但check约束对数据验证没有任何作用。
添加数据时没有任何错误或警告。
但是**MySQL
--------------------------------
--------------------------------
--------------------------------
给某个字段/某列指定默认值一旦设置默认值在插入数据时如果此字段没有显示赋值则赋值为默认值。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback