Вы находитесь на странице: 1из 23

BD_DIRECTORIO

--1 SI EXISTE LA BASE DE DATOS (BD_DIRECTORIO) ELIMINELA DEL SERVIDOR


IF DB_ID('BD_DIRECTORIO') IS NOT NULL
USE MASTER
DROP DATABASE BD_DIRECTORIO
--2 IMPLEMENTAR LA BASE DE DATOS BD_DIRECTORIO CON LOS SIGUENTES PARAMETROS
--UBICACION C:\TAREA SQL\BD_DIRECTORIO
--ARCHIVO PRIMARIO
:5MB/ 13% /89MB
--ARCHIVO DE TRANSACION
:1MB/ 15MB /66MB
CREATE DATABASE BD_DIRECTORIO
ON PRIMARY
(
NAME=BD_DIRECTORIO_PRI,
FILENAME='C:\TAREA SQL\BD_DIRECTORIO\BD_DIRECTORIO_PRI.mdf',
SIZE=5MB,
FILEGROWTH=13%,
MAXSIZE=89MB
)
LOG ON
(
NAME=BD_DIRECTORIO_LOG,
FILENAME='C:\TAREA SQL\BD_DIRECTORIO\BD_DIRECTORIO_LOG.ldf',
SIZE=1MB,
FILEGROWTH=15MB,
MAXSIZE=66MB
)
GO

--3 ACTIVAR EL BD_DIRECTORIO


USE BD_DIRECTORIO
--4 ELIMINE LA TABLA AGENDA SI EXISTE
IF OBJECT_ID ('AGENDA') IS NOT NULL
DROP TABLE AGENDA
--5 CREE LA TABLA AGENDA CON LOS ISGUIENTES CAMPOS:
--cod_agenda(entero) que genere numeracin secuencial
--apellidos (cadena de 40),nombres(cadena de 30),domicilio(cadena 50)
--distrito(cadena de 40),telefono (cadena de 7) y celular (cadena 9)
CREATE TABLE AGENDA
(
cod_agenda int IDENTITY NOT NULL,
Apellidos
varchar (40) NOT NULL,
Nombres
varchar (30)NOT NULL,
domicilio
varchar (50)NOT NULL,
distrito
varchar (40)NOT NULL,
telefono
char (7)NOT NULL,
celular char (9)NOT NULL
)
GO
--6 VERIIFICAR LA COLUMNAS CREADAS EN LA TABLA AGENDA
SELECT * FROM AGENDA

--9 CUANTOS REGISTROS EN LA TABLA (AGENDA)


SELECT COUNT (*) FROM AGENDA

--10 IMPLEMENTAR LLAVE PRIMARIA(cod_agenda) DE LA TABLA AGENDA


ALTER TABLE AGENDA
ADD PRIMARY KEY (cod_agenda)
--11 OBTENER LAS LLAVES PRIMARIAS DE LA (TAREAGENDA AGENDA CON SYSOBJECTS)
SELECT * FROM SYSOBJECTS WHERE TYPE='K'
--12 ELIMINE EL REGISTRO CUYO NOMBRE SEA "JULY SALOMENA
DELETE FROM AGENDA WHERE nombres='JULY SALOMENA'
--13 ELIMINE LOS REGSITROS CUYO NOMBRE TELEFONO SEA IGUAL A "4545454"
DELETE FROM AGENDA WHERE telefono='4545454'
--14 MUESTRE LOS NOMBRES, APELLIDOS, DISTRITO, Y TELEFONO DE LA TABLA AGENDA
SELECT nombres, apellidos,distrito,telefono FROM AGENDA

--15 OBTENER LOS USUARIOS QUE VIVEN EN INDEPENDENCIA.


SELECT * FROM AGENDA WHERE distrito='INDEPENDENCIA'

--16 ELIMINE LOS REGISTROSA LOS QUE VIVEN EN INDEPENDENCIA Y CUYO TELEFONO SEA "329653"
DELETE FROM AGENDA WHERE distrito='INDEPENDENCIA' AND telefono='3279653'
--17 OBTENER CUANTOS USUARIOS D DE INDEPENDENCIA TIENE REGISTROS EN LA AGENDA
SELECT * FROM AGENDA WHERE distrito='INDEPENDENCIA'

--18 CONSULTE SOLO A LOS USUARIOS QUE VIVEN EN INDEPENDENCIA


SELECT * FROM AGENDA WHERE distrito='INDEPENDENCIA'
--19 ELIMINE TODOS LOS REGISTROS.
DELETE FROM AGENDA
--20 MUESTRA LA TABLA YA NO HAY REGISTRSO FUERON BORRADOS TODOS
SELECT * FROM AGENDA

SENTENCIA DELETE
USO DEL (IDENTITY) SOLO PARA TIPO DE DATO INT
--1. SI EXISTE LA BASE DE DATOS (BD_SESION) ELIMINELA DEL SERVIDOR
IF DB_ID ('BD_SESION') IS NOT NULL
USE MASTER
DROP DATABASE BD_SESION
--2. Implementamos la Base de Datos BD_SESION con los siguientes parmetros:
--Ubicacin C:\TAREA SQL\BD_SESION
--Archivo Primario
: 5MB/ 7MB /40MB
--Archivo Secundario
: 5MB/ 16% /30MB
--Archivo Transaccion
: 2MB/ 11% /37MB
CREATE DATABASE BD_SESION
ON PRIMARY
(NAME=BD_SESION_PRI,
FILENAME='C:\TAREA SQL\BD_SESION\BD_SESION_PRI.mdf',
SIZE=5MB,
FILEGROWTH=7MB,
MAXSIZE=40MB
),
(NAME=BD_SESION_SEC,
FILENAME='C:\TAREA SQL\BD_SESION\BD_SESION_SEC.ndf',
SIZE=5MB,
FILEGROWTH=16%,
MAXSIZE=30MB
)
LOG ON
(NAME=BDSESION_LOG,
FILENAME='C:\TAREA SQL\BD_SESION\BD_SESION_LOG.ldf',
SIZE=2MB,
FILEGROWTH=11%,
MAXSIZE=37MB
)
GO
--3. ACTIVAR LA BD_SESION
USE BD_SESION
--4. Elimine la USUARIOS tabla si existe:
IF OBJECT_ID('USUARIOS')IS NOT NULL
DROP TABLE USUARIOS

--5. Crear la Tabla USUARIOS


--La creamos con la siguiente estructura:--(1) cod_usuario (entero) con generador de numero
Secuencial--(2) nombre (cadena 30)--(3) clave (cadena 10)
CREATE TABLE USUARIOS
(
cod_usuarios int identity NOT NULL,
nombre varchar (30) NOT NULL,
clave char (10) NOT NULL,
)
--6. Verificar la Columnas Creadas:
SELECT * FROM USUARIOS

--7. Agregamos registros a la tabla:


INSERT INTO USUARIOS VALUES('GREGORIO','casique'),
('YULISA','rajuela'),
('CARLOS','Boca'),
('PAMELA','chapita'),
('WENDY','ciencia'),
('NEYVI','trivia'),
('NOELY','melon'),
--16. Como ningn registro
cumple con la condicin, no se borran registros.
('EDINSON','river'),
--Ahora, Eliminamos todos los registros cuya clave es 'chapita':
('ERLINDA','rubit'),
-----1era forma de declarar
el Delete con (FROM)
('NADELINA','chapita'),
('PAMELA','chapitas')

