Descargar la presentación
La descarga está en progreso. Por favor, espere
1
SQL: Structured Query Language
Paul Leger
2
SQL Repaso de la clase anterior: CREAR TABLA: create table
INSERTAR: Insert SELECCIONAR: Select * from table RENOMBRAR: As PRODUCTO CARTESIANO: , NATURAL JOIN: Natural Join
3
Atención Algebra relacional tiene un comportamiento funcional
Es decir, cada ejecución generaba un resultado nuevo y no modificaba las relaciones existentes Las instrucciones de SQL como insert, delete, update no son funcionales, por lo tanto, modifican las tablas
4
Crear tablas de manera un atributo auto incremental
CREATE TABLE Dpto( ID_dpto serial, calle VARCHAR(30), num int, PRIMARY KEY(id_dpto)) En SQLITE es «serial», pero en otros motores es «autoincrement» o una variante similar
5
¿Qué problemas puede generar está instrucción?
Modificar UPDATE TABLA SET atributo1=valor1, atributo2=valor2,... WHERE algúnAtributo = nuevoValor; Ejemplo: Update dueno set nombre = «Paul» where rut_d = ¿Qué problemas puede generar está instrucción?
6
Borrar Ejemplo: ¿Qué problemas puede generar está instrucción?
DELETE FROM table_name WHERE some_column=some_value Ejemplo: Delete from Dueno where rut_d = ¿Qué problemas puede generar está instrucción?
7
Restricciones de integridad
Las operaciones de que vienen de algebra relacional no generan problemas de integridad de una base de datos ¿Por qué?
8
SELECT Rut_d FROM Dueno UNION SELECT Rut_a FROM Arrienda
No muestra los elementos repetidos UNION ALL muestra los elementos repetidos En algunos motores, es necesario renombrar los atributos con el mismo nombre (similar a Algebra Relacional) y ser del mismo tipo
9
Intersección: SELECT Rut_d as rut FROM Dueno Intersect SELECT Rut_a as rut FROM Arrienda En algunos motores, es necesario renombrar los atributos con el mismo nombre (similar a Algebra Relacional) y ser del mismo tipo
10
Diferencia: SELECT RUT_D as rut FROM Dueno EXCEPT SELECT RUT_A as rut FROM Arrendatario En algunos motores, es necesario renombrar los atributos con el mismo nombre (similar a Algebra Relacional) y ser del mismo tipo
11
¿Cuál es la diferencia entre ambos?
Agregación Se pueden usar funciones count, max, min y otras funciones Select count(*) from dueno Select count(distinct nombre) from dueno Select count(*) as cuenta from dueno ¿Cuál es la diferencia entre ambos?
12
Agregación por Agrupación
Select rut, count(*) from telefono group by rut Select rut_a, sum(deuda) from arrienda group by rut_a En algunos motores, uno puede escribir cualquier atributo al lado de la operación. Sin embargo, los resultados son inesperados!
13
Condiciones de grupo Condición de tupla con condición de grupo
Select rut_a, sum(deuda) from arrienda group by rut_a having sum(deuda) > 0 Condición de tupla con condición de grupo Select rut_a, sum(deuda) from arrienda where deuda < group by rut_a having sum(deuda) > 0 ¿Qué es esto último?
14
Sub-consultas Es posible escribir una consulta dentro de otra consulta. Nota recuerde ser eficiente y evita sub-consultas Select * from (select rut_a as rut from arrienda where deuda > 0) natural join telefono
15
Exist: SELECT * FROM Telefono WHERE EXISTS (select * from dueno where Telefono.rut = dueno.rut_d) Simple ¿no?
16
TAREA … para ahora NOTA: APRENDERSE DE MEMORIA ESTA OPERACIÓN
División: TAREA … para ahora NOTA: APRENDERSE DE MEMORIA ESTA OPERACIÓN
17
Hacking a Web Page con SQL Injection
VER VIDEO
18
ALTER TABLE TAREA: Investigue las operaciones que se pueden hacer con alter table. Nota: hay más de un alter table, por lo menos 4
19
El uso de «IN» en «WHERE»
TAREA: Investigue el uso de «IN» en SQL ¿Dónde podría ser útil? Delete from Telefono where rut in (select rut from Dueno)
20
¡Quedan más …!
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.