mysql快速精通(二)约束和策略

主打一个实用

本篇主要是应用,具体sql操作语句自查

一. 主键约束

主键用于唯一标识一条记录,每个表只能有一个主键(多字段为联合主键)

主键列特性:非空唯一

  1. Navicat中添加主键

新建表时如果没有设主键是会失败的,这个金色钥匙就是主键的标识了

  1. 主键自增策略

选中主键加上即可,自增策略可以按顺序自动生成不重复序号

  1. 截断表

截断表truncate与清空表delete的区别🎈

截断表:保留表结构,其他都删除,自增字段会回到默认值开始

清空表:保留表结构,不释放空间,自增字段不会重置

二. 非空约束

添加非空约束

三.唯一约束

添加唯一约束

四. 缺省(默认)约束

即默认值,如果未填会默认该值

五. 外键约束

  1. 单表的缺点

数据内容大部分重复,并且修改时需要遍历所有内容修改,比如所在社区,可以将社区单独划为一张表,在原表只需记录其id

  1. 外键的规范

要求:外键列的数据类型和长度必须和被参照的主键列的数据类型和长度一致

  1. 外键的添加方式

关联键为主键的是主表,反之,从表(子表)

外键在从表添加

此处以级联更新删除为例,当然不止这一种选项

  1. 更新删除策略

CASCADE:从父表删除或更新且自动删除或更新子表中匹配的行
SET NULL:从父表删除或更新行,并设置子表中的外键列为NULL。如果使用该选项,必须保证子表列没有指定NOT NULL
RESTRICT:拒绝对父表的删除或更新操作
NO ACTION:标准SQL的关键字,在MySQL中与RESTRICT相同

相关推荐
X56612 分钟前
CSS如何实现一致的圆角半径设计_通过CSS变量存储border-radius
jvm·数据库·python
雅俗数据库2 分钟前
OCP实验 | 03-SQL优化
数据库·sql
2301_795099746 分钟前
防范SQL注入的SQL编码规范_禁用动态拼接字符串语句.txt
jvm·数据库·python
雨浓YN8 分钟前
GKTGD 工业监控系统-03SQLite 数据库技术文档(类库:NET8_SQLData)
数据库·wpf
duke8692672148 分钟前
PHP怎么使用Eloquent Attribute Synthesis属性合成_Laravel多源数据融合【指南】
jvm·数据库·python
承渊政道9 分钟前
Oracle迁移避坑:一个(+)写错,LEFT JOIN可能变INNER JOIN
运维·服务器·数据库·数据仓库·学习·安全·oracle
2301_8125396710 分钟前
CSS如何制作下拉菜单弹性展开_利用transform-origin
jvm·数据库·python
Irene199111 分钟前
MySQL、Oracle 数据库:唯一索引、普通索引、NUM_ROWS(行数)、ROW_NUM / ROWNUM(行号)
mysql·oracle
2401_8330336213 分钟前
CSS Flex布局中如何设置子元素间距_掌握gap属性的现代用法
jvm·数据库·python
阿坤带你走近大数据14 分钟前
OracleSQL优化案例-3
数据库·oracle·sql优化