DELETE FROM USUARIOS


WHERE clave='chapia'
-----2da forma de declarar el Delete: DIRECTO
DELETE USUARIOS
--8.
Seleccionamos
todos los registros, Observamos que se agregaron
WHERE
clave='chapita'
--nmeros secuenciales en el campo codigo, esto se debe porque
--creamos
el campo
codigo como
(identity)
--17. Veamos
el contenido
de la
tabla:
SELECT
*
FROM
USUARIOS
SELECT * FROM USUARIOS
--9. Cuantos usuarios Registrados en la tabla Existen:
SELECT COUNT (*) FROM USUARIOS

--como observas se eliminaron 2 registros


--el usuario 4 (pamela) y 10 (nadelina)
--18. Consultar a los todos Usuarios de nombre Pamela
SELECT * FROM USUARIOS
WHERE nombre='PAMELA'

--10.
Implementarque
llave
Primaria
a USUARIOS
--Observamos
solo
se muestra
1 registro.

--19. Ahora Eliminemos los Registros cuyo nombre sea Pamela y su contrasea sea chapitas

ALTER
TABLE
USUARIOS
-----1era
forma
de declarar el Delete con (FROM)
ADD PRIMARY KEY (cod_usuarios)
DELETE FROM USUARIOS
--11. Obtener las LLaves Primarias de la tabla AGENDA con sysobjects
WHERE* nombre='PAMELA'
AND
clave='chapitas'
SELECT
FROM SYSOBJECTS
WHERE
TYPE='K'

-----2da forma de declarar el Delete: DIRECTO

--12. Vamos a eliminar el registro cuyo nombre de usuario es "NEYVI":


DELETE
USUARIOS
-----1era
forma
de declarar el Delete con (FROM)

WHERE nombre='PAMELA' AND clave='chapitas'

DELETE FROM USUARIOS


WHERE
--Comonombre='NEYVI'
observamos se Elimino 1 Registro

--20. Ahora cuantos Registros quedan en la Tabla USUARIOS

--13.
Veamos
el contenido
de laUSUARIOS
tabla: ya no se encuentra el codigo 6
SELECT
COUNT(*)
FROM
--que es del usuario neyvi.
SELECT * FROM USUARIOS

--Observamos que solo quedan 7 Registros


--21.Intentamos
Ahora Eliminemos
los registros:
--14.
eliminarlo todos
nuevamente
AL USUARIO NEYVI:
-----1era
forma
de
declarar
el
Delete
(FROM)
-----1era forma de declarar el Delete con con
(FROM)
DELETE
FROM
USUARIOS
DELETE USUARIOS
-----2danombre='NEIVI'
forma de declarar el Delete: DIRECTO
WHERE
DELETE USUARIOS

--15. Nos muestra 0 registros afectados,


--Veamos
el contenido
de la tabla:
--22. Veamos
el contenido
de la tabla: pues se eliminaron todos los registros
SELECT * FROM USUARIOS

SELECT * FROM USUARIOS

--1. SI EXISTE LA BASE DE DATOS (BD_INSTITUTO) ELIMINELA DEL SERVIDOR


IF DB_ID('BD_INSTITUTO') IS NOT NULL
USE MASTER
DROP DATABASE BD_INSTITUTO
--2. Implementamos la Base de Datos BD_INSTITUTO con los siguientes parmetros:
--Ubicacin C:\TAREAS SQL\BD_INSTITUTO
--Archivo Primario : 5MB/ 10MB /53MB
--Archivo Secundario : 5MB/ 11% /42MB
--Archivo Transaccion : 2MB/ 8%% /39MB
CREATE DATABASE BD_INSTITUTO
ON PRIMARY
(
NAME=BD_INSTITUTO_PRI,
FILENAME='C:\TAREA SQL\BD_INSTITUTO\BD_INSTITUTO_PRI.mdf',
SIZE=5MB,
FILEGROWTH=10MB,
MAXSIZE=53MB
),
(
NAME=BD_INSTITUTO_SEC,
FILENAME='C:\TAREA SQL\BD_INSTITUTO\BD_INSTITUTO_SEC.ndf',
SIZE=5MB,
FILEGROWTH=11%,
MAXSIZE=42MB
)
LOG ON
(
NAME=BD_INSTITUTO_LOG,
FILENAME='C:\TAREA SQL\BD_INSTITUTO\BD_INSTITUTO_LOG.ldf',
SIZE=2MB,
FILEGROWTH=8%,
MAXSIZE=39MB
)
GO
--3. ACTIVAR LA BD_INSTITUTO
USE BD_INSTITUTO

DB_INSTITUTO

--4. Elimine la USUARIOS tabla si existe:


IF OBJECT_ID('USUARIOS')IS NOT NULL
DROP TABLE USUARIOS
--5. Crear la Tabla INSTRUCTORES
--La creamos con la siguiente estructura:
--(1) IdInstructor (entero) con generador
------de numero Secuencial de uno en uno
--(2) nombre (cadena 40)
CREATE TABLE INSTRUCTORES
(
ID_INSTRUCTOR
INT IDENTITY PRIMARY KEY NOT NULL,
NOM_INSTRUCTOR
VARCHAR(40) NOT NULL
)
GO

--6. Crear la Tabla CURSOS


--La creamos con la siguiente estructura:
--(1) IdCurso (entero) con generador
------de numero Secuencial de uno en uno
--(2) nombre (cadena 40)
--(3) IdInstructor (entero)
CREATE TABLE CURSOS
(
ID_CURSO
INT IDENTITY PRIMARY KEY NOT NULL,
NOM_CURSO VARCHAR(40) NOT NULL,
ID_INSTRUCTOR INT FOREIGN KEY REFERENCES INSTRUCTORES NULL
)
GO
--7. IMPLEMENTAR EL DIAGRAMA DE RELACION
--'FALTA COPIAR'
--8. CONSULTAR LAS COLUMNAS DE INSTRUCTORES Y CURSO
EXEC SP_COLUMNS INSTRUCTORES
EXEC SP_COLUMNS CURSOS
--9. INSERTAR REGISTROS A LAS TABLA INSTRUCTORES
INSERT INTO INSTRUCTORES VALUES ('CARLOS BUFFETT'),
('BILL SLIM'),
('AMANCIO BATISTA'),
('ADRIANA LIMA'),
('ANNA SIMON')
--10. LISTAR LOS REGISTROS DE LA TABLA INSTRUCTORES
SELECT * FROM INSTRUCTORES

--11. INSERTAR REGISTROS A LAS TABLA CURSO


INSERT INTO CURSOS VALUES ('MS SQL SERVER 2008','5')
INSERT INTO CURSOS VALUES ('MS EXCHANGE 2010',null)
INSERT INTO CURSOS VALUES ('MS SHAREPOINT 2012','1')
INSERT INTO CURSOS VALUES ('MS PERFORMANCE 2014',null)
INSERT INTO CURSOS VALUES ('WINDOWS SERVER 2016','4')

--12. LISTAR TODOS LOS REGISTROS DE AMBAS TABLAS


SELECT * FROM CURSOS
SELECT * FROM INSTRUCTORES

--13. LISTAR LOS NOMBRES DE LOS CURSOS QUE TENGAN INSTRUCTORES


------>INTERSECCIN: CURSOS E INSTRUCTORES
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
SELECT CURSOS.NOM_CURSO,INSTRUCTORES.NOM_INSTRUCTOR FROM CURSOS INNER JOIN
INSTRUCTORES
ON CURSOS.ID_CURSO=INSTRUCTORES.ID_INSTRUCTOR

