Restricciones comunes de la base de datos


Limitaciones comunes

Restricción significado : una restricción, utilizada para restringir los datos en la tabla, con el fin de garantizar la precisión y confiabilidad de los datos en la tabla.
Sintaxis:

create table 表名(
      字段名 字段类型  约束
)

clasificación:

1. No nulo: no vacío, asegúrese de que el valor del campo no esté vacío, como nombre, número de alumno, etc.

2, predeterminado: la restricción predeterminada, que se utiliza para garantizar que el campo tenga un valor predeterminado, como género

3. Clave principal: la clave principal, para garantizar la unicidad y que no esté vacía, como la identificación del estudiante, la identificación del empleado, etc.

4. Único: garantiza la singularidad y puede estar vacío, como el número de asiento.

5. comprobar: comprobar las restricciones [ no compatible con mysql ]

6, clave externa: clave externa, restringe la relación entre las dos tablas, se utiliza para garantizar que el valor del campo debe provenir del valor de la columna asociada de la tabla principal, agrega una restricción de clave externa de la tabla, utilizada para hacer referencia a una columna en la tabla principal Valores, como el número profesional de la tabla de estudiantes, el número de departamento de la tabla de empleados y el tipo de número de trabajo de la tabla de empleados

La clave principal y la única diferencia:

categoría Garantizar la singularidad Si se permite que esté vacío Cuantos puede haber en una mesa Ya sea para permitir la combinación
Clave primaria × Como máximo 1 √, pero no recomendado (clave primaria conjunta)
solamente Puede haber varios √, pero no recomendado

Clave externa:
1. Se requiere establecer la relación de clave externa en la
tabla secundaria. 2. El tipo de la columna de clave externa de la tabla secundaria debe ser consistente o compatible con el tipo de la columna asociada de la tabla primaria. el nombre no es obligatorio.
3. La columna asociada de la tabla principal debe ser una clave. (Por lo general, la clave principal o única)
4. Al insertar datos, inserte primero la tabla principal, luego inserte la tabla secundaria, al eliminar datos, elimine la tabla secundaria primero, y luego elimine la tabla primaria

Cuándo agregar restricciones:
1. Al crear una tabla
2. Al modificar una tabla

Agregue categorías de restricciones:
1. Restricciones a nivel de columna: las
seis restricciones se admiten gramaticalmente, pero las restricciones de clave externa no tienen ningún efecto.
2. Restricciones a nivel de tabla:
todas son compatibles excepto las no vacías y las predeterminadas

CREATE TABLE 表名(
	字段名 字段类型 列级约束,
	字段名 字段类型,
	表级约束
)
categoría posición Tipos de restricciones admitidos ¿Es posible nombrar una restricción?
Restricciones a nivel de columna Detrás de la columna Las seis restricciones se admiten gramaticalmente, pero las restricciones de clave externa no tienen ningún efecto Hipocresía
Restricciones a nivel de tabla Debajo de todas las columnas Además de no vacío, predeterminado, otro soporte Sí (la clave principal no tiene ningún efecto)

Uno, agregue restricciones al crear una tabla

(1) Agregar restricciones a nivel de columna

Sintaxis:
agregue directamente el tipo de restricción después del nombre y el tipo de campo.
Solo admite: predeterminado, no vacío, clave principal, único

CREATE DATABASE students;
CREATE TABLE major(
   id INT PRIMARY KEY,
   majorName VARCHAR(20)
);
USE students;
CREATE TABLE stuinfo(
	id INT PRIMARY KEY,#主键
	stuName VARCHAR(20) NOT NULL,#非空
	gender CHAR(1) CHECK(gender="男" OR gender="女"),#检查
	seat INT UNIQUE,#唯一
	age INT DEFAULT 17,#默认
	majorId INT REFERENCES major(id)#外键
);

DESC stuinfo;
#查看stuinfo表中所有的索引,包括主键、外键、唯一
SHOW INDEX FROM stuinfo;

(2) Agregar restricciones a nivel de tabla

Sintaxis: en la parte inferior de cada campo
[RESTRICCIÓN nombre de restricción] tipo de restricción (nombre de campo)

