Está en la página 1de 4

LA SENTENCIA JOIN

La sentencia JOIN en SQL permite combinar registros de dos o ms tablas en una base
de datos relacional. En el Lenguaje de Consultas Estructurado (SQL), hay tres tipo de
JOIN: interno, externo, y cruzado.
Todas las explicaciones que estn a continuacin utilizan las siguientes dos tablas para
ilustrar el efecto de diferentes clases de uniones JOIN.

Combinacin interna (INNER JOIN):


Con esta operacin es calculado el producto cruzado de todos los registros; as cada
registro en la tabla A es combinado con cada registro de la tabla B; pero slo
permanecen aquellos registros en la tabla combinada que satisfacen las condiciones que
se especifiquen
Las dos consultas siguientes son similares, y se realizan de manera explicita (A) e
implcita (B).
A. Ejemplo de la sentencia INNER JOIN explcita:
SELECT * FROM
empleado INNER JOIN departamento ON
empleado.IDdepartamento = departamento.IDdepartamento

B. Ejemplo de la sentencia INNER JOIN implcita:


SELECT * FROM
empleado, departamento WHERE
= departamento.IDDepartamento

Resultados:

empleado.IDdepartamento

PROCEDIMIENTOS ALMACENADOS EN SQL SEVER 2000


Que Son Los Procedimientos Almacenados?
Un procedimiento almacenado (store procedure) es un programa (o procedimiento) el
cual es almacenado fsicamente en una base de datos. Generalmente son escritos en un
lenguaje de bases de datos propietario como SQL.
La ventaja de un procedimiento almacenado es que al ser ejecutado, en respuesta a
una peticin de usuario, es ejecutado directamente en el motor de bases de datos, el cual
usualmente corre en un servidor separado. Como tal, posee acceso directo a los datos
que necesita manipular y solo necesita enviar sus resultados de regreso al usuario,
deshacindose de la sobrecarga resultante de comunicar grandes cantidades de datos
salientes y entrantes.
TIPOS DE PROCEDIMIENTOS ALMACENADOS

Procedimientos almacenados definidos por el usuario:


o Los procedimientos almacenados son mdulos o rutinas que encapsulan
cdigo para su reutilizacin. Un procedimiento almacenado puede incluir
parmetros de entrada, devolver resultados tabulares o escalares y
mensajes para el cliente, invocar instrucciones de lenguaje de definicin
de datos (DDL) e instrucciones de lenguaje de manipulacin de datos
(DML), as como devolver parmetros de salida. En SQL Server 2008
existen dos tipos de procedimientos almacenados: Transact-SQL o CLR

Transact-SQL
o Un procedimiento almacenado Transact-SQL es una coleccin guardada
de instrucciones Transact-SQL que puede tomar y devolver los
parmetros proporcionados por el usuario. Por ejemplo, un
procedimiento almacenado puede contener las instrucciones necesarias
para insertar una nueva fila en una o ms tablas segn la informacin
suministrada por la aplicacin cliente o es posible que el procedimiento
almacenado devuelva datos de la base de datos a la aplicacin cliente.
Por ejemplo, una aplicacin Web de comercio electrnico puede utilizar
un procedimiento almacenado para devolver informacin acerca de
determinados productos en funcin de los criterios de bsqueda
especificados por el usuario en lnea.

CLR

o Un procedimiento almacenado CLR es una referencia a un mtodo


Common Language Runtime (CLR) de Microsoft .NET Framework que
puede aceptar y devolver parmetros suministrados por el usuario. Se
implementan como mtodos pblicos y estticos en una clase de un
ensamblado de .NET Framework.Para obtener ms informacin, vea
Procedimientos almacenados CLR (en ingls).

Ejemplos:
Procedimiento almacenado para guardar un nuevo cliente
CREATE PROCEDURE spCliente_N
@dniruc varchar(11),
@compania varchar(20),
@contacto varchar(30),
@ciudad varchar(20),
@direccion varchar(30),
@telefono varchar(20),
@email varchar(20),
@usuario varchar(20),
@clave varchar(20),
@observacion varchar(50)
as Insert into clientes
values(@dniruc,@compania,@contacto,@ciudad,@direccion,@telefono,@email,@usu
ario,@clave,@observacion)
GO
Procedimiento almacenado para modificar un cliente
CREATE PROCEDURE spCliente_M
@dniruc varchar(11),
@compania varchar(20),
@contacto varchar(30),
@ciudad varchar(20),
@direccion varchar(30),
@telefono varchar(20),
@email varchar(20),
@usuario varchar(20),
@clave varchar(20),
@observacion varchar(50)
as Update clientes set dniruc = @dniruc, compania = @compania, contacto =
@contacto,
ciudad = @ciudad, direccion = @direccion, telefono = @telefono, email = @email,
usuario = @usuario, clave = @clave, observacion = @observacion
where dniruc = @dniruc
GO

Procedimiento almacenado para eliminar un cliente

CREATE PROCEDURE spCliente_E


@dniruc char(11)
as DELETE FROM clientes WHERE dniruc = @dniruc
GO

Procedimiento almacenado para buscar clientes


CREATE PROCEDURE spCliente_BC
AS
SELECT * FROM clientes
order by compania
GO

Procedimiento almacenado para buscar un producto ya sea por cdigo y/o


descripcion
CREATE PROCEDURE spDInventario_CD
@vcodprod char(10),
@vdesP varchar(50)
AS
if @vcodprod ='' and @vdesP =''
begin
SELECT * from detalle_inv
end
if @vcodprod <>'' and @vdesP <>''
begin
SELECT * from detalle_inv WHERE codprod= @vcodprod and des=
@vdesP
end
if @vcodprod <>'' or @vdesP <>''
begin
SELECT * from detalle_inv WHERE codprod= @vcodprod or des=
@vdesP
end
GO

EJECUTAR UN PROCEDIMIENTO ALMACENADO EN EL ANALIZADOR


DE CONSULTAS DE SQL SERVER 2000
exec spCliente_N '12547854','flores srl',arturo,pucallpa,sdsd,595959,
saa@hotmail.com,sa,sa,xxx

También podría gustarte