----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN INNER


SELECT C.NOM_CURSO,I.NOM_INSTRUCTOR FROM CURSOS C INNER JOIN INSTRUCTORES I
ON C.ID_CURSO=I.ID_INSTRUCTOR
--14. RETORNAR TODOS LOS 5 CURSOS Y SUS INSTRUCTORES
------>DIFERENCIA DE CURSOS E INSTRUCTORES
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
SELECT CURSOS.NOM_CURSO,INSTRUCTORES.NOM_INSTRUCTOR FROM CURSOS LEFT OUTER JOIN
INSTRUCTORES
ON CURSOS.ID_CURSO=INSTRUCTORES.ID_INSTRUCTOR
----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN OUTER
SELECT C.NOM_CURSO,I.ID_INSTRUCTOR FROM CURSOS C LEFT OUTER JOIN INSTRUCTORES I
ON C.ID_CURSO=I.ID_INSTRUCTOR
--15. LISTAR LOS 5 INSTRUCTORES Y LOS CURSOS QUE DICTAN
------>DIFERENCIA DE INSTRUCTORES Y CURSOS
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
SELECT INSTRUCTORES.NOM_INSTRUCTOR,CURSOS.NOM_CURSO FROM INSTRUCTORES INNER JOIN
CURSOS
ON INSTRUCTORES.ID_INSTRUCTOR=CURSOS.ID_CURSO
----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN OUTER
SELECT I.NOM_INSTRUCTOR,C.NOM_CURSO FROM INSTRUCTORES I INNER JOIN CURSOS C
ON I.ID_INSTRUCTOR=C.ID_CURSO
--16. OBTENER LOS A TODOS LOS INSTRUCTORES DICTEN O NO CURSOS
--Y A TODOS LOS CURSOS QUE TENGAN O NO INSTRUCTOR
------>TODO DE CURSOS E INSTRUCTORES
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
SELECT
INSTRUCTORES.ID_INSTRUCTOR,INSTRUCTORES.NOM_INSTRUCTOR,CURSOS.ID_CURSO,CURSOS.NOM_CU
RSO FROM INSTRUCTORES FULL OUTER JOIN CURSOS
ON INSTRUCTORES.ID_INSTRUCTOR=CURSOS.ID_CURSO
----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN OUTER
SELECT I.ID_INSTRUCTOR,I.NOM_INSTRUCTOR,C.ID_CURSO,C.NOM_CURSO FROM INSTRUCTORES I FULL
OUTER JOIN CURSOS C
ON I.ID_INSTRUCTOR=C.ID_CURSO

--17. OBTENER EL PRODUCTO CARTESIANO DE


--TODOS LOS INSTRUCTORES Y TODOS LOS CURSOS
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS

--ACTIVAR EL BD INSTITUTO
USE INSTITUTO
--LISTAR LAS COLUMNAS CURSOS
EXEC sp_columns CURSOS
--LISTAR LAS COLUMNAS INSTRUCTORES
EXEC sp_columns INSTRUCTORES

DESARROLLANDO LA DB INSTITUTO

--LISTAR TODOS LOS REGISTROS DE AMBAS TABLAS


SELECT * FROM CURSOS
SELECT * FROM INSTRUCTORES

---------------------INNER JOIN------------------------INTERSECCIN:INSTRUCTORES Y CURSOS


--LISTAR LOS NOMBRES DE LOS CURSOS Y SUS INSTRUCTORES
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
--(CURSOS.IdCurso, CURSOS.nombre, CURSOS.IdInstructor)
--INSTRUCTORES.IdInstructor, INSTRUCTORES.nombre) Y CON INNER
SELECT INSTRUCTORES.nom_Instructor,CURSOS.nom_curso
FROM INSTRUCTORES INNER JOIN CURSOS ON
INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN INNER
SELECT I.nom_Instructor,C.nom_curso
FROM INSTRUCTORES I JOIN CURSOS C ON I.cod_Instructor=C.cod_Instructor
-------------------LEFT OUTER JOIN----------------------DIFERENCIA DE CURSOS E INSTRUCTORES
----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
SELECT INSTRUCTORES.nom_Instructor,CURSOS.nom_curso
FROM INSTRUCTORES LEFT OUTER JOIN CURSOS ON
INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN OUTER
SELECT I.nom_Instructor,C.nom_curso
FROM INSTRUCTORES I LEFT JOIN CURSOS C ON I.cod_Instructor=C.cod_Instructor

-------------------RIGHT OUTER JOIN----------------------DIFERENCIA DE INSTRUCTORES Y CURSOS


----1ERA FORMA, ASIGNANDO NOMBRE COMPLETO DE LAS TABLAS
SELECT INSTRUCTORES.nom_Instructor,CURSOS.nom_curso
FROM INSTRUCTORES RIGHT JOIN CURSOS ON
INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
----2DA FORMA CON ALIAS C(CURSOS), I(INSTRUCTORES) Y SIN OUTER
SELECT I.nom_Instructor,C.nom_curso
--------------------------------------------------------------FROM INSTRUCTORES I RIGHT OUTER JOIN CURSOS C ON I.cod_Instructor=C.cod_Instructor
-------------EJERCICIOS BASE DE DATOS: INSTITUTO----------------------------------------------------------------------------------PREGUNTA_1:
--LISTAR PERSONALIZANDO LAS CABECERAS DEL CODIGO Y NOMBRE DEL INSTRUCTOR.
--ASI MISMO EL CURSO QUE ENSEA, UNICAMENTE DE AQUELLOS QUE TENGAN CURSOS DESIGNADOS
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
SELECT INSTRUCTORES.cod_Instructor AS 'CODIGO',
INSTRUCTORES.nom_Instructor AS 'ISNTRUCTOR',
CURSOS.nom_curso AS 'CURSO'
FROM INSTRUCTORES INNER JOIN CURSOS
ON INSTRUCTORES.cod_Instructor = CURSOS.cod_Instructor
WHERE INSTRUCTORES.nom_Instructor='RUTILIO'
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT I.cod_Instructor AS 'CODIGO',
I.nom_Instructor AS 'ISNTRUCTOR',
C.nom_curso AS 'CURSO'
FROM INSTRUCTORES I INNER JOIN CURSOS C
ON I.cod_Instructor = C.cod_Instructor
--PREGUNTA_2:
--LISTAR PERSONALIZANDO LAS CABECERAS DEL NOMBRE DEL INSTRUCTOR. ASI MISMO
--EL CURSO QUE ENSEA Y EL CODIGO, DE TODOS LOS DOCENTES
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
SELECT INSTRUCTORES.nom_Instructor as 'NOMBRE DEL INSTRUCTOR',
CURSOS.nom_curso as 'CURSO',
INSTRUCTORES.cod_Instructor AS 'CODIGO DOCENTE'
FROM INSTRUCTORES INNER JOIN CURSOS
ON INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT I.nom_Instructor as 'NOMBRE DEL INSTRUCTOR',
C.nom_curso as 'CURSO',
I.cod_Instructor AS 'CODIGO DOCENTE'
FROM INSTRUCTORES I INNER JOIN CURSOS C
ON I.cod_Instructor=C.cod_Instructor
--PREGUNTA_3:
--OBTENER EL CODIGO, EL NOMBRE DE TODOS LOS CURSOS Y
--EL NOMBRE DEL INSTRUCTOR CORRESPONDIENTE A ESOS CURSOS.
--ASI MISMO ESTO SE LISTARA PERSONALIZANDO LAS CABECERAS
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
SELECT CURSOS.cod_Curso AS 'CODIGO CURSO',
CURSOS.nom_curso AS 'CURSOS',
INSTRUCTORES.nom_Instructor AS 'NOMBRE INSTRUCTOR'
FROM INSTRUCTORES INNER JOIN CURSOS
ON INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT C.cod_Curso AS 'CODIGO CURSO',
C.nom_curso AS 'CURSOS',
I.nom_Instructor AS 'NOMBRE INSTRUCTOR'
FROM INSTRUCTORES I INNER JOIN CURSOS C
ON I.cod_Instructor=C.cod_Instructor

