-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path11_Transacciones-JOINS.sql
55 lines (42 loc) · 1.57 KB
/
11_Transacciones-JOINS.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
-- TRANSACCIONES (Como podemos aplicar la estructura de transacciones para un script determinado o para incluirla dentro de un gestor,
-- normalmente se utiliza para evaluar una porción de código en la que estamos actualizando datos o borrando datos.)
SELECT * FROM Paciente;
BEGIN TRANSACTION
UPDATE paciente SET telefono = 4444444 WHERE idPaciente = 9
IF @@ROWCOUNT = 1
COMMIT TRANSACTION
ELSE
ROLLBACK TRANSACTION -- cancela la transacción
---------------------------------
-- JOINS
-- INNER JOIN
SELECT * FROM Paciente as p
INNER JOIN TurnoPacienteMedico as t
ON t.idPaciente = p.idPaciente;
-- LEFT JOIN (registros de la izq y los q coindicen de la derecha)
SELECT * FROM Paciente as p
LEFT JOIN TurnoPacienteMedico as t
ON t.idPaciente = p.idPaciente
-- RIGHT JOIN
SELECT * FROM Paciente as p
RIGHT JOIN TurnoPacienteMedico as t
ON t.idPaciente = p.idPaciente
-- COnsideraciones en sql para joins
-- cdo realizamos un inner tenemos que asegurarnos la conección siempre con las PK.
-- Siempre se aconseja que el primer campo de la cláusula ON sea en de la tabla inmediata por la que estoy haciendo la conexión.
-- Utilizar alias de tabla para evitar errores.
-- UNION requiere que ambos SELECT sean los mismos y tengas los mismos tipos de datos
SELECT * FROM turno where estado = 1
UNION
SELECT * FROM turno where estado = 2
-- Registros sin repeticiones
SELECT * FROM turno
UNION
SELECT * FROM turno
--Registros totales
SELECT * FROM turno
UNION ALL
SELECT * FROM turno
SELECT idTurno from Turno WHERE estado = 3
UNION
SELECT idPaciente FROM Paciente