-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy path2_CláusulasBásicas.sql
159 lines (109 loc) · 3.25 KB
/
2_CláusulasBásicas.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
-- Clausulas Básicas en SQL
-- TOP
SELECT * FROM Paciente;
SELECT nombre, apellido
FROM Paciente;
SELECT top 1 *
From Paciente
SELECT TOP 2 *
FROM Paciente;
SELECT TOP 2 nombre, apellido
FROM Paciente;
SELECT top 3 * FROM Paciente
SELECT top 3 nombre, apellido, telefono FROM Paciente
--ORDER BY
SELECT * FROM Paciente
ORDER BY fNacimiento;
SELECT * FROM Paciente
ORDER BY fNacimiento DESC;
SELECT * FROM Pago
ORDER BY fecha;
SELECT * FROM Paciente
ORDER BY fNacimiento
SELECT * FROM Paciente
ORDER BY fNacimiento desc
-- ORDER BY Y TOP
SELECT top 1 * FROM Paciente
ORDER BY fNacimiento DESC
--Error de Tipeo se corrige
UPDATE Pago SET observación = 'Pago Pendiente' WHERE idPago = 2;
-- Combinando TOP y ORDER BY (obtener el paciente con la fecha de nacimiento más reciente y otra que devuelva al paciente más joven)
SELECT TOP 1 *
FROM Paciente
ORDER BY fNacimiento DESC;
SELECT TOP 1 *
FROM Paciente
ORDER By fNacimiento;
-- Cláusula DISTINCT (agrupamos por paises)
SELECT DISTINCT idPais
FROM Paciente;
SELECT DISTINCT fNacimiento
FROM Paciente;
SELECT distinct(idPais)
FROM Paciente
SELECT distinct(fNacimiento)
FROM Paciente
-- Cláusula GROUP BY (permite funciones de agregación)
SELECT idPais
FROM Paciente
GROUP BY idPais;
-- Cláusula WHERE
SELECT * FROM Paciente
WHERE idPais = 'ARG';
SELECT * FROM Paciente
WHERE apellido = 'Perez';
SELECT * FROM Paciente
WHERE idPaciente = 10;
SELECT * FROM Paciente
WHERE idPais = 'MEX'
SELECT * FROM Paciente
WHERE apellido = 'Ramirez'
SELECT * FROM Paciente
WHERE fNacimiento = '20020312'
-- MAX Y MIN
SELECT * FROM pago;
SELECT MAX(fecha) FROM Pago;
SELECT MIN(monto) FROM Pago;
-- SUM (solo para campos de tipo numerico)
SELECT * FROM Pago;
SELECT SUM (monto) as Total_Monto
FROM Pago;
--Suma 20 a cada monto
SELECT SUM (monto + 20) as Total_Monto
FROM Pago;
--Suma 20 al monto final
SELECT SUM (monto) + 20 as Total_Monto
FROM Pago;
-- AVG
SELECT AVG(monto) as Promedio
FROM Pago;
-- COUNT (cuenta registros segun condición)
SELECT COUNT (idPaciente) as Pacientes FROM Paciente;
SELECT COUNT (apellido) AS PacientesParedes
FROM Paciente
WHERE apellido = 'Paredes';
-- HAVING (trabaja conjuntamente con la función COUNT y GROUP BY)-Se diferencia del WHERE en que este se aplica sobre un registro en particular, y el having sobre un conjunto de registros.
SELECT estado FROM Turno
GROUP BY estado
HAVING estado = 6;
SELECT estado FROM Turno
GROUP BY estado
HAVING COUNT(estado) = 2;
SELECT estado FROM Turno
GROUP BY estado
HAVING COUNT(estado) > 1;
-- OPERADORES LOGICOS
SELECT * FROM Paciente;
SELECT * FROM Paciente WHERE nombre = 'Leandro' AND apellido = 'Paredes';
SELECT * FROM Paciente WHERE nombre = 'Leandro' OR idPaciente = 12;
SELECT * FROM Paciente WHERE nombre IN ('Jorge', 'Maria', 'Lucerna')
SELECT * FROM TURNO WHERE estado IN (1,2,3);
-- LIKE (filtra por caracteres)
SELECT * FROM Paciente WHERE nombre LIKE 'jor%';
SELECT * FROM Paciente WHERE nombre LIKE '%or%';
-- NOT (niega la condicion)
SELECT * FROM Paciente WHERE nombre NOT LIKE 'jor%';
SELECT * FROM Paciente WHERE nombre NOT IN ('Jorge', 'Maria', 'Lucerna')
-- BETWEEN (Filtra por determinado rango)
SELECT * FROM Turno WHERE fechaTurno BETWEEN '20190218' AND '20220218';
SELECT * FROM Turno WHERE idTurno BETWEEN 1000 and 1012;