--PREGUNTA_4:
--LISTAR EL CODIGO, NOMBRE DEL CURSO, NOMBRE DEL INSTRUCTOR Y SU CODIGO CORRESPONDIENTE
--DE TODOS LOS CURSOS Y TODOS LOS INSTRUCTORES PERSONALIZANDO LAS CABECERAS
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
SELECT CURSOS.cod_Curso,
CURSOS.nom_curso,
INSTRUCTORES.nom_Instructor,
INSTRUCTORES.cod_Instructor
FROM INSTRUCTORES FULL JOIN CURSOS
ON INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT C.cod_Curso,
C.nom_curso,
I.nom_Instructor,
I.cod_Instructor
FROM INSTRUCTORES FULL JOIN CURSOS
ON I.cod_Instructor=C.cod_Instructor
--PREGUNTA_5:
--OBTENER EL CODIGO, EL NOMBRE DEL INSTRUCTOR Y EL CURSO QUE DICTA
--LA DOCENTE NICOLE
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
SELECT INSTRUCTORES.cod_Instructor,
INSTRUCTORES.nom_Instructor,
CURSOS.nom_curso
FROM INSTRUCTORES INNER JOIN CURSOS
ON INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
WHERE nom_Instructor='NICOLE'
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT I.cod_Instructor,
I.nom_Instructor,
C.nom_curso
FROM INSTRUCTORES I INNER JOIN CURSOS C
ON I.cod_Instructor=C.cod_Instructor
WHERE nom_Instructor='NICOLE'
--PREGUNTA_6:
--MOSTRAR TODOS LOS REGISTROS DE LOS INSTRUCTORES QUE NO ENSEAN NINGUN CURSO
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
SELECT INSTRUCTORES.nom_Instructor, CURSO.nom_curso
fROM CURSOS C FULL JOIN INSTRUCTORES I
ON INSTRUCTORES.cod_Instructor=CURSOS.cod_Instructor
where CURSOS.nom_curso IN (NULL)
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT I.nom_Instructor, C.nom_curso
fROM CURSOS C FULL JOIN INSTRUCTORES I
ON I.cod_Instructor=C.cod_Instructor
where C.nom_curso IN (NULL)
--PREGUNTA_7:
--CUANTOS INSTRUCTORES NO ENSEAN NINGUN CURSO
-----1ERA FORMA: CON LOS NOMBRES COMPLETOS DE LA TABLA
-----2DA FORMA: USO DEL ALIAS Y USO DEL JOIN ABREVIADO
SELECT INSTRUCTORES.cod_Instructor,INSTRUCTORES.nom_Instructor,CURSOS.nom_curso
FROM CURSOS INNER JOIN
INSTRUCTORES ON CURSOS.cod_Instructor = INSTRUCTORES.cod_Instructor
WHERE INSTRUCTORES.cod_Instructor<>NULL
SELECT CURSOS.cod_Curso,CURSOS.nom_curso, INSTRUCTORES.nom_Instructor,
CURSOS.cod_Instructor(SL)
FROM CURSOS INNER JOIN
INSTRUCTORES
ON CURSOS.cod_Instructor =INSTRUCTORES.cod_Instructor
10
WHERE CURSOS.cod_Instructor= IS NULL

use Northwind

NORTHWIND
--------------------------------------------------------------------------------INSTRUCCIN SELECT-------------------------------------------------------------------

--LISTAR LAS COLUMNAS DE LA TABLA EMPLEADOS


exec sp_columns EMPLEADOS
--MOSTRAR TODOS LOS REGISTROS DE LA TABLA EMPLEADOS
select * from EMPLEADOS
--MOSTRAR SOLO LOS CAMPOS (EmployeeID, FirstName, LastName, HomePhone , Country)
--DE LA TABLA EMPLEADOS
SELECT EmployeeID,FirstName,LastName,HomePhone,Country from EMPLEADOS
--MOSTRAR SOLO LOS CAMPOS (EmployeeID, FirstName, LastName, HomePhone , Country)
--Y QUE CORRESPONDAN AL EMPLEADO 1, DE LA TABLA EMPLEADOS:
SELECT EmployeeID, FirstName, LastName, HomePhone , Country FROM EMPLEADOS
WHERE EmployeeID=1
--LISTAR LAS COLUMNAS DE LA TABLA CLIENTES
exec sp_columns CLIENETES
--OBTENER TODOS LOS REGISTROS DE LA TABLA CLIENTES
SELECT * FROM CLIENTES
--OBTENER LOS CAMPOS (CompanyName, Country, Region) DE TODOS
--LOS CLIENTES QUE SEAN DE BRASIL, DE LA TABLA CLIENTES
SELECT CompanyName, Country, Region FROM CLIENTES
WHERE Country='BRAZIL'
--CUANTOS CLIENTES DE BRAZIL EXISTE
SELECT COUNT(*)FROM CLIENTES
WHERE Country='BRAZIL'
--OBTENER LOS CAMPOS (CompanyName, Country, Region) DE TODOS
--OBTENER A TODOS LOS CLIENTES QUE NO SEAN DE BRASIL, DE LA TABLA CLIENTES
----1ERA FORMA
SELECT CompanyName, Country, Region FROM CLIENTES
WHERE Country!='BRAZIL'
----2DA FORMA
SELECT CompanyName, Country, Region FROM CLIENTES
WHERE Country<>'BRAZIL'
--LISTAR LAS COLUMNAS DE LA TABLA DETALLES DE PEDIDO
EXEC SP_COLUMNS "DETALLES DE PEDIDO"
--MOSTRAR TODOS LOS REGISTROS DE LA TABLA DETALLES DE PEDIDOS
SELECT * FROM "DETALLES DE PEDIDO"

11

--MOSTRAR TODOS LOS REGISTROS DE LA TABLA DETALLES DE PEDIDOS


