Sie sind auf Seite 1von 36

EL LENGUAJE ESTNDAR SQL

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

INTRODUCCIN
SQL: Structured Query Language

Caractersticas:  Estructuras de datos simples  Operadores potentes  Periodos de aprendizaje inicial cortos  Mejora de la independencia de datos  Modo de uso dual (interactivo o inmerso)  Optimizacin

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Las 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)

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DDL Proporciona rdenes para definir esquemas de relacin, eliminar relaciones, crear ndices y modificar esquemas de relacin. DCL Incluye 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. DML  Interactivo: 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 datos  Inmerso: lenguaje diseado para utilizar dentro de otros lenguajes. PL Lenguaje para la creacin de procedimientos almacenados.
Prof. Luis S. Ramrez A. Implementacin de Base de Dato

DDL
Sentencia DDL Alter procedure Alter table Analyze Create table ( index) Drop table ( index) Grant Truncate Revoke Objetivo Recompilar un procedimiento almacenado Aadir o redifinir una columna, modificar la asignacin de almacenamiento Recoger estadsticas de rendimiento sobre los objetos de la BD Crear una tabla ( indice) Eliminar una tabla ( indice) Conceder privilegios a un usuario Eliminar todas las filas de una tabla Retirar los permisos de un usuario

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DDL
Creacin de un esquema CREATE SCHEMA <nombre_esquema> AUTHORIZACION <nombre> 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 de un atributo y Di tipo de datos de los valores en el dominio del atributo Ai

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Ejemplos
Departamento # Id_dpto * Nombre o N empleados o Fecha_creac
1 n

Empleados # Id_empleado * Nombre * Ap1 o Ap2 * Direccin * Fecha_nacim * Salario * Id_dpto

CREATE TABLE DEPARTAMENTO ( Id_dpto NUMBER NOT NULL, Nombre VARCHAR(50) NOT NULL, N_empleados NUMBER NULL, fecha_creac DATE NULL, PRIMARY KEY(id_dpto) );

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Ejemplos
CREATE 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) );

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DDL
Modificar:
Aadir nuevos atributos a una relacin ALTER TABLE <nombre_tabla> ADD <atributo>tipo Aadir una nueva FK a una relacin ALTER TABLE <nombre tabla> ADD CONSTRAINT <nombre_FK> REFERENCES <nombre_tabla>(nombre_FK) Aadir una una PK a una relacin ALTER TABLE R ADD CONSTRAINT PRIMARY KEY (nombre) tipo
Prof. Luis S. Ramrez A. Implementacin de Base de Dato

DDL
Eliminacin de una relacin:
DROP TABLE <nombre_tabla> Crear/Borrar ndices sobre las tablas: CREATE INDEX <nombre_incide> ON <nombre_tabla> <nombre_atributos> DROP INDEX <nombre_indice> Es recomendable poner un indice para cada FK

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

MODIFICAR LA ESTRUCTURA DE UNA TABLA


El COMANDO ALTER TABLE sirve para aadir, modificar, eliminar campos y claves de una tabla ALTER TABLE tabla-a-modificar ADD/ALTER/DROP COLUMN campo

ADD aade columna, DROP la elimina ALTER COLUMN modifica su tipo de datos o tamao

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

MODIFICAR LA ESTRUCTURA DE UNA TABLA

Aadir columna idioma: ALTER TABLE libro ADD COLUMN idioma text (15) Aadir columna lugar: ALTER TABLE libro ADD COLUMN lugar text (15) Modificar el tamao de la columna titulo: ALTER TABLE libro ALTER COLUMN titulo text (150) Eliminar la columna lugar: ALTER TABLE libro DROP COLUMN lugar

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DDL
VISTAS
Las vistas son tablas virtuales. CREATE VIEW dpto_diez AS SELECT ci, nombre, direccion FROM empleados WHERE num_dpt=1;

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DML
Permite acceder a la informacin contenida en la base de datos para su consulta y actualizacin, a travs de sus cuatro verbos de manipulacin:  SELECT  INSERT  UPDATE  DELETE

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DML
Sentencia DML
Insert Delete Update Select Commit Rollback

Objetivo
Aadir filas de datos a una tabla Eliminar filas de datos de una tabla Modificar los datos de una tabla Recuperar los datos de una tabla Confirmar como permanentes las modificaciones realizadas Deshacer todas las modificaciones realizadas desde la ltima confirmacin (ltimo commit)

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DML
Insertar datos:
INSERT INTO <nombre_tabla> 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.

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DML
Actualizar datos:
UPDATE <nombre_tabla>SET <atributos> WHERE <condicion>; Ejemplo: UPDATE Departamentos SET Nombre=Anlisis WHERE Id_dpto=1;
Me pone en donde Id_dpto=1, en la casilla nombre, Anlisis.

Borrar datos:
DELETE FROM <nombre_tabla> WHERE <condicion>; Ejemplo: DELETE FROM Departamentos WHERE Fecha_creac < 1/1/2000

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DML
La estructura bsica de una consulta SQL
 Usa una mezcla de estructuras del lgebra relacional y del clculo relacional.  Consta de tres clusulas:  SELECT  FROM  WHERE SELECT <nombre_campos> FROM <nombre_tablas> WHERE <condiciones>
Implementacin de Base de Dato

Prof. Luis S. Ramrez A.

DML
 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.

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

DML
SELECT <nombre_campos> FROM <nombre_tablas> WHERE <condiciones>
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.

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

SELECT A1, A2,, An FROM R1, R2,, Rn WHERE condicin


SELECT DISTINCT A1, A2,, An FROM R SELECT * FROM R WHERE P SELECT * FROM R, S SELECT * FROM R,S WHERE R.Ai=S.Aj SELECT * FROM R UNION SELECT * FROM S

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Ejemplos
SELECT talla, color FROM articulos; SQL no elimina tuplas duplicadas a menos que se indique con la clusula opcional DISTINCT SELECT DISTINCT codigo_p, cantidad FROM suministros; Seleccin: SELECT * FROM articulos WHERE color=ROSA SELECT * FROM articulos WHERE color=ROSA AND talla>38;

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Ejemplos
Producto cartesiano: Basta con incluir varias relaciones en la clusula FROM SELECT * FROM proveedores, suministros; Producto natural: Restriccin producto cartesiano mediante una condicin SELECT * FROM proveedores, suministros WHERE proveedores.codigo_p=suministros.codigo_p SELECT * FROM proveedores P, suministros S WHERE P.codigo_p=S.codigo_p

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Funciones de agregacin:
Permite obtener valores agregados, es decir, un solo valor que resume la informacin de varias filas.

Promedio Suma Mnimo Mximo Cantidad Agrupacin

AVG SUM MIN MAX COUNT GROUP BY

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Ejemplos
Obtener la suma de los importes de las ordenes de compra:
SELECT SUM(importe) FROM orden; Numero de productos que se fabrican SELECT COUNT(DISTINCT cod_prod) FROM productos; Empleados que trabajan en el departamento 10 SELECT COUNT(*) FROM empleados WHERE num_dpto=10;

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Ejemplos

Numero de empleados de cada departamento SELECT num_dept, COUNT(*) FROM empleados GROUP BY num_dpto;

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Clausula HAVING
Clusula HAVING: selecciona alguno de los grupos definidos por GROUP BY, segn una condicin. Lista de los departamentos en que trabaja mas de 50 empleados SELECT num_dpto, COUNT(*) FROM empleados GROUP BY num_dpto HAVING COUNT(*)>50;

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Clausula HAVING
Clusula ORDER BY: utilizada para ordenar los registros seleccionados SELECT nombre, apellidos FROM alumnos ORDER BY fecha_nacimiento DESC

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

OPERADORES LGICOS
AND Evalua dos condiciones y devuelve un valor de verdad solo si ambas son ciertas. Evalua dos condiciones y devuelve un valor de si alguna de las dos es cierta. Devuelve el valor contrario de la expresin.

OR

NOT

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

OPERADORES DE COMPARACIN
< ( o<=) > (o >=) <> o != = BETWEEN LIKE IN Menor que (o igual) Mayor que (o igual) Distinto Igual Entre. Utilizado para especificar un intervalo de valores. Como. Utilizado para la comparacin de un modelo En. Utilizado para especificar registros de una base de datos

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

EJEMPLOS SELECT

Selecciona todos los campos y todos los registros de la tabla personal SELECT * FROM PERSONAL Selecciona los campos cod, nombre y fecha y todos los registros SELECT cod,nombre,fecha FROM PERSONAL Selecciona nombre y DNI de las empleadas de la empresa SELECT nombre,DNI FROM PERSONAL WHERE SEXO=F Selecciona los empleados con el campo salario de la tabla PERSONAL vaco SELECT nombre,DNI FROM PERSONAL WHERE SALARIO IS NULL Selecciona todos los empleados cuyo apellido comience por T SELECT * FROM PERSONAL WHERE NOMBRE LIKE T*

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

EJEMPLOS SELECT

Selecciona los empleados cuyo nombre contenga una e o que sean mujeres SELECT * FROM PERSONAL WHERE NOMBRE LIKE M* OR SEXO=F Selecciona de la tabla salario los sueldos mayor que 200000 y distintos de 450000 que no pertenezcan al mes de Agosto SELECT sueldo FROM SALARIO WHERE SUELDO > 200000 AND SUELDO<>450000 Selecciona de la tabla salario los sueldos entre 100000 y 150000 que no pertenezcan al mes de Agosto SELECT sueldo FROM SALARIO WHERE SUELDO BETWEEN 100000 AND 150000 AND MES NOT LIKE AGOSTO Selecciona los empleados con el campo salario de la tabla PERSONAL no este vaco SELECT nombre,DNI FROM PERSONAL WHERE SALARIO IS NOT NULL
Prof. Luis S. Ramrez A. Implementacin de Base de Dato

EJEMPLOS SELECT

Ordena a los empleados por nombre ascendente SELECT * FROM PERSONAL ORDER BY NOMBRE ASC Selecciona los empleados cuyo nombre contenga la palabra garca y que sean mujeres o cuyo DNI sea 55789642 ordena por numero de DNI descendente SELECT * FROM PERSONAL WHERE ((NOMBRE LIKE *GARCA*' AND SEX='F') OR DNI=55789642) ORDER BY DNI DESC Mostrar en una sola fila y sin duplicados los meses distintos que aparecen en la tabla salarios SELECT DISTINCT mes FROM SALARIO

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

SELECT FUNCIONES Y AGRUPAMIENTOS SELECT campo1 AVG(campo2) FROM tabla WHERE condicin GROUP BY campo ORDER BY campo HAVING condicin
Prof. Luis S. Ramrez A.

Funcin de agrupamiento, para calcular la media (AVG), suma (SUM), contar (COUNT), valor mnimo (MIN), mximo (MAX)... Opcional. Condicin antes de agrupar Agrupar por un campo o campos, cuando se ha puesto una funcin de agrupamiento en el SELECT todos los campos sin funcin deben estar agrupados. Si varios se separan por comas Opcional. Condicin tras agrupar
Implementacin de Base de Dato

EJEMPLOS
Contar el nmero de salarios que se pagaron en octubre del 2004 SELECT AO,MES, Count(MES) AS Cuenta FROM SALARIO WHERE AO=2004 AND MES=octubre GROUP BY AO, MES Que sueldo cobraron los empleados que ganaron ms de 800000 en el 2004 SELECT Sum(SUELDO) AS Suma, AO, CA_PERSONAL FROM SALARIO WHERE AO=2004 GROUP BY AO, CA_PERSONAL HAVING SUM(SUELDO)>=800000

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Thanks and Good luck for your exams

Prof. Luis S. Ramrez A.

Implementacin de Base de Dato

Das könnte Ihnen auch gefallen