Presentación - Consultas en SQL (Parte I)
Presentación - Consultas en SQL (Parte I)
Clase sincrónica
● Unidad 1: Introducción al análisis y
estructura de datos.
En este curso ocuparemos el motor de base de Para esta clase utilizaremos sqliteonline por lo
datos postgreSQL. En la primera clase que necesitaremos un navegador. Se recomienda
ocuparemos una versión online, luego tendremos Firefox, pero se pueden utilizar otros.
que instalarlo.
Introducción a bases de datos
Conceptos básicos
; Una consulta termina con un punto y coma, de esta forma podemos separar
varias instrucciones.
¿Cuál es el comodín para
seleccionar todos los
campos de la tabla
demo?
/* Sintaxis y resultados
de una consulta */
Insensibilidad a las mayúsculas
Sintaxis SQL
c1 c2 c3 c4 c1 c2 c3 c4
SELECT * FROM tabla; 98 23 ‘a’ True 98 23 ‘a’ True
c1 c2 c3 c4 c1 c3
98 23 ‘a’ True
45 45 ‘b’ False
A partir de la tabla
anterior, ¿cuál es la
consulta para obtener
los valores de c2 y c4?
/* Consultas y condiciones */
Consultando datos
Con condiciones
Tabla a consultar
Resultado
c1 c2 c3 c4
c1 c2 c3 c4
98 23 ‘a’ True
SELECT *
FROM tabla 98 23 ‘a’ True
45 45 ‘b’ False
where c4 =
True; 34 76 ‘c’ True
34 76 ‘c’ True
82 56 ‘e’ True
87 34 ‘d’ None
82 56 ‘e’ True
90 10 ‘f’ False
Ejercicio
“Consulta con condiciones”
Ejercicio guiado
Consulta con condiciones
A partir de la tabla demo de sqliteonline, utiliza las consultas condicionadas para obtener
aquellos datos cuyo id sean mayores que 4.
Tabla a consultar
Resultado
c1 c2 c3 c4
c1 c2 c3 c4
98 23 ‘a’ True SELECT * 98 23 ‘a’ True
FROM tabla
45 45 ‘b’ False LIMIT 2; 45 45 ‘b’ False
34 76 ‘c’ True
87 34 ‘d’ None
82 56 ‘e’ True
90 10 ‘f’ False
Consultando datos
Agreguemos orden
SELECT * FROM
tabla
Tabla a consultar ORDER BY c1 DESC; Resultado
c1 c2 c3 c4 c1 c2 c3 c4
1. Selecciona todos los registros ordenados alfabéticamente por nombre (al ordenar por
una columna de tipo string se entenderá que el orden es alfabético).
('Gonzalo', Los valores que estamos insertando, están en el mismo orden que las
'Pista 1'); columnas, es decir, Gonzalo corresponde a name y 'pista 1' a Hint.
Insertar datos
Hay dos forma de insertar datos
Suponiendo que la
INSERT INTO tabla tabla solo tiene 2
VALUES (1, 2);
columnas.
● Los strings se ingresan con comillas simples en postgreSQL, utilizar comillas dobles nos mostrará
error.
Suponiendo que la
INSERT INTO tabla(
VALUES ('Valor 1', Valor 2') tabla solo tiene 2
); columnas.
En la tabla demo hay una columna de tipo Serial, estas son muy frecuentes y
tienen valor autoincremental, o sea que se incrementa solo.
Ejercicio guiado
“Insertando datos”
Insertando datos
Contexto
Vacío, 0 o false
dependiendo
Nulo
del tipo de
columna
Insertar datos
Nulo no es lo mismo que vacío
Por ejemplo:
Por ejemplo:
INSERT into demo(name, hint) values ('nombre 4',
● En la tabla demo de sqliteonline, un valor null
'');
se genera cuando omitimos los datos de uno
de sus campos, es decir, no es rellenado con Nótese que el valor a asignar en el campo hint las
ningún valor. comillas se encuentran vacías.
Ejercicio guiado
“Insertando y ordenando”
Insertando y ordenando
Contexto
Recordemos que ORDER BY, por defecto, ordena los registros de manera ascendente, es
decir, de menor a mayor. En este sentido, si luego de ORDER BY escribimos DESC,
entonces SQL interpretará que se quiere ordenar, pero de manera decreciente, es decir, de
mayor a menor.
select * from demo order by id desc;
1. Seleccionamos el registro que tiene tu nombre y cambia el valor de hint por "Aprendí
a cambiar valores de una tabla" (recordemos el uso del where).
2. Seleccionamos todos los ids menores que 5 y cambiamos el valor en la columna hint
por "Cambio masivo".
Eliminación de registros
Utilizando la tabla demo de sqliteonline, vamos a borrar los primeros dos registros que
contengan los id 1 y 2.
Recordemos que al igual que el UPDATE debemos utilizar el WHERE para que dicha
eliminación cumpla con una condición, dado que si no especificamos podemos eliminar
datos de manera incorrecta.
/*Bases de datos*/
Comprendiendo las bases de datos
Estructura de una base de datos
Motor de Base de Datos Bases de Datos Tablas
Trabajando con bases de datos
Tablas
INT/SMALLINT/BIGINT
Tipos de caracteres
(caracteres, texto) CHAR/VARCHAR
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Elmira', 10, 1, 6);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Izak', 1, 6, 5);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Claudette', 5, 1, 3);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Noreen', 1, 6, 4);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Natalina', 8, 5, 3);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Jacky', 5, 2, 6);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Jilly', 6, 1, 2);
insert into alumnos (Nombre, Nota1, Nota2, Nota3) values ('Robbie', 4, 8, 5);
● Probemos dentro de
sqliteonline el siguiente código: