Está en la página 1de 47

UNIVERSIDAD SAN PEDRO

ESCUELA DE ING. INDUSTRIAL

Base de Datos
Resultados
Resultados
Internet

Requerimientos
Requerimientos

Docente:
Ing. Joel Jara LLajaruna

BASE
DATOS

Base de Datos

Tema 6:

El Lenguaje Estndar SQL

Temario:

Introduccin
Sublenguaje de Definicin de Datos
Sublenguaje de Manipulacin de Datos

Introduccin I
Caractersticas ms importantes del lenguaje:
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

Introduccin II
Las sentencias SQL pueden dividirse en tres tipos:
Sublenguaje de definicin de datos (DDL):
proporciona rdenes para definir esquemas de
relacin, eliminar relaciones, crear ndices y
modificar esquemas de relacin
Sublenguaje de manipulacin de datos (DML):
Sublenguaje de control de datos (DCL): incluye
rdenes que permiten especificar controles de
seguridad a los datos almacenados como
especificacin de privilegios de acceso y control
de concurrencia.
Lenguaje procedural (PL) para la creacin de
procedimientos almacenados

Introduccin III

Sublenguaje de Definicin de
Datos
Definicin de una relacin:
CREATE TABLE R(A1 D1, A2 D2, ..., An Dn)
donde R: nombre de la relacin
Ai: nombre de un atributo del esquema de relacin
Di: tipo de datos de los valores en el dominio del atributo
Ai
La especificacin de un esquema de relacin tambin puede incluir:
el conjunto de ndices que se va a mantener para cada relacin
la informacin de seguridad y autorizacin para cada relacin
ciertos lmites de integridad
la estructura fsica de almacenamiento de cada relacin
Eliminacin de una relacin: DROP TABLE R
Adicin de nuevos atributos a una relacin:ALTER TABLE R ADD A D

Creacin de tablas
Tipos de Datos
Carcter: char(n), varchar(n)
Numrico: integer, float, decimal(n,m)
Abstracto: date, money
Condiciones de integridad para columnas
(restriccion_columna) :
UNIQUE
PRIMARY KEY
REFERENCES tabla [( columna )] [ON DELETE opc] [ON
UPDATE opc]
CHECK ( expresin_booleana )
Condiciones de integridad para tablas
(restriccion_tabla) :
UNIQUE ( columna { , columna } )
PRIMARY KEY ( columna { , columna } )
FOREIGN KEY ( columna { , columna } )
REFERENCES tabla [( columna { , columna } )]
[ON DELETE opcion] [ON UPDATE opcion]
CHECK ( expresin_booleana )

Sublenguaje de Definicin de
Datos
CREATE TABLE Banco (
banco_id
int NOT NULL,
razonSocial
varchar(20) NOT NULL
)
go
ALTER TABLE Banco
ADD PRIMARY KEY (banco_id)
go
CREATE TABLE Ciudad (
ciudad_id
int NOT NULL,
nombre
varchar(20) NOT NULL
)
go
ALTER TABLE Ciudad
ADD PRIMARY KEY (ciudad_id)
go

Sublenguaje de Manipulacin de
Datos
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 y DELETE
La estructura bsica de una consulta SQL
Usa una mezcla de estructuras del lgebra
relacional y del clculo relacional
Consta de tres clusulas:
SELECT: corresponde a la operacin de
proyeccin del lgebra relacional. Se utiliza para
listar los atributos que se desean en el resultado
de una consulta

Sublenguaje de Manipulacin de
Datos
SELECT: corresponde a la operacin de proyeccin del
lgebra relacional. 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 aparecen en la clusula from
FROM: corresponde a la operacin de producto
cartesiano del lgebra relacional. Lista las relaciones
que se van a examinar en la evaluacin de la expresin
WHERE: corresponde al predicado de seleccin del
lgebra relacional. Consta de un predicado que incluye
atributos de las relaciones que aparecen en la clusula
from

Sublenguaje de Manipulacin de
Datos

Sublenguaje de Manipulacin de Datos

SQL: lenguaje relacionalmente completo y ms


poderoso que el lgebra relacional (posee
capacidades no incluidas en los lenguajes
formales: ordenacin, funciones de
agregacin, etc..)
Una expresin SQL se puede convertir en una
expresin equivalente de forma que pueda
procesarse mas eficientemente
(Optimizacin)

Sublenguaje de Manipulacin de Datos


1. Condiciones o criterios
Por medio de ciertos modificadores, llamados clusulas, se
consigue generar criterios con el fin de definir los datos que se
desea seleccionar o manipular

Sublenguaje de Manipulacin de Datos


2

Operadores Lgicos

Sublenguaje de Manipulacin de Datos


3 Operadores de Comparacin

Sublenguaje de Manipulacin de Datos


4 Funciones de Agregado
Las funciones de agregado se usan dentro de una
clusula SELECT en grupos de registros para devolver
un nico valor que se aplica a un grupo de registros

Consultas de Seleccin (SELECT)

Consultas de seleccin bsicas


La sintaxis ms sencilla de una consulta de
seleccin es la siguiente:
SELECT Campos FROM Tabla
Donde campos es la lista de campos que se deseen
recuperar y tabla es el origen de los mismos. Por
ejemplo, la consulta
SELECT Nombre, Telefono FROM Clientes;
devuelve una tabla temporal con los campos
nombre y telfono de la tabla clientes

Consultas de Seleccin
(SELECT)
Ordenar los registros (ORDER BY)
Adicionalmente se puede especificar el orden en que
se desean recuperar los registros de las tablas
mediante la clusula ORDER BY Lista-Campos. Donde
Lista-campos representa los campos a ordenar. Por
ejemplo, la consulta

SELECT CodigoPostal, Nombre, Telefono FROM


Clientes ORDER BY Nombre

Consultas de Seleccin (SELECT)


Ordenar los registros (ORDER BY)
Se pueden ordenar los registros por ms de un campo.
Por ejemplo:
SELECT CodigoPostal, Nombre, Telefono FROM
Clientes ORDER BY CodigoPostal, Nombre
Incluso se puede especificar el orden de los
registros: ascendente mediante la clusula ASC
(valor por defecto) o descendente DESC. Por
ejemplo:
SELECT CodigoPostal, Nombre, Telefono FROM
Clientes ORDER BY CodigoPostal DESC , Nombre
ASC

Consultas de Seleccin
(SELECT)
Consultas con Predicado (ALL, TOP, DISTINCT)
En cuanto al conjunto de registros seleccionados, estos
modificadores, que se incluyen entre SELECT y el primer
nombre del campo a recuperar, provocan las siguientes
acciones:

Consultas de Seleccin
(SELECT)
ALL / *
Es el valor por defecto. El Motor de base de datos
selecciona todos los registros que cumplen las
condiciones de la instruccin SQL.
SELECT ALL FROM Empleados
SELECT * FROM Empleados

Consultas de Seleccin
(SELECT)
TOP
Devuelve un cierto nmero de registros que
corresponden al principio o al final de un rango
especificado por una clusula ORDER BY.
SELECT TOP 25 Nombre, Apellido FROM Estudiantes
ORDER BY Nota DESC
Supongamos que, en lugar de los 25 primeros
estudiantes, deseamos el 10 por ciento del curso:
SELECT TOP 10 PERCENT Nombre, Apellido FROM
Estudiantes ORDER BY Nota DESC

Consultas de Seleccin
(SELECT)
DISTINCT
Omite los registros que contienen datos
duplicados en los campos seleccionados.

SELECT DISTINCT Apellido FROM Empleados;


Con otras palabras, el predicado DISTINCT
devuelve aquellos registros cuyos campos
indicados en la clusula SELECT posean un
contenido diferente.

Consultas de Seleccin
(SELECT)
DISTINCTROW
Devuelve los registros diferentes de una tabla; y,
a diferencia del predicado anterior que slo se
fijaba en el contenido de los campos
seleccionados, ste lo hace en el contenido del
registro completo
SELECT DISTINCTROW Apellido FROM Empleados

Consultas de Seleccin
(SELECT)
Alias (AS)
En determinadas circunstancias es necesario
asignar un nombre nuevo a alguna columna
determinada de un conjunto de registros
devuelto por una consulta.
SELECT DISTINCTROW Apellido AS Empleado
FROM Empleados;

Criterios de Seleccin
Operadores Lgicos.
Algunos operadores lgicos soportados por SQL son: AND, OR
y NOT. Los dos primeros poseen la sintaxis:
<expresin1> operador <expresin2>
En donde expresin1 y expresin2 son las condiciones a
evaluar, el resultado de la operacin vara en funcin del
operador lgico
Por ejemplo, considrense las consultas:
SELECT * FROM Empleados WHERE Edad > 25 AND Edad < 50
SELECT * FROM Empleados WHERE NOT Estado = 'Soltero'
SELECT * FROM Empleados WHERE (Sueldo > 100 AND Sueldo
< 500) OR (Provincia = Trujillo' AND Estado = 'Casado')

Intervalos de Valores
Intervalos de Valores (BETWEEN)
Para indicar que deseamos recuperar los registros segn
el intervalo de valores de un campo emplearemos el
operador BETWEEN cuya sintaxis es:
campo [Not] Between valor1 And valor2 (la condicin
Not es opcional)
Por ejemplo:
SELECT * FROM Pedidos WHERE CodPostal BETWEEN
28000 AND 28999;
SELECT * FROM Pedidos WHERE CodPostal NOT
BETWEEN 28000 AND 28999;

El Operador Like
El Operador LIKE
Se utiliza para comparar una expresin de cadena con un
modelo en una expresin SQL. Su sintaxis es:
expresin LIKE modelo
Por ejemplo, si se introduce LIKE C% en una consulta SQL,
la consulta devuelve todos los valores de campo que
comiencen por la letra C.
El ejemplo siguiente devuelve los datos que comienzan con
la letra P seguido de cualquier letra entre A y F y de tres
dgitos:
LIKE 'P[A-F]___'
Este ejemplo devuelve los campos cuyo contenido empiece
con una letra de la A a la D seguidas de cualquier cadena.
LIKE '[A-D]*'

El Operador IN
El Operador IN
Este operador devuelve los registros cuyo campo
indicado coincide con alguno de los dados en una
lista. Su sintaxis es:
expresin [NOT] IN (valor1, valor2, . . .)
Por ejemplo:
SELECT * FROM Pedidos WHERE Provincia IN (Trujillo',
'Chepn', Vir')

El Operador IN
El cuantificador existencial (EXISTS)
La expresin siguiente:
WHERE EXISTS (SELECT . FROM ....)
es verdadera si y slo si el resultado de evaluar la
consulta especificada por
SELECT . FROM .... no es el conjunto vaco.
SELECT NOMBREPROPIETARIO, APELLIDOPROPIETARIO
FROM PROPIETARIOS_ANTIGEDADES
WHERE EXISTS (SELECT * FROM ANTIGEDADES
WHERE PRODUCTO = 'Silla')

La clusula Where
La clusula WHERE
Como hemos visto, la clusula WHERE se usa para
determinar qu registros de las tablas enumeradas en
la clusula FROM aparecern en los resultados de la
instruccin SELECT. A continuacin se listan algunos
ejemplos:
SELECT Apellidos, Salario FROM Empleados WHERE Salario >
2100
SELECT Apellidos, Nombre FROM Empleados WHERE Apellidos
Like 'S%'
SELECT Apellidos, Salario FROM Empleados WHERE Salario
Between 200 And 300
SELECT Apellidos, Salario FROM Empl WHERE Apellidos Between
'Lao And 'Torres'
SELECT Id_Pedido, Fecha_Pedido FROM Pedidos WHERE
Fecha_Pedido Between 01/01/2008 And 30/06/2008

Agrupamiento de Registros y
funciones agregadas
GROUP BY
Combina los registros con valores idnticos, en la lista de
campos especificados, en un nico registro. Su sintaxis es:
SELECTcampos FROM tabla WHERE criterio GROUP BY
campos del grupo
GROUP BY es opcional. Los valores de resumen se omiten
si no existe una funcin SQL agregada en la instruccin
SELECT. Se utiliza la clusula WHERE para excluir aquellas
filas que no desea agrupar, y la clusula HAVING para
filtrar los registros una vez agrupados.
SELECT Id_Familia, Sum(Stock)FROM Productos GROUP BY
Id_Familia

Lenguaje de Manipulacin de Datos

Agrupamiento de Registros y
funciones agregadas
AVG
Calcula la media aritmtica de un conjunto de
valores contenidos en un campo especificado
de una consulta. Su sintaxis es: Avg(expr)
SELECT Avg(Gastos) AS Promedio FROM
Pedidos WHERE Gastos > 100

Agrupamiento de Registros y
funciones agregadas
Count
Calcula el nmero de registros devueltos por una
consulta. Su sintaxis es la siguiente: Count(expr) .
Donde expr contiene el nombre del campo que desea
contar. Los operandos de expr pueden incluir el
nombre de un campo de una tabla, una constante o
una funcin (la cual puede ser intrnseca o definida
por el usuario pero no otras de las funciones
agregadas de SQL). Puede contar cualquier tipo de
datos incluso texto.

SELECT Count(*) AS Total FROM Pedidos

Agrupamiento de Registros y
funciones agregadas
Max, Min
Devuelven el mnimo o el mximo de un conjunto de
valores contenidos en un campo especifico de una
consulta. Su sintaxis es:
Min(expr)
Max(expr)
Donde expr es el campo sobre el que se desea
realizar el clculo. Expr puede incluir el nombre de un
campo de una tabla, una constante o una funcin
SELECT Min(Gastos) AS ElMin FROM Pedidos WHERE Pais
= Per'
SELECT Max(Gastos) AS ElMax FROM Pedidos WHERE Pais
= Per'

Agrupamiento de Registros y
funciones agregadas
Sum
Devuelve la suma del conjunto de valores contenido
en un campo especfico de una consulta. Su sintaxis
es:
Sum(expr)
Donde expr representa el nombre del campo que
contiene los datos que desean sumarse o una
expresin que realiza un clculo utilizando los datos
de dichos campos.
SELECT Sum(PrecioUnidad * Cantidad) AS Total FROM
DetallePedido;

Lenguaje de Manipulacin de Datos

Lenguaje de Manipulacin de
Datos

LMD: Insertar Registros

Ejemplo
Insert into Articulo(codigo,descripcion,stock,pcompra,pventa)
Values (102,Yogurt Gloria 1 litro, 344,3.5,4.4)

LMD: Insertar Registros

LMD: Borrado de Registros

LMD: Modificacin de
Registros

Ejercicio 1
Una empresa de plaza posee un sistema para
manejar los proyectos que realiza y el personal
asignado a los mismos. Este sistema usa las
siguientes tablas:
PROYECTOS (cod_proy, nom_proy, fecha_inicio, tipo)
PERSONAL (cod_func, nombre, fecha_ingreso)
TAREAS (cod_tarea, descripcin, tipo)
ASIGNACION (cod_func, cod_proy, cod_tarea, fecha,
cant_horas)
Mediante el transact SQL resolver:

Ejercicio 1
Se pide:
1. Insertar 2 registros en cada tabla.
2. Obtener ordenados alfabticamente los nombres de todo
el personal de aquellos que ingresaron el ao 2014.
3. Obtener (de dos maneras distintas) los datos de los
proyectos que se realizaron el mes de Junio del 2013.
4. Obtener el nmero total de proyectos por tipo.
5. Obtener el nmero total de personal ingresaron entre los
aos 2013 al 2015
6. Obtener la suma total de horas que se trabajaron el ao
2014
7. Obtener la suma de horas del proyecto de cdigo P07
Modificar el nombre del personal de cdigo 345
8. Obtener la suma de horas por proyecto
9. Obtener el nombre del proyecto que tiene la fecha de
inicio mas reciente.

FIN

También podría gustarte