La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

SQL: Structured Query Language

Presentaciones similares


Presentación del tema: "SQL: Structured Query Language"— Transcripción de la presentación:

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 …!


Descargar ppt "SQL: Structured Query Language"

Presentaciones similares


Anuncios Google