¿Algún curso de SQL Online?
15-jul-2024 14:27
#1
|
Buenas tardes shurs, Hace poco termine unos estudios relacionados con Big Data y vi que realmente necesitaba un refuerzo con todo el tema de SQL, ya que no hubo tanta formación al respecto. La pregunta era para ver si sabíais alguno optimo, ya que he visto en Coursera y Udemy y hay un monton. Me gustaría uno lo más práctico posible. Gracias y un saludo shurs!! |
15-jul-2024 23:06
#6
|
A mi me sirvió esta pagina para aprender lo más básico de SQL. https://sqlbolt.com/ |
15-jul-2024 23:30
#8
|
https://cursos.devtalles.com/courses/sql-con-postgres?coupon=JULIO-2024 Con el cupón se te queda a 10 dólares. Merece mucho la pena, lo tienes también en Udemy. Fernando Herrera, de los pocos profesores en español que recomiendo para informática y que renueva el contenido. |
Editado: 15-jul-2024 23:40 -
27-jul-2024 23:36
#10
|
Buenas tardes shurs,
Hace poco termine unos estudios relacionados con Big Data y vi que realmente necesitaba un refuerzo con todo el tema de SQL, ya que no hubo tanta formación al respecto. La pregunta era para ver si sabíais alguno optimo, ya que he visto en Coursera y Udemy y hay un monton. Me gustaría uno lo más práctico posible. Gracias y un saludo shurs!! |
27-jul-2024 23:46
#12
|
Buenas tardes shurs,
Hace poco termine unos estudios relacionados con Big Data y vi que realmente necesitaba un refuerzo con todo el tema de SQL, ya que no hubo tanta formación al respecto. La pregunta era para ver si sabíais alguno optimo, ya que he visto en Coursera y Udemy y hay un monton. Me gustaría uno lo más práctico posible. Gracias y un saludo shurs!! Esta estructura es lujo para cocinar datos. Te pongo código de ejemplo: DECLARE TYPE t_emp IS TABLE OF employees%ROWTYPE; l_employees t_emp; CURSOR c_employees IS SELECT * FROM employees WHERE department_id = 10; BEGIN OPEN c_employees; LOOP FETCH c_employees BULK COLLECT INTO l_employees LIMIT 100; EXIT WHEN l_employees.COUNT = 0; -- UPDATE FORALL i IN l_employees.FIRST .. l_employees.LAST UPDATE employees SET salary = salary * 1.1 WHERE employee_id = l_employees(i).employee_id; -- INSERT FORALL i IN l_employees.FIRST .. l_employees.LAST INSERT INTO employees_log (employee_id, log_date, action) VALUES (l_employees(i).employee_id, SYSDATE, 'SALARY UPDATED'); -- MERGE FORALL i IN l_employees.FIRST .. l_employees.LAST MERGE INTO employees_backup e USING (SELECT l_employees(i).employee_id AS employee_id, l_employees(i).first_name AS first_name, l_employees(i).last_name AS last_name, l_employees(i).email AS email, l_employees(i).phone_number AS phone_number, l_employees(i).hire_date AS hire_date, l_employees(i).job_id AS job_id, l_employees(i).salary AS salary, l_employees(i).commission_pct AS commission_pct, l_employees(i).manager_id AS manager_id, l_employees(i).department_id AS department_id FROM dual) src ON (e.employee_id = src.employee_id) WHEN MATCHED THEN UPDATE SET e.first_name = src.first_name, e.last_name = src.last_name, e.email = src.email, e.phone_number = src.phone_number, e.hire_date = src.hire_date, e.job_id = src.job_id, e.salary = src.salary, e.commission_pct = src.commission_pct, e.manager_id = src.manager_id, e.department_id = src.department_id WHEN NOT MATCHED THEN INSERT (employee_id, first_name, last_name, email, phone_number, hire_date, job_id, salary, commission_pct, manager_id, department_id) VALUES (src.employee_id, src.first_name, src.last_name, src.email, src.phone_number, src.hire_date, src.job_id, src.salary, src.commission_pct, src.manager_id, src.department_id); COMMIT; END LOOP; CLOSE c_employees; END; / ########## Descripción del código: 1. Declaración de tipo y variable: • t_emp es una tabla de filas de la tabla employees. • l_employees es una variable de tipo t_emp. 2. Cursor: • c_employees selecciona todas las filas de empleados cuyo department_id es 10. 3. Apertura del cursor: • Se abre el cursor c_employees. 4. Bucle LOOP: • Se utiliza FETCH ... BULK COLLECT INTO ... LIMIT 100 para recoger los datos en lotes de 100 filas. 5. Salida del bucle: • El bucle se detiene cuando no se recogen más filas (l_employees.COUNT = 0). 6. UPDATE: • Se utiliza FORALL para iterar sobre l_employees y actualizar los salarios. 7. INSERT: • Se utiliza FORALL para insertar registros en la tabla employees_log. 8. MERGE: • Se utiliza FORALL para hacer una operación MERGE en la tabla employees_backup, actualizando registros existentes o insertando nuevos registros si no existen. 9. COMMIT: • Se realiza un COMMIT para confirmar los cambios en la base de datos después de procesar cada lote. 10. Cierre del cursor: • Se cierra el cursor c_employees al final del proceso. Este ejemplo muestra cómo utilizar BULK COLLECT, FORALL, UPDATE, INSERT y MERGE de manera eficiente para procesar datos en lotes. |