--DESDE EL RANGO 10250 A 10252 DEL CAMPO (Orderid)
----1ERA FORMA
SELECT * FROM "DETALLES DE PEDIDO"
WHERE OrderID>=10250 AND OrderID<=10252
----2DA FORMA CON LA CLAUSULA BETWEEN:
----BETWEEN permite la seleccin de un rango.
SELECT * FROM "DETALLES DE PEDIDO"
WHERE OrderID BETWEEN 10250 AND 10252
--OBTENER CUANTOS PEDIDOS HAY EN EL RANGO 10250 A 10252
--DE LA TABLA DETALLES DE PEDIDOS
----1ERA FORMA
SELECT COUNT(*)FROM "DETALLES DE PEDIDO"
WHERE OrderID>=10250 AND OrderID<=10252
----2DA FORMA CON LA CLAUSULA BETWEEN:
SELECT COUNT(*)FROM "DETALLES DE PEDIDO"
WHERE OrderID BETWEEN 10250 AND 10252
--MOSTRAR LOS REGISTROS DE LA TABLA (DETALLES DE PEDIDO)
--QUE ESTEN FUERA DEL RANGO 10250 A 10252 SEGUN LA COLUMNA OrderID
----1ERA FORMA
SELECT * FROM "DETALLES DE PEDIDO"
WHERE OrderID < 10250 OR OrderID > 10252
----2DA FORMA CON LA CLAUSULA BETWEEN:
SELECT * FROM "DETALLES DE PEDIDO"
WHERE OrderID NOT BETWEEN 10255 AND 10252
--MOSTRAR TODOS LOS REGISTROS DE LA TABLA PEDIDOS, QUE ESTEN COMPRENDIDOS
--ENTRE LAS FECHAS DE PEDIDO(OrderDate) 01-07-96 AL 31-07-96
------1ERA FORMA -->USO DEL BETWEEN
SELECT * FROM PEDIDO
WHERE OrderDate BETWEEN '01-07-96' AND '31-07-96'
SET DATEFORMAT 'DMY'
------2DA FORMA -->USO DE OPERADORES DE COMPRACION
SELECT * FROM PEDIDO
WHERE OrderDate >='01-07-96'AND OrderDate<='31-07-96'
--MOSTRAR TODOS LOS REGISTROS DE LA TABLA PEDIDOS, SEGUN LA
--FECHA DE PEDIDO(OrderDate) COMPRENDIDOS EN EL MES DE ABRIL DEL AO 1998
------1ERA FORMA -->USO DEL BETWEEN
SELECT * FROM PEDIDO
WHERE OrderDate BETWEEN '01-04-98'AND '30-04-98'
------2DA FORMA -->USO DE OPERADORES DE COMPRACION
SELECT * FROM PEDIDO
WHERE OrderDate >='01-04-98'AND OrderDate<='30-04-98'
--LISTAR A TODOS LOS CLIENTES
SELECT * FROM CLIENTES
--LISTAR LAS COLUMNAS (CompanyName, ContactName, Country, Region)
--DE TODOS LOS CLIENTES QUE SEAN DE LOS PASES (BRAZIL, GERMANY, ITALY, MEXICO)
----1ERA FORMA ---> USO DEL (IN)
12
SELECT CompanyName, ContactName, Country, Region FROM CLIENTES
WHERE Country IN('BRAZIL','GERMANY','ITALY','MEXICO')

--LISTAR LAS COLUMNAS (City, CompanyName, ContactName, Country, Region) DE TODOS LOS CLIENTES
--QUE NO TENGAN CAPTURADO NADA EN EL CAMPO (Region) DE LA TABLA LOS CLIENTES
SELECT City, CompanyName, ContactName, Country, Region FROM CLIENTES
WHERE Region IS NULL
--LISTAR LAS COLUMNAS (City, CompanyName, ContactName, Country, Region) DE TODOS LOS CLIENTES
--QUE NO TENGAN REGISTROS EN EL CAMPO (Region) DE LA TABLA LOS CLIENTES
SELECT City, CompanyName, ContactName, Country, Region FROM CLIENTES
WHERE Region IS NULL
--LISTAR LOS CAMPOS (OrderID, ProductID, Quantity)
--Y OBTENER LOS 5 PRIMEROS REGISTROS DE LA TABLA DETALLES DE PEDIDO
SELECT TOP 5 OrderID, ProductID, Quantity FROM "DETALLES DE PEDIDO"
--LISTAR LOS CAMPOS (OrderID, ProductID, Quantity)
--Y OBTENER LOS 5 PRIMEROS REGISTROS DE LA TABLA (DETALLES DE PEDIDO),
--ORDENADOS DESDE LA MAS ALTA CANTIDAD
SELECT TOP 5 OrderID, ProductID, Quantity FROM "DETALLES DE PEDIDO"
ORDER BY Quantity DESC
------------------AGRUPANDO DATOS----------------------LISTAR LAS COLUMNAS DE LA TABLA (HISTORIAL DE ORDENES)
exec sp_columns "HISTORIAL DE ORDENES"
SELECT * FROM SYS.objects WHERE TYPE='U'
--LISTAR LOS REGISTROS DE LA TABLA (HISTORIAL DE ORDENES)
SELECT * FROM "HISTORIAL DE PEDIDOS"
--MOSTRAR LOS REGISTROS DE LA TABLA HISTORIAL DE ORDENES
--PERSONALIZANDO LA CABECERA (CODIGO DEL PRODUCTO, CODIGO DE PEDIDO, CANTIDAD)
SELECT
ProductID [CODIGO DEL PRODUCTO],
OrderId[CODIGO DEL PEDIDO],
Quantity[CANTIDAD]
FROM"HISTORIAL DE PEDIDOS"
--LISTAR SOLO LOS CODIGOS DE PRODUCTO SIN QUE SE REPITAN
SELECT DISTINCT ProductID FROM "HISTORIAL DE PEDIDOS"
--AGRUPAR SOLO LOS CODIGOS DE PRODUCTO SIN QUE SE REPITAN (GROUP BY)
SELECT ProductID FROM [HISTORIAL DE PEDIDOS]
GROUP BY ProductID
--MOSTRAR LA CANTIDAD TOTAL POR PRODUCTO, QUE SOLO VISUALIZE:
--EL PRODUCTO Y SU CANTIDAD TOTAL --> PRIMERO AGRUPAMOS, Y SUMAMOS SUS CANTIDADES
SELECT ProductID AS 'CODIGO DEL PRODUCTO',
SUM(Quantity)AS 'CANTIDAD SOCIAL'
FROM [HISTORIAL DE PEDIDOS]
GROUP BY ProductID
--LISTAR LOS REGISTROS DE LAS COLUMNAS (ProductID, Quantity),
--CUYO CODIGO DE PRODUCTO SEA 2
SELECT ProductID,Quantity FROM [HISTORIAL DE PEDIDOS]
WHERE ProductID='2'
--MOSTRAR LA CANTIDAD TOTAL DEL PRODUCTO (2),
--VISUALIZE: EL PRODUCTO Y SU CANTIDAD TOTAL
SELECT ProductID,SUM(Quantity) AS 'CANTIDAD DE TOTAL'
FROM [HISTORIAL DE PEDIDOS]
WHERE ProductID='2'
GROUP BY ProductID

13

