--- mostar hola mundo en sql developer
set serveroutput on
begin
dbms_output.put_line('Hola Mundo');
end;
-- mostar un nombre ingresado por teclado
set serveroutput on
declare
nombre varchar2(25);
begin
dbms_output.put_line('Hola '|| '&nombre');
end;
--ingresar un dia de la semana
set serveroutput on
declare
diaSemana integer;
begin
dbms_output.put_line('El numero ingresado es '|| '&diaSemana');
end;
set serveroutput on
declare
diaSemana integer;
fechaIngresada char(2);
begin
diaSemana := to_number('&fechaIngresada');
dbms_output.put_line('El numero ingresado es '|| diaSemana);
end;
--ingresar un numero entre 1 y 7 usando excepciones
set serveroutput on
declare
diaSemana integer;
IngreseValorNumerico char(2);
begin
diaSemana := to_number('&IngreseValorNumerico');
if diasemana >= 1 and diasemana <=7 then
dbms_output.put_line('El numero ingresado es Correcto ' ||diaSemana);
else
dbms_output.put_line('ERROR: El numero ingresado es Incorrecto ' ||diaSemana);
end if;
exception
when VALUE_ERROR then
dbms_output.put_line('OJO: El numero ingresado no es valido ');
end;
--calcular la suma de la serie 1+2+3+...+n
set serveroutput on
declare
n integer;
numeroIngresado varchar(10);
suma integer;
begin
n := to_number('&IngreseValorNumerico');
for i in 1..n loop
suma := suma + i;
end loop;
dbms_output.put_line('El valor de la serie para n= ' || n ||' es: '||&suma);
exception
when VALUE_ERROR then
dbms_output.put_line('El numero ingresado no es valido');
end
sábado, 31 de marzo de 2012
sábado, 24 de marzo de 2012
Clase 24 de Marzo
--PPT 1 PL SQL--
--ejercicio pagina 14 ppt plsql--
create table t1(e number, f number);
insert into t1 values(1, 3);
insert into t1 values(2, 4);
select * from t1;
DECLARE
a NUMBER;
b NUMBER;
BEGIN
SELECT e,f INTO a,b FROM T1 WHERE e>1;
IF b=1 THEN
INSERT INTO T1 VALUES(b,a);
ELSE
INSERT INTO T1 VALUES(b+10,a+10);
END IF;
END;
--para ejecutar denuevo este programa, se selecciona y se ejecuta, ya que es un programa anonimo
--el programa ya no funciona, por que el select despues del begin, tiene q retornar solo una fila
--y ya existen 2 filas con e>1--
--escribir hola mundo 10 veces--
DECLARE
contador integer :=1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('HOLA MUNDO ' || contador);
contador:= contador+1;
EXIT WHEN contador > 10;
END LOOP;
END;
-- otra forma de contador --
BEGIN
FOR contador IN REVERSE 1..100
LOOP
DBMS_OUTPUT.PUT_LINE('hola cauro ' || contador);
END LOOP;
END;
--ciclo while
DECLARE
contador integer:= 1;
BEGIN
WHILE contador <= 10
LOOP
DBMS_OUTPUT.PUT_LINE('hola MUNDO ' || contador);
contador:= contador+1;
END LOOP;
END;
DECLARE
i integer;
BEGIN
i:= 1;
WHILE i <= 5
LOOP
DBMS_OUTPUT.PUT_LINE('HOLA ' || i);
i:= i+1;
END LOOP;
END;
--PPT 2 PLSQL FUNCIONES INTERNAS--
--TABLA DUAL DE ORACLE--
SELECT UPPER('hola') FROM DUAL;
SELECT SYSDATE FROM DUAL;
-- MOSTRAR EL DIA DE LA FECHA ACTUAL--
SELECT
to_char(SYSDATE),'day')
from dual;
--CONOCER EL DIA DE NACIMIENTO A PARTIR DE UNA FECHA. SE CONVIERTE EL STRING FECHA A TIPO FECHA--
SELECT TO_CHAR(TO_DATE('12-JUL-1987', 'DD-MON-YYYY'), 'DAY')
FROM DUAL;
SELECT TO_CHAR(TO_DATE('12-07-1987', 'DD-MM-YYYY'), 'DAY')
FROM DUAL;
-- CAMBIAR NOMBRE DE COLUMNA--
SELECT TO_CHAR(TO_DATE('12-07-1987', 'DD-MM-YYYY'), 'DAY') AS "FECHA DE NACIMIENTO"
FROM DUAL;
--activando usuario hr--
select * from employees;
select count(*) from employees;
DESCRIBE employees;
--EL ATRIBUTO ID TOMA EL MISMO TIPO DEL ATRIBUTO EMPLOYESS_ID DE LA TABLA EMPLOYEES--
DECLARE
id EMPLOYEES.EMPLOYEE_ID%TYPE;
BEGIN
NULL;
END;
--CONOCER EL NUMERO DE FILA QUE TIENEN LOS EMPLEADOS DE LA TABLA EMPLOYEES--
SELECT ROWNUM, FIRST_NAME FROM EMPLOYEES;
-- INSERTAR NUMEROS ALEATORIOS --
create table tx (x int,y varchar(5));
insert into tx
select rownum, trunc(dbms_random.value(1,99999))
from dual
connect by rownum <= 10;
select * from tx;
--ejercicio pagina 14 ppt plsql--
create table t1(e number, f number);
insert into t1 values(1, 3);
insert into t1 values(2, 4);
select * from t1;
DECLARE
a NUMBER;
b NUMBER;
BEGIN
SELECT e,f INTO a,b FROM T1 WHERE e>1;
IF b=1 THEN
INSERT INTO T1 VALUES(b,a);
ELSE
INSERT INTO T1 VALUES(b+10,a+10);
END IF;
END;
--para ejecutar denuevo este programa, se selecciona y se ejecuta, ya que es un programa anonimo
--el programa ya no funciona, por que el select despues del begin, tiene q retornar solo una fila
--y ya existen 2 filas con e>1--
--escribir hola mundo 10 veces--
DECLARE
contador integer :=1;
BEGIN
LOOP
DBMS_OUTPUT.PUT_LINE('HOLA MUNDO ' || contador);
contador:= contador+1;
EXIT WHEN contador > 10;
END LOOP;
END;
-- otra forma de contador --
BEGIN
FOR contador IN REVERSE 1..100
LOOP
DBMS_OUTPUT.PUT_LINE('hola cauro ' || contador);
END LOOP;
END;
--ciclo while
DECLARE
contador integer:= 1;
BEGIN
WHILE contador <= 10
LOOP
DBMS_OUTPUT.PUT_LINE('hola MUNDO ' || contador);
contador:= contador+1;
END LOOP;
END;
DECLARE
i integer;
BEGIN
i:= 1;
WHILE i <= 5
LOOP
DBMS_OUTPUT.PUT_LINE('HOLA ' || i);
i:= i+1;
END LOOP;
END;
--PPT 2 PLSQL FUNCIONES INTERNAS--
--TABLA DUAL DE ORACLE--
SELECT UPPER('hola') FROM DUAL;
SELECT SYSDATE FROM DUAL;
-- MOSTRAR EL DIA DE LA FECHA ACTUAL--
SELECT
to_char(SYSDATE),'day')
from dual;
--CONOCER EL DIA DE NACIMIENTO A PARTIR DE UNA FECHA. SE CONVIERTE EL STRING FECHA A TIPO FECHA--
SELECT TO_CHAR(TO_DATE('12-JUL-1987', 'DD-MON-YYYY'), 'DAY')
FROM DUAL;
SELECT TO_CHAR(TO_DATE('12-07-1987', 'DD-MM-YYYY'), 'DAY')
FROM DUAL;
-- CAMBIAR NOMBRE DE COLUMNA--
SELECT TO_CHAR(TO_DATE('12-07-1987', 'DD-MM-YYYY'), 'DAY') AS "FECHA DE NACIMIENTO"
FROM DUAL;
--activando usuario hr--
select * from employees;
select count(*) from employees;
DESCRIBE employees;
--EL ATRIBUTO ID TOMA EL MISMO TIPO DEL ATRIBUTO EMPLOYESS_ID DE LA TABLA EMPLOYEES--
DECLARE
id EMPLOYEES.EMPLOYEE_ID%TYPE;
BEGIN
NULL;
END;
--CONOCER EL NUMERO DE FILA QUE TIENEN LOS EMPLEADOS DE LA TABLA EMPLOYEES--
SELECT ROWNUM, FIRST_NAME FROM EMPLOYEES;
-- INSERTAR NUMEROS ALEATORIOS --
create table tx (x int,y varchar(5));
insert into tx
select rownum, trunc(dbms_random.value(1,99999))
from dual
connect by rownum <= 10;
select * from tx;
miércoles, 21 de marzo de 2012
Clase 21 de Marzo
--DECLARAMOS 2 VARIABLES Y MOSTRAMOS EN PANATALLA EL VALOR DE CADA UNA (TEXTO)--
DECLARE
MENSAJE1 VARCHAR2(4):='HOLA';
MENSAJE2 VARCHAR2(8):='MUNDO';
BEGIN
DBMS_OUTPUT.PUT_LINE(MENSAJE1 || MENSAJE2);
END
--EJERCICIO 2
CREATE TABLE T1(E INTEGER, F INTEGER);
BEGIN
INSERT INTO T1 VALUES(1, 3);
INSERT INTO T1 VALUES(2, 4);
END
SELECT * FROM T1;
DECLARE
A NUMBER;
B NUMBER;
BEGIN
SELECT E,F INTO A,B
FROM T1
WHERE E>1;
INSERT INTO T1 VALUES(B,A);
END;
--EJERCICIO 3 (SI EXISTE MAS DE UN REGISTRO)
DECLARE
A INTEGER;
BEGIN
SELECT COUNT(*) INTO A
FROM T1;
IF A>1 THEN
DBMS_OUTPUT.PUT_LINE('HAY MAS DE UN REGISTRO');
ELSE
DBMS_OUTPUT.PUT_LINE('HAY SOLO UN REGISTRO');
END IF;
END
--EJERCICIO 4 (NUMERO PAR O IMPAR)
DECLARE
A INTEGER;
MSG VARCHAR2(5);
BEGIN
SELECT COUNT(*) INTO A
FROM T1;
IF MOD(A,2)=0 THEN
MSG:='PAR';
ELSE
MSG:='IMPAR';
END IF;
DBMS_OUTPUT.PUT_LINE('HAY SOLO UN REGISTRO');
END
sábado, 17 de marzo de 2012
Clase 17 de Marzo
CREATE TABLE AUTOR (IDAUTOR INT PRIMARY KEY, NOMBRE VARCHAR2(30));
CREATE TABLE LIBRO (IDLIBRO INT PRIMARY KEY, IDAUTOR INT, NOMBRE VARCHAR2(30));
--CREAR LLAVE FORANEA IDAUTOR EN LIBRO
ALTER TABLE LIBRO
ADD CONSTRAINT FK_LIBRO_AUTOR FOREIGN KEY (IDAUTOR) REFERENCES AUTOR (IDAUTOR);
INSERT INTO AUTOR VALUES(01, 'GABRIEL GARCIA MARQUEZ');
INSERT INTO AUTOR VALUES(02, 'PABLO NERUDA');
--INSERTAR 5 LIBROS
INSERT INTO LIBRO VALUES(11, 01, 'EL ALQUIMISTA');
INSERT INTO LIBRO VALUES(12, 01, 'INGENIERIA DE SOFTWARE');
INSERT INTO LIBRO VALUES(13, 02, 'HOLA QUE TAL');
INSERT INTO LIBRO VALUES(14, 02, 'MI NOMBRE ES...');
INSERT INTO LIBRO VALUES(15, 01, '20 POEMAS DE AMOR Y...');
--MODIFICAR EL TAMAÑO DEL ATRIBUTO NOMBRE EN TABLA LIBRO A 50
ALTER TABLE LIBRO MODIFY NOMBRE VARCHAR2(50);
--AGREGAR LA FECHA DE NACIMIENTO A TABLA AUTOR
ALTER TABLE AUTOR ADD FECNAC DATE;
--COMPLETAR LA FECHA DE NACIMIENTO DE LOS AUTORES
UPDATE AUTOR SET FECNAC = '12-07-1904' WHERE NOMBRE = 'PABLO NERUDA';
UPDATE AUTOR SET FECNAC = '06-03-1927' WHERE NOMBRE = 'GABRIEL GARCIA MARQUEZ';
select * from autor
select * from libro
--seleccionar todos los libros del autor 'pablo neruda'
SELECT * FROM LIBRO L INNER JOIN AUTOR A ON L.IDAUTOR=A.IDAUTOR
WHERE A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO L, AUTOR A WHERE L.IDAUTOR = A.IDAUTOR
AND A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO WHERE IDAUTOR = (SELECT IDAUTOR FROM AUTOR WHERE autor.NOMBRE = 'PABLO NERUDA');
--CALCULAR LA EDAD DE GABRIEL GARCIA MARQUEZ
SELECT NOMBRE, (SYSDATE - FECNAC)/365 FROM AUTOR WHERE nombre='GABRIEL GARCIA MARQUEZ'
UPDATE Autor set fecNac = '12-07-1904'
WHERE UPPER(nombre) = UPPER('Pablo neruda');
SELECT UPPER ('AbCdEf') from dual
select 128*4 from dual
select 128*4 as tamaño from dual
SELECT * FROM TAB
UPDATE AUTOR SET FECNAC = '17-03-2012' WHERE NOMBRE = 'GABRIEL GARCIA MARQUEZ';
-- MOSTRAR EL FORMATO DE LA TABLA
DESC AUTOR
SELECT NOMBRE, ROUND((SYSDATE - FECNAC)/365) AS EDAD FROM AUTOR WHERE nombre='GABRIEL GARCIA MARQUEZ'
SELECT * FROM LIBRO L INNER JOIN ATOR A ON L.IDAUTOR=A.IDAUTOR WHERE A.NOMBRE='PABLO NERUDA';
--SELECCIONAR TODAS LAS COLUMNAS QUE EXISTEN EN LAS TABLAS
SELECT * FROM COL;
--LISTAR LOS NOMBRES DE LOS LOS AUTORES QUE HAN ESCRITO ALGUN LIBRO RELACIONADO CON AMOR--
SELECT NOMBRE FROM AUTOR WHERE IDAUTOR IN (SELECT IDAUTOR FROM LIBRO WHERE LOWER(NOMBRE) LIKE '%amor%')
CREATE TABLE LIBRO (IDLIBRO INT PRIMARY KEY, IDAUTOR INT, NOMBRE VARCHAR2(30));
--CREAR LLAVE FORANEA IDAUTOR EN LIBRO
ALTER TABLE LIBRO
ADD CONSTRAINT FK_LIBRO_AUTOR FOREIGN KEY (IDAUTOR) REFERENCES AUTOR (IDAUTOR);
INSERT INTO AUTOR VALUES(01, 'GABRIEL GARCIA MARQUEZ');
INSERT INTO AUTOR VALUES(02, 'PABLO NERUDA');
--INSERTAR 5 LIBROS
INSERT INTO LIBRO VALUES(11, 01, 'EL ALQUIMISTA');
INSERT INTO LIBRO VALUES(12, 01, 'INGENIERIA DE SOFTWARE');
INSERT INTO LIBRO VALUES(13, 02, 'HOLA QUE TAL');
INSERT INTO LIBRO VALUES(14, 02, 'MI NOMBRE ES...');
INSERT INTO LIBRO VALUES(15, 01, '20 POEMAS DE AMOR Y...');
--MODIFICAR EL TAMAÑO DEL ATRIBUTO NOMBRE EN TABLA LIBRO A 50
ALTER TABLE LIBRO MODIFY NOMBRE VARCHAR2(50);
--AGREGAR LA FECHA DE NACIMIENTO A TABLA AUTOR
ALTER TABLE AUTOR ADD FECNAC DATE;
--COMPLETAR LA FECHA DE NACIMIENTO DE LOS AUTORES
UPDATE AUTOR SET FECNAC = '12-07-1904' WHERE NOMBRE = 'PABLO NERUDA';
UPDATE AUTOR SET FECNAC = '06-03-1927' WHERE NOMBRE = 'GABRIEL GARCIA MARQUEZ';
select * from autor
select * from libro
--seleccionar todos los libros del autor 'pablo neruda'
SELECT * FROM LIBRO L INNER JOIN AUTOR A ON L.IDAUTOR=A.IDAUTOR
WHERE A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO L, AUTOR A WHERE L.IDAUTOR = A.IDAUTOR
AND A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO WHERE IDAUTOR = (SELECT IDAUTOR FROM AUTOR WHERE autor.NOMBRE = 'PABLO NERUDA');
--CALCULAR LA EDAD DE GABRIEL GARCIA MARQUEZ
SELECT NOMBRE, (SYSDATE - FECNAC)/365 FROM AUTOR WHERE nombre='GABRIEL GARCIA MARQUEZ'
UPDATE Autor set fecNac = '12-07-1904'
WHERE UPPER(nombre) = UPPER('Pablo neruda');
SELECT UPPER ('AbCdEf') from dual
select 128*4 from dual
select 128*4 as tamaño from dual
SELECT * FROM TAB
UPDATE AUTOR SET FECNAC = '17-03-2012' WHERE NOMBRE = 'GABRIEL GARCIA MARQUEZ';
-- MOSTRAR EL FORMATO DE LA TABLA
DESC AUTOR
SELECT NOMBRE, ROUND((SYSDATE - FECNAC)/365) AS EDAD FROM AUTOR WHERE nombre='GABRIEL GARCIA MARQUEZ'
SELECT * FROM LIBRO L INNER JOIN ATOR A ON L.IDAUTOR=A.IDAUTOR WHERE A.NOMBRE='PABLO NERUDA';
--SELECCIONAR TODAS LAS COLUMNAS QUE EXISTEN EN LAS TABLAS
SELECT * FROM COL;
--LISTAR LOS NOMBRES DE LOS LOS AUTORES QUE HAN ESCRITO ALGUN LIBRO RELACIONADO CON AMOR--
SELECT NOMBRE FROM AUTOR WHERE IDAUTOR IN (SELECT IDAUTOR FROM LIBRO WHERE LOWER(NOMBRE) LIKE '%amor%')
miércoles, 14 de marzo de 2012
Clase 14 de Marzo
CREATE TABLE AUTOR (IDAUTOR INT PRIMARY KEY, NOMBRE VARCHAR2(30));
CREATE TABLE LIBRO (IDLIBRO INT PRIMARY KEY, IDAUTOR INT, NOMBRE VARCHAR2(30));
--CREAR LLAVE FORANEA IDAUTOR EN LIBRO
ALTER TABLE LIBRO
ADD CONSTRAINT FK_LIBRO_AUTOR FOREIGN KEY (IDAUTOR) REFERENCES AUTOR (IDAUTOR);
INSERT INTO AUTOR VALUES(01, 'GABRIEL GARCIA MARQUEZ');
INSERT INTO AUTOR VALUES(02, 'PABLO NERUDA');
--INSERTAR 5 LIBROS
INSERT INTO LIBRO VALUES(11, 01, 'EL ALQUIMISTA');
INSERT INTO LIBRO VALUES(12, 01, 'INGENIERIA DE SOFTWARE');
INSERT INTO LIBRO VALUES(13, 02, 'HOLA QUE TAL');
INSERT INTO LIBRO VALUES(14, 02, 'MI NOMBRE ES...');
INSERT INTO LIBRO VALUES(15, 01, '20 POEMAS DE AMOR Y...');
--MODIFICAR EL TAMAÑO DEL ATRIBUTO NOMBRE EN TABLA LIBRO A 50
ALTER TABLE LIBRO MODIFY NOMBRE VARCHAR2(50);
--AGREGAR LA FECHA DE NACIMIENTO A TABLA AUTOR
ALTER TABLE AUTOR ADD FECNAC DATE;
--COMPLETAR LA FECHA DE NACIMIENTO DE LOS AUTORES
UPDATE AUTOR SET FECNAC = '12-07-1904' WHERE NOMBRE = 'PABLO NERUDA';
UPDATE AUTOR SET FECNAC = '06-03-1927' WHERE NOMBRE = 'GABRIEL GARCIA MARQUEZ';
--seleccionar todos los libros del autor 'pablo neruda'
SELECT * FROM LIBRO L INNER JOIN AUTOR A ON L.IDAUTOR=A.IDAUTOR
WHERE A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO L, AUTOR A WHERE L.IDAUTOR = A.IDAUTOR
AND A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO WHERE IDAUTOR = (SELECT IDAUTOR FROM AUTOR WHERE A.NOMBRE = 'PABLO NERUDA');
--CALCULAR LA EDAD DE GABRIEL GARCIA MARQUEZ
SELECT NOMBRE, (SYSDATE - FECNAC)/365 FROM AUTOR WHERE 'GABRIEL GARCIA MARQUEZ'
CREATE TABLE LIBRO (IDLIBRO INT PRIMARY KEY, IDAUTOR INT, NOMBRE VARCHAR2(30));
--CREAR LLAVE FORANEA IDAUTOR EN LIBRO
ALTER TABLE LIBRO
ADD CONSTRAINT FK_LIBRO_AUTOR FOREIGN KEY (IDAUTOR) REFERENCES AUTOR (IDAUTOR);
INSERT INTO AUTOR VALUES(01, 'GABRIEL GARCIA MARQUEZ');
INSERT INTO AUTOR VALUES(02, 'PABLO NERUDA');
--INSERTAR 5 LIBROS
INSERT INTO LIBRO VALUES(11, 01, 'EL ALQUIMISTA');
INSERT INTO LIBRO VALUES(12, 01, 'INGENIERIA DE SOFTWARE');
INSERT INTO LIBRO VALUES(13, 02, 'HOLA QUE TAL');
INSERT INTO LIBRO VALUES(14, 02, 'MI NOMBRE ES...');
INSERT INTO LIBRO VALUES(15, 01, '20 POEMAS DE AMOR Y...');
--MODIFICAR EL TAMAÑO DEL ATRIBUTO NOMBRE EN TABLA LIBRO A 50
ALTER TABLE LIBRO MODIFY NOMBRE VARCHAR2(50);
--AGREGAR LA FECHA DE NACIMIENTO A TABLA AUTOR
ALTER TABLE AUTOR ADD FECNAC DATE;
--COMPLETAR LA FECHA DE NACIMIENTO DE LOS AUTORES
UPDATE AUTOR SET FECNAC = '12-07-1904' WHERE NOMBRE = 'PABLO NERUDA';
UPDATE AUTOR SET FECNAC = '06-03-1927' WHERE NOMBRE = 'GABRIEL GARCIA MARQUEZ';
--seleccionar todos los libros del autor 'pablo neruda'
SELECT * FROM LIBRO L INNER JOIN AUTOR A ON L.IDAUTOR=A.IDAUTOR
WHERE A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO L, AUTOR A WHERE L.IDAUTOR = A.IDAUTOR
AND A.NOMBRE = 'PABLO NERUDA';
SELECT * FROM LIBRO WHERE IDAUTOR = (SELECT IDAUTOR FROM AUTOR WHERE A.NOMBRE = 'PABLO NERUDA');
--CALCULAR LA EDAD DE GABRIEL GARCIA MARQUEZ
SELECT NOMBRE, (SYSDATE - FECNAC)/365 FROM AUTOR WHERE 'GABRIEL GARCIA MARQUEZ'
Suscribirse a:
Entradas (Atom)