Base de datos MySQL: restricciones (descripción general, demostración de restricciones, restricciones de clave externa, comportamiento de eliminación/actualización)

Tabla de contenido

Descripción general

Demostración de restricciones

Creación de tablas

verificar

Restricciones de la interfaz gráfica

restricciones de clave externa

concepto

gramática

Comportamiento de eliminación/actualización de clave externa

Resumir


Descripción general

  1. Concepto: Las restricciones son reglas que actúan sobre los campos de una tabla para limitar los datos almacenados en la tabla.
  2. Finalidad: Garantizar la exactitud, validez e integridad de los datos de la base de datos.
  3. Clasificación:
restricción describir Palabras clave
restricción no nula Los datos de este campo no pueden ser NULL NO NULO
restricción única Asegúrese de que todos los datos en este campo sean únicos y no duplicados. ÚNICO
restricciones de clave primaria La clave principal es la identificación única de una fila de datos y debe ser única y no vacía. CLAVE PRIMARIA
Restricciones predeterminadas Al guardar datos, si no se especifica el valor de este campo, se utiliza el valor predeterminado POR DEFECTO
Verificar restricciones (después de la versión 8.0.16) Guardar valores de campo que cumplan una determinada condición CONTROLAR
restricciones de clave externa Se utiliza para establecer una conexión entre los datos de las dos tablas para garantizar la coherencia e integridad de los datos. CLAVE EXTERNA

Demostración de restricciones

Creación de tablas

Complete la creación del formulario según sea necesario:

Nombre del campo Significado del campo Tipo de campo Restricciones palabra clave de restricción
identificación ID de identificación única En t Clave primaria y crece automáticamente. CLAVE PRIMARIA,AUTO_INCREMENT
nombre Nombre varchar(10) No vacío y único NO NULO, ÚNICO
edad edad En t Mayor que 0 y menor o igual a 120 CONTROLAR
estado estado carácter(1) Si no se especifica este valor, el valor predeterminado es 1 POR DEFECTO
género género carácter(1) ninguno

Crecimiento automático: la identificación aumenta automáticamente con el número de filas de la tabla, la palabra clave es auto_increment

create table user(
    id int primary key auto_increment comment '主键',
    name varchar(10) not null unique comment '姓名',
    age int check(age > 0 and age <= 120) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
) comment '用户表';

verificar

1. Clave primaria y crecimiento automático

Cuando insertamos datos, no ingresamos el ID.

create table user(
    id int primary key auto_increment comment '主键',
    name varchar(10) not null unique comment '姓名',
    age int check(age > 0 and age <= 120) comment '年龄',
    status char(1) default '1' comment '状态',
    gender char(1) comment '性别'
) comment '用户表';

En este momento, descubrimos que la identificación se usa como clave principal y tiene restricciones de crecimiento automático: aumentará automáticamente a medida que aumente el número de filas y no es necesario que la ingresemos.

2. El nombre no está vacío y es único.

Cuando nuestra entrada de nombre está vacía, se informará un error, y cuando el nombre se repita, después de solicitar la clave principal para el valor insertado, en realidad no se insertará, por lo que el valor de identificación saltará en 1. (Por ejemplo : 1, 2,3,5)

3. La edad debe ser mayor a 0 y menor o igual a 120

4. Cuando no se especifica el estado, el valor predeterminado es 1

insert into user (name,age,gender)
            values ('Jack6',18,'男');

Restricciones de la interfaz gráfica

restricciones de clave externa

concepto

Las claves externas se utilizan para establecer una conexión entre los datos de dos tablas para garantizar la coherencia e integridad de los datos.

Nota: Actualmente, las dos tablas anteriores no han establecido relaciones de clave externa a nivel de base de datos, por lo que no se puede garantizar la coherencia e integridad de los datos. 

En otras palabras, si se elimina el departamento de I + D en la tabla de departamentos, los empleados del departamento de I + D en la tabla de empleados no se eliminarán, lo que provocará problemas de integridad de los datos.

gramática

Agregar clave externa

CREATE TABLE 表名(
    字段名 数据类型,
    ...
    [CONSTRAINT] [外键名称] FOREIGN KEY (外键字段名) REFERENCES 主表 (主列表名)
);

-- 或
ALTER TABLE 表名 
    ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCE 主表 (主列表名);

Eliminar clave externa

ALTER TABLE 表名 DROP FOREIGN KEY 外键名称;

Ejemplo

alter table emp 
    add constraint fk_emp_dept_id foreign key (dept_id) references dept(id);

alter table emp drop foreign key fk_emp_dept_id;

 

Comportamiento de eliminación/actualización de clave externa

Comportamiento ilustrar
SIN ACCIÓN Al eliminar/actualizar el registro correspondiente en la tabla principal, primero verifique si el registro tiene una clave externa correspondiente y, de ser así, no se permite la eliminación/actualización. (Igual que RESTRINGIR)
RESTRINGIR Al eliminar/actualizar el registro correspondiente en la tabla principal, primero verifique si el registro tiene una clave externa correspondiente y, de ser así, no se permite la eliminación/actualización. (Consistente con NO ACCIÓN)
CASCADA Al eliminar/actualizar el registro correspondiente en la tabla principal, primero verifique si el registro tiene una clave externa correspondiente. Si es así, elimine/actualice el registro con la clave externa en la tabla secundaria.
ESTABLECER NULO Al eliminar el registro correspondiente en la tabla principal, primero verifique si el registro tiene una clave externa correspondiente. Si es así, establezca el valor de la clave externa en la tabla secundaria en nulo (requiere que la clave externa permita nulo)
ESTABLECER PREDETERMINADO Cuando la tabla principal cambia, la tabla secundaria establece la columna de clave externa en un valor predeterminado (Innodb no admite esto)
ALTER TABLE 表名 
    ADD CONSTRAINT 外键名称 FOREIGN KEY (外键字段名) REFERENCE 主表 (主列表名)
        ON UPDATE CASCADE ON DELETE CASCADE;

Manifestación

alter table emp
    add constraint fk_emp_dept_id foreign key (dept_id) references dept(id)
        on update cascade  on delete  cascade ;

 En este momento, cambie la identificación del departamento de I + D de la tabla principal a 6:

 La subtabla también se actualiza: 

 

Resumir

  1. Restricción no nula: NOT NULL
  2. Restricción única: ÚNICA
  3. Restricción de clave principal: PRIMARY KEY (incremento: AUTO_INCREMENT)
  4. Restricción predeterminada: DEFAULT
  5. Verificar restricciones: VERIFICAR
  6. Clave externa: CLAVE EXTRANJERA

fin


Aprenda de: Programador Dark Horse - Curso de base de datos MySQL

Supongo que te gusta

Origin blog.csdn.net/li13437542099/article/details/132378896
Recomendado
Clasificación