/*
IMPORTANTE:
1. La clusula WHERE se aplica primero a las filas individuales de la tabla o tablas.
Por tanto solo se obtiene las filas que cumplen las condiciones de la clusula WHERE.
2. Clusula HAVING es como una clusula WHERE, pero que solo se aplica a los grupos en
su totalidad (es decir, a las filas del conjunto de resultados que representa los grupos)
*/
--MOSTRAR TODOS LOS PRODUCTOS QUE TENGAN MAYOR CANTIDAD TOTAL DE 30
select productID,sum(Quantity)[TOTAL]
from [HISTORIAL DE PEDIDOS]
group by ProductID
having sum(Quantity)>=30
--OBTENER LA CANTIDAD (TOTAL DE PRODUCTOS) REGISTRADOS EN HISTORIAL DE
PEDIDOS
------> USO DEL OPERADOR (WITH CUBE Y WITH ROLLUP), AMBOS PERMITEN
------>HALLAR TOTALES, CON LA CLAUSULA GROUP BY
-----1ERA FORMA (WITH ROLLUP)
select ProductID,sum(Quantity) from [HISTORIAL DE PEDIDOS]
group by ProductID
with rollup
-----2DA FORMA (WITH CUBE)
select ProductID,sum(Quantity)[TOTALES]
from [HISTORIAL DE PEDIDOS]
group by ProductID
with cube
--OBTENER LA CANTIDAD (TOTAL DE ORDENES DEL PEDIDO)
--REGISTRADOS EN HISTORIAL DE PEDIDOS
-----1ERA FORMA (WITH ROLLUP)
select OrderId,sum(Quantity)[TOTAL]
from [HISTORIAL DE PEDIDOS]
group by OrderId
with rollup
-----2DA FORMA (WITH CUBE)
select OrderId,sum(Quantity)[TOTAL]
from [HISTORIAL DE PEDIDOS]
group by OrderId
with cube

14

PRACTICA CALIFICADA
----------------------------PRACTICA CALIFICADA----------------------------------------------------------------------------------------------------------PREGUNTA_1:
--RETORNAR LAS COLUMNAS: IdCLIENTE, NombreCompaia y Pais, (CustomerID, CompanyName, Country)
--DE LA TABLA CLIENTES, QUE SOLO RESIDAN EN ALEMANIA(GERMANY)
select CustomerID, CompanyName, Country from CLIENTES
where Country = 'GERMANY'
--PREGUNTA_2:
--CUANTOS CLIENTES SON DE ALEMANIA
select count(*)from CLIENTES
where Country='GERMANY'
--PREGUNTA_3:
--RETORNAR LAS COLUMNAS: IdCLIENTE, NombreCompaia y Pais,
--DE LA TABLA CLIENTES QUE SOLO RESIDAN EN ALEMANIA O FRANCIA
select CustomerID, CompanyName, Country from CLIENTES
where Country='GERMANY'or Country='FRANCE'
--PREGUNTA_4:
--CUANTOS CLIENTES SON DE ALEMANIA O FRANCIA
select count(*)from CLIENTES
where Country='GERMANY'or Country='FRANCE'
--PREGUNTA_5:
--OBTENER SOLO LAS FILAS DE LOS PRODUCTOS DONDE EL ID_PROVEEDOR(SupplierID) SEA 1
--Y ADEMAS TENGA COMO ID_CATEGORIA(CategoryID) IGUAL A 1
select SupplierID,CategoryID from PRODUCTOS
where SupplierID ='1'and CategoryID='1'
--PREGUNTA_6:
--CUANTOS PROVEEDORES CON ID 1 Y CATEGORIA 1
--EXISTEN EN LA TABLA PRODUCTOS
select count(*)from PRODUCTOS
where SupplierID ='1'and CategoryID='1'
--PREGUNTA_7:
--OBTENER TODOS LOS REGISTROS CON PRECIO(UnitPrice) MAYOR A 20
--Y CON IdProveedor(SupplierID) IGUAL A 2, DE LA TABLA PRODUCTOS
select * from PRODUCTOS
where UnitPrice>=20 and SupplierID='2'
--PREGUNTA_8:
--CUANTAS FILAS CON PRECIO(UnitPrice) MAYOR A 20
--Y CON IdProveedor(SupplierID) IGUAL A 2
--EXISTEN EN LA TABLA PRODUCTOS
select count(*) from PRODUCTOS
where UnitPrice>=20 and SupplierID='2'
--PREGUNTA_9:
--OBTENER TODAS LAS FILAS DONDE LOS PRODUCTOS PERTENEZCAN
--A LAS CATEGORIAS(CategoryID) 1, 2 O 3, DE LA TABLA PRODUCTOS
----1ERA FORMA ---> USO DEL (IN)
select * from PRODUCTOS
where CategoryID in('1','2','3')

15

----2DA FORMA ---> USO DE LOS (OPERADORES DE COMPARACION Y CONDICIONALES)


select count(*)from PRODUCTOS
where CategoryID ='1'or CategoryID ='2'or CategoryID ='3'
--PREGUNTA_11:
--OBTENER TODAS LAS COLUMNAS DE LA TABLA PRODUCTOS. SOLO DEBE MOSTRAR LAS
FILAS
--DE LOS PRODUCTOS QUE TENGAN UN PRECIO(UnitPrice) COMPRENDIDO ENTRE 20 Y 40
----1ERA FORMA ---> USO DE LOS OPERADORES DE COMPARACION
select * from PRODUCTOS
where UnitPrice >=20 and UnitPrice<=40
----2DA FORMA ---> USO DEL BETWEEN
select * from PRODUCTOS
where UnitPrice between 20 and 40
--PREGUNTA_13:
--MOSTRAR TODOS LOS REGISTROS DE LA TABLA PEDIDOS, QUE ESTEN COMPRENDIDOS
--ENTRE LAS FECHAS DE PEDIDO(OrderDate) 01-07-96 AL 31-07-96
-----1ERA FORMA -->USO DEL BETWEEN
select * from PEDIDO
where OrderDate between '01-07-96'and '31-07-96'
set dateformat'DMY'
-----2DA FORMA -->USO DE OPERADORES DE COMPRACION
select * from PEDIDO
where OrderDate>='01-07-96'and OrderDate<= '31-07-96'
--PREGUNTA_14:
--CUANTOS REGISTROS DE LA TABLA PEDIDOS, QUE ESTEN COMPRENDIDOS
--ENTRE LAS FECHAS DE PEDIDO(OrderDate) 01-07-96 AL 31-07-96, EXISTEN
select count(*)from PEDIDO
where OrderDate between '01-07-96'and '31-07-96'
--PREGUNTA_15:
--MOSTRAR TODOS LOS REGISTROS DE LA TABLA PEDIDOS,
--EMITIDOS EN EL AO DE 1997
-----1ERA FORMA -->USO DEL BETWEEN
select * from PEDIDO
where ShippedDate between '01-01-97' and '31-12-97'
-----2DA FORMA -->USO DE OPERADORES DE COMPRACION
select * from PEDIDO
where ShippedDate >='01-01-97' and ShippedDate <='31-12-97'
--PREGUNTA_16:
--CUANTAS FILAS EXISTEN DE LA TABLA PEDIDOS,
--EMITIDOS EN EL AO DE 1997
select count(*)from PEDIDO
where ShippedDate between '01-01-97' and '31-12-97'

16

