3 DML DDL

31
Sublenguaje de Defnición Datos Sublenguaje de Manipulación de Datos BD

description

3 DML DDL

Transcript of 3 DML DDL

Venta de una idea o un producto

Sublenguaje de Definicin de DatosSublenguaje de Manipulacin de Datos

BD

1Almacenes y Minera de Datos2INTRODUCCINSQL: Structured Query Language

Caractersticas:Estructuras de datos simplesOperadores potentesPeriodos de aprendizaje inicial cortosMejora de la independencia de datosModo de uso dual (interactivo o inmerso)OptimizacinAlmacenes y Minera de Datos3Las sentencias SQL pueden dividirse en cuatro tipos:Sublenguaje de definicin de datos (DDL)Sublenguaje de control de datos (DCL)Sublenguaje de manipulacin de datos (DML)Lenguaje procedural (PL)Almacenes y Minera de Datos4DDLProporciona rdenes para definir esquemas de relacin, eliminar relaciones, crear ndices y modificar esquemas de relacin.DCLIncluye rdenes que permiten especificar controles de seguridad a los datos almacenados como definicin de vistas, especificacin de privilegios de acceso, comprobacin de condiciones de integridad y control de concurrencia.Almacenes y Minera de Datos5DMLInteractivo: lenguaje de consulta basado en el lgebra relacional y el calculo relacional de tuplas. Tambin incluye ordenes para insertar, suprimir y modificar tuplas de la base de datosInmerso: lenguaje diseado para utilizar dentro de otros lenguajes.PL Lenguaje para la creacin de procedimientos almacenados.Almacenes y Minera de Datos6Sentencia DDLObjetivoAlter procedureRecompilar un procedimiento almacenadoAlter tableAadir o redifinir una columna, modificar la asignacin de almacenamientoAnalyzeRecoger estadsticas de rendimiento sobre los objetos de la BDCreate table ( index)Crear una tabla ( indice)Drop table ( index)Eliminar una tabla ( indice)GrantConceder privilegios a un usuarioTruncateEliminar todas las filas de una tablaRevokeRetirar los permisos de un usuarioAlmacenes y Minera de Datos7Sentencia DMLObjetivoInsertAadir filas de datos a una tablaDeleteEliminar filas de datos de una tablaUpdateModificar los datos de una tablaSelectRecuperar los datos de una tablaCommitConfirmar como permanentes las modificaciones realizadasRollbackDeshacer todas las modificaciones realizadas desde la ltima confirmacin (ltimo commit)Almacenes y Minera de Datos8DDLCreacin de un esquemaCREATE SCHEMA AUTHORIZACION

Definicin de una relacin (tabla):CREATE TABLE R (A1 D1,A2 D2,,An Dn)Donde R es el nombre de la relacin, Ai el nombre deun atributo y Di tipo de datos de los valores en el dominio del atributo Ai

Almacenes y Minera de Datos9EjemplosCREATE TABLE DEPARTAMENTO ( Id_dpto NUMBER NOT NULL, Nombre VARCHAR(50) NOT NULL, N_empleados NUMBER NULL, fecha_creac DATE NULL, PRIMARY KEY(id_dpto));Departamento# Id_dpto* Nombreo N empleadoso Fecha_creacEmpleados# Id_empleado* Nombre* Ap1o Ap2* Direccin* Fecha_nacim* Salario* Id_dpto1nAlmacenes y Minera de Datos10EjemplosCREATE TABLE EMPLEADOS ( Id_empleado NUMBER NOT NULL, Nombre VARCHAR(15) NOT NULL, Ap1 VARCHAR(25) NOT NULL, Ap2 VARCHAR(25) NULL, Direccion VARCHAR(50) NOT NULL, Fecha_nac DATE NOT NULL, Salario NUMBER NOT NULL, Id_dpto NUMBER NOT NULL, PRIMARY KEY(id_empleado) FOREIGN KEY (Id_dpto) REFERENCES DEPARTAMENTO (Id_dpto));Almacenes y Minera de Datos11DDL Modificar : Aadir nuevos atributos a una relacinALTER TABLE ADD tipoAadir una nueva FK a una relacinALTER TABLE ADD CONSTRAINT REFERENCES (nombre_FK)Aadir una una PK a una relacinALTER TABLE R ADD CONSTRAINT PRIMARY KEY (nombre) tipo Almacenes y Minera de Datos12DDLEliminacin de una relacin: DROP TABLE Crear/Borrar ndices sobre las tablas:CREATE INDEX ON DROP INDEX Es recomendable poner un indice para cada FK

Almacenes y Minera de Datos13VISTASLas vistas son tablas virtuales.

Al usuario se le permite el acceso a la vista y no a las tablasCREATE VIEW dpto_diez AS SELECT ci, nombre, direccion FROM empleados WHERE num_dpt=1;

Almacenes y Minera de Datos14DDLPasos a seguir:1 Crear SCHEMA2 Crear Tabla3 Crear PK4 Crear FK5 Crear IndicesAlmacenes y Minera de Datos15DMLPermite acceder a la informacin contenida en la base de datos para su consulta y actualizacin, a travs de sus cuatro verbos de manipulacin:SELECTINSERTUPDATEDELETE

