Capítulo 3 Restricciones en las tablas

Cuando diseñamos una tabla de base de datos, debemos restringirla en la tabla, y los datos que no cumplan con las condiciones no se pueden insertar en la tabla. Esta es la "restricción".

1. Atributos vacíos

1, NULO

Null en MySQL se representa como: NULL NULLNULO . _ Cuando estábamos aprendiendo C/C++, el atributo vacío NULL representaba el número 0. Pero en MySQL, NULL no representa ningún valor, NULL no significa nada, no representa 0 y no representa un espacio. En MySQL, trate de asegurarse de que los datos no estén vacíos tanto como sea posible, porque si los datos están vacíos, no pueden participar en la operación (hablaremos de eso más adelante).

2. Restricciones vacías

Es lógicamente imposible que algunos datos estén vacíos. Por ejemplo, en las escuelas, si queremos contar la información de los estudiantes, entonces los estudiantes deben tener clases correspondientes, es decir, los datos en la columna de clase no pueden estar vacíos. Por lo tanto, podemos establecer ciertas restricciones en este atributo de datos, a saber: la clase no puede estar vacía. La existencia de restricciones mejora en gran medida la legalidad de los datos en MySQL.

Entonces, ¿cómo establecemos restricciones vacías?

Al crear una tabla, solo necesitamos agregarla not nulldespués de la variable correspondiente.
La sintaxis es la siguiente:

变量名 数据类型 not null;

inserte la descripción de la imagen aquí
Por ejemplo, creamos una tabla T, hay dos variables en esta tabla, una es id idi d , uno esnombre nombrenombre e . Al mismo tiempo, agregamosnot null not\ nullLa restricción de not o t null ll  .

Después de crear la tabla, veamos la descripción de la tabla T.
Como se muestra en la figura a continuación, encontramos que la columna de atributo vacío NULL correspondiente a id es NO, es decir, la variable no puede estar vacía.
inserte la descripción de la imagen aquí

Así que ahora insertamos datos en la tabla:

inserte la descripción de la imagen aquí
Descubrimos que cuando insertamos datos, si la columna id no está escrita, MySQL informará un error, logrando así un cierto efecto de restricción.

Dos, el valor predeterminado

1, predeterminado

Valor predeterminado: Cierto tipo de datos a menudo tendrá un valor específico, que se puede especificar al principio. Cuando se necesitan datos reales, el usuario puede usar selectivamente el valor predeterminado.

El efecto del valor predeterminado: cuando se insertan los datos, al campo no se le asigna un valor y se usa el valor predeterminado

2. Gramática

数据名 数据类型 default 默认值

inserte la descripción de la imagen aquí
Creamos una tabla T, hay tres variables en esta tabla: id, puntaje, nombre. Entre ellos, la identificación no puede estar vacía y el puntaje predeterminado es 0 puntos.

Ahora insertamos datos en esta tabla:
inserte la descripción de la imagen aquí
encontramos que si no insertamos puntaje, MySQL insertará el valor predeterminado de 0 por defecto.

3. Notas (descripción de la columna)

1 comentario

En C/C++, lo \\usamos para expresar comentarios, cuando creamos una tabla, algunas variables necesitan que agreguemos algunos comentarios, para facilitar la lectura del programador. Luego, al crear una tabla, podemos usar comment para escribir comentarios.

2. Gramática

数据名称 数据类型 comment '注释内容'

inserte la descripción de la imagen aquí
Después de crear la tabla, podemos mirar la descripción de la tabla:
inserte la descripción de la imagen aquí
descubrimos que los comentarios agregados cuando se creó la tabla no están visibles en la tabla en absoluto.

Entonces, ¿dónde vamos a comprobar las anotaciones?

Podemos usar la siguiente declaración para ver la declaración que creó la tabla:

show create table 表的名称;

inserte la descripción de la imagen aquí
En este punto, aunque podemos ver los comentarios añadidos antes, el formato está desordenado. En este momento, puede ;reescribirlo como \Gy el sistema ajustará el formato de impresión.
Como se muestra en la siguiente figura:
inserte la descripción de la imagen aquí
La figura anterior es la declaración que escribimos cuando creamos la tabla T, desde la cual podemos ver claramente el contenido de nuestras notas.

Cuatro, relleno cero

1. ¿Qué es zerofill?

Antes de explicar qué es zerofill, aquí hay un fenómeno que debe mencionarse, como se muestra en la siguiente figura: la
inserte la descripción de la imagen aquí
figura anterior es una descripción de cierta tabla, veamos Typeuna columna, en esta columna, hay un número 11 después int, y después de varchar También hay un número 20. Este número 20 es obviamente la longitud máxima de la cadena que especificamos antes.

Entonces, ¿qué significa el número después del int?

De hecho, este 11 es también la longitud máxima. Entonces zerofill es para llenar los bits altos no utilizados con 0, pero no afecta el tamaño del valor en sí.

2. Gramática

数据名称 数据类型 zerofill

inserte la descripción de la imagen aquí

Cinco, la clave principal

1, clave principal

En algunos casos, algunos datos solo aparecerán una vez, como el número de identificación de estudiante de un estudiante o el número de identificación de una persona. El número de estudiante y el número de identificación son diferentes para cada persona. Por lo tanto, la clave principal se usa para restringir las variables que aparecen solo una vez.