17 AL 21
---------EJERICICIOS CON GROUP BY-----------------------------PREGUNTA_17:
--OBTENER EL NUMERO DE PEDIDOS ATENDIDOS POR CADA EMPLEADO,
--EL RESULTADO SE PRESENTA AGRUPADO POR EMPLEADO Y
--ORDENADO POR EL NUMERO DE PEDIDOS EN FORMA DESCENDENTE
select EmployeeID,count(*)[NUMERO DE PEDIDOS] from PEDIDO
group by EmployeeID
order by count(*)desc
--PREGUNTA_18:
--OBTENER EL IDPEDIDO, EL NUMERO DE ARTICULOS EN CADA PEDIDO
--Y EL MONTO DE CADA PEDIDO
select OrderID,
sum(Quantity)[NUMERO DE ARTICULO], sum(UnitPrice*Quantity) as 'SUBTOTAL'
from [DETALLES DE PEDIDO]
group by OrderID
--PREGUNTA_19:
--OBTENER EL NMERO DE CLIENTES (DIFERENTES)
--ATENDIDO POR CADA EMPLEADO
select count(distinct(CustomerID))[NUMERO DE CLIENTES]
from PEDIDO
group by EmployeeID
--PREGUNTA_20:
--OBTENER LA CATEGORIA, EL PROMEDIO DE PRECIOS
--Y EL NUMERO DE ARTICULOS POR CATEGORIA
---------EJERICICIOS CON HAVING---------------------------select CategoryID, avg(UnitPrice) [PROMEDIO PRECIOS], sum(UnitsInStock)[CATIDAD POR CATEGORIA]
from PRODUCTOS
group by CategoryID
order by (CategoryID)asc
--PREGUNTA_21:
--OBTENER LOS CAMPOS IDPEDIDO, EL NUMERO DE PEDIDOS POR EMPLEADO.
--SOLO DE AQUELLOS EMPLEADOS QUE TENGAN MAS DE 100 PEDIDOS
select EmployeeID,count(*) as 'NUMERO DE PEDIDOS'
from PEDIDO
group by EmployeeID
having count(*)>100 and count(*) >100

17

EJERCICIOS DE BD CINE
-------------------------------------------------------EJERCICIOS 1:
------------------------------------------------1. MODIFICAR EL PRECIO DE SUPER VIP POR S/1350.00
UPDATE TARIFA
SET PRECIO=1350
WHERE CLASE='SPUER VIP'
SELECT * FROM TARIFA
--2. REBAJAR EL IMPUESTO DE CLASE ECONMICA POR S/5.20
UPDATE TARIFA
SET IMPUESTO=5.2
WHERE COD_TARIFA=4
SELECT * FROM TARIFA
--3. CAMBIAR EL PRECIO Y EL IMPUESTO PARA LA CLASE:
--NACIONAL POR S/780.45 Y S/6.24 RESPECTIVAMENTE
UPDATE TARIFA
SET PRECIO=788.45, IMPUESTO=6.24
WHERE COD_TARIFA=3
SELECT * FROM TARIFA
----------EJERCICIOS 2:-----------1.--HACER UNA CONSULTA QUE PERMITA MOSTRAR LOS
--2 ULTIMOS REGISTROS DE LA TABLA TARIFA
select TOP 50 PERCENT* from TARIFA
ORDER BY COD_TARIFA DESC
--2.--HACER UNA CONSULTA QUE PERMITA MOSTRAR EL
--80% DE LOS REGISTROS DE LA TABLA TARIFA
--ORDENADOS POR PRECIO
SELECT TOP 88 PERCENT * FROM TARIFA
ORDER BY PRECIO ASC
--3.--HACER UNA CONSULTA QUE PERMITA MOSTRAR LOS 3
--EL ULTIMO REGISTRO DE LA TABLA TARIFA
SELECT TOP 75 PERCENT * FROM TARIFA
ORDER BY COD_TARIFA DESC
--4.--HACER UNA CONSULTA QUE PERMITA MOSTRAR LOS
--EL 15% DE LOS REGISTROS DE LA TABLA TARIFA
--ORDENADOS DESDE EL ULTIMO REGISTRO
SELECT TOP 15 PERCENT * FROM TARIFA
ORDER BY COD_TARIFA DESC
--5.--HACER UNA CONSULTA QUE PERMITA MOSTRAR LA CLASE, PRECIO
--E IMPUESTO DEL 50% DE LOS PRIMEROS REGISTROS DE LA TABLA TARIFA
--ORDENADOS DESDE EL MAS BARATO AL MAS CARO
SELECT TOP 50 PERCENT CLASE,PRECIO,IMPUESTO FROM TARIFA
ORDER BY PRECIO ASC
--6.--HACER UNA CONSULTA QUE PERMITA MOSTRAR EL CODIGO, CLASE Y PRECIO
--DE LOS 3 PRIMEROS REGISTROS DE LA TABLA TARIFA ORDENADOS
--DESDE EL MAS CARO AL MAS BARATO TAMBIEN DEBERA IMPRIMIR
--LAS COLUMNAS PERSONALIZADAS POR (CODIGO - TIPO DE ASIENTO - PRECIO S/.)
18 COD_TARIFA[CODIGO],CLASE[TIPO DE ASIENTO],PRECIO[PRECIO S/.] FROM TARIFA
SELECT
ORDER BY PRECIO DESC

SENTENCIA IF -ELSE
--1. Implemente la (basedatos_10) por defecto.

create database basedatos_10


go
--2. Si existe la (basedatos_10) verifique su nica existencia, solo visualizar el id, nombre y

fecha de creacin.
if exists (select * from sys.databases where name =
'basedatos_10')
select database_id,name,create_date from sys.databases where name
='basedatos_10'

--3. Mostrar las bases de datos del servidor creadas en el 2016 y ordenados de forma
alfabtica segn la fecha de creacin.
select * from sys.databases where create_date>= '2016-01-01' and
create_date<='2016-12-31'
order by create_date asc

--4. Utiliza la sentencia IF, donde se preguntar si existe la (basedatos_11) y muestre el


nombre y la fecha de creacin,
--si no ha sido implementado en el servidor, que se cree y visualice los mismos, el nombre
y la fecha de creacin.
if exists (select * from sys.databases where name = 'basedatos_11')
select name,create_date from sys.databases where name='basedatos_11'
else
create database basedatos_11
select name,create_date from sys.databases where name='basedatos_11'

--5. Si la base de datos (basedatos_12) no existe implementarla con los siguientes


parmetros:
-archivo primario
: 5mb/ 2%/ ilimitado
-archivo secundario
: 6mb/ 20mb/ ilimitado
-archivo de transaccin : 2mb/ 5%/ ilimitado
--Se guardarn en la Unidad: C:\ basedatos_11\

19

--As mismo se crearn las tablas Distritos y Usuario con restricciones Directas.
if not exists (select *from sys.databases where name = 'basedatos_12')
create database basedatos_12
ON PRIMARY
(

name= basedatos_12_PRI,
filename='C:\TRABAJOS SQL\basedatos_11\basedatos_12_PRI.mdf',
size=5mb,
filegrowth=2%,
maxsize= unlimited
),
(

name= basedatos_12_SEC,
filename='C:\TRABAJOS SQL\basedatos_11\basedatos_12_SEC.ndf',
size=6mb,
filegrowth=20mb,
maxsize= unlimited
)

log on
(

name=basedatos_12_LOG,
filename='C:\TRABAJOS SQL\basedatos_11\basedatos_12_LOG.ldf',
size=2mb,
filegrowth=5%,
maxsize=unlimited
)

go
Create Table DISTRITOS1
(
cod_distrito
char(6) not null PRIMARY KEY,
nom_distrito
varchar(20) not null
)

go
Create Table USUARIO1
(
cod_usua
nom_usua
apepater_usua
apemater_usua
fec_nac_usua
fec_reg_usua
dni_usua
telefono_usua
celular_usua
cod_dist_usua
)20
GO

char(6) not null PRIMARY KEY,


varchar(25) not null,
varchar(25) not null,
varchar(25) not null,
datetime null,
datetime null,
char(8) not null,
char(7) null,
char(9) null,
char(6) not null FOREIGN KEY REFERENCES DISTRITOS1

--4. Mostrar todos los Atributos de las Bases de Datos


--(BASEDATOS_04 y BASEDATOS_05):
select * from sys.databases where name='BASEDATOS_04'
select * from sys.databases where name='BASEDATOS_05'
--5. Mostrar solo La Fecha de Creacin y el Nombre de todas las

--Bases de Datos y verifica si existe (BASEDATOS_03, BASEDATOS_04, BASEDATOS_05):


select create_date, name from sys.databases
if exists (select * from sys.databases where name = 'BASEDATOS_03')
if exists (select * from sys.databases where name='BASEDATOS_04' )
if exists (select * from sys.databases where name='BASEDATOS_05')
print 'si existe las bases de datos'
--6. IMPLEMENTAR LA (BASEDATOS_06 y BASEDATOS_07) EN EL SERVIDOR UTILIZANDO
LA SENTENCIA IF ELSE
if not exists (select *from sys.databases where name = 'BASEDATOS_06' and not EXISTS (SELECT *FROM
SYS.DATABASES WHERE NAME = 'BASEDATOS_07'))

create database BASEDATOS_06


create database BASEDATOS_07
--7. Verifique si existe (BASEDATOS_06) y (BASEDATOS_07) Utilizando la Sentencia: IF

ELSE Si se crean las 2 BD's que imprima EXISTEN LA BASEDATOS_06 Y LA


BASEDATOS_07, Si solo Existe la (BASEDATOS_06) que imprima 2 prrafos "EXISTE LA
BASEDATOS_06 Y" y
"NO EXISTE LA BASEDATOS_07", Si solo Existe la (BASEDATOS_07) que imprima 2
prrafos
"EXISTE LA BASEDATOS_07 Y" y "NO EXISTE LA BASEDATOS_06". Caso contrario
imprimir
"NO EXISTEN NINGUNA DE LAS 2 BASES DE DATOS"
if exists (select * from sys.databases where name= 'BASEDATOS_06' AND EXISTS (SELECT *FROM
SYS.DATABASES WHERE name = 'BASEDATOS_07'))
begin
PRINT 'SI EXISTE LA BASEDATOS_06'
PRINT 'SI EXISTE LA BASEDATOS_07'

end
if exists (select * from sys.databases where name= 'BASEDATOS_06' AND NOT EXISTS (SELECT *FROM
SYS.DATABASES WHERE name = 'BASEDATOS_07'))

begin
PRINT 'SI EXISTE LA BASEDATOS_06'
PRINT 'NO EXISTE LA BASEDATOS_07'

end
ELSE IF exists (select * from sys.databases where name= 'BASEDATOS_07' AND NOT EXISTS (SELECT *FROM
SYS.DATABASES WHERE name= 'BASEDATOS_06'))

begin
21

PRINT 'SI EXISTE LA BASEDATOS_07'


PRINT 'NO EXISTE LA BASEDATOS_06'

--4. Mostrar todos los Atributos de las Bases de Datos


--(BASEDATOS_04 y BASEDATOS_05):
select * from sys.databases where name='BASEDATOS_04'
select * from sys.databases where name='BASEDATOS_05'
--5. Mostrar solo La Fecha de Creacin y el Nombre de todas las

--Bases de Datos y verifica si existe (BASEDATOS_03, BASEDATOS_04, BASEDATOS_05):


select create_date, name from sys.databases
if exists (select * from sys.databases where name = 'BASEDATOS_03')
if exists (select * from sys.databases where name='BASEDATOS_04' )
if exists (select * from sys.databases where name='BASEDATOS_05')
print 'si existe las bases de datos'
--6. IMPLEMENTAR LA (BASEDATOS_06 y BASEDATOS_07) EN EL SERVIDOR UTILIZANDO
LA SENTENCIA IF ELSE
if not exists (select *from sys.databases where name = 'BASEDATOS_06' and not EXISTS (SELECT *FROM
SYS.DATABASES WHERE NAME = 'BASEDATOS_07'))

create database BASEDATOS_06


create database BASEDATOS_07
--7. Verifique si existe (BASEDATOS_06) y (BASEDATOS_07) Utilizando la Sentencia: IF

ELSE Si se crean las 2 BD's que imprima EXISTEN LA BASEDATOS_06 Y LA


BASEDATOS_07, Si solo Existe la (BASEDATOS_06) que imprima 2 prrafos "EXISTE LA
BASEDATOS_06 Y" y
"NO EXISTE LA BASEDATOS_07", Si solo Existe la (BASEDATOS_07) que imprima 2
prrafos
"EXISTE LA BASEDATOS_07 Y" y "NO EXISTE LA BASEDATOS_06". Caso contrario
imprimir
"NO EXISTEN NINGUNA DE LAS 2 BASES DE DATOS"
if exists (select * from sys.databases where name= 'BASEDATOS_06' AND EXISTS (SELECT *FROM
SYS.DATABASES WHERE name = 'BASEDATOS_07'))
begin
PRINT 'SI EXISTE LA BASEDATOS_06'
PRINT 'SI EXISTE LA BASEDATOS_07'

end
if exists (select * from sys.databases where name= 'BASEDATOS_06' AND NOT EXISTS (SELECT *FROM
SYS.DATABASES WHERE name = 'BASEDATOS_07'))

begin
PRINT 'SI EXISTE LA BASEDATOS_06'
PRINT 'NO EXISTE LA BASEDATOS_07'

end
ELSE IF exists (select * from sys.databases where name= 'BASEDATOS_07' AND NOT EXISTS (SELECT *FROM
SYS.DATABASES WHERE name= 'BASEDATOS_06'))

begin
22

PRINT 'SI EXISTE LA BASEDATOS_07'


PRINT 'NO EXISTE LA BASEDATOS_06'

end
else
print 'NO EXISTEN NINGUNA DE LAS 2 BASES DE DATOS'
--8. UTILIZANDO LA SENTENCIA IF ELSE, ELIMINAR (BASEDATOS_07) Y VERIFICAR SU

--INEXISTENCIA, MOSTRANDO EL ID Y NOMBRE DE LA BASES DE DATOS EXISTENTE


--EN EL SERVIDOR, ORDENADOS POR FECHA DE LA ACTUALIDAD HACIA ATRAS
if exists ( select * from sys.databases where name = 'BASEDATOS_07')
DROP DATABASE BASEDATOS_07
SELECT database_id, name from sys.databases

order by create_date desc


--9. UTILIZANDO LA SENTENCIA IF ELSE, VISUALIZAR EN PANTALLA EL ID, NOMBRE Y

FECHA CREADA DE LA BASES DE DATOS EXISTENTE EN EL SERVIDOR, ORDENADOS DE


FORMA ALFABETICA SIEMPRE Y CUANDO EXISTA LA (BASEDATOS_08) EN CASO
CONTRARIO CREARLA Y MOSTRAR LO SUGERIDO
if exists (select * from sys.databases where name ='BASEDATOS_08')
select database_id,name,create_date from sys.databases
order by name asc
else
create database BASEDATOS_08
select database_id,name,create_date from sys.databases
order by name asc
--10. MOSTRAR EN PANTALLA EL ID, NOMBRE Y FECHA CREADA DE (BASEDATOS_09) EN

CASO CONTRARIO CREARLA Y MOSTRAR LO SUGERIDO


if exists (select * from sys.databases where name ='BASEDATOS_09')
select database_id,name,create_date from sys.databases WHERE name = 'BASEDATOS_09'
else
create database BASEDATOS_09
select database_id,name,create_date from sys.databases WHERE name = 'BASEDATOS_09'

23

Вам также может понравиться