Almacenes y Minera de Datos16DMLInsertar datos:INSERT INTO VALUES( , , );

Ejemplo:INSERT INTO Departamento VALUES (50, Anlisis, 30, NULL)INSERT INTO Departamento (Id_dpto,Nombre,n_empleados) VALUES (50, Anlisis, 30) el resto de los valores de los campos que quedan los inserta con valores nulos.

Almacenes y Minera de Datos17DMLBorrar datos:DELETE FROM WHERE ;

Ejemplo:DELETE FROM Departamentos WHERE Fecha_creac < 1/1/2000

Almacenes y Minera de Datos18DMLActualizar datos:UPDATE SET WHERE ;

Ejemplo:UPDATE Departamentos SET Nombre=Anlisis WHERE Id_dpto=1; Me pone en donde Id_dpto=1, en la casilla nombre, Anlisis.Almacenes y Minera de Datos19La estructura bsica de una consulta SQLUsa una mezcla de estructuras del lgebra relacional y del clculo relacional.Consta de tres clusulas:SELECTFROMWHEREAlmacenes y Minera de Datos20SELECT FROM WHERE

SELECT: se utiliza para listar los atributos que se desean en el resultado de una consulta. La lista de atributos puede sustituirse por * para seleccionar todos los atributos de todas las relaciones que aparezcan en la clusula from.FROM: lista las relaciones que se van a examinar en la evaluacin de la expresin.WHERE: consta de un predicado que incluye atributos de las relaciones que aparecen en la clusula from.Almacenes y Minera de Datos21SELECT FROM WHERE

El resultado de la ejecucin de una sentencia SELECT es siempre otra tabla. Las columnas de la tabla resultante sern las que figuren enumeradas tras la clusula SELECT, y en el mismo orden en el que figuran tras ella.

Almacenes y Minera de Datos22Almacenes y Minera de Datos23SELECT A1, A2,, An FROM R1, R2,, Rn WHERE condicion

SELECT DISTINCT A1, A2,, An FROM RSELECT * FROM R WHERE PSELECT * FROM R, SSELECT * FROM R,S WHERE R.Ai=S.AjSELECT * FROM R UNION SELECT * FROM SAlmacenes y Minera de Datos24EjemplosSELECT talla, color FROM articulos;SQL no elimina tuplas duplicadas a menos que se indique con la clusula opcional DISTINCTSELECT DISTINCT codigo_p, cantidad FROM suministros;Seleccin:SELECT * FROM articulos WHERE color=ROSASELECT * FROM articulos WHERE color=ROSA AND talla>38;Almacenes y Minera de Datos25Producto cartesiano: basta con incluir varias relaciones en la clusula FROMSELECT * FROM proveedores, suministros;Producto natural: restriccin producto cartesiano mediante una condicionSELECT * FROM proveedores, suministros WHERE proveedores.codigo_p=suministros.codigo_pSELECT * FROM proveedores P, suministros S WHERE P.codigo_p=S.codigo_p

Almacenes y Minera de Datos26SQL toma algunos aspectos del clculo relacionalPermite definir variables de tipo tupla. Se definen en la clusula FROM y se asocian a una tabla en particular.Empleados que trabajan en el mismo departamento que Perez:SELECT otro.nombre FROM empleado perez, empleado otro WHERE perez.nombre=Perez AND perez.num_dpto=otro.num_depto;Almacenes y Minera de Datos27Funciones de agregacin:Permite obtener valores agregados, es decir, un solo valor que resume la informacin de varias filas. PromedioAVGSumaSUMMnimoMINMximoMAXCantidadCOUNTAgrupacinGROUP BYAlmacenes y Minera de Datos28Obtener la suma de los importes de las ordenes de compra:SELECT SUM(importe) FROM orden;Numero de productos que se fabricanSELECT COUNT(DISTINCT cod_prod) FROM productos;Empleados que trabajan en el departamento 10SELECT COUNT(*) FROM empleados WHERE num_dpto=10;Numero de empleados de cada departamentoSELECT num_dept, COUNT(*) FROM empleados GROUP BY num_dpto;

Almacenes y Minera de Datos29Clusula HAVING: selecciona alguno de los grupos definidos por GROUP BY, segn una condicin.Lista de los departamentos en que trabaja mas de 50 empleadosSELECT num_dpto, COUNT(*) FROM empleados GROUP BY num_dpto HAVING COUNT(*)>50;Clusula ORDER BY: utilizada para ordenar los registros seleccionadosSELECT nombre, apellidos FROM alumnos ORDER BY fecha_nacimiento DESCAlmacenes y Minera de Datos30ANDEvalua dos condiciones y devuelve un valor de verdad solo si ambas son ciertas.OREvalua dos condiciones y devuelve un valor de si alguna de las dos es cierta.NOTDevuelve el valor contrario de la expresin.OPERADORES LGICOSAlmacenes y Minera de Datos31< ( o (o >=)Mayor que (o igual) o !=Distinto=IgualBETWEENEntre. Utilizado para especificar un intervalo de valores.LIKEComo. Utilizado para la comparacin de un modeloINEn. Utilizado para especificar registros de una base de datosOPERADORES DE COMPARACIN