[MySQL] Restricciones de integridad de la tabla: restricciones de clave no externa

Primero, las restricciones de integridad de la tabla.

        Para evitar que se almacenen datos no conformes en la base de datos , MySQL proporciona un mecanismo para verificar si los datos en la base de datos cumplen con las condiciones especificadas cuando los usuarios insertan, modifican y eliminan datos para garantizar la precisión de los datos en la base de datos. .Coherencia y consistencia, este mecanismo es restricciones de integridad .

        MySQL admite principalmente los siguientes tipos de restricciones de integridad, como se muestra en la tabla. La restricción Check es el soporte provisto en MySQL8.

 

2. Restricciones clave no extranjeras

1. Restricciones de clave principal y restricciones de incremento automático

Una restricción de clave principal significa que si se agrega una restricción de clave principal a un campo, el valor de este campo puede identificar un registro de manera única. Una restricción de incremento automático significa que el valor del campo restringido se incrementa automáticamente. Las restricciones de clave principal y las restricciones de autoincremento generalmente se usan juntas y, a menudo, se usan en números de secuencia de restricción.

Una restricción de incremento automático (AUTO_INCREMENT) puede aumentar automáticamente el valor de un campo en una tabla. Solo puede haber un campo de incremento automático en una tabla, y el campo debe tener restricciones definidas (las restricciones pueden ser restricciones de clave principal, restricciones únicas y restricciones de clave externa). Si el campo de incremento automático no define restricciones, el La base de datos indicará el error "Definición de tabla incorrecta; solo puede haber una columna automática y debe definirse como una clave".

Dado que las restricciones de incremento automático generan automáticamente ID únicos, las restricciones de incremento automático generalmente se usan con claves primarias y solo se aplican a tipos enteros. En general, el valor del campo de restricción de incremento automático comenzará desde 1 y el valor del campo aumentará en 1 por cada registro adicional.

create   table student(
       stu_id int(10) primary key,
       stu_name varchar(3),
       stu_sex varchar (1)
);
/*为student表中的主键字段添加自增约束*/
alter   table student11 modify stu_id int(10) auto_increment;

Utilice la instrucción ALTER TABLE para eliminar la restricción de incremento automático:

alter table student modify stu_id int(10);

2. Restricciones no vacías

Los valores de campo restringidos no pueden estar vacíos.

3. Restricciones únicas

El valor de un campo con una restricción única no se puede repetir.

4. Comprobar restricciones

Al agregar una restricción de verificación, puede establecer el rango de valores, y los valores que no cumplan con el rango no se agregarán a la tabla de la base de datos.

5. Restricciones de valores predeterminados

Después de agregar una restricción de valor predeterminado a un campo, si el campo no tiene un valor pasado, se utilizará el valor predeterminado.

3. Clasificación de restricciones clave no foráneas

Las restricciones de clave no externa se pueden dividir en dos categorías en términos de función:

  • Restricciones a nivel de tabla : se pueden restringir uno o más campos de la tabla. Es independiente de la definición de la columna y no está incluida en la definición de la columna, está separada de la definición por una coma, se debe indicar el nombre de la columna a restringir, por ejemplo:
    constraint pk_stu primary key (sno)  -- pk_stu 主键约束的名字
  • Restricciones a nivel de columna : incluidas en una definición de columna, inmediatamente después de otras definiciones para esa columna, separadas por espacios; no se requiere ningún nombre de columna; por ejemplo:
    sno int(6) primary key auto_increment

1. Cree una tabla utilizando restricciones a nivel de columna . La estructura gramatical es: nombre de columna, nombre de restricción de tipo de columna

Al crear la tabla que contiene los datos de los estudiantes, agregue varias restricciones de clave no externa:

create table t_student(
	sno int(6) primary key auto_increment, -- 自增约束+主键约束
	sname varchar(5) not null, -- 非空约束
	sex char(1) default '男' check(sex='男' || sex='女'), -- 检查约束+默认值约束
	age int(3) check(18<=age<35),
	enterdate date,
	classname varchar(10),
	email varchar(15) unique -- 唯一约束
);

2. Use restricciones a nivel de tabla para construir una tabla. La estructura gramatical es: restricción El nombre dado a esta restricción Nombre de restricción (nombre de campo + condición)

Al crear la tabla que contiene los datos de los estudiantes, agregue varias restricciones de clave no externa:

create table t_student(
        sno int(6) auto_increment, 
        sname varchar(5) not null, 
        sex char(1) default '男',
        age int(3),
        enterdate date,
        classname varchar(10),
        email varchar(15),
        constraint pk_stu primary key (sno),  -- pk_stu 主键约束的名字
        constraint ck_stu_sex check (sex = '男' || sex = '女'),
        constraint ck_stu_age check (age >= 18 and age <= 50),
        constraint uq_stu_email unique (email)
);

Hay otra forma de escribir restricciones a nivel de tabla, que consiste en agregar restricciones a través de instrucciones SQL después de crear la tabla, por ejemplo:

alter table t_student add constraint pk_stu primary key (sno) ; -- 主键约束
alter table t_student modify sno int(6) auto_increment; -- 修改自增条件
alter table t_student add constraint ck_stu_sex check (sex = '男' || sex = '女');
alter table t_student add constraint ck_stu_age check (age >= 18 and age <= 50);
alter table t_student add constraint uq_stu_email unique (email);

Supongo que te gusta

Origin blog.csdn.net/hold_on_qlc/article/details/129806437
Recomendado
Clasificación