Utilidades

Quisiera aprender a hacer joins en mysql

Fuente: https://chat.deepseek.com

 

¡Claro! Aprender a hacer JOIN en MySQL es fundamental para trabajar con bases de datos relacionales. Los JOIN te permiten combinar filas de dos o más tablas basándote en una relación entre columnas de esas tablas. Aquí te explico los tipos más comunes de JOIN en MySQL:

1. INNER JOIN

El INNER JOIN devuelve solo las filas que tienen coincidencias en ambas tablas. Es el tipo de JOIN más común.

Sintaxis:

SELECT columnas
FROM tabla1
INNER JOIN tabla2
ON tabla1.columna = tabla2.columna;

Ejemplo:

SELECT Orders.OrderID, Customers.CustomerName
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID = Customers.CustomerID;

2. LEFT JOIN (o LEFT OUTER JOIN)

El LEFT JOIN devuelve todas las filas de la tabla izquierda (la primera tabla mencionada) y las filas coincidentes de la tabla derecha. Si no hay coincidencias, los resultados de la tabla derecha serán NULL.

Sintaxis:

SELECT columnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.columna = tabla2.columna;

Ejemplo:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

3. RIGHT JOIN (o RIGHT OUTER JOIN)

El RIGHT JOIN es lo contrario del LEFT JOIN. Devuelve todas las filas de la tabla derecha y las filas coincidentes de la tabla izquierda. Si no hay coincidencias, los resultados de la tabla izquierda serán NULL.

Sintaxis:

SELECT columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna = tabla2.columna;

Ejemplo:

SELECT Orders.OrderID, Employees.LastName
FROM Orders
RIGHT JOIN Employees
ON Orders.EmployeeID = Employees.EmployeeID;

4. FULL JOIN (o FULL OUTER JOIN)

El FULL JOIN devuelve todas las filas cuando hay una coincidencia en la tabla izquierda o derecha. MySQL no tiene un FULL JOIN nativo, pero puedes simularlo usando UNION entre LEFT JOIN y RIGHT JOIN.

Sintaxis (Simulación):

SELECT columnas
FROM tabla1
LEFT JOIN tabla2
ON tabla1.columna = tabla2.columna
UNION
SELECT columnas
FROM tabla1
RIGHT JOIN tabla2
ON tabla1.columna = tabla2.columna;

Ejemplo:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
LEFT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
UNION
SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
RIGHT JOIN Orders
ON Customers.CustomerID = Orders.CustomerID;

5. CROSS JOIN

El CROSS JOIN devuelve el producto cartesiano de las dos tablas, es decir, todas las combinaciones posibles de filas de ambas tablas.

Sintaxis:

SELECT columnas
FROM tabla1
CROSS JOIN tabla2;

Ejemplo:

SELECT Customers.CustomerName, Orders.OrderID
FROM Customers
CROSS JOIN Orders;

6. SELF JOIN

Un SELF JOIN es un JOIN de una tabla consigo misma. Se utiliza cuando necesitas combinar filas de una tabla con otras filas de la misma tabla.

Sintaxis:

SELECT columnas
FROM tabla AS t1
JOIN tabla AS t2
ON t1.columna = t2.columna;

Ejemplo:

SELECT A.CustomerName AS CustomerName1, B.CustomerName AS CustomerName2, A.City
FROM Customers A, Customers B
WHERE A.CustomerID <> B.CustomerID
AND A.City = B.City;

Ejercicios Prácticos

  1. INNER JOIN: Intenta obtener una lista de todos los pedidos junto con los nombres de los clientes que los realizaron.

  2. LEFT JOIN: Obtén una lista de todos los clientes y sus pedidos, incluyendo aquellos clientes que no han realizado ningún pedido.

  3. RIGHT JOIN: Obtén una lista de todos los empleados y los pedidos que han gestionado, incluyendo aquellos empleados que no han gestionado ningún pedido.

  4. FULL JOIN: Simula un FULL JOIN para obtener una lista de todos los clientes y todos los pedidos, independientemente de si hay coincidencias o no.

  5. CROSS JOIN: Intenta obtener todas las combinaciones posibles de clientes y pedidos.

  6. SELF JOIN: Intenta obtener una lista de clientes que viven en la misma ciudad.

¡Practica estos ejercicios y te sentirás más cómodo con los JOIN en MySQL!

Escáner de Dispositivos Bluetooth Low Energy (BLE)

Si desea información, por favor contáctenos.



Enviar streaming de video a un canal o grupo de Telegram usando ffmpeg

Asumímos que ud tiene instalado ffmpeg y está familiarizado con la línea de comando

Please enter the password to see the content

Cambiar password de root en mariaDB (Windows)

1. Realizar un shutdown al servicio de mariaDB si este se encuentra iniciado

2. Abra un CMD como admnistrador y ejecute:

mysqld -P3306

3. Abra otro CMD como administrador y ejecute:


C:\Windows\System32>mysql -u root


Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 5
Server version: 11.4.3-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

 

4. Modifique el password de root segun su necesidad, así:

MariaDB [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('nuevoPasss');
Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]>

5. Salga de la consola de mysql, así:


MariaDB [(none)]> exit
Bye

C:\Windows\System32>

 

5. Cierre esta ventana y diríjase a la ventana inicialmente abierta y termine el proceso con CRTL-C. Cierre esa ventana

6. Reinicie el servicio y conectese con el nuevo password

mysql -u root -p
Enter password: ********
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 4
Server version: 11.4.3-MariaDB mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| nodeapi            |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.023 sec)

MariaDB [(none)]>

nginx ssl certbot letsencrypt

1. Instalar cerbot y detener nginx

apt install certbot
systemctl stop nginx

2. Generar certificado

Donde:

    certonly: Indica que únicamente queremos generar el certificado, no se configurará automáticamente el servidor web.
    –standalone: Indicamos el plugin que queremos utilizar durante el proceso. En éste caso, standalone.
    -d: Indicamos el nombre de dominio para el que queremos obtener el certificado. En éste caso,hipy.nethuber.com

# certbot certonly --standalone -d hipy.nethuber.com
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.4-April-3-2024.pdf. You must agree in
order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for hipy.nethuber.com

Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/hipy.nethuber.com/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/hipy.nethuber.com/privkey.pem
This certificate expires on 2024-08-05.
These files will be updated when the certificate renews.
Certbot has set up a scheduled task to automatically renew this certificate in the background.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
If you like Certbot, please consider supporting our work by:
 * Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
 * Donating to EFF:                    https://eff.org/donate-le
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 

3. Usar el certificado

Al archivo hipy.nethuber.com, agregar las líneas en negrilla

Please enter the password to see the content

4. Recargar la configuración

systemctl reload nginx