miércoles, 20 de noviembre de 2013

logistics

--Tablas

--Entra con SQLDeveloper con LOGISTICS_DEV y crea las siguientes tablas:


--INSURANCE
--insuranceid integer pk,
--description varchar2(30),
--renewal date

create sequence insurance_seq start with 1 increment by 1 nocache;

create table insurance(
insuranceid integer default insurance_seq.nextval primary key,
description varchar2 (30),
renewal date check(renewal <= timestamp)
);


--    Crear claves primarias
--    Crear trigger de autonumérico
--    Check donde renewal sea mayor que la fecha de hoy
--    Introduce unos registros de ejemplo.


--TRUCK
--plate char(10) pk
--model varchar2(30),
--insuranceid integer not null fk
create table truck(
plate char(10) primary key,
model varchar2(30),
insuranceid integer not null
);
--    Crear claves primarias y extranjeras
--    Introduce unos registros de ejemplo.

alter table insurance
add constraint fk_truck_insurance
foreign key (insuranceid)
references insurance(insuranceid);
--DRIVER
--driverid integer primary key,
--name varchar2(30),
--license char(15),
--birthdate date

create sequence driver_seq start with 1 increment by 1 nocache;

create table driver(
driverid integer default driver_seq.nextval primary key,
name varchar2(30),
license char(15),
birthdate date check ( birthdate < timestamp)
);
--    Crear claves primarias
--    Crear trigger de autonumérico
--    Check donde renewal sea menor que la fecha de hoy
--    Introduce unos registros de ejemplo.

--Tanto DELIVERY COMO PACKAGE deben formar parte de un cluster
--DELIVERY
--deliveryid integer primary key,
--origin varchar(30),
--destiny varchar(40),
--departure timestamp,
--arrival timestamp,
--driverid integer fk,
--truckid integer fk
CREATE CLUSTER CLUSTER_DELIVERY
 (deliverycode NUMBER(4))
SIZE 512
STORAGE (initial 100K next 50K);

CREATE INDEX IDX_CLUSTERDELIVERY ON CLUSTER CLUSTER_DELIVERY;

create sequence delivery_seq start with 1 increment by 1 nocache;

create table delivery(
  deliveryid integer default delivery_seq.nextval primary key,
  origin varchar2 (30),
  destiny varchar2 (40),
  departure timestamp,
  arrival timestamp,
  driverid integer,
  truckid varchar2 (30)
)

cluster CLUSTER_DELIVERY (deliveryid);

--    Crear claves primarias y extranjeras
--    Check donde arrival sea mayor que la fecha de hoy
--    Crear trigger de autonumérico
--    Introduce unos registros de ejemplo.

alter table delivery
add constraint fk_delivery_driver
foreign key (driverid)
references driver(driverid);


alter table delivery
add constraint fk_delivery_truck
foreign key (truckid)
references truck(truckid);



--CUSTOMER
--customerid integer pk,
--name varchar2(40) not null,
--address varchar2(40) default 'unknown',
--email varchar2(100)

create sequence customer_seq start with 1 increment by 1 nocache;

create table customer(
  customerid integer default customer_seq.nextval primary key,
  name varchar2(40),
  address varchar2(40) default 'unknow',
  email varchar2(100)
);

--    Crear claves primarias
--    Crear trigger de autonumérico
--    Introduce unos registros de ejemplo.

--PACKAGE
--packageid integer pk,
--description varchar2(40),
--withcare char(1) default 'Y',
--customerid integer fk,
--deliveryid integer fk

--    Crear claves primarias y extranjeras
--    Crear trigger de autonumérico
--    Introduce unos registros de ejemplo.

create table package (
packageid integer primary key,
description varchar2(40),
withcare char(1) default 'Y',
customerid integer,
deliveryid integer
)

cluster cluster_delivery(packageid);

alter table package
add constraint fk_package_customer
foreign key (customerid)
references customer(customerid);

alter table package
add constraint fk_package_delivery
foreign key (deliveryid)
references delivery(deliveryid);

miércoles, 13 de noviembre de 2013

ejercicio sql

--1. Crea las claves primarias y extranjeras en las nuevas tablas.

alter table autobuses
add constraint pk_matricula
primary key (matrícula);

alter table clientes_autobuses
add constraint pk_codcliente
primary key (códigocliente);

alter table reservas
add constraint pk_codreserva
primary key (códigoreserva);

alter table trayectos
add constraint pk_códigotrayecto
primary key (códigotrayecto);


alter table trayectos
add constraint fk_autobuses_trayectos
foreign key (matrícula)
references autobuses(matrícula);
--------
alter table reservas
add constraint fk_clientes_reservas
foreign key (códigocliente)
references clientes(códigocliente);

alter table reservas
add constraint fk_trayectos_reservas
foreign key (códigotrayecto)
references trayectos(códigotrayecto);

