Compartir tecnología

restricciones SQL

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

restricciones SQL

1. Descripción

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.

restriccióndescribirPalabras clave
restricción no nulaRestringir este campo para que no esté vacíono nulo
restricción únicaAsegúrese de que todos los datos en este campo sean únicos y no duplicados.único
restricciones de clave primariaLa clave principal es el identificador único de una fila de datos y debe ser única y no vacía.Clave primaria
Restricciones predeterminadasAl guardar datos, si no se especifica el valor del campo, se utiliza el valor predeterminadopor defecto
Verificar restricciones (después de 8.0.16)Asegúrese de que el campo cumpla con una determinada condición.controlar
restricciones de clave externaSe utiliza para establecer una conexión entre datos de dos tablas.clave externa

2. Uso

Incremento automático: auto_increment

MySQL

ALTER TABLE my_table MODIFY id INT AUTO_INCREMENT;
  • 1

Servidor SQL

-- 删除依赖于id列的约束
ALTER TABLE my_table DROP CONSTRAINT <constraint_name>;

-- 修改字段为自增
ALTER TABLE my_table ALTER COLUMN id INT IDENTITY(1,1);

-- 重新创建约束(如果有)
ALTER TABLE my_table ADD CONSTRAINT <constraint_name> PRIMARY KEY (id);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

Agregar restricciones

-- 1、添加主键
ALTER TABLE 表名 ADD CONSTRAINT 主键名 PRIMARY KEY (主键字段名);
-- 例:ALTER TABLE Orders ADD CONSTRAINT FK_Orders_Customers FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID);
-- 2、添加外键
alter table 表名 add constraint 外键名 foreign key (外键字段名) references 主表(主字段名);
-- 删除外键
alter table 表名 drop foreign key 外键名;
-- 3、添加唯一约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 (需要约束的字段);
-- 4、添加默认约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 DEFAULT '默认值' FOR 字段名;
-- 5、检查约束
ALTER TABLE 表名 ADD CONSTRAINT 约束名 CHECK (Age >= 18 检查的条件);
-- 6、非空约束
ALTER TABLE 表名 ALTER COLUMN 字段名 varchar(255) NOT NULL;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

El papel de las claves foráneas
Para garantizar la integridad de los datos, el campo de clave externa se denomina tabla secundaria y la tabla asociada se denomina tabla principal.
Eliminar y actualizar comportamiento

  • sin acción (predeterminado): al eliminar/actualizar el registro correspondiente en la tabla principal, si el registro tiene una clave externa,No se puede actualizar/eliminar.
  • cascada: al eliminar/actualizar el registro correspondiente en la tabla principal, si el registro tiene una clave externa,Luego elimine/actualice registros en la subtabla.
  • establecer nulo: al eliminar/actualizar el registro correspondiente en la tabla principal, si el registro tiene una clave externa,Luego establezca el valor de la clave externa en la subtabla en nulo.
  • establecer valor predeterminado: cuando se cambia la tabla principal, la columna de clave externa creada en la tabla secundaria se establece en un valor predeterminado (no compatible con InnoDB).
# 指定行为
alter table 表名 add constraint 外键名 foreign key (外键字段) references 主表(主字段名) on update cascade on delete cascade;
  • 1
  • 2