Las variables restringidas por la clave principal no pueden repetirse ni estar vacías.

Una tabla solo puede tener una clave principal.

2. Gramática

数据名称 数据类型 primary key

Por ejemplo, creamos una tabla T que solo usa la variable id modificada por la clave principal. e inserte datos en la tabla.
inserte la descripción de la imagen aquí
Ahora ya hay un dato 1 en esta tabla, insertemos otro 1 en él para ver si se puede insertar con éxito.
inserte la descripción de la imagen aquí
Descubrimos que debido a que 1 ya existe, para evitar la duplicación, no podemos insertar datos 1 nuevamente, y el sistema envió un guardado.

3. Modificar la clave principal

Si nuestra variable olvida agregar la clave principal, podemos agregar la clave principal después de crear la tabla, la
sintaxis es la siguiente:

alter table 表的名称 add primary key (变量名);

Primero creamos una tabla T, donde solo hay una variable T sin modificación de clave principal.
inserte la descripción de la imagen aquí
Ahora agregamos una clave principal para modificar la variable id.
inserte la descripción de la imagen aquí
Ahora veamos la descripción de esta tabla nuevamente:
inserte la descripción de la imagen aquí

La clave principal ya ha aparecido en la columna de clave.

Además de agregar la clave principal, también podemos eliminar la clave principal de la variable.

alter table 表的名称 drop primary key;

inserte la descripción de la imagen aquí

4. Clave primaria compuesta

Al crear una tabla, podemos combinar varias variables para formar un grupo de variables como clave principal.

La sintaxis es la siguiente:

primary key(变量1,变量2,...)

Cree una tabla T, hay dos variables en esta tabla, una variable es id, una variable es nombre, agregaremos la clave principal al grupo de variables de id + nombre.
inserte la descripción de la imagen aquí
Ahora insertamos datos en esta tabla.
Como se muestra en la figura a continuación:
inserte la descripción de la imagen aquí
Encontramos que si una de las variables está duplicada, aún podemos insertarla, pero si todo el grupo de variables está duplicado, la inserción falla.

6. Crecimiento personal

1, incremento_automático

Crecimiento propio, como su nombre indica: crecimiento automático. Cuando modificamos una variable con auto_increment, si la variable no está asignada, MySQL encontrará el valor máximo de la variable y luego 最大值+1lo asignará a la variable.

auto_increment es lo mismo que la clave principal, cada tabla solo puede tener una variable de incremento automático. Para que cualquier variable se autoincremente, la premisa es que sea un índice (la columna clave tiene un valor). De lo contrario, los campos de incremento automático deben ser números enteros.

2. Gramática

数据名称 数据类型 键的类型 auto_increment

Como se muestra en la figura a continuación, creamos una tabla T, y hay dos variables en esta tabla T, una es id y la otra es name. Entre ellos, la variable id se modifica con la clave principal, y también agregamos atributos autocrecientes a la id.
inserte la descripción de la imagen aquí
Ahora insertamos datos en la tabla:
inserte la descripción de la imagen aquí
primero insertamos datos con una identificación de 10 y luego insertamos datos sin una identificación. Pero al final, mysql adivinó el valor de identificación de los segundos datos en función de la identificación de nuestros primeros datos.

7. Clave única

1, único

A menudo, hay muchos campos en una tabla que requieren unicidad y los datos no se pueden repetir, pero solo puede haber una clave principal en una tabla : una clave única puede resolver el problema de que múltiples campos en una tabla requieren unicidad.

La esencia de la clave única es similar a la de la clave principal. Se permite que la clave única esté vacía, y más de una puede estar vacía. El campo vacío no se compara por su singularidad.

2. Gramática

数据名 数据类型 unique

Ahora creamos una tabla donde la variable id se decora con la clave principal y la variable de nombre se decora con la clave única.
inserte la descripción de la imagen aquí

La descripción de la tabla es la siguiente, y encontramos que el tipo de valor clave de los dos se refleja en la columna de valor clave.
inserte la descripción de la imagen aquí

8. Claves foráneas

1, clave externa

La clave externa se utiliza para definir la relación entre la tabla principal y la tabla esclava: la restricción de clave externa se define principalmente en la tabla esclava y la tabla maestra debe tener una restricción de clave principal o una restricción única . Cuando se define la clave externa, se requiere que los datos de la columna de clave externa existan en la columna de clave principal de la tabla principal o sean nulos.

2. Gramática

foreign key (变量名) references 主表(变量名)

Por ejemplo, queremos crear la tabla descrita en la siguiente figura. (La tabla de clases a la derecha es la tabla maestra y la tabla de estudiantes es la tabla esclava)
Primero creemos una tabla principal
Primero creamos la tabla maestra: myclass

inserte la descripción de la imagen aquí
La descripción de la tabla principal es la siguiente:
inserte la descripción de la imagen aquí
Ahora creamos la tabla esclava y agregamos restricciones de clave externa a la tabla esclava.
inserte la descripción de la imagen aquí
Ahora insertemos datos en la tabla principal primero.
inserte la descripción de la imagen aquí

Luego insertamos datos en la tabla esclava:

inserte la descripción de la imagen aquí
Descubrimos que si el class_id que insertamos son datos que no existen en la tabla principal, mysql informará un error.

Supongo que te gusta

Origin blog.csdn.net/weixin_72060925/article/details/131806445
Recomendado
Clasificación