Tabla de contenido
Restricciones de la interfaz gráfica
restricciones de clave externa
Comportamiento de eliminación/actualización de clave externa
Descripción general
- Concepto: Las restricciones son reglas que actúan sobre los campos de una tabla para limitar los datos almacenados en la tabla.
- Finalidad: Garantizar la exactitud, validez e integridad de los datos de la base de datos.
- 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
- Restricción no nula: NOT NULL
- Restricción única: ÚNICA
- Restricción de clave principal: PRIMARY KEY (incremento: AUTO_INCREMENT)
- Restricción predeterminada: DEFAULT
- Verificar restricciones: VERIFICAR
- Clave externa: CLAVE EXTRANJERA
fin
Aprenda de: Programador Dark Horse - Curso de base de datos MySQL