1 / 34

SQL

SQL. Structured Query Language. SQL, SQL *Plus, and PL/SQL. Lenguaje en el que un usuario solicita información de la BD SQL A command language for communications with the Oracle8 Server SQL*Plus An Oracle tool that recognizes and executes SQL and PL/SQL statements PL/SQL

carney
Download Presentation

SQL

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SQL Structured Query Language FIEE Postgrado

  2. SQL, SQL *Plus, and PL/SQL Lenguaje en el que un usuario solicita información de la BD • SQL • A command language for communications with the Oracle8 Server • SQL*Plus • An Oracle tool that recognizes and executes SQL and PL/SQL statements • PL/SQL • An Oracle procedural language that extends SQL by adding application logic FIEE Postgrado

  3. SQL and SQL *Plus Interaction FIEE Postgrado

  4. SQL Commands. Componentes. • Data retrieval • SELECT • Data manipulation language (DML). Lenguaje de manipulación de datos (LMD). • INSERT, UPDATE, DELETE • Data definition language (DDL). Lenguaje de definición de datos (LDD) • CREATE, ALTER, DROP, RENAME. • Transaction control. Control de transacciones. • COMMIT, ROLLBACK, SAVEPOINT. • Data control language (DCL). Autorización. Integridad. • GRANT, REVOKE El rollback es el espacio de anulación. Todas las bases de datos Oracle necesitan un lugar para almacenar la información para deshacer. Este espacio de tablas, que contiene los segmentos de anulación, se denomina rollback o rbs. Este es util cuando se recupera transacciones incompletas o interrumpidas. FIEE Postgrado

  5. SQL *Plus Commands SQL *Plus main command categories: • Environment • Format • File manipulation • Execution • Edit • Interaction • Miscellaneous FIEE Postgrado

  6. PL/SQL Block Structure CREATE OR REPLACE del_inv (p_produc_id NUMBER) IS v_produc_id s_produc.id%TYPE; Header BEGIN SELECT id Declaration INTO v_produc_id FROM s_produc Executable WHERE id = p_produc_id; DELETE FROM s_inventory WHERE produc_id = v_product_id; COMMIT; EXCEPTION WHEN OTHERS THEN Exception ROLLBACK; Handling INSERT INTO exception_table (message) VALUES ('Some error occurred in the database.'); COMMIT; END; FIEE Postgrado

  7. SQL-Structured Query Language • Original de IBM • Versiones SQL-89, SQL-92 • Tiene sentencias que permiten definir, consultar y actualizar datos • Es un lenguaje de definición y manipulación de datos • usa los términos de tabla, fila, columna en vez de relación, tupla y atributo FIEE Postgrado

  8. Estructura Básica SQL SELECT <lista de atributos> FROM <lista de tablas> WHERE <condición> p<lista de atributos>(s(<lista de tablas>)) FIEE Postgrado

  9. Estructura básica 2 select A1,A2,...,An from r1,r2,...,rm where P pA1,A2,...,An(sP(r1 x r2 x ... X rm)) Ai atributos ri relaciones P predicado FIEE Postgrado

  10. Consultas en SQL SELECT <lista de atributos> FROM <lista de tablas> WHERE <condición> GROUP BY <atributos de grupo> HAVING <condición de grupo> ORDER BY <lista de atributos> FIEE Postgrado

  11. Funciones y Operadores en SQL COUNT contador SUM suma MIN mínimo MAX máximo AVG promedio +, -, *, /, <, >, >=, <=, <> FIEE Postgrado

  12. Sentencias de Actualización SQL INSERT agrega una tupla a una relación DELETE remueve tuplas de una relación UPDATE modifica valores de los atributos de uno o más filas. FIEE Postgrado

  13. Removiendo ambiguedades • Atributos con el mismo nombre están en diferentes relaciones • Calificar el atributo con el nombre de la relación • alumno.nombre • facultad.nombre • Referencia a la misma relación 2 veces • declarar aliases • empleado AS E(nom, apell, le, dir) FIEE Postgrado

  14. Diversos Operadores 1 • SELECT dni FROM empleado • SELECT * FROM empleado WHERE sueldo > 5000 • SELECT DISTINCT sueldo FROM empleado FIEE Postgrado

  15. Diversos Operadores 2 IN, ANY, SOME, >, >=, <, <= y <> CONTAINS compara 2 conjuntos de valores y retorna TRUE si uno de los conjuntos contiene todos los valores en el otro FIEE Postgrado

  16. Funciones Agregadas COUNT, SUM, MAX, MIN, AVG SELECT SUM(sueldo), MAX(sueldo), MIN(sueldo), AVG(sueldo) FROM empleado SELECT COUNT(*) FROM empleado FIEE Postgrado

  17. Vistas en SQL - Views Es una tabla virtual CREATE VIEW AS SELECT FROM WHERE FIEE Postgrado

  18. Tipos de datos • char(n) Almacena datos de tipo carácter de longitud fija. • varchar2(n) Almacena datos de tipo caracter de longitud variable. • number(l,d) Almacena datos numéricos, siendo l la longitud y d el número de digitos decimales. • blob Es un objeto binario de gran tamaño, siendo el tamaño máximo 4GB. • raw (data) datos binarios puros con una longitud máxima de 2,000 bytes. • Date Almacena fechas desde el 1 de enero del 4712 a.de C. hasta el 31 de diciembre del 9999d.deC

  19. Definición de Esquemas en SQL CREATE TABLE alumno (codigoA char(10), not null, nombreA char(20), direccionA char(30), telefonoA char(6), PRIMARY KEY (codigoA) FIEE Postgrado

  20. Empresa bancaria SUCURSAL (nombreS, ciudadS, activo) CLIENTE (nombreC, direccionC, ciudadC) PRESTAMO (nombreS, numeroP, importe) PRESTATARIO (nombreC, numeroP) CUENTA (nombreS, numeroC, saldo) IMPOSITOR (nombreC, numeroC) FIEE Postgrado

  21. Esquemas de la Entidad Bancaria CREATE TABLE cliente (nombreC char(20), not null, direccionC char(30), ciudadC char(30), PRIMARY KEY (nombreC)) CREATE TABLE cuenta (numeroC char(10), not null, nombreS char(15), saldo integer, PRIMARY KEY (numeroC), CHECK (saldo>=0)) FIEE Postgrado

  22. Ejemplo 1 Obtener los nombres de todas las sucursales SELECT nombreS FROM prestamo SELECT DISTINCT nombreS FROM prestamo SELECT nombreS, numeroP, importe*100 FIEE Postgrado

  23. Ejemplo 2 Obtener todos los números de préstamo hechos en la sucursal de Lince cuyo importe sea mayor a 2000 SELECT numeroP FROM prestamo WHERE nombreS=“Lince” AND importe>2000 WHERE importe BETWEEN 6000 AND 8000 FIEE Postgrado

  24. Ejemplo 3 Obtener los nombres y números de préstamo de todos los clientes que tienen un préstamo en el banco SELECT DISTINCT nombreC, prestatario.numeroP FROM prestatario, prestamo WHERE prestatario.numeroP=prestamo.numeroP FIEE Postgrado

  25. Ejemplo 4 Obtener los nombres y números de préstamo de todos los clientes que tienen un préstamo en la Sucursal de Lince SELECT DISTINCT nombreC, prestatario.numeroP FROM prestatario, prestamo WHERE prestatario.numeroP=prestamo.numeroP AND nombreS=“Lince” FIEE Postgrado

  26. Ejemplo 5 SELECT DISTINCT nombreC, prestatario.numeroP AS idPrestamo FROM prestatario, prestamo WHERE prestatario.numeroP=prestamo.numeroP AND nombreS=“Lince” FIEE Postgrado

  27. Ejemplo 6 Obtener los nombres y números de préstamo de todos los clientes que tienen un préstamo en el banco SELECT DISTINCT nombreC, T.numeroP FROM prestatario AS T, prestamo AS S WHERE T.numeroP=S.numeroP FIEE Postgrado

  28. Ejemplo 7 Obtener los nombres de todas las sucursales que poseen un activo mayor que la sucursal en Lince SELECT DISTINCT T.nombreS FROM sucursal AS T, sucursal as S WHERE T.activo>S.activo AND S.ciudadS=Lince FIEE Postgrado

  29. Ejemplo 8 Obtener los nombres de todos los clientes cuya dirección contenga las letras “Avenida” SELECT nombreC FROM cliente WHERE direccionC LIKE “%Avenida%” FIEE Postgrado

  30. Ejemplo 9 Obtener el saldo promedio de las cuentas de cada sucursal SELECT nombreS, AVG(saldo) FROM cuenta GROUP BY nombreS HAVING AVG(saldo)>5000 FIEE Postgrado

  31. Ejemplo 10 Encontrar todos los clientes que poseen tanto un préstamo como una cuenta en el banco SELECT DISTINCT nombreC FROM prestatario WHERE nombreC IN (SELECT nombreC FROM impositor) FIEE Postgrado

  32. Ejemplo 11 Encontrar todos los clientes que tienen un préstamo en el banco y cuyos nombres no son ni Carlos ni Susana SELECT DISTINCT nombreC FROM prestatario WHERE nombreC NOT IN (“Carlos”, “Susana”) FIEE Postgrado

  33. Ejemplo 12 Encontrar la sucursal que tiene el mayor saldo promedio SELECT nombreS FROM cuenta GROUP BY nombreS HAVING AVG(saldo)>=ALL(SELECT AVG(saldo) FROM cuenta GROUP BY nombreS FIEE Postgrado

  34. Ejemplo 13 CREATE VIEW prestamoS AS SELECT nombreS, numeroP FROM prestamo FIEE Postgrado

More Related