CREATE TABLE stuinfo(
   id INT,
   stuname VARCHAR(20),
   gender CHAR(1),
   seat INT,
   age INT,
   majorid INT ,
   
   CONSTRAINT pk PRIMARY KEY (id),#主键
   CONSTRAINT uq UNIQUE (seat),#唯一键
   CONSTRAINT ck CHECK (gender='男' OR gender='女'),#检查
   CONSTRAINT fk_stuinfo_major FOREIGN KEY(majorid) REFERENCES major(id)#外键
);

Método de escritura
general : clave primaria general, no vacía, única, etc. como restricciones a nivel de columna, claves externas como restricciones a nivel de tabla

CREATE TABLE IF NOT EXISTS stuinfo(
	id INT PRIMARY KEY,
	stuname VARCHAR(20) NOT NULL,
	sex CHAR(1),
	age INT DEFAULT 18,
	seat INT UNIQUE,
	major_id INT,
	CONSTRAINT fk_stu_major FOREIGN KEY(majorid) REFERENCES major(id)
);

Dos, agregue restricciones al modificar la tabla

Agregue restricciones a nivel de columna:

ALTER TABLE 表名 MODIFY COLUMN 字段名 字段类型 新约束;

Agregue restricciones a nivel de tabla:

ALTER TABLE 表名 ADD 【CONSTRAINT 约束名】 约束类型(字段名) 【外键的引用】;

1. Agregue restricciones no vacías

ALTER TABLE stuinfo 
  MODIFY COLUMN stuname VARCHAR (20) NOT NULL ;

2. Agregar restricciones predeterminadas

ALTER TABLE stuinfo 
  MODIFY COLUMN age INT DEFAULT 18 ;

3. Agregar
restricción de nivel de columna de clave principal (1)

ALTER TABLE stuinfo 
  MODIFY COLUMN id INT PRIMARY KEY ;

(2) Restricciones a nivel de tabla

ALTER TABLE stuinfo 
  ADD PRIMARY KEY (id) ;

4. Agregue
restricciones de nivel de columna únicas (1)

ALTER TABLE stuinfo 
  MODIFY COLUMN seat INT UNIQUE ;

(2) Restricciones a nivel de tabla

ALTER TABLE stuinfo 
  ADD UNIQUE (seat) ;

5. Agregar claves externas

ALTER TABLE stuinfo  
  ADD  FOREIGN KEY(majorid) REFERENCES major(id); 

Tres, elimine las restricciones al modificar la tabla

1. Eliminar restricciones no vacías

ALTER TABLE stuinfo 
  MODIFY COLUMN stuname VARCHAR (20) NULL ;

2. Eliminar la restricción predeterminada

ALTER TABLE stuinfo 
  MODIFY COLUMN age INT ;

3. Eliminar la clave principal

#方法一
ALTER TABLE stuinfo
  MODIFY COLUMN id INT ;
#方法二
ALTER TABLE stuinfo 
  DROP PRIMARY KEY ;

4. Eliminar único

ALTER TABLE stuinfo 
  DROP INDEX seat ;

5. Eliminar claves externas

ALTER TABLE stuinfo 
  DROP FOREIGN KEY major_id ;

SHOW INDEX FROM stuinfo ;

prueba

1. Agregue la restricción PRIMARY KEY (my_emp_id_pk) a la columna id de la tabla emp2

#方式一
ALTER TABLE emp2 
  MODIFY COLUMN id INT PRIMARY KEY ;
#方式二
ALTER TABLE emp2 
  ADD CONSTRAINT my_emp_id_pk PRIMARY KEY (id)

2. Agregue la columna dept_id a la tabla emp2 y defina la restricción FOREIGN KEY en ella. La columna asociada es la columna id en la tabla dept2.

ALTER TABLE emp2 
  ADD COLUMN dept_id INT ;

ALTER TABLE emp2 
  ADD COLUMN FOREIGN KEY (dept_id) REFERENCES dept2 (id) ;

Supongo que te gusta

Origin blog.csdn.net/Txixi/article/details/115219488
Recomendado
Clasificación