Professional Documents
Culture Documents
DE SISTEMAS
Lenguaje de Programacin II
Parte I
Indice
1.- Modelamiento de Datos
2.-Entidad Relacion
3.- Entidades Fuertes y Debiles
4.-Ejercicios propuestos de Modelamiento
5.-SQL SERVER
6.- DML , DDL
7.- Consultas, Agrupamientos , subconsultas
8.-Vistas
9.-Store Procedure
10.-Paso del Modelo Fisico a sql (Rational Ross)
Una Base de Datos Relacional es una base de datos en donde todos los
datos visibles al usuario estn organizados estrictamente como tablas de
valores y en donde todas las operaciones de la base de datos operan sobre estas
tablas .
Este modelo es el ms utilizado actualmente ya que utiliza tablas bidimensionales
para la representacin lgica de los datos y sus relaciones.
Algunas de sus principales caractersticas son:
Puede ser entendido y usado por cualquier usuario.
Permite ampliar el esquema conceptual sin modificar las aplicaciones
de gestin.
Los usuarios no necesitan saber donde se
encuentran
los
datos fsicamente.
Ejercicio Propuesto.
Boleto de Transporte
BOLETO(Num_boleto,
Num_bus,
capacidad_bus,
placa,
fecha_viaje,
nombre_pasajero, edad_pasajero, DNI,
destino, nro_asiento, hora_salida,
hora_llegada, precio_pasaje)
en la cual nos saldr la consola con los servidores de SQL Server que se unen por
grupos y cada grupo puede tener varios servidores en este caso solo tenemos un grupo y
tenemos tambien un solo servidor que toma el nombre de la pc. estos se crearon
automticamente al instalar SQL Server
Si quisiramos aadir un nuevo servidor nos vamos al grupo hacemos clic derecho
NUEVO REGISTRO DE SERVIDOR SQL SERVER
Como se muestra en las figuras saldra un asistente para despus escoger el nombre de la
pc a la cual nos queremos conectar luego escogemos el modo de autenticacin si es con
la autenticacin de windows o de sql en este caso escogemos SQL luego escogemos el
usuario administrador por defecto que es SA de ah siguiente y finalizar.
Con eso hemos creado una nueva cuenta de servidor (Ojo que podemos tener varias
cuentas si lo deseamos)
NOTA: Debemos tener en cuenta que el servicio de SQL este activo para eso debemos
asegurarnos que le icono del SQL este en color verde . Este icono se mostrara en la
barra de tareas al costado del reloj.
En caso de no estar encendido el servicio debemos irnos a INICIO- PROGRAMAS MICROSOFT SQL SERVER - ADMINISTRADOR DE SERVICIOS
En servidor se mostrara el nombre
de la PC con al cual deseamos
trabajar y en servicios debemos
asegurarnos que este SQL Server.
No olvidar que el icono debe tomar
un color verde que indica que el
servicio esta activo de otra forma no
se podra trabajar con la base de datos.
CREAR BASE DE DATOS.- Para crear una base de datos escogemos la carpeta base
de datos clic derecho y NUEVA BASE DE DATOS de ah ponemos el nombre de la
base de datos y listo
Una vez creada la base de datos podemos crear tablas dentro de ella
En este caso se vamos a crear un tabla
dentro de la base de datos BDCOMPRA
miren que salen varias opciones y
nosotros debemos escoger TABLA clic
derecho NUEVA TABLA
aqu estamos
definiendo los
campos que tendra
esa tabla, se pone el
nombre del campo,
se escoge el tipo la
longitud y marcamos
si queremos permitir
valores nulos caso
contrario lo
desmarcamos.
Si queremos
establecer clave
principal a algun
campo lo
seleccionamos y
hacemos clic en el
icono de la llave o
sino clic derecho y
establecer clave
principal.
Una vez terminado de definir los campos de la tabla lo guardamos y el ponemos un
nombre (Se guarda haciendo clic en el icono de guardar o simplemente cerrando la
ventana)
Una vez cerrada la tabla si hubiera que hacer alguna modificacin seleccionamos la
tabla clic derecho DISEAR TABLA
El asistente nos pedira que agreguemos las tablas las cual queremos relacionar
Para
relacionar las
tablas lo
primero que
se debe de
tener en
cuenta es que
tablas se van
a relacionar,
en este caso
vamos a
relacionar la
tabla cliente
con
facturacabe
ya que en la
tabla
facturacabe
se jala el
codigo del
cliente,
entonces lo que debemos hacer es escoger la tabla cliente(ya que de aqu se van a
jalar los codigos) exactamente escogemos el campo del cual vamos a jalar los datos
en este caso codcli y lo vamos a arrastrar y dejar encima de la tabla facturacabe
exactamente encima del campo codcli que esta en facturacabe de ah se mostrara
una ventana indicando la relacin que se ha creado , el nombre que se ha puesto, etc.
A lo cual damos aceptar.
IMPORTAR y EXPORTAR DATOS.- Otra de las herramientas que tiene el
administrador corporativo del SQL server es el de importar datos y exportarlos
Por ejemplo tenemos una base de datos y queremos exportarlo a Access.
Escogemos la base de datos clic derecho TODAS LAS TAREAS y EXPORTAR
DATOS
Despus de escoger el
origen ahora
escogemos el destino
en este caso es
Microsoft Access, en
nombre de archivo
escogemos la base de
datos de access que
debe estar vacia para
exportar los datos
hasta alla.
Luego damos
siguiente y escogemos
Copiar Tablas de ah
nos saldra otra
pantalla en la cual
debemos marcar que
tablas queremos
exportar, siguiente y
de ahi Finalizar a lo cual nos saldra un mensaje indicando el resultado.
NOTA: Debemos de tener en cuenta que la base de datos debe estar creada (vacia), Si
queremos exportar a excel en destino debemos escoger Microsoft Excel 8.0 o si
queremos exportarla aun documento de texto escogemos Archivo de Texto
Para Importar es igual no olvidar que en origen se escoge de donde se va a jalar los
datos y en destino a donde se va a copiar los datos.
Generar SCRIPT
Analizador de Consultas.Esta es una herramienta en el cual podremos crear base de datos, tablas, etc mendiante
codigo sql (Lenguaje SQL podriamos hacer lo mismo que hemos hecho con el
administrador corporativo pero con puro codigo)
Para entrar debemos irnos a
INICIO- PROGRAMASMICROSOFT SQL SERVER
ANALIZADOR DE
CONSULTAS
En servidor escogemos la PC a la
cual queremos conectarnos si
ponemos punto significa que nos
estamos conectando a la PC local,
marcamos la opcion INICIAR
SQL si esta detenido escogemos la
autenticacin si es sql en usuario
ponemos SA Y ACEPTAR.
Despus de esto nos saldr una
pantalla en blanco en la cual
podremos escribir codigo sql para crear base de datos, tablas ,vistas, etc.
en esa base de datos. El campo name hace referencia al nombre del objeto y el campo
type hace referencia a que clase de objeto es por ejemplo si es U es una tabla hecha
por el usuario, si es P es un procedimiento almacenado.
Aqu los posibles tipos
C = Restriccin CHECK,
D = Valor predeterminado o restriccin DEFAULT,
F = Restriccin FOREIGN KEY
K = Restriccin PRIMARY KEY o UNIQUE,
L = Restriccin,
P = Procedimiento almacenado,
R = Regla,
RF = Procedimiento almacenado de filtro de duplicacin
S = Tabla del sistema
TF = Funcin de tabla
TR = Desencadenador,
U = Tabla de usuario,
V = Vista
,X = Procedimiento almacenado extendido
4.- Crear una Base de Datos.- CREATE DATABASE Nombre
Ejemplo: Crear una base de Datos llamada BDUTP:
CREATE DATABASE BDUTP
5.-Eliminar una Base de Datos.- DROP DATABASE Nombre
Ejemplo: Borrar la base de datos llamada BDUTP
DROP DATABASE BDUTP
6.- Crear una tabla.CREATE TABLE Nombre (Campo tipo,Campo2 tipo....)
Ejemplo:
Crear la tabla AREAS areas(codigo, nombre, departamento)
CREATE TABLE areas (codigo varchar(3),nombre varchar(55),departamento
varchar(3))
Hay que tener en cuenta que debemos estar en la base de datos donde queremos crear
las tablas antes de hacer esto.
Restricciones(CONSTRAINT)
Son reglas de validacin a algunos campos se puede declarar al momento de crear la
tabla o despus modificando la tabla
NOT NULL. La columna no permitir valores nulos.
CONSTRAINT. Permite asociar un nombre a una restriccin.
DEFAULT . La columna tendr un valor por defecto.
PRIMARY KEY. Permite indicar que esta columna forma parte de la clave primaria.
FOREIGN KEY Indica que campo/s, es/son clave externa y hace referencia a la clave
primaria de otra tabla.
REFERENCES. Es la manera de indicar que este campo, es clave externa y hace
referencia a la clave primaria de otra tabla. Esta foreign key es slo de una columna.
UNIQUE. Obliga a que los valores de una columna tomen valores nicos (no puede
haber dos filas con igual valor). Se implementa creando un ndice para dicha(s)
columna(s).
CHECK (condicin). Permite indicar que condicin debe de cumplir esa columna.
Ejemplo:Crear una tabla carrera que el campo codcar tenga la restriccin de que
solo acepte letras
1.- Esta es una forma se pone al constraint al momento de crear la tabla y al costado del
campo:
create table carrera(codcar varchar(1) primary key not null constraint rscodcar
check(codcar like '[a-z]'), nomcar varchar(15))
2.- Esta otra forma tambien es cuando se crea la tabla pero el constraint se pone al final
de haber declarado todos los campos
create table carrera(codcar varchar(1) primary key not null,
nomcar varchar(15),
constraint rscodcar check(codcar like '[a-z]'))
3.- Primero se crea la tabla y luego se aade el constraint
create table carrera(codcar varchar(1) primary key not null,
nomcar varchar(15))
Alter table Carrera Add constraint rscodcar check(codcar like '[a-z]')
En los 3 casos se creo un constraint llamado RscodCar, para borrar un constraint seria:
Alter table Carrera Drop constraint rscodcar
Ejemplo: Crear una tabla llamada Alumno con los campos CODALU, NOMALU,
FECHANAC, SEXO y CIUDAD donde no se permita ingresar ningun valor NULL
ademas de que el campo CODALU sea clave primaria ,en el campo CIUDAD darle un
valor por defecto que sea LIMA , y al campo sexo solo se pueda ingresar M o F
Ejemplos:
Tenemos la base de Datos BDBANCO y tenemos las sgtes tablas:
create table banco(codban varchar(4) not null primary key,
nomban varchar(30) not null)
go
create table cuenta(nrocta int primary key not null,
nomcli varchar(70) not null,
dircli varchar(40) not null,
fecaper datetime not null,
saldoaper numeric(8,2) not null,
tipocta varchar(1) not null,
codban varchar(4) not null,
foreign key(codban) references banco(codban)
on delete cascade
on update cascade
--Foreign key es para crear un clave foranea es decir Codban es una clave foranea que
va a ser jalada de la tabla banco del campo codban
--Se pone on delete cascade y on update cascade para eliminar y actualizar en cascada
es --decir si se elimina un banco se eliminaran las cuentas de ese banco.
Go
create table movimiento(nromov int identity(100001,1) primary key not null,
tipomov varchar(1) not null,
fechamov datetime not null,
monto numeric(8,2) not null)
--Identity(100001,1) quiere decir que es autonumerico empieza del 100001 y va avanzar
de 1 en 1
--Agregar un campo Ciudad a la tabla banco que tenga Lima como valor x defecto.
alter table banco add ciudad varchar(15) default 'lima'
--Modificar el campo nomcli de la tabla cuenta
alter table cuenta alter column nomcli varchar(50)
--Agregar una restriccion al campo fecaper y poner la fecha actual x defecto
alter table cuenta add constraint resfechaaper default getdate() for fecaper
--Agregar una restriccion a la tabla cuenta al campo tipocta que solo acepte S o D
alter table cuenta add constraint restipocta check(tipocta like '[s,d]')
--Eliinar el campo dircli de cuenta
alter table cuenta drop column dircli
alter table movimiento add constraint restipomov check(tipomov like '[D,R]')
--Agregar un campo nrocta a Movimiento que sea clave foramea es decir va a jalar los ---datos de nrocta de la tabla cuenta
alter table movimiento add nrocta int foreign key(nrocta) references cuenta(nrocta)
on update cascade
on delete cascade
Nota:Si el campo nrocta ya hubiera existido y solo queremos crear el constraint que
haga la relacion con la tabla cuenta la sentencia seria asi:
alter table movimiento add constraint pkNro foreign key(nrocta) references
cuenta(nrocta)
--Agregar una restriccion al campo monto que solo acepte numeros del 0 al 1000
alter table movimiento add constraint resmonto check(monto between 0 and 1000)
UPDATE
DELETE
los
valores
de
los
campos
Clusulas
Las clusulas son condiciones de modificacin utilizadas para definir los datos
que desea seleccionar o manipular.
Clusula
FROM
WHERE
Descripcin
Utilizada para especificar la tabla de la cual se van a
seleccionar
los
registros
Utilizada
para especificar las condiciones que deben reunir
los registros que se van a seleccionar
GROUP
BY
los
registros
seleccionados
en
HAVING
ORDER
BY
Operadores Lgicos
Operador Uso
Es el "y" lgico. Evalua dos condiciones y devuelve un valor
AND
de verdad slo si ambas son ciertas.
Es el "o" lgico. Evala dos condiciones y devuelve un valor
de verdar si alguna de las dos es cierta.
OR
NOT
Negacin lgica. Devuelve el valor contrario de la expresin.
1.5 Operadores de Comparacin
Operador
<
Uso
Menor que
>
Mayor que
<>
Distinto de
<=
>=
Igual que
BETWEEN
LIKE
In
Utilizado
datos
para
especificar
registros
de
una
base
de
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.
Funcin Descripcin
AVG
Utilizada para calcular el promedio de los valores de un campo determinado
COUNT Utilizada para devolver el nmero de registros de la seleccin
MAX
MIN
SUM
de
un
Consultas de Seleccin
Compute
Genera totales que aparecen como columnas de resumen adicionales al final del
conjunto de resultados. Cuando se utiliza con BY, la clusula COMPUTE genera
interrupciones de control y subtotales en el conjunto de resultados. Puede especificar
COMPUTE BY y COMPUTE en la misma consulta.
Sintaxis
[ COMPUTE
Argumentos
Clausula from
Especifica las tablas de las que se van a obtener filas. La clusula FROM es necesaria
excepto cuando la lista de seleccin slo contiene constantes, variables y expresiones
aritmticas (no nombres de columna). Para obtener ms informacin, consulte FROM.
Sintaxis
[ FROM {<origenTabla>} [,...n] ]
<tipoCombinacin> ::=
[ INNER | { { LEFT | RIGHT | FULL } [OUTER] } ]
[ <sugerenciaCombinacin> ] JOIN ]
Especifica las tablas, vistas, tablas derivadas y tablas combinadas de la instruccin
SELECT.
nombreTabla [ [AS] aliasTabla ]
Especifica el nombre de una tabla y un alias opcional.
Es un conjunto de resultados producto de una o ms tablas; por ejemplo:
FROM tab1 LEFT OUTER JOIN tab1.c3 = tab2.c3
RIGHT OUTER JOIN tab3 LEFT OUTER JOIN tab4
ON tab3.c1
ON tab2.c3 = tab4.c3
INNER
Especifica que se devuelvan todos los pares de filas coincidentes. Descarta las filas no
coincidentes de las dos tablas. ste es el valor predeterminado si no se especifica ningn
tipo de combinacin.
LEFT [OUTER]
Especifica que todas las filas de la tabla de la izquierda que no cumplan la condicin
especificada se incluyan en el conjunto de resultados, adems de todas las filas que
devuelva la combinacin interna. Las columnas de salida de la tabla de la izquierda se
establecen a NULL.
RIGHT [OUTER]
Especifica que todas las filas de la tabla de la derecha que no cumplan la condicin
especificada se incluyan en el conjunto de resultados, adems de las que devuelva la
combinacin interna. Las columnas de salida de la tabla de la derecha se establecen a
NULL.
JOIN
Consultas bsicas
Predicado
TOP
Descripcin
Devuelve un determinado nmero de registros de la tabla
DISTINCT
DISTINCTROW
TOP
Devuelve un cierto nmero de registros que entran entre al principio o al final de un
rango especificado por una clusula ORDER BY. Supongamos que queremos recuperar
los nombres los 10 primeros clientes con mayor linea de credito :
SELECT TOP 25
Cli_cod, cli_nom
ORDER BY Cli_cre DESC
cli_cre
FROM Clientes
DISTINCT
Omite los registros que contienen datos duplicados en los campos seleccionados. Para
que los valores de cada campo listado en la instruccin SELECT se incluyan
en la consulta deben ser nicos.
Por ejemplo, varios vendedores realizan ventas , si se desea Mostar los vendedores que
hayan hecho ventas sin que se repita el codigo .
SELECT DISTINCT ven_cod FROM Fac_cabe
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos
indicados en la clusula SELECT posean un contenido diferente. El resultado de una
consulta que utiliza DISTINCT no es actualizable y no refleja los cambios subsiguientes
realizados por otros usuarios.
Alias
En determinadas circunstancias es necesario asignar un nombre a alguna
columna determinada de un conjunto devuelto, otras veces por simple capricho
o por otras
circunstancias. Para resolver todas ellas tenemos la palabra reservada AS que se encarga
de asignar el nombre que deseamos a la columna deseada. Tomado como referencia el
ejemplo anterior podemos hacer que la columna devuelta por la consulta, en lugar de
llamarse apellido (igual que el campo devuelto) se llame Empleado. En
este caso procederamos de la siguiente forma:
SELECT DISTINCTROW Apellido AS Empleado FROM Empleados
EJEMPLOS.Para ver los objetos que hay en el SQL Server presionamos F8 (Examinador de objetos) y nos
saldra una ventana parecida a la del administrador corporativo.
--Agregar un campo Ciudad a la tabla banco que tenga Lima como valor x defecto.
alter table banco add ciudad varchar(15) default 'lima'
--Modificar el campo nomcli de la tabla cuenta
alter table cuenta alter column nomcli varchar(50)
--Agregar una restriccion al campo fecaper y poner la fecha actual x defecto
alter table cuenta add constraint resfechaaper default getdate() for fecaper
--Agregar una restriccion a la tabla cuenta al campo tipocta que solo acepte S o D
alter table cuenta add constraint restipocta check(tipocta like '[s,d]')
--Eliinar el campo dircli de cuenta
alter table cuenta drop column dircli
MAnipulacion de Datos
Ejemplo: Tomando la base de datos del ejemplo Anterior BDBANCO llenemos datos
--Esta es una forma de llenar datos poniendo los campos y los valores
insert into banco (codban,nomban) values('b','latino')
--Esta es mas sencilla no se pone los campos solo los valores
insert into banco values('a','wiese',default)
insert into banco values('c','credito',default)
insert into banco values('d','continental','piura')
go
insert into cuenta values(10001,'ana suarez','01/01/2001',100.20,'s','a')
insert into cuenta values(10002,'luis salas',default,500.00,'s','a')
insert into cuenta values(10003,'pedro chang','04/10/1998',750.50,'d','c')
go
insert into movimiento values('d',default,140,10001)
insert into movimiento values('d',default,90,10001)
insert into movimiento values('r','01/10/2002',123,10001)
insert into movimiento values('r','11/03/2002',200,10002)
NOTA: Observen que en algunos campos se pone DEFAULT y esto se debe a que al
campo se le ha puesto una restriccin para que tome un valor x defecto ademas en la
tabla movimiento no se esta llenando el campo nromov y esto se debe a que ese
campo es autonumerico.
--funciones de fecha
alterar la tabla alumno y agregar fecha de inicio
--mostrar el nombre del alumno la fecha de matricula (fechamat)y la fecha de inicio de
clases(10 dias despues de la matricula)
select nomalu,fechamat,dateadd(dd,10,fechamat) as fecha_inicio from alumno
--mostrar el nombre del alumno el ao,y el mes en que se matricularon
select nomalu,datepart(yy,fechamat) as anio,datepart(mm,fechamat) as mes from
alumno
--mostrar el nombre del alumno la fecha de matricula y la cantidad de dias que han
pasado desde que se matriculo
select year(getdate()),month(getdate()),day(getdate()),getdate()
--autogenerar el codigo con el ultimo digito del codalu + el primer carater del apellido+
los 2 primeros caracteres del nombre + los tres primeros cararcateres del mes + los 2
ultimos caracteres del ao.
yy, yyyy
Quarter
qq, q
Month
mm, m
dy, y
Day
dd, d
Hh
Minute
mi, n
Second
ss, s
Millisecond
Ms
DATENAME
DAY
DAY ( date )
Equivale a DATEPART(dd,Fecha)
GETDATE
GETDATE ( )
MONTH
MONTH ( date )
Equivale a DATEPART(mm,Fecha)
YEAR
YEAR ( date )
Equivale a DATEPART(yy,Fecha)
Funciones matemticas
Estas funciones escalares realizan un clculo, normalmente basado en valores de entrada
proporcionados como argumentos, y devuelven un valor numrico.
ABS
Devuelve
el DEGREES Dado un ngulo RAND Devuelve un valor
valor absoluto, positivo en radianes,
devuelve
el float aleatorio de 0 a 1.
de
la expresin ngulo
correspondiente en
Sintaxis
numrica dada.
grados.
Sintaxis
ABS
)
RAND
(numeric_expression)
(numeric_expression DEGREES(numeric_expression) Ejem: SELECT RAND(5)
ACOS
Devuelve
el
ngulo,
en
radianes,
cuyo coseno
es
la
expresin de tipo float
dada;
tambin
denominado arcocoseno.
Sintaxis
EXP Devuelve
el
valor ROUND Devuelve una
exponencial de la expresin float expresin
numrica,
dada.
redondeada a la longitud
o precisin especificada.
Sintaxis
Sintaxis
EXP ( float_expression )
ROUND(
numeric_expression , length
)
Sintaxis
ACOS ( float_expression )
ASIN ASIN
SIGN
Devuelve
el
signo positivo
(+1),
cero (0) o negativo (1)
de
la
expresin especificada.
Sintaxis
SIGN ( numeric_expression
Sintaxis
ASIN ( float_expression )
ATAN ATAN
Sintaxis
ATAN ( float_expression )
ATN2 ATN2
LOG10
Devuelve
el SQUARE Devuelve
logaritmo en base 10 de la cuadrado
de
Devuelve
el
ngulo, expresin float dada.
expresin especificada.
en radianes, cuya tangente
Sintaxis
es un
valor
entre Sintaxis
las
dos expresiones
SQUARE
float dadas LOG10 ( float_expression )
float_expression )
(denominado
tambin
arcotangente).
el
la
Sintaxis
ATN2 ( float_expression
,
float_expression )
CEILING Devuelve el PI Devuelve el valor
entero ms pequeo mayor constante de PI.
o
igual
que
la
expresin numrica dada. Sintaxis
PI ( )
SQRT ( float_expression )
Sintaxis
CEILING
numeric_expression )
TAN ( float_expression )
POWER ( numeric_expression ,
y)
COS ( float_expression )
COT Funcin matemtica
que devuelve la cotangente
trigonomtrica
del
ngulo especificado (en
radianes) en la expresin
float.
RADIANS
Devuelve
los
radianes de una expresin
numrica en grados.
Sintaxis
RADIANS(numeric_expression)
Sintaxis
COT ( float_expression )
Todas las funciones matemticas, excepto RAND, son funciones
deterministas;
devuelven siempre el mismo resultado cada vez que se les llama con un
conjunto especfico de valores de entrada. RAND es determinista slo cuando se
especifica un parmetro de inicializacin
Funciones de cadena
Estas funciones escalares realizan una operacin sobre una cadena de
entrada y
devuelven un valor de cadena o un valor numrico.
ASCII
NCHAR
SOUNDEX
CHAR
PATINDEX
SPACE
CHARINDEX
REPLACE
STR
DIFFERENCE
QUOTENAME
STUFF
LEFT
REPLICATE
SUBSTRING
LEN
REVERSE
UNICODE
LOWER
RIGHT
UPPER
LTRIM
RTRIM
Sintaxis
ASCII ( character_expression )
SELECT ASCII('\').- Esta funcion devolvera 92
CHAR.- Una funcin de cadena que convierte un cdigo ASCII int en un carcter.
Sintaxis
CHAR ( integer_expression )
SELECT CHAR('64').- Esta funcion devolvera @
REPLACE .- Reemplaza por una tercera expresin todas las apariciones de la segunda
expresin de cadena proporcionada en la primera expresin de cadena.
Sintaxis
Segunda practica:
instructor y
sus tablas :
CREATE TABLE INFRACCION(
INFCOD CHAR (3) Primary key ,
INFDES varchar (25) NULL ,
INFIMP numeric (8, 1) NULL
)
I.- Elaborar las siguientes consultas en SQL (14 puntos cada pregunta 2 puntos)
1.- Mostrar todos los vehculos que sean de color Rojo y Modelo Datsun
NropLa, Nompro, Modelo , Color
2.- Mostrar Todos papeletas del ao 2005
NroPap, Papfecha, Nropla
3-Mostrar todas las infracciones del Vehiculo con Numero Placa igual a V00001
5.- Todas las papeletas impuestas del ao 2004 y cuyos meses estn comprendidas entre
mayo y octubre=> Nropap , PapFecha, Nompro,
Cantidad
Total
.
sql_statement [ ...n ]
Argumentos
procedure_name
Es el nombre del nuevo procedimiento almacenado. Los nombres de procedimiento
deben seguir las reglas de los identificadores y deben ser nicos en la base de datos y
para su propietario..
@parameter
Es un parmetro del procedimiento. En una instruccin CREATE
PROCEDURE se pueden declarar uno o ms parmetros. El usuario debe
proporcionar el valor de cada parmetro declarado cuando se ejecuta el
procedimiento, a menos que se haya definido
un valor predeterminado para el parmetro. Un procedimiento almacenado puede tener
un mximo de 2.100 parmetros.
Especifique un nombre de parmetro con un signo (@) como el primer carcter. Los
nombres
de
los
parmetros
deben
cumplir
las
reglas
de
los
identificadores. Los parmetros son locales para el procedimiento; los
mismos nombres de parmetro se pueden utilizar en otros procedimientos. De
forma predeterminada, los parmetros slo pueden ocupar el lugar de constantes;
no se pueden utilizar en lugar de nombres de tablas, nombres de columnas o
nombres de otros objetos de base de datos.
data_type
Es el tipo de datos del parmetro. Todos los tipos de datos,
incluidos
text, ntext
e
image,
se
pueden
utilizar
como
parmetros de un procedimiento almacenado. Sin embargo, el tipo
de datos cursor slo se puede utilizar en parmetros OUTPUT.
Procedimientos almacenados del sistema
3.
Importante
Ejemplos:
EMPLEANDO LA BASE BDFACTURA
CREATE procedure actu_stock
@p1 char(5),@p2 numeric(4,0)
as
update articulos set art_stock= Art_stock - @p2
where Art_codigo=@p1
RETURN
GO
-- GENERA FACTURA
select @cf="F0001"
RETURN
-- GRABAR fACTURA
@P1 CHAR(12),@P2
AS
INSERT INTO Fac_cabe
(FAC_numero,fac_fecha,Cli_codigo,fac_IGV) VALUES (@P1,@P2,@p3,@P4)
RETURN
GRABAR DETALLE
char(5),@p3
AS
INSERT INTO Fac_deta
VALUES (@P1,@P2,@p3,@P4)
RETURN
AS
Select A.Art_Nombre, cantidad=sum(art_cantidad)
From Fac_cabe F,Articulos A, Fac_deta as D
where A.Art_codigo=D.Art_codigo and F.Fac_numero = D.Fac_Numero and
Month(Fac_fecha)=@mes and Year(Fac_fecha)=@an
Group By Art_nombre
Return
-- por fechas
CREATE procedure sp_fechas
@f1 datetime,
@f2 datetime
as
-- total venta
select
D, articulos A
F.fac_numero=D.fac_numero
Group By Datename(mm,fac_fecha)
@an int
AS
Numeric(10,2)
fac_cabe f
Where f.Fac_numero=D.fac_numero and D.art_codigo =A.Art_codigo and
year(fac_fecha)=@an
D.Art_codigo=A.Art_codigo and
and C.Cli_codigo=F.Cli_codigo
group by c.Cli_codigo,c.Cli_nombre
La Base de Datos BDVENTAS ser entregada por el Instructor, se pide elaborar los
siguientes Procedimientos:
1..- Pasando un cdigo de vendedor que muestre todos sus ventas realizadas.
2.- Pasando un cdigo del cliente, que muestre todas sus facturas con su importe
respectivo
Fac_num,Fac_fecha y Total
3.- Pasando un ao que muestre, por cada mes la cantidad de facturas y su Importe Total