Notas de estudio de MySQL ------ restricciones comunes

# restricciones comunes

/*


Significado: Una restricción utilizada para limitar los datos de la tabla, con el fin de garantizar la precisión y confiabilidad de los datos de la tabla.


Clasificación: seis restricciones principales
    NOT NULL: no vacío, se usa para garantizar que el valor del campo no pueda estar vacío,
    como nombre, número de estudiante, etc.
    DEFAULT: predeterminado, se usa para garantizar que el campo tenga un valor predeterminado
    como género
    CLAVE PRIMARIA: clave principal, utilizada para garantizar que el valor del campo sea único y no esté vacío,
    como número de estudiante, número de empleado, etc.
    ÚNICO: único, utilizado para garantizar que el valor del campo sea único , puede estar vacío,
    como el número de asiento
    VERIFICAR: verificar restricción [no admitido en mysql]
    como edad, Género
    CLAVE EXTRANJERA: clave externa, utilizada para limitar la relación entre dos tablas, utilizada para garantizar que el valor de este campo debe venir del valor de la columna asociada de la tabla principal Agregue una
        restricción de clave externa a la tabla esclava, utilizada para hacer referencia a una columna en la tabla principal El valor de,
    como el número profesional de la tabla de estudiantes, el número de departamento del empleado tabla y el tipo de número de trabajo de la tabla de empleados
    

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

Categorías de adición de restricciones:
    Restricciones a nivel de columna:
        las seis restricciones se admiten sintácticamente, pero las restricciones de clave externa no tienen ningún efecto.
        
    Restricciones a nivel de tabla:
        
        excepto las no nulas, predeterminadas, se admiten otras
        
        
Clave primaria y comparación única:

        Unicidad garantizada Si se permite que esté vacío Cuántos puede haber en una tabla Si se permiten
    claves primarias combinadas √ × Hay como máximo 1 √, pero
    no se recomienda única √ √ Puede haber múltiples √, pero no se recomienda
Clave externa:
    1. Requerido en la tabla esclava Establecer la relación de clave externa
    2. El tipo de la columna de clave externa de la tabla secundaria es consistente o compatible con el tipo de la columna asociada de la tabla principal, y el nombre no es obligatorio. 3
    . La columna asociada de la tabla principal debe ser una clave (generalmente una clave principal o única)
    4. Al insertar datos, primero inserte la tabla principal y luego inserte la tabla esclava.
    Al eliminar datos, primero elimine la tabla esclava y luego eliminar la tabla maestra


*/

CREAR TABLA nombre de tabla (
    nombre de campo tipo de campo restricciones a nivel de columna,
    nombre de campo tipo de campo,
    restricciones a nivel de tabla

)
CREAR BASE DE DATOS estudiantes
# 1. Agregar restricciones al crear una tabla

# 1. Agregar restricciones a nivel de columna
/*
Sintaxis:

Simplemente agregue el tipo de restricción directamente después del nombre del campo y escriba.

Solo admitido: predeterminado, no nulo, clave principal, único

*/

UTILIZAR estudiantes;
SOLTAR TABLA stuinfo;
CREAR TABLA stuinfo(
    id INT PRIMARY KEY, #clave primaria --- la restricción es el número de estudiante
    stuName VARCHAR(20) NOT NULL UNIQUE, #género no vacío
    CHAR(1) CHECK(gender='masculino ' OR género = 'femenino'), #verificar------de hecho, el asiento INT UNIQUE no es compatible con mysql
    , #unique
    edad INT DEFAULT 18, #restricción predeterminada
    majorId INT REFERENCIAS major(id)#clave extranjera- --- --De hecho, las columnas de restricción no son compatibles con MySQL

);


CREAR TABLA mayor(
    id INT PRIMARY KEY,
    majorName VARCHAR(20)
);

#Ver todos los índices en stuinfo, incluida la clave primaria, la clave externa y el único
MOSTRAR ÍNDICE DE stuinfo;


# 2. Agregar restricciones a nivel de tabla
/*

Sintaxis: en la parte inferior de cada campo
 [nombre de restricción de restricción] tipo de restricción (nombre de campo) --- [nombre de restricción de restricción] significa que se puede omitir. Si no hay nombre, habrá un nombre predeterminado, es decir, el nombre de campo predeterminado*
/

SOLTAR TABLA SI EXISTE stuinfo;
CREAR TABLA stuinfo(
    id INT,
    stuname VARCHAR(20),
    género CHAR(1),
    asiento INT,
    edad INT,
    mayorid INT,
    
    CONSTRAINT pk PRIMARY KEY(id), #clave primaria --- clave primaria el nombre es fijo Sí, cambiar el nombre no tendrá ningún efecto
    CONSTRAINT uq UNIQUE(asiento), #unique key CONSTRAINT ck CHECK(género = 'masculino' OR género = 'femenino'), #check------de hecho,     CONSTRAINT
    no es compatible con mysql );

    

MOSTRAR ÍNDICE DE stuinfo;

#Forma general de escritura:★

CREAR TABLA SI NO EXISTE stuinfo(
    id INT CLAVE PRIMARIA,
    stuname VARCHAR(20),
    sexo CHAR(1),
    edad INT DEFAULT 18,
    asiento INT ÚNICO,
    mayorid INT,
    CONSTRAINT fk_stuinfo_major CLAVE EXTRANJERA (mayor) REFERENCIAS mayor(id)#外键

);

# 2. Agregue restricciones al modificar la tabla

/*
1. Agregar restricciones a nivel de columna
alterar el nombre de la tabla modificar el nombre del campo de la columna tipo de campo nueva restricción;

2. Agregar restricciones a nivel de tabla
alterar el nombre de la tabla agregar [nombre de la restricción] tipo de restricción (nombre de campo) [referencia de clave externa];


*/
DROP TABLE IF EXISTS stuinfo;
CREATE TABLE stuinfo(
    id INT,
    stuname VARCHAR(20),
    género CHAR(1),
    asiento INT,
    edad INT,
    majorid INT
)
DESC stuinfo;
#1. Agregar restricción no nula
ALTER TABLE stuinfo MODIFICAR COLUMNA stuname VARCHAR(20) NOT NULL;
# 2. Agregar restricciones predeterminadas
ALTER TABLE stuinfo MODIFICAR COLUMNA edad INT DEFAULT 18;
# 3. Agregar clave primaria
# ① Restricciones a nivel de columna
ALTER TABLE stuinfo MODIFICAR COLUMNA id INT PRIMARY KEY;
# ② Tabla- restricciones de nivel
ALTER TABLE stuinfo AGREGAR CLAVE PRIMARIA (id);

# 4. Agregar único

#①Restricciones a nivel de columna
ALTER TABLE stuinfo MODIFY COLUMN asiento INT UNIQUE
#②Restricciones a nivel de tabla
ALTER TABLE stuinfo ADD UNIQUE(asiento);


#5.添加外键
ALTER TABLE stuinfo AÑADIR RESTRICCIÓN fk_stuinfo_major CLAVE EXTRANJERA (mayor) REFERENCIAS mayor(id); 

# 3. Eliminar restricciones al modificar la tabla.

# 1. Eliminar la restricción no nula
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 DROP PRIMARY KEY;

# 4. Elimine el único
asiento ALTER TABLE stuinfo DROP INDEX;

# 5. Eliminar clave externa
ALTER TABLE stuinfo DROP FOREIGN KEY fk_stuinfo_major;

MOSTRAR ÍNDICE DE stuinfo;

Supongo que te gusta

Origin blog.csdn.net/weixin_47156401/article/details/131930846
Recomendado
Clasificación