Lo que sigue son 15 trucos o cosas esenciales que cualquier desarrollador serio de MySQL debería saber:
1. Relaciones de mesa
Hay tres formas de relaciones de tabla: uno a uno, uno a muchos (O2M) (one 2(to) many) y muchos a muchos (M2M). Mi analogía con O2M es que se trata de una relación entre padres e hijos en la que un padre puede tener muchos hijos, pero no al revés. Por lo tanto, recuerde siempre poner la clave externa (FOREIGN KEY) (FK) en las tablas hijas (muchos). Para M2M, solo necesita crear una tabla de búsqueda.
2. Unir tablas
Hay muchas formas de combinaciones de tablas MySQL: INNER, OUTER, NATURAL, LEFT Y RIGHT. No use ninguno de ellos. Por ejemplo, considere las tablas user y user_pic donde el usuario es una tabla principal con muchos elementos secundarios o imágenes. Como se mencionó anteriormente, colocamos FK (user_id) en la tabla user_pic y los unimos (tenga en cuenta que user_pk es la clave principal de la tabla de usuarios):
“SELECT * FROM user, user_pic WHERE user.user_pk = user_pic.user_id”
Ahora las dos mesas están unidas. Excepto en casos especiales en los que puede utilizar otras combinaciones (como la combinación LEFT para incluir valores NULL), este enfoque manejará la mayoría de sus trabajos.
3. Motor InnoDB
Si eres fanático del motor MySQL InnoDB y las estructuras de base de datos normalizadas, te sugiero que establezcas “UPDATE= cascade” y “DELETE= restricted” al crear las relaciones de la tabla.
4. Consultas entre bases de datos
Las bases de datos grandes o de nivel empresarial requieren consultas entre bases de datos. Por ejemplo, la base de datos uno (company_users) tiene una tabla de usuarios y la base de datos dos (company_staffs) tiene una tabla de personal. Aquí hay una consulta de una base de datos cruzada:
“SELECCIONE * FROM company_users.user, company_staffs.staff DONDE …”
5. Alias encantadores
Utilizo mucho alias principalmente en cuatro situaciones:
-
Al unir varias tablas para evitar confusiones y consultas más breves
-
Al realizar consultas entre bases de datos
-
Cuando hay consultas ambiguas (por ejemplo, unir dos tablas que tienen al menos un campo en común)
-
Cuando utilice la función DATE-FORMAT para distinguir la fecha formateada de la marca de tiempo.
6. Función DATE_FORMAT
Para ofrecer aplicaciones más profesionales, debe utilizar la función MySQL DATE_FORMAT siempre que sea necesario.
7. IN () Versus BETWEEN… AND …
IN () se usa principalmente para algunas opciones, mientras que BETWEEN se usa para un rango de valores como se ve en las siguientes consultas:
“SELECT * FROM user WHERE(edad = 15 OR edad = 16 OR edad = 17)”
o
“SELECT * FROM user WHERE age IN (15,16,17)”
o
“SELECT* FROM user WHERE age BETWEEN 15 AND 17”
8. ES NULO o NO ES NULO
Cuando desee filtrar valores nulos o válidos, utilice las funciones “IS NULL” y “IS NOT NULL” respectivamente. Por ejemplo, a continuación, la consulta devuelve todos los usuarios que tienen el valor nulo para su edad:
“SELECT * FROM user WHERE age IS NULL”
9. ORDEN POR DESC, ASC, RAND ()
Es autoexplicativo.
10. LÍMITE A, B
Es mejor usar LIMIT junto con ORDER BY. El LÍMITE A, B significa comenzar desde el número de fila A y eliminar el número B de filas. Luego, devuelve el conjunto de resultados. Es una gran herramienta para una aplicación a gran escala (para descargar la tarea de procesamiento de MySQL), paginaciones de aplicaciones y consultas de búsqueda, así que asegúrese de usarla.
11. Funciones útiles de fecha
Hay muchas funciones de fecha de MySQL. De particular interés (desde una perspectiva práctica) son DATE_ADD (), DATE_SUB (), CURRENT_DATE (), NOW () y DATEDIFF (), así que busque el manual de MySQL para más detalles.
12. Claves primarias, únicas y de índice
La clave principal (PK) o el identificador de la tabla puede ser un número entero de incremento automático o un valor único personalizado como la dirección de correo electrónico. La clave única es idéntica a la PK, excepto que acepta valores nulos. La clave de índice se usa principalmente para acelerar el tiempo de procesamiento de MySQL, así que úsela solo para campos muy importantes en su tabla. De lo contrario, puede ralentizar el tiempo de respuesta de su base de datos.
13. Copias de seguridad incrementales versus periódicas
Hay dos formas principales de realizar copias de seguridad de una base de datos MySQL: incremental y periódica. Para el primero, debe definir una ruta de directorio binario en su archivo MySQL.ini. Luego, MySQL realizará automáticamente una copia de seguridad de cualquier instrucción INSERT, UPDATE o DELETE al instante (por supuesto, a costa de una mayor carga de procesamiento), mientras las guarda en el registro binario de su servidor. Sin embargo, para lo último, debe ejecutar la función MySQL_dump a diferentes intervalos (preferiblemente a diario) y guardar el archivo de copia de seguridad SQL después.
14. Operadores normales
Estos son los principales operadores de MySQL:,! =, AND, OR,. Cuando dices que A no es igual a B, puedes usar AB o A! = B
15. Agrupar por
Asegúrese de comprender muy bien Group By antes de usarlo. De lo contrario, puede devolver resultados ambiguos, especialmente en consultas de combinación de varias tablas.