restricciones de integridad de tipo de datos mysql 054
Crear usuarios y autorizar permisos de usuario:
# 1. Crear usuario: # Especificar el usuario fgf con ip 192.168.15.109 para iniciar sesión crear usuario ' fgf ' @ ' 192.168.15.109 ' identificado por ' 12 ' # Especificar el usuario fgf con ip 192.168.15.1 para iniciar sesión crear usuario ' fgf ' @ ' 192.168.15.% ' identificado por ' 123 ' ; # Especificar cualquier ip fgf inicio de sesión de usuario crear usuario ' fgf ' @ ' % ' identificado por ' 123 ' , n º 2 . Eliminar usuario eliminar usuario ' nombre de usuario ' @ ' dirección IP ' , n º 3 . _ _ _ _ _ _ _ _ _ _ ; # 4 . Modificar contraseña establecer contraseña para ' nombre de usuario ' @ ' dirección IP ' = contraseña ( ' nueva contraseña ' ); administración de autorizaciones del usuario actual Ver permisos mostrar concesiones para ' nombre de usuario ' @ ' dirección IP ' # Autorizar a los usuarios de fgf solo para consultar, insertar y actualizar archivos db1.t1 otorgar seleccionar , insertar , actualizar en db1 a ' fgf ' @ ' % ' ; # Indica todos los privilegios, excepto el comando grant , que solo está disponible para root, los usuarios de fgf tienen permisos de operación arbitrarios en archivos t1 bajo db1; otorgar todos los privilegios en db1 .t1 a ' mjj' @ ' % ' ; los usuarios de #fgf realizan cualquier operación en los archivos de la base de datos db1 otorgan todos los privilegios en db1 . * a ' fgf ' @ ' % ' ;
copiar tabla
# Copie la estructura de la tabla y copie los registros, cree la tabla t2 seleccione * de db1.t1 # Solo copie la estructura de la tabla, no copie los registros cree la tabla t2 seleccione * de db1.t1 donde 1 > 3 , cree la tabla t2 como db1.t1;
Tipo de datos : el entero está firmado de forma predeterminada
Tipo de datos sin firmar (sin firmar) y zerofill firmado con 0
El papel de las restricciones: para garantizar la integridad y consistencia de los datos
tinyint[-128~127] se pueden obtener pequeños enteros en ambos lados
int entero
bigint entero extremadamente grande
# Agregado sin firmar significa comenzar desde 0 y ya no comenzar desde números negativos crear la tabla t1 (id int ( 4 ) sin firmar, nombre char ( 20 ));
punto flotante
La precisión simple flotante se vuelve cada vez menos precisa a medida que aumenta el número de lugares decimales.
float[(M,D)] [SIN FIRMAR] [ZEROFILL]
Explicación de parámetros: número de punto flotante de precisión simple (valor decimal no exacto), M es la longitud completa, D es el número después del punto decimal, el valor máximo de M es 255 y el valor máximo de D es 30
La doble precisión doble será cada vez más inexacta a medida que aumente el número de decimales, pero es más precisa que la coma flotante
DOUBLE[(M,D)] [UNSIGNED] [ZEROFILL] Las letras tienen el mismo significado que float.
decimal decimal exacto
decimal[(m[,d])] [sin signo] [relleno cero]
#Explicación del parámetro: valor decimal preciso, M es el número total de partes enteras (los signos negativos no se cuentan), D es el número después del punto decimal. El valor máximo de M es 65 y el valor máximo de D es 30.
#Precisión: **** La precisión siempre es precisa a medida que aumenta el número de decimales ****
Este tipo es necesario para cálculos numéricos exactos
La razón por la que ecaimal puede almacenar valores precisos es que se almacena internamente como cadenas.
Tipo de fecha: FECHA HORA DATETIME TIMESTAMP AÑO
La función es almacenar el tiempo de registro del usuario, el tiempo de liberación del artículo, el tiempo de entrada del empleado, el tiempo de nacimiento, el tiempo de vencimiento, etc.
AÑO Año (1901~2155)
FECHA
TIEMPO horas minutos segundos
now() La función de contenido que viene con el lenguaje sql: Obtener la hora del evento actual (según el tipo de datos)
crear tabla t10 (nacido_año año, intClass fecha y hora);
tipo de caracter
char longitud fija, simple y grosero, pérdida de espacio pero velocidad de acceso rápida
La longitud variable de Varchar ahorra espacio con precisión pero la velocidad de acceso es lenta
length(): Ver el número de bytes
char_length(): Ver el número de caracteres
Enumeraciones y colecciones
crear tabla consumidor ( id int , nombre varchar ( 50 ), enumeración de sexo ( ' masculino ' , ' femenino ' , ' otro ' ) predeterminado ' masculino ' , enumeración de nivel ( ' vip1 ' , ' vip2 ' , ' vip3 ' , ' vip4 ' ),#En el rango especificado, elija más de un conjunto favorito ( 'reproducir ' , ' música ' , ' leer ' , ' estudiar ' ) # Dentro del rango especificado, selecciones múltiples );
Nota: utilice tinyint(1) en sql para representar el tipo booleano
Restricciones de integridad
no nulo y predeterminado
Si establece no nulo solo, no puede insertar un valor nulo
Si no se establece nulo y se especifica el valor predeterminado, se puede insertar un valor nulo y se ejecutará el valor predeterminado
llave unica
Fila única única
crear tabla t4 ( id int no nulo , nombre char ( 20 ) único ); crear tabla t4 ( id int no nulo , nombre char ( 20 ), único (nombre) ); insertar en valores t4(id,name) ( 1 , ' alex ' ); insertar en valores t4(id,name) ( 1 , 'wusir ' );
Única de varias columnas Siempre que una columna sea la misma, no se puede insertar (similar a y)
crear tabla t5 ( id int , nombre char ( 20 ), único (id), único (nombre) );
unión única no se puede insertar cuando todos son iguales (similares a o)
crear tabla t6 ( id int , nombre char ( 20 ), único (id, nombre) );
Escenario de aplicación Sistema de selección de cursos Un estudiante puede elegir varios cursos Un curso puede ser elegido por varios estudiantes
Clave primaria
Reacción química: no nula + única
Una clave principal de una sola columna no puede estar vacía y es única
# índice de clave principal (para una gran cantidad de datos) la velocidad de consulta es más rápida crear tabla t7 ( id int clave principal , nombre varchar ( 10 ) único ); crear tabla t8 ( id int no nulo único , nombre varchar ( 10 ) único ) ;
clave primaria combinada
crear tabla t9 ( id int , nombre varchar ( 10 ), clave principal (id, nombre) );
restricción de incremento automático: el campo restringido es un campo restringido de incremento automático que debe estar restringido por clave al mismo tiempo
crear tabla estudiante ( id int clave principal auto_incremento, nombre varchar ( 20 ) no nulo , sex enum ( ' masculino ' , ' femenino ' ) predeterminado ' masculino ' , ip varchar ( 20 ) único ); inserte en los valores del estudiante (nombre, sexo, ip) ( ' alex ' , ' femenino ' , ' 127.0.0.5 ' ), ( ' wusir ' , ' masculino ' , ' 173.45.32.1 ' );
Borre la tabla para distinguir la diferencia entre eliminar y truncar:
eliminar de t1: si hay información de identificación de incremento automático, los datos aún comienzan con el último antes de la eliminación
tabla truncada t1: es adecuada para eliminar una gran cantidad de datos, y la velocidad de eliminación es más rápida que la anterior, y comienza directamente desde cero.
clave externa
La clave foránea es asociar dos tablas.
# Crea la tabla principal create table dep( # El id de la tabla principal está configurado para aumentar automáticamente el id int clave primaria auto_increment, # Establece el nombre del departamento como un nombre único de una sola columna char ( 10 ) único , # La descripción del departamento no puede estar vacía dep_desc varchar ( 50 ) no nulo ); # crear tabla esclava crear tabla emp( eid int clave principal auto_incremento, nombre char ( 10 ) no nulo , edad int not null , dep_id int , restricción fk_dep clave foránea (dep_id) referencias dep(id) on delete cascade on update cascade , ); crear tabla emp( eid int clave principal auto_incremento, nombre char ( 10 ) no nulo , edad int no nulo , dep_id int , la restricción fk_dep clave externa (dep_id) hace referencia a dep (id) al eliminar la cascada al actualizar la cascada , ); insertar en los valores dep (nombre, dep_desc) ( ' junta directiva ' , ' departamento de la empresa de gestión ' ), ( ' relaciones públicas ' , ' Departamento de Gestión de Relaciones Públicas ' ), ( ' Departamento de TI ' , ' Departamento de Gestión de TI ' ), ( ' Departamento de Finanzas ' , ' Departamento de gestión financiera ' ); insertar en emp(nombre,edad,dep_id) valores ( ' alex ' , 18 , 1 ), ( ' wusir ' , 30 , 2 ), ( ' Jefe Wu ' , 20 , 3 ), ( ' Jefe Ma ' , 18 , 4 ), ( ' Jefe Qiu ' , 20 , 2 ), ( ' Diosa ' , 16 , 3 );