--2. Crea las siguientes consultas, son tan fáciles...
  --Mostrar todos los autobuses cuya capacidad supere los 59 asientos.
  select * from autobuses where capacidad = 59;
 
  --Mostrar los nombres y teléfonos de los clientes que hayan reservado algo.
  select nombres from clientes_autobuses
  join reservas on clientes_autobuses.código_cliente=reservas.código_cliente;
 
  --Mostrar los trayectos de la mañana, es decir que salgan antes de las 13:00
  select * from trayectos where hora < '13:00';
 
  --Mostrar el número total de trayectos que tiene la compañía
  select count(códigotrayecto) from trayectos;
 
  --Mostrar el número total de clientes que tiene la compañía
  select count(códigocliente) from clientes;
 
  --Mostrar el número total de trayectos que hace el autobús con matrícula 1021 FTP.
  select count(*) from trayectos where matricula = '1021 FTP';
 
  --Mostrar el número total de reservas para el trayecto 1.
  select count (*) from reservas where códigotrayecto=1;
 
  --Mostrar los nombres de clientes que han hecho su reserva para el trayecto 1.
  select nombre from clientes
  join reservas on clientes.códigocliente = reservas.códigocliente
  where reservas.códigotrayecto = 1;
 
--------
--Exporta las tablas a un fichero .dmp con la utilidad exp (ver guía del DBA).
--Crea un nuevo tablespace llamado backup.
--Crea un usuario backupuser cuyo tablespace por defecto sea backup y adle permisos para todo.
--Importa el fichero .dmp en el nuevo tablespace

lunes, 4 de noviembre de 2013

truco o trato



ejercicios PS5



1. Crea un cmdlet de powershell que defina un array relacional con las ips de los alumnos. Luego debes crear un bucle foreach para mostrar todos los registros.


2. Crea un cmdlet de powershell que tenga un array relacional como el definido antes y que genere las rutas necesarias para llegar a esas máquinas con el comando Set-NetRoute

3. Crea un cmdlet de powershell que defina una función llamada hail. La función debe recibir un parámetros que indique el idioma (es, en, eu, kg, ev). Según el idioma que se introduzca (con un switch case), la función debe mostrar un saludo en ese idioma.

4. Crea un cmdlet de powershell que defina una función llamada generaCuentaSegura. La función debe generar una cadena que tenga 3 letras aleatorias seguida de 8 números aleatorios.

5.  Crea un cmdlet de powershell que defina una función llamada generaCuenta. La función debe como parámetro un Nombre y un Apellido y debe ser capaz de generar un string con la forma nombre_apellido con todo en minúsculas.


6.  Crea un cmdlet de powershell que defina una función llamada generaNombre. La función debe recibir como parámetro un número que serán las sílabas. La función debe devolver un nombre que tenga consonante,
vocal, consonante-vocal,.. por ejemplo
generaNombre(6) = manolo



Otra forma de hacerlo


miércoles, 23 de octubre de 2013

Ejercicios 2 PS


1. Crea un cmdlet de powershell que espere tres parámetros un llamado $primero que espere un [int], otro llamado $segundo que espere un String que si no se introduce debe solicitarlo al usuario. Una vez hecho el programa debe hacer un bucle for que muestre el valor de $segundo tantas veces como indique $primero.
2. Crea un cmdlet de powershell llamado Get-España.ps1 con parámetros que permita indicar los puestos de un equipo de fútbol y luego los muestre. Algo así:
Get-España.ps1 -portero 'Casillas' -defensa 'Sergio Rambo' -pivote 'Busquets' -medio 'Javier Alonso' -delantero 'Erroberto Gudari'
Alineación de España:
Portero: Casillas
Defensa: Sergio Rambo
Busquets: Busquets
Centro: Javier Alonso
Punta: Erroberto Gudari
3.- Crea un cmdlet de powershell que muestre un menú al usuario con cuatro operaciones disponibles: crear directorio, eliminar directorio, mostrar directorio y salir.
Una vez elegida una opción correcta el programa debe solicitar un nombre de directorio y hacer la operación seleccionada.
Operaciones: 
Crear: New-Item -Name Carpeta -ItemType folder
Borrar: Remove-Item Carpeta
Dir: Get-ChildItem Carpeta

ejercicios Powershell



1. Dentro de la carpeta que acabas de hacer, crea un cmdlet de PowerShell  llamado saludo1.ps1 que defina dos variables: un $nombre y un $saludo. Luego muestra por consola un mensaje en el que se muestre ese saludo y ese nombre.
2. Crea un cmdlet de PowerShell  como el anterior llamado saludo2.ps1, pero en lugar de definir dos variables las debe recoger como argumentos de la consola.
3. Crea un cmdlet de PowerShell  como el anterior llamado saludo3.ps1 pero en lugar de definir o recoger variables como argumentos, debe solicitárselos al usuario con Read
4. Crea un cmdlet de PowerShell que recoja dos variables por consola con Read y lleve a cabo todas las operaciones aritméticas entre ellas y las muestre por consola.

5. Más humillaciones: crea un cmdlet que solicite al usuario un número, verifique que realmente es un número y es positivo y programa un bucle para que muestr por consola la palabra FAP tantas veces como indique el número.

6. Crea un cmdlet que solicite al usuario un número. Mientras lo que introduzca el usuario no sea un número y además ese número esté entre 1 y 100 se lo tiene que solicitar una y otra vez. Una vez introducido el número correcto el programa debe hacer lo siguiente: si ha cometido algún error al introducir un número válido debe hacerse un bucle en el que se increpe al usuario tantas veces como errores haya cometido. Si lo hizo bien a la primera saca un mensaje que diga: campeón.