0% encontró este documento útil (0 votos)
508 vistas58 páginas

Microsoft SQL Server 2014

El documento describe un curso sobre Microsoft SQL Server 2014. Cubre temas como instalación y configuración, gestión de bases de datos, lenguajes de manipulación y definición de datos, programación Transact-SQL, y estructura y tipos de datos en SQL Server. También propone un ejercicio para implementar un sistema web de reserva de vuelos utilizando una base de datos en SQL Server.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
508 vistas58 páginas

Microsoft SQL Server 2014

El documento describe un curso sobre Microsoft SQL Server 2014. Cubre temas como instalación y configuración, gestión de bases de datos, lenguajes de manipulación y definición de datos, programación Transact-SQL, y estructura y tipos de datos en SQL Server. También propone un ejercicio para implementar un sistema web de reserva de vuelos utilizando una base de datos en SQL Server.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 58

Microsoft SQL Server 2014

1. Contenido del Curso de Bases de datos en Microsoft SQLServer 2014

Instalacin y Configuracin, Seguridad

Gestin de Base de Datos

Estructura de Una Base de datos

Archivos y Grupos Fsicos de Bases de Datos

Esquemas, Tablas, Campos, Tipos de datos

Relaciones, Llaves primarias y Forneas

Restricciones Unique, Check, Default

Separar y Adjuntar Base de Datos

Backup y Restauracin de Base de Datos

LDD Lenguaje de Manipulacin de Datos


o

Create, Alter, Drop

DML Lenguaje de Manipulacin de Datos


o

Insert Into, Update, Delete

Select, Group By, Having, Union

Programacin Transact SQL


o

Variables, Funciones Cast y Convert

Estructuras de Control Condicionales e Iterativas o repetitivas

Procedimientos Almacenados

Cursores, Triggers, Tablas de Referencia Cruzada

Qu es una Base de Datos?


Es un conjunto de Informacin relacionada sobre un tema en particular, organizada de alguna
forma tal que suministra una base o fundamento para procedimientos, como la recuperacin
o consulta de la Informacin, la elaboracin de conclusiones en base a la data y la toma de
desiciones de una organizacin.
Se dice que cualquier conjunto de Informacin que sirva a lo nombrado anteriormente se le
calificar como base de Datos, an cuando la informacin no est almacenada en algn medio
Informtico.
Sistemas de Gestin de Base de Datos (SGBD)

Son aplicaciones que permiten la administracin de los datos almacenados en una o varias
Bases de datos.
Independencia de los datos y los programas

Minimizacin de la Redundancia

Integracin y Sincronizacin de las Bases de Datos

Facilidad de Manipulacin y Recuperacin de la Informacin

Seguridad y Control Centralizado.


SQL Server 2014

Microsoft SQLServer es un Sistema para la Gestin de Base de Datos basado en el Modelo


Relacional. Sus lenguajes para consultas son Transact-SQL y Ansi SQL.
Presenta Un entorno grfico de administracin de los Objetos del motor de base de datos, que
permite el uso de comando DDL y DML grficamente.
2. Base de Datos en Sql Server
Al instalar SQLServer tambin se registran Bases de datos que administran diferentes
aspectos del servidor de Base de Datos.
MASTER: Es el ncleo y contiene Informacin vital de la Instancia de Sqlserver, informacin de
la administracin de las diferentes bases de datos.
TEMPDB: Base de datos temporal que brinda espacios para realizar algunas operaciones.
MODEL: Es una plantilla para todas las bases de datos creadas en el servidor, se implementa
cuando se ejecuta el comando CREATE DATABASE.
MSDB: Empleada por SQL Server Agent, guarda informacin de servicios de automatizacin,
historial de copias de seguridad, tareas, alertas, planes de mantenimiento entre otros registros.
Estructura de Base de Datos en Sql Server
Tablas: La tabla es el primer objeto de una base de datos y se organiza en filas y columnas,
una fila equivale a un registro y las columnas definen los campos del registro, los campos se
definen sobre un tipo de datos.

Campos: Representa los Atributos de una entidad o tabla.


Campo Clave: Es el campo que representa un valor nico e identifica a un registro de
la tabla.
Campo Forneo: Campo que une a otra entidad
tabla fuente.

formando una extensin de la

Registro: Representa el Conjunto de valores por cada campo de una misma fila.

Dato: Es un valor que no representa nada mientras no se une a otros datos.


Estructura de una Base de Datos en Sql Server

Estructura de una Tabla en Sql Server

3. Ejercicio Propuesto
Se desea implementar un sistema web para gestionar la reserva de vuelos; que permita al
usuario registrar sus reservas de vuelos y hacer consultas, adems de poder comprar los
boletos de viaje de manera remota, sin la necesidad de recurrir a una agencia de viaje.
El sistema web debe de mostrar una interfaz describiendo los servicios ofrecidos junto con la
opcin para registrarse si es la primera vez que accede a ella, o si ya se encuentra registrado
acceder por medio de su usuario (email) y su clave.

Una vez registrado el usuario este podr acceder a los siguientes procesos:
Consulta de Vuelos

Por Horarios de Vuelos

Por Tarifas de Vuelos

Informacin de Vuelos

Reserva de Vuelos

Compra de Boletos de viaje


Esquema de Archivos en Sql Server

Tipos de Datos en Sql Server 2014

Tipo de Datos Carcter


Char: Los datos deben de tener una longitud fija hasta 8Kb. Ejemplo: Si queremos almacenar
categoras por ejemplo A, B, C Utilizaremos Char(1)
Varchar: Puede variar en el nmero de carcteres, es decir el valor asignado no es fijo, aqu
SQL administra los espacios en blanco y los optimiza.
Ejemplo en un Varchar(15) ocupar menos espacio el dato Ana que Juan Carlos.
Tipo de Datos Enteros
Int: Nmeros enteros desde
-2 31 (-2 147 483 648) a 2 31-1 (2 147 483 647).
Tipos de Datos Fecha
Date: Tipo de dato que muestra la fecha en el siguiente formato 07-07-2014.
Tipo de Datos Decimal
Decimal: Tipo de datos que se utiliza para almacenar nmeros decimales que pueden tener
hasta 38 dgitos.
Tipo de Datos Monetario
Money: Cantidad monetaria positiva o negativa.
Propiedades de Datos
Propiedad NULL: Hay dos formas de expresar el trmino NULL, al implementarlo como NULL
estamos indicando que el contenido de dicha columna no es obligatorio, si se necesita
especificar que el campo es obligatorio se implementar con NOT NULL.
Propiedad IDENTITY: Propiedad slo aplicada a campos numricos, ya que define un
autoincremento automtico de valores.

4.

Relaciones
El modo de relacionar registros entre tablas es por tanto mediante referencias, para lo cual se
usan los identificadores definidos como claves primarias y forneas.
Clave primaria

En el diseo de bases de datos relacionales, se llama clave primaria (Primary Key) a un campo
o a una combinacin de campos que identifica de forma nica a cada fila de una tabla. Una
clave primaria comprende de esta manera una columna o conjunto de columnas. No puede
haber dos filas en una tabla que tengan la misma clave primaria.
Una clave primaria debe identificar a todas las posibles filas de una tabla y no nicamente a las
filas que se encuentran en un momento determinado. Ejemplos de claves primarias son DNI
(asociado a una persona) o ISBN (asociado a un libro). Las guas telefnicas y diccionarios no
pueden usar nombres o palabras o nmeros del sistema decimal de Dewey como claves
candidatas, porque no identifican unvocamente nmeros de telfono o palabras.
Clave fornea
En el contexto de bases de datos relacionales, una clave fornea o clave ajena (o Foreign Key
FK) es una limitacin referencial entre dos tablas. La clave fornea identifica una columna o
grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo
de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo
deben ser la clave primaria u otra clave candidata en la tabla referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla
referenciada. As, una fila en la tabla referendo no puede contener valores que no existen en la
tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar
informacin. Esto es una parte esencial de la normalizacin de base de datos. Mltiples filas en
la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla
referenciada. Mayormente esto se ve reflejado en una relacin uno (tabla maestra o
referenciada) a muchos (tabla hija o referendo).
Diagrama Relacional Base de Datos en Sql Server 2014
Dentro de las opciones que nos ofrece nuestra base de datos, encontramos la opcin Diagrama
de la Base de Datos, que nos permite realizar las relaciones de las tablas en forma Grfica.
Para acceder a esta opcin le damos click derecho y crearemos un nuevo Diagrama de Base
de Datos.

Imagen 1: Diagrama relacional de la Base de datos del Curso.

5. Lenguaje SQL
El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de
agregados. Estos elementos se Combinan en las instrucciones para crear, actualizar y
Manipular las base de datos.
Existen 2 tipos de Comandos SQL:
Lenguaje de Definicin de Datos (DDL), comandos para crear y definir nuevas base de
datos, tablas, campos e ndices.
Lenguaje de Manipulacin de Datos (DML), comandos para insertar, modificar y eliminar
registros, as como ordenar, filtrar y extraer informacin de la base de datos.
1. Lenguaje de Definicin de Datos
SENTENCIA CREATE (Comando de Creacin de Objetos de la Base de Datos): Permite crear
base de datos, tablas, desencadenadores, procedimientos, funciones, vistas e ndices de una
base de Datos.

SENTENCIA ALTER (Comando de Modificacin de Objetos de la Base de Datos): Permite la


modificacin de un objeto asociado a una base de Datos, puede modificar archivos, grupo de
archivos, cambiar atributos de un Objeto.
SENTENCIA DROP (Comando de Eliminacin de Objetos de la Base de Datos): Permite la
eliminacin de un objeto asociado a una Base de Datos.
Archivos de Base de Datos

Cdigo para Implementar la Base de Datos y los Archivos .MDF y .LDF


--Verificamos que la base de datos no este implementada para implementarla
IF DB_ID('DBRESERVAM') IS NOT NULL
BEGIN
USE MASTER
DROP DATABASE DBRESERVAM
END
--creamos la base de datos
CREATE DATABASE DBRESERVAM
ON PRIMARY (
NAME='DBRESERVA_MDF',
FILENAME='C:\Sqlserver-BaseDatos2\DBRESERVA.MDF',
SIZE=10MB,
MAXSIZE=40MB,
FILEGROWTH=5MB
),
(
NAME='DBRESERVA2_MDF',
FILENAME='C:\Sqlserver-BaseDatos2\DBRESERVA2.MDF',
SIZE=5MB,
MAXSIZE=30MB,
FILEGROWTH=5%
)
LOG ON (
NAME='DBRESERVA_LOG',
FILENAME='C:\Sqlserver-BaseDatos2\DBRESERVA2.LDF',
SIZE=4MB,
MAXSIZE=20MB,

FILEGROWTH=10%
)
GO
--ACTIVAMOS LA BASE DE DATOS PARA EMPEZAR A TRABAJAR CON ELLA
USE DBRESERVAM
GO
6. Tipos de Datos en Sql Server 2014
Tipo de Datos Carcter
Char: Los datos deben de tener una longitud fija hasta 8Kb. Ejemplo: Si queremos almacenar
categoras por ejemplo A, B, C Utilizaremos Char(1)
Varchar: Puede variar en el nmero de carcteres, es decir el valor asignado no es fijo, aqu
SQL administra los espacios en blanco y los optimiza.
Ejemplo en un Varchar(15) ocupar menos espacio el dato Ana que Juan Carlos.
Tipo de Datos Enteros
Int: Nmeros enteros desde
-2 31 (-2 147 483 648) a 2 31-1 (2 147 483 647).
Tipos de Datos Fecha
Date: Tipo de dato que muestra la fecha en el siguiente formato 07-07-2014.
Tipo de Datos Decimal
Decimal: Tipo de datos que se utiliza para almacenar nmeros decimales que pueden tener
hasta 38 dgitos.
Tipo de Datos Monetario
Money: Cantidad monetaria positiva o negativa.
Propiedades de Datos
Propiedad NULL: Hay dos formas de expresar el trmino NULL, al implementarlo como NULL
estamos indicando que el contenido de dicha columna no es obligatorio, si se necesita
especificar que el campo es obligatorio se implementar con NOT NULL.
Propiedad IDENTITY: Propiedad slo aplicada a campos numricos, ya que define un
autoincremento automtico de valores.
Implementando las tablas Utilizando Lenguaje de Definicin de Datos DDL
--ACTIVAMOS LA BASE DE DATOS PARA EMPEZAR A TRABAJAR CON ELLA
USE DBRESERVAM
GO
--IMPLEMENTANDO LAS TABLAS DE LA BASE DATOS
--TABLA PAS
CREATE TABLE pais (
idpais char(4) not null primary key,
nombre varchar(30) not null unique
)
go

--TABLA PASAJERO
CREATE TABLE pasajero (
idpasajero char(8) not null primary key,
nombre varchar(20) not null,
apaterno varchar(20) not null,
amaterno varchar(20) not null,
tipo_documento varchar(30) not null,
num_documento varchar (12) not null,
fecha_nacimiento date not null,
idpais char(4) not null,
telefono varchar(15) null,
email varchar(50) not null unique,
clave varchar(20) not null
)
go
--TABLA AEROPUERTO
CREATE TABLE aeropuerto (
idaeropuerto char(5) not null,
nombre varchar(50) not null,
idpais char(4) not null
)
go
--TAMBIEN SE PUEDE AGREGAR LA LLAVE PRIMARIA DESPUES DE CREAR LA
TABLA
ALTER TABLE aeropuerto
ADD CONSTRAINT pk_aeropuerto_idaeropuerto
PRIMARY KEY NONCLUSTERED (IDAEROPUERTO)
GO
--TAMBIEN VOY A CREAR EL CONSTRAINT DE CAMPO NICO
ALTER TABLE aeropuerto
ADD CONSTRAINT uq_aeropuerto_nombre
UNIQUE(idaeropuerto)
GO
--TABLA AEROLNEA
CREATE TABLE aerolinea (
idaerolinea int not null primary key,
ruc char(11) not null unique,
nombre varchar(40) not null unique
)
go
--TABLA AVIN
CREATE TABLE avion (
idavion char(5) not null primary key,
idaerolinea int not null,
fabricante varchar(40) null,
tipo varchar(30) null,
capacidad int not null
)
go

7. Restricciones de los Campos


Unique: Permite determinar que los valores registrados en una misma columna no sean
idnticos, es decir se mantengan nicos. Por ejemplo el email de una persona es un campo
nico.

Check: Permite restringir el rango de valores que pueden estar permitidos ingresar en una o
ms columnas de una tabla.
Default: Permite registrar un dato en un campo por defecto cuando el usuario no ingresa
ningn valor, la propiedad del campo de la tabla necesariamente tiene que ser Null.
Ejemplo se puede Utilizar para los campos de tipo Date (fecha), cuando el usuario no ingresa
ninguna fecha que se asigne la fecha actual.
Implementado las tablas faltantes de nuestro ejercicio Propuesto Dbreserva
e implementando las restricciones

--Eliminar la tabla avin y la creare de nuevo pero dejando un campo menos


drop table avion
--creando de nuevo la tabla avion
CREATE TABLE avion (
idavion char(5) not null primary key,
idaerolinea int not null,
fabricante varchar(40) null,
tipo varchar(3) null
)
go
--voy agregar nuevamente la capacidad
ALTER TABLE AVION
ADD capacidad int not null
go
--eliminar nuevamente capacidad
--ALTER TABLE avion
--drop column capacidad
--go
--voy a modificar la columna tipo
ALTER TABLE avion
ALTER COLUMN tipo varchar(30) not null
go
--TABLA ASIENTO
CREATE TABLE asiento (
idasiento int not null primary key,
letra char(2) not null,
fila int not null
)
go
--TABLA TARIFA
CREATE TABLE tarifa(
idtarifa int not null primary key,
clase varchar(20) not null unique,

precio money not null,


impuesto money not null
)
go
--TABLA RESERVA
CREATE TABLE reserva(
idreserva int not null primary key,
costo money not null,
fecha date NULL,
observacion varchar(200) null
)
go
--AGREGAREMOS UNA RESTRICCIN DEFAULT A LA FECHA PARA QUE LA FECHA POR
DEFECTO SEA LA FECHA ACTUAL
ALTER TABLE reserva
ADD CONSTRAINT DFL_RESERVA_FECHA
DEFAULT GETDATE() FOR fecha
go
--TABLA VUELO
CREATE TABLE vuelo(
idasiento int not null,
idaeropuerto char(5) not null,
idreserva int not null,
idavion char(5) not null,
idtarifa int not null
)
go
--IMPLEMENTANDO LAS LLAVES PRIMARIAS DE LA TABLA VUELO
ALTER TABLE VUELO
ADD PRIMARY KEY NONCLUSTERED (idasiento,idaeropuerto,idreserva,idavion)
go
--TABLA PAGO
CREATE TABLE pago(
idpago int not null primary key identity,
idreserva int not null,
idpasajero char(8) not null,
fecha date DEFAULT GETDATE(),
monto money not null,
tipo_comprobante varchar(20) not null,
num_comprobante varchar(15)not null,
impuesto decimal (5,2) not null
)
go
--AGREGARE UNA RESTRICCIN CHECK PARA SOLO INGRESAR FECHAS IGUALES O
MENORES A LA FECHA ACTUAL

ALTER TABLE pago


ADD CONSTRAINT CHK_PAGO_FECHA
CHECK (fecha<=getdate())
Go

8.

Relaciones
El modo de relacionar registros entre tablas es por tanto mediante referencias, para lo cual se
usan los identificadores definidos como claves primarias y forneas.
Clave primaria
En el diseo de bases de datos relacionales, se llama clave primaria (Primary Key) a un campo
o a una combinacin de campos que identifica de forma nica a cada fila de una tabla. Una
clave primaria comprende de esta manera una columna o conjunto de columnas. No puede
haber dos filas en una tabla que tengan la misma clave primaria.
Una clave primaria debe identificar a todas las posibles filas de una tabla y no nicamente a las
filas que se encuentran en un momento determinado. Ejemplos de claves primarias son DNI
(asociado a una persona) o ISBN (asociado a un libro). Las guas telefnicas y diccionarios no
pueden usar nombres o palabras o nmeros del sistema decimal de Dewey como claves
candidatas, porque no identifican unvocamente nmeros de telfono o palabras.
Clave fornea
En el contexto de bases de datos relacionales, una clave fornea o clave ajena (o Foreign Key
FK) es una limitacin referencial entre dos tablas. La clave fornea identifica una columna o
grupo de columnas en una tabla (tabla hija o referendo) que se refiere a una columna o grupo
de columnas en otra tabla (tabla maestra o referenciada). Las columnas en la tabla referendo
deben ser la clave primaria u otra clave candidata en la tabla referenciada.
Los valores en una fila de las columnas referendo deben existir solo en una fila en la tabla
referenciada. As, una fila en la tabla referendo no puede contener valores que no existen en la
tabla referenciada. De esta forma, las referencias pueden ser creadas para vincular o relacionar
informacin. Esto es una parte esencial de la normalizacin de base de datos. Mltiples filas en
la tabla referendo pueden hacer referencia, vincularse o relacionarse a la misma fila en la tabla
referenciada. Mayormente esto se ve reflejado en una relacin uno (tabla maestra o
referenciada) a muchos (tabla hija o referendo).
Diagrama Relacional Base de Datos en Sql Server 2014
En el vdeo mostrado a continuacin, se describe cmo crear relaciones de clave externa en
SQL Server 2014 mediante cdigo Transact-SQL. Cuando se asocian filas de una tabla con
filas de otra tabla, se crea una relacin entre las dos tablas.
Cdigo que permite crear el diagrama entidad relacin de nuestra base de datos
Propuesta
--IMPLEMENTADO LAS LLAVES FORNEAS
--Relacin Entre la tabla pasajero y pas
ALTER TABLE pasajero
ADD CONSTRAINT FK_pasajero_pais
FOREIGN KEY (idpais) REFERENCES pais (idpais)
go
--Relacin entre la tabla aeropuerto pas
ALTER TABLE aeropuerto
ADD CONSTRAINT FK_aeropuerto_pais
FOREIGN KEY(idpais) REFERENCES pais (idpais)
go

--Relacin entre la tabla pago y pasajero


ALTER TABLE pago
ADD CONSTRAINT FK_pago_pasajero
FOREIGN KEY (idpasajero) REFERENCES pasajero (idpasajero)
go
--Relacin entre la tabla pago y reserva
ALTER TABLE pago
ADD CONSTRAINT fk_pago_reserva
FOREIGN KEY (idreserva) REFERENCES reserva(idreserva)
go
--Relacin entre la tabla avin y aerolnea
ALTER TABLE avion
ADD CONSTRAINT FK_avion_aerolinea
FOREIGN KEY (idaerolinea) REFERENCES aerolinea(idaerolinea)
go
--Relacin entre la tabla vuelo y asiento
ALTER TABLE vuelo
ADD CONSTRAINT FK_vuelo_asiento
FOREIGN KEY (idasiento) REFERENCES asiento(idasiento)
go
--Relacin entre la tabla vuelo y reserva
ALTER TABLE vuelo
ADD CONSTRAINT FK_vuelo_reserva
FOREIGN KEY (idreserva) REFERENCES reserva(idreserva)
go
--Relacin entre la tabla vuelo y avin
ALTER TABLE vuelo
ADD CONSTRAINT FK_vuelo_avion
FOREIGN KEY (idavion) REFERENCES avion(idavion)
go
--Relacin entre la tabla vuelo y tarifa
ALTER TABLE vuelo
ADD CONSTRAINT FK_vuelo_tarifa
FOREIGN KEY (idtarifa) REFERENCES tarifa(idtarifa)
go
--Relacin entre la tabla vuelo y aeropuerto
ALTER TABLE vuelo
ADD CONSTRAINT FK_vuelo_aeropuerto
FOREIGN KEY (idaeropuerto) REFERENCES aeropuerto(idaeropuerto)
go

9. Separar y Adjuntar Base de Datos


Cuando creamos una base de datos el servidor la protege de gestiones desde el exterior, eso
quiere decir que desde el explorador de windows no se podr eliminar ni cambiar de nombre a
la DB.

Para poder cambiar de ubicacin fsica o modificar el nombre de la Base de Datos, el Motor
propone algunas polticas de gestin proporcionando funciones, sentencias e intrucciones para
dicho control.
Separar Base de Datos DETACH
Procedimiento Almacenado SP_DETACH_DB (Permite separar una Base de Datos del Servidor
Actual):
use master
SP_DETACH_DB @DBNAME=DBRESERVA
GO
Adjuntar Base de Datos
Utilizaremos el Asistente de Microsoft SQL Server Management Studio.
Lo veremos en el vdeo mostrado a continuacin.
10. Lenguaje SQL
El lenguaje SQL est compuesto por comandos, clusulas, operadores y funciones de
agregados. Estos elementos se Combinan en las instrucciones para crear, actualizar y
Manipular las base de datos.
Existen 2 tipos de Comandos SQL:
Lenguaje de Definicin de Datos (DDL), comandos para crear y definir nuevas base de
datos, tablas, campos e ndices.
Lenguaje de Manipulacin de Datos (DML), comandos para insertar, modificar y eliminar
registros, as como ordenar, filtrar y extraer informacin de la base de datos.
2. Lenguaje de Manipulacin de Datos (DML)
El lenguaje de Manipulacin de Datos (DML) es un trmino usado para recuperar y trabajar con
datos en Sql Server, incluye instrucciones para agregar, modificar, consultar o quitar datos de
una base de Datos en Sql Server.

Las siguientes sentencias son de categora DML:


INSERT

UPDATE

DELETE

SELECT

MERGE

BULK INSERT

Ejemplos: Insertar Registros en las Tablas


Aerolnea

Pas

Pasajero

Reserva

Pago

Tarifa

Aeropuerto

11. SENTENCIA INSERT (Insertar Registros):


Permite agregar una nueva fila a una tabla o vista.
INSERT [INTO]
[ESQUEMA] TABLA O VISTA [(Lista de columnas)]
[VALUES] ('Lista de valores')

SENTENCIA INSERT
Ejemplos: Insertar Registros en las Tablas
Aerolnea
Pas
Pasajero
Reserva
Pago
Tarifa
Aeropuerto
Tabla Aeropuerto

----Insertar registros en la tabla aeropuerto


insert into aeropuerto (idaeropuerto,idpais,nombre)
values ('AE01','0003','Bariloche'),
('AE02','0003','Mar del Plata'),
('AE03','0001','Jorge Chvez')
go
----Verificando los registros insertados en la tabla aeropuerto
select * from AEROPUERTO
Tabla Reserva

--Insertar registros en la tabla reserva


insert into RESERVA (idreserva,costo,fecha,observacion)
values ('1','140','01-27-2013','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('2','100','01-01-2013','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('3','300','03-04-2014','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('4','800','04-05-2014','')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('5','250',getdate(),'')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('6','1150',getdate(),'')
go
insert into RESERVA (idreserva,costo,fecha,observacion)
values ('7','700',getdate(),'')
go
Tabla Pago

--Insertar registro en la tabla pago


insert into pago (idreserva,fecha,idpasajero,monto,tipo_comprobante,num_comprob
ante,impuesto)
values ('1','01-27-2013','P0000001',40,'Ticket','0010007',0.18),
('5','05-05-2014','P0000002',250,'Factura','001-0002',0.18),
('7',getdate(),'P0000007',700,'Factura','001-0003',0.18)
go
--Verificando registros insertados en la tabla pago
select * from pago
Tabla Tarifa

--Insertar tarifa
insert into tarifa
values ('1','Supervip',1200,12),
('2','Vip',1000,12),
('3','Nacional',800,12),
('4','Econmica',500,0)
go
--Verificando registros insertados en la tabla tarifa
select * from tarifa

12. SENTENCIA UPDATE (Modificacin y actualizacin de Datos): Permite modificar o


actualizar un conjunto de registros de una Tabla o vista dependiendo de una condicin.

UPDATE TABLA O VISTA


[SET] {column name =expresin }
[WHERE <Search_Condition>]
Ejemplos
1. Actualizar los Valores de la columna impuesto por el valor 11 a todos los registros de la tabla
TARIFA.
Tabla Tarifa

update tarifa
set impuesto=11
go
2. Actualizar los valores de la columna impuesto aumentado en 2 a todos los registros de la
tabla TARIFA.

update tarifa
set impuesto=impuesto + 2
go
3. Asignar el impuesto a cero slo a los registros cuya clase sea Econmico de la tabla tarifa.
update tarifa
set impuesto=0
where clase='Econmica'
go
4. Actualizar los costos de la tabla RESERVA disminuyendo en 50 a los registros cuyo ingreso
se realiz el ao 2013, utilizar variables.
Tabla Reserva

update reserva
set costo=costo - 50
where year(fecha)=2013
go
4. Asignar el texto SIN FONO en el campo telfono de los pasajeros que sean de Per

Todo esto deber ser realizado en la tabla


Pasajero.
Tabla Pasajero

update pasajero
set telefono = 'Sin Fono'
where idpais= (select idpais from pais where nombre='Per')
go

13. SENTENCIA DELETE (Eliminacin de Registros de una tabla): Permite eliminar todos los
registros especficados en una determinada tabla.
DELETE
[TOP { Expresin } ]
FROM TABLE
[WHERE <Search_Condition>]
Ejemplos
1. Eliminar todos los registros de la Tabla AEROLNEA.
Tabla Aerolnea

delete from aerolinea

go
2. Eliminar el registro de la tabla Pasajero cuyo idpasajero sea P0000004.
Tabla Pasajero

delete from pasajero


where idpasajero='P0000004'
go
3. Eliminar los registros de la tabla PASAJERO cuyo pas sea Mxico, utilizar subconsultas.

delete from pasajero


where idpais = (select idpais from pais where nombre = 'Mxico')
go
4. Eliminar los registros de la tabla RESERVA que sean del ao 2013 y que no superen los $
70.
Tabla Reserva

delete from reserva


where year(fecha)= 2013 and costo>70

go
5. Eliminar los registros de la tabla PAGO, que se han efectuado en el ao 2012 2013.
Tabla Pago

delete from pago


where year(fecha)=2012 or year(fecha)=2013
go
14. Back Up de Base de Datos
Una copia de seguridad, copia de respaldo en tecnologas de la informacin es una copia de
los datos originales que se realiza con el fin de disponer de un medio para recuperarlos en caso
de su prdida. Los Backup son tiles ante distintos eventos y usos:

Recuperar los datos de los sistemas informticos de una catstrofe informtica, natural
o ataque.

Restaurar una pequea cantidad de informacin que pueden haberse eliminado


accidentalmente, corrompido.
Restaurar Base de Datos
El proceso de copia de seguridad se complementa con otro conocido como restauracin de los
datos (en ingls restore), que es la accin de leer y grabar en la ubicacin original u otra
alternativa los datos requeridos que han sido respaldados con anterioridad.

15. Lenguaje de Manipulacin de Datos


COMANDO SELECT (Recuperacin de Registros): Uno de los propsitos de la Gestin de
Base de Datos es almacenar informacin Lgica y ordenada dentro de tablas, usaremos la
sentencia SELECT y sus variadas formas de recuperar informacin desde una tabla en la base
de datos activa.
Sintxis
SELECT [ALL - DISTINCT]
[TOP nmero [PERCENT] ]
[FROM] tabla
[WHERE <Condicin> ]

[<GROUP BY>]
[HAVING <Condicin> ]
[ORDER BY columna [ASC-DESC]]
Clusulas Principales
ALL: Especifica el conjunto de filas devueltas por la consulta.
DISTINCT: Sentencia utilizada para mostrar filas nicas no repetidas.
TOP: Para mostrar solo un nmero o porcentaje indicado de filas obtenidas.
FROM: Permite indicar las filas que estn involucradas.
WHERE: Clusula que permite condicionar el resultado de una consulta.
GROUP BY: Permite agrupar un conjunto de registros en forma de resumen.
HAVING: Permite condicionar el resultado despus de haber agrupado los registros.
ORDER BY: Permite ordenar los registros de acuerdo a una columna espcfica.
Ejemplos
Ejemplo 1:
Mostrar los registros de la tabla PASAJERO , ordenarlos de manera ascendente por su apellido
paterno.
Tabla Pasajero

--Seleccionando todas las filas y columnas


select all * from PASAJERO
order by apaterno asc
go
--Seleccionando slo algunas columnas
--1ra forma
select idpasajero as Codigo, apaterno as ApellidoPaterno,
amaterno as ApellidoMaterno
from PASAJERO
go
--2da Forma

select idpasajero as [Cdigo], apaterno as [Apellido Paterno],


amaterno as [Apellido Materno]
from PASAJERO
go
--Concatenando los Apellidos
select idpasajero as [Cdigo], apaterno as ApellidoPaterno,
amaterno as ApellidoMaterno
from PASAJERO
go

Clusula TOP:
Especfica que el conjunto de filas devueltas por la consulta puede ser controlado en un
nmero y en porcentaje. Considere que la muestra de registros devueltas siempre ser el
primer conjunto de filas especificadas. Para especificar el porcentaje slo agregar la palabra
PERCENT.
Ejemplo 2:
Mostrar los 3 primeros registros de la tabla PASAJERO ordenados por su apellido paterno .
select top 3 idpasajero as ID, nombre as Nombre, apaterno as ApellidoP,
amaterno as ApellidoM from pasajero
order by apaterno asc
go

Ejemplo 3:
Mostrar los 3 ltimos registros de la tabla PASAJERO ordenados por ambos apellidos.
select top 3 idpasajero as ID, nombre as Nombre, apaterno as ApellidoP,
amaterno as ApellidoM from pasajero
order by apaterno desc, amaterno desc
go

Ejemplo 4:
Mostrar el 30% de registros de la tabla RESERVA.
Tabla Reserva

select top 30 percent * from reserva


go

16. Comando Select


Clusula Where
Clusula que permite condicionar el resultado de una consulta.
Ejemplos
Ejemplo 1:
Script que permita mostrar los PASAJEROS cuyo tipo de documento sea DNI.
Tabla Pasajero

select * from pasajero


where tipo_documento='DNI'
go

Ejemplo 2:
Mostrar los pagos que se han realizado la fecha 27-01-2013.
Tabla Pago

select fecha,idpasajero,monto from pago


where fecha='2013-1-27'

go

Ejemplo 3:
Mostrar los pagos realizados en el mes de mayo del ao 2014.
select fecha,idpasajero,monto from pago
where month(fecha)='5'
and year(fecha)='2014'
go

Ejemplo 4:
Mostrar los Pasajeros que no tienen asignado un telfono.

select nombre,apaterno,amaterno,telefono from pasajero


where telefono is null
go

Ejemplo 5:
Implementar un Script que permita mostrar los PASAJEROS con su correspondiente pas de
residencia.

select pas.nombre as Nombre,apaterno as ApellidoP,amaterno asApell


idoM,pai.nombre as Pais
from pasajero pas, pais pai
where pas.idpais=pai.idpais
go

17. Operadores en SQL Server


Un Operador es un smbolo que especfica una accin que es realizada por una o ms
expresiones. Categoras de Operadores:

Aritmticos

Asignacin

Lgicos
A) Operadores Aritmticos
+ Sumar : Operador de Suma Nmerica y concatenacin de Columnas.
- Restar : Operador de resta Nmerica y tambin representa a nmeros negativos.
* Multiplicar : Operador de Multiplicacin.
/ Dividir : Operador de Divisin entera y fraccionaria.
% Mdulo : Operador que Devuelve el resto de una divisin.
B) Operador de Asignacin
Sql server solo cuenta con un operador para la asignacin de valores.
El operador = se tendr que colocar en cualquier expresin que necesite asignar un valor de
cualquier tipo.
Ejemplos:
Ejemplo 1:
Script que permita mostrar el resultado de la expresin 2*(10+15) - (8/3), utilizar la sentencia
SELECT para mostrar el resultado.

Select '2*(10+5) - (8/3)' as [Operacin],


2*(10+5)-(8/3) as [Resultado]
go

Ejemplo 2:
Script que permita mostrar el resultado de la expresin Celsius=(Fharenheit-32)*5/9, usar la
sentencia Select.

select '100' as Fahrenheit,

(100-32)*5/9 as Celsius
go

Ejemplo 3:
Calcular el rea de un Crculo, almacenando el valor del radio y de PI en sus variables
respectivas.

declare @pi float


declare @radio float
declare @area float
--Asignar valores
set @pi=3.1415
set @radio=7
--Encontrar el rea del Crculo
set @area=@pi * Power(@radio,2)
select @area as [rea]
go

Ejemplo 4:
Script que permita capturar en una variable el correo electrnico del pasajero con cdigo
P0000005, usar variables Transact-SQL y sentencia Select para mostrar el email.

declare @correo varchar(70)


select @correo=email from pasajero
where idpasajero='P0000005'
--Mostramo el correo obtenido
select 'P0000005' as [Cdigo],
@correo as [Email]
go

18. Lenguaje de Manipupacin de Datos


C) Operadores Lgicos
Los operadores lgicos tienen por misin comprobar la veracidad de Alguna Condicin, estos
como los operadores de comparacin, devuelven el tipo de datos BOOLEAN (True, False,
Unknown).
AND: Representa la Lgica Y, dos expresiones deben ser TRUE para poder devolver TRUE.
ANY: Devuelve TRUE si alguna expresin del conjunto de expresiones es TRUE.
BETWEEN: Devuelve TRUE si el valor se encuentra dentro de un rango nmerico o cadena.
EXISTS: Devuelve TRUE si una determinada subconsulta devuelve por lo menos una fila de
registros.
IN: Devuelve TRUE si el operando se encuentra dentro de una lista de valores especficos.
NOT: Invierte el valor booleano de una expresin
OR: Devuelve FALSE cuando ambas expresiones sean FALSE.
SOME: Devuelve TRUE si de un conjunto de comparaciones alguna es TRUE.
Smbolos que representan a los operadores Lgicos, tenemos los siguientes:
=
<>
>
<

Igualdad de Expresiones
!= Diferencia de Expresiones
>=
Mayor / Mayor o Igual
<=
Menor / Menor o Igual

Ejemplos
Ejemplo 1:
Script para Mostrar las reservas que sean del ao 2014 y no superen los $ 500.
Tabla Reserva

select * from reserva


where year(fecha)='2014'
and costo<500
go

Ejemplo 2:
Script que permita mostrar las reservas cuyo costo se encuentre desde $400 hasta $700.

select * from reserva


where costo between 400 and 700
go
select * from reserva
where costo>=400 and costo<=700
go

Ejemplo 3:
Script que permita mostrar los pasajeros cuya letra inicial de su apellido paterno se
encuentre entre A y C.
Tabla Pasajero

select apaterno, amaterno, nombre,num_documento from pasajero


where left(apaterno,1) between 'A' and 'C'
order by apaterno asc, amaterno asc, nombre asc
go

Ejemplo 4:
Script que permita mostrar los pasajeros cuya letra inicial de su apellido paterno No se
encuentre entre A y C.

select apaterno, amaterno, nombre,num_documento from pasajero


where not left(apaterno,1) between 'A' and 'C'
order by apaterno asc, amaterno asc, nombre asc
go

Ejemplo 5:
Script que permita mostrar las reservas cuya fecha se encuentra en el ao 2013.

select * from reserva


where fecha between '2013-01-01' and '2013-12-31'
go
select * from reserva
where fecha>='2013-01-01' and fecha<='2013-12-31'
go
select * from reserva
where year(fecha)=2013
go

19. Lenguaje de Manipulacin de Datos


C) Operadores Lgicos

Operador LIKE: Devuelve TRUE si el operando coincide a lo ms con un patrn especfico. El


patrn es una cadena de caracteres que se buscar en la expresin. Los comodnes a utilizar
son:
%: Representa a uno o ms caracteres. Puede ser cualquier tipo de carcter textual o smbolo.
_: Representa un solo carcter de cualquier tipo.
[ ]: Representa cualquier carcter individual, dentro de un conjunto de caracteres.
[^]: Representa cualquier carcter individual fuera del intervalo especificado.
IS NOT NULL: Representa que el contenido de una columna no este vaca.
Ejemplos:
Ejemplo 1:
Script que permita verificar si un determinado pas fue registrado o no en su tabla
origen.

declare @pais varchar(40)


set @pais='Per' --Alt + 39
if exists(select idpais from pais where nombre=@pais)
print 'Pas ya se encuentra registrado'
else
print 'Pas no se encuentra registrado'
go
Ejemplo 2:
Script que permita mostrar los pasajeros cuyo nombre inicie con la letra A
Tabla Pasajero

select * from pasajero


where nombre like 'A%'

go
Ejemplo 3:
Mostrar los pasajeros que tienen una cuenta de correo GMAIL

select * from pasajero


where email like '%gmail%'
go
Ejemplo 4:
Mostrar los pasajeros cuyo segundo carcter de su nombre sea la letra A, O U.

select * from pasajero


where nombre like '_[AOU]%'
go
Ejemplo 5:
Mostrar los pasajeros cuyo segundo carcter de su nombre no sea la letra A, O U.

select * from pasajero


where nombre like '_[^AOU]%'
go
Ejemplo 6:
Mostrar los pagos realizados por un determinado pasajero, filtrar a dicho pasajero por su
nmero de documento. Usar subconsultas Operadores T-SQL.

declare @documento varchar(50)


set @documento ='47715777'
select * from pago
where idpasajero=(
select idpasajero from pasajero
where num_documento=@documento
)
go
20. Combinacin de Tablas JOIN
En determinada ocasin se tendr que unir ms tablas para combinar los
valores y poder mostrarlos juntos en una consulta, para esto utilizamos la
clusula JOIN.
Hay que diferenciar dos tipos de combinaciones:
Internas: Devuelven todas las filas que cumplen con la condicin de las tablas,
en caso de no encontrarse coincidencia de valores no muestra nada.
Externas: las filas resultantes no son directamente de la tabla origen, podra
ser de la izquierda, derecha o completa.
Combinacin de tablas Join

INNER JOIN
JOIN
LEFT JOIN
RIGHT JOIN
FULL JOIN
CROSS JOIN

INNER JOIN
El INNER JOIN es otro tipo de composicin de tablas, permite emparejar filas
de distintas tablas de forma ms eficiente que con el producto cartesiano
cuando una de las columnas de emparejamiento est indexada.

Ejemplo
1. Implementar un Script que permita mostrar los pasajeros con su
correspondiente pas de residencia (Inner Join).
Tabla Pasajero-Pas

--Utilizando un producto cartesiano


select pas.nombre,pas.apaterno,pas.amaterno,pai.nombre as [Pas]
from pasajero pas, pais pai
go
--Utilizando la clusula Inner Join
select pas.nombre,pas.apaterno,pas.amaterno,pai.nombre as Pais
from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
go
--Utilizando un producto cartesiano y aplicando un filtro Where
select pas.nombre,pas.apaterno,pas.amaterno,pai.nombre as Pais
from pasajero pas, pais pai
where pas.idpais=pai.idpais
go

2. Implementar un Script que permita mostrar los pasajeros con las siguientes
columnas idpasajero,
nombre, apaterno, amaterno, pas, fecha de pago,
monto de pago (Inner Join).
Tabla Pas-Pasajero-Pago

select pas.idpasajero,pas.nombre,pas.apaterno, pas.amaterno,pai.no


mbre as Pais,pag.fecha,pag.monto
from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
inner join pago pag
on pag.idpasajero=pas.idpasajero
go

3. Implementar un Script que permita mostrar las reservas de un determinado


PASAJERO
especificado por su nombre. Finalmente, debe
ordenar la fecha de reserva de forma descendente.
Tabla Reserva

declare @num_documento varchar(12)='47715777'


select res.*
from pago pag inner join pasajero pas
on pag.idpasajero=pas.idpasajero
inner join reserva res
on pag.idreserva=res.idreserva
where pas.num_documento=@num_documento
go

21. Combinacin de Tablas JOIN


INNER JOIN
JOIN
LEFT JOIN
RIGHT JOIN
CROSS JOIN
FULL JOIN
LEFT JOIN
La sentencia LEFT JOIN retorna la pareja de todos los valores de la izquierda con los valores
de la tabla de la derecha correspondientes, o retorna un valor nulo NULL en caso de no
correspondencia.
El operador de combinacin LEFT JOIN, indica que todas las filas de la primera tabla se deben
incluir en los resultados, con independencia si hay datos coincidentes en la segunda tabla.

Ejemplos:
1. Implementar un Script que permita mostrar los pasajeros que no han realizado ningn pago
(Left Join).
Tabla Pas-Pasajero-Pago

--Utilizando Left Join


select pas.* from pasajero pas left join pago pag
on pas.idpasajero=pag.idpasajero
where pag.idpasajero is null
go

RIGHT JOIN
Se devuelven todas las filas de la tabla de la derecha. Cada vez que una fila de la tabla de
la derecha no tenga correspondencia en la tabla de la izquierda, se devuelven valores
NULL para la tabla de la izquierda.
El operador de combinacin RIGHT JOIN, indica que todas las filas de la segunda tabla se
deben incluir en los resultados, con independencia si hay datos coincidentes en la primera
tabla.

2. Implementar un Script que permita mostrar todos los registros de la tabla pasajero y pas
(Right Join).
Tabla Pasajero-Pas

--Utilizando Right Join


select pai.nombre as Pais,pas.* from pasajero pas
right join pais pai

on pas.idpais=pai.idpais

go

FULL JOIN
Una combinacin externa completa devuelve todas las filas de las tablas de la izquierda y la
derecha. Cada vez que una fila no tenga coincidencia en la otra tabla, las columnas de la lista
de seleccin de la otra tabla contendrn valores NULL. Cuando haya una coincidencia entre las
tablas, la fila completa del conjunto de resultados contendr los valores de datos
de las tablas base.

CROSS JOIN
Las combinaciones cruzadas presentan el producto cartesiano de todos los registros de las dos
tablas. Se emplea el CROSS JOIN cuando se quiere combinar todos los registros de una tabla
con cada registro de otra tabla.

3. Implementar un Script que permita mostrar las registros de la tabla pasajero y pago de tal
forma que se aplique un producto cartesiano entre sus filas (Cross Join).

select * from pasajero cross join pago pag

22. Datos Agrupados


GROUP BY
Agrupa un conjunto de registros de acuerdo a los valores de una o ms
columnas de una tabla.
[ROLLUP]
[CUBE]
<Lista de Columnas>

ROLLUP: Genera filas de agregado a la clusula Group By ms filas de


subtotal y tambin una fila con un total general.
CUBE: Genera filas de agregado a la clusula Group By ms una fila de
superagregado y filas de tabulacin Cruzada.
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar las claves primarias de la tabla pas
agrupadas desde la tabla pasajero. Usar la clusula Group By.
Tabla Pasajero-Pas

--Utilizando Group By
select p.idpais from pasajero p
group by p.idpais
go

2. Implementar un Script que permita determiner el total de Aviones que tiene


cada aerolnea, y filtrar solo las aerolneas que tienen ms de un avin. Usar la
clusula Group By y Having.
Tabla Aerolnea-Avin

--Utilizando Group By
Select aer.nombre,count(avi.idavion) as Total_Aviones
from aerolinea aer inner join avion avi
on avi.idaerolinea=aer.idaerolinea
group by aer.nombre
having count(avi.idavion)>1
go

23. Funciones Agregadas


Las funciones de agregado realizan un clculo sobre un conjunto de valores y devuelven un
solo valor. Se suelen utilizar con la clusula GROUP BY de la instruccin SELECT.
SUM
COUNT
MAX
MIN
AVG
SUM
Permite devolver la suma de todos los valores distinguidos en una determinada expresin. Esta
funcin solo puede utilizarse con columnas de tipo numrico.
SUM(Columna o Expresin)
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar el acumulado de los montos registrados en la tabla
pago (Funcin SUM).
Tabla Pago

--Utilizando Funcin SUM


select sum(monto) as [Total Acumulado]
from pago
go

Ejemplo 2:
Implementar un Script que permita mostrar el acumulado de los montos registrados en la tabla
pago por cada ao, considere el ao de la columna fecha. Use la Funcin SUM y la clusula
Group By.
--Utilizando SUM y Group By
select year(fecha) as [Ao], sum(monto) as [Total Pago]
from pago
group by year(fecha)
go

Ejemplo 3:
Implementar un Script que permita mostrar el acumulado de los montos registrados en la tabla
pago por cada ao, y mes, considere el ao de la columna fecha. Use la Funcin SUM y la
clusula Group By.
--Utilizando SUM y Group By
select year(fecha) as [Ao],month(fecha) as Mes, sum(monto) as [Total
Pago] from pago
group by year(fecha),month(fecha)
go

24. Funciones Agregadas


SUM
COUNT
MAX
MIN
AVG
COUNT
Funcin que permite devolver el nmero de elementos de un grupo. Count siempre devolver
un valor numrico.
COUNT(All Distinct Columna *)
All: Al especificarlo todos los valores son contabilizados.
Distinct: Permite definir la no repitencia de valores condicionados de la consulta.
Columna: Se puede especificar el nombre de una columna de la tabla a contar.
Asterisco (*): Representa a todas las filas de la tabla.
Ejemplos
Ejemplo 1:
Implementar un Script que permita determinar el total de pasajeros registrados (Funcin
COUNT).
Tabla Pasajero

--Utilizando Funcin count


select count(idpasajero) as Total_Pasajeros
from pasajero
go
select count(*) as Total_Pasajeros
from pasajero
go

Ejemplo 2:
Implementar un Script que permita determinar el total de pasajeros registrados agrupados por
su pas, tener en cuenta las columnas a mostrar Nombre del pas, Total Pasajeros. Use la
Funcin agregada COUNT y la clusula Group By e Inner Join.
Tabla Pasajero-Pas

T
--Usando la Funcin agregada COUNT y la clusula Group By e Inner Join.
select pai.nombre as [Pas],count(pas.idpasajero) as
[Total Pasajeros] from pasajero pas inner join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
go

3. Implementar un Script que permita mostrar el total de pasajeros y el monto acumulado de


pagos de sus viajes realizados por un determinado pas.
Tabla Pasajero-Pas-Pago

select pai.nombre as [Pas],count(distinct pas.num_documento)


as [Total Pasajeros], sum(pag.monto) as [Monto Acumulado]
from pasajero pas inner join pais pai
on pai.idpais=pas.idpais inner join pago pag
on pag.idpasajero=pas.idpasajero
group by pai.nombre
go

25. Funciones Agregadas


SUM
COUNT
MAX
MIN
AVG
MAX
Funcin que permite determinar el valor mximo de una expresin propuesta por el usuario.
Solo puede ser usado en columnas o expresiones que tenga como tipo de dato un entero.
MAX(All Columna Expresin).
MIN
Funcin que permite determinar el valor mnimo de una expresin propuesta por el usuario.
Solo puede ser usado en columnas o expresiones que tenga como tipo de dato un entero.
MIN(All Columna Expresin).
MAX Y MIN
All: Especifica que todos los valores son evaluados.
Columna: Se puede especificar el nombre de una columna de la tabla a evaluar.
Expresin: Representa a una funcin SQL o a un juego de operadores aritmticos.

Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar el monto ms alto y ms bajo registrado en la tabla
PAGO (Funcin MAX y MIN).
Tabla Pago

--Usando la funcin MAX y MIN


select max(monto) as [Monto Mayor],
min(monto) as [Monto Menor]
from pago
go

Ejemplo 2:
Implementar un Script que permita mostrar los montos ms altos y ms bajos por ao de la
tabla pago, ordenados de forma descendente.

--Usando la funcin MAX y MIN


select year(fecha)as [Ao],max(monto) as [Monto Mayor],
min(monto) as [Monto Menor]
from pago
group by year(fecha)
order by year(fecha) desc
go

Ejemplo 3:
Implementar un Script que permita mostrar los datos del pasajero que registra el mayor monto
desde la tabla PAGO.

--Usando la funcin MAX


declare @maxPago money

select @maxPago=max(monto) from pago


select pas.*
from pasajero pas
where pas.idpasajero=(select idpasajero from pago
where monto=@maxPago)
go

26. Funciones Agregadas


SUM
COUNT
MAX
MIN
AVG
AVG
Funcin que devuelve el promedio de los valores de un determinado grupo, consideremos que
dicha columna debe de ser numrica.
AVG(Columna Expresin)
Columna: Se puede especificar el nombre de una columna de la tabla para especificar el
promedio.
Expresin: Representa a una funcin SQL o a un juego de operadores aritmticos. No se
permite las funciones de agregado ni subconsultas.
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar el precio promedio de las tarifas asignadas a los
diferentes vuelos. (Funcin AVG).

Tabla Tarifa

--Usando la Funcin AVG


select avg(precio) as [Tarifa Promedio]
from tarifa
go

Ejemplo 2:
Implementar un Script que permita mostrar el monto promedio de pagos agrupado por pases.
(Funcin AVG).
Tabla Pas-Pasajero-Pago

--Usando la Funcin AVG


select pai.nombre,avg(pag.monto) as [Promedio Pago]
from pago pag inner join pasajero pas
on pag.idpasajero=pas.idpasajero
inner join pais pai
on pai.idpais=pas.idpais
group by pai.nombre
go

27. Agregar Conjunto de Resultados: UNION


El operador UNION permite mostrar los resultados de varias consultas SELECT en una sola. La
regla del uso para este operador es que ambas tablas deben de tener las mismas columnas o
especificarlas de la misma forma, y que los tipos de datos sean exactamente iguales.
UNION
Consulta1
UNION
Consulta2
Ejemplos
Ejemplo 1:
Implementar un Script que permita mostrar los apellidos paternos de los pasajeros y los
nombres de los pases en una misma consulta.
Tabla Pas-Pasajero

--Agregando resultados UNION


select pas.idpasajero,pas.apaterno
from pasajero pas
UNION
select pai.idpais,pai.nombre
from pais pai
go

Ejemplo 2:
Implementar un Script que permita mostrar el total de registros de las tablas Pasajero, Pas,
Pago desde una misma consulta.
Tabla Pas-Pasajero-Pago

--Agregando resultados UNION


select 'pasajero' as [Tabla], count (idpasajero)
as [Total Registros] from pasajero
UNION
select 'pais' as [tabla], count (idpais) as [Total Registros]
from pais
UNION
select 'pago' as [tabla], count (idpago) as [Total Registros]
from pago

go

28. Programacin Transact SQL


Transact SQL es el lenguaje de programacin que proporciona Microsoft SQl Server para
extender el SQL estndar con otro tipo de instrucciones y elementos propios de los lenguajes
de programacin ya que esta parte est limitada en SQL.
Scripts
Procedimientos Almacenados
Funciones
Triggers
Estructuras de Control:
Estructuras Secuenciales: Las instrucciones se ejecutan una a continuacin de otra.
Estructuras Selectivas: Las instrucciones se ejecutan segn el valor lgico de una variable.
Estructuras Repetitivas: Las instrucciones se ejecutan en forma repetida segn una condicin
lgica llamada ciclo bucle.
Estructura Selectiva IF
La estructura IF evala una condicin lgica y en funcin del resultado booleano (true o false)
se realiza una u otra expression.
Estructura Selectiva IF - Sintxis
IF <Condicin_Lgica>
<BEGIN>
<Expresiones_CondicinTrue>
<END>
ELSE
<BEGIN>
< Expresiones_CondicinFalse>
<END>
Ejemplos:
Ejemplo 1:
Implementar un Script que permita insertar un nuevo registro en la tabla pas, en caso se
registre duplicidad en el nombre de un pas mostrar un mensaje de pas ya registrado, caso
contrario insertar dicho registro y mostrar un mensaje de Pas registrado Correctamente.
Tabla Pas

--Estructura Condicional IF
declare @idpais char(4)='0011',
@nombre varchar(30)='Argelia'
if exists(select * from pais where nombre=@nombre)
begin
print 'Pas ya Registrado'
end
else
begin
insert into pais
values (@idpais,@nombre)
print 'Pas Registrado Correctamente'
end
go

Ejemplo 2:
Implementar un Script que permita Mostrar el mensaje de No hay Pasajeros en este pas, solo
cuando el total de pasajeros asignados a un determinado Pas no tenga registros en la tabla
pasajero. Caso contrarios determinar cuntos pasajeros tiene dicho pas.
Tabla Pas-Pasajero

declare @nombre char(40)='Bolivia'

if (select count(*) from pasajero pas


left join pais pai on pas.idpais=pai.idpais
group by pai.nombre
having pai.nombre=@nombre) is null
begin
print 'No hay Pasajeros en este Pas'
end
else
begin
declare @total int
select @total=count(*)
from pasajero pas left join pais pai
on pas.idpais=pai.idpais
group by pai.nombre
having pai.nombre=@nombre

end
go

print 'El Pas ' + @nombre + 'Tiene ' +


cast(@total as char(2)) + ' Pasajero'

29. Programacin Transact SQL


Scripts
Procedimientos Almacenados
Funciones
Triggers
Estructura Condicional Mltiple CASE
La estructura CASE evala una expresin que podr tomar N valores distintos, segn se elija
uno de estos valores se tomar N posibles acciones
Estructura Mltiple CASE - Sintxis
CASE <Columna>
WHEN Expresin THEN Expresin_Resultado
[n]
[
ELSE Expresin_Falsa
]
END
Ejemplos:
Ejemplo 1:
Implementar un Script que permita mostrar la fecha en texto registrada en la tabla RESERVA.

2014-10-01 = 01 Octubre 2014


Tabla Reserva

--Estructura Mltiple Case


select *,
cast(day(fecha) as char(2)) +
case month(fecha)
when 1 then ' Enero '
when 2 then ' Febrero '
when 3 then ' Marzo '
when 4 then ' Abril '
when 5 then ' Mayo '
when 6 then ' Junio '
when 7 then ' Julio '
when 8 then ' Agosto '
when 9 then ' Septiembre '
when 10 then ' Octubre '
when 11 then ' Noviembre '
when 12 then ' Diciembre '
end
+ cast(year(fecha) as char(4)) as [Fecha]
from reserva
go

Ejemplo 2:
Implementar un Script que permita mostrar el nmero total de pasajeros por pas y el
mensaje NO CUENTA solo a los pases cuyo nmero de pasajeros sea cero.
Tabla Pas-Pasajero

--Estructura Mltiple Case


select pai.nombre, count(pas.idpasajero)as [Total Pasajeros],
case
when count(pas.idpasajero)=0 then 'NO CUENTA'
else ''
end as [Mensaje]
from pais pai left join pasajero pas
on pai.idpais=pas.idpais
group by pai.nombre
go

También podría gustarte