Hola toda la comunidad de desarrolladores
Aqui dejo algunos ejemplos de los primeros pasos en el aprendizaje de ORACLE
para referencia de quien quiera hacer tablas y manejar procedimientos
######################################################
Oracle PL/SQL
######################################################
Crear Tablas
######################################################
CREATE TABLE estudiantes (
id NUMBER(5) PRIMARY KEY,
nombre CHAR(29),
apellido CHAR(29)
especialidad CHAR(29),
creditos NUMBER
);
CREATE TABLE aulas (
idaula NUMBER(5) PRIMARY KEY,
edificio CHAR(15),
numeroaula NUMBER,
numeroasientos NUMBER,
descripcionaula CHAR(50)
);
CREATE TABLE especialidades (
especialidades CHAR(3),
totalcreditos NUMBER,
totalestudiantes NUMBER
);
CREATE TABLE cursos(
departamento CHAR(3),
ncurso NUMBER,
descripcioncurso CHAR(200),
cupoestudiantes NUMBER,
nestudiantes NUMBER,
ncreditos NUMBER,
idaula NUMBER,
CONSTRAINT cursos_departamento_ncurso
PRIMARY KEY(departamento, ncurso),
CONSTRAINT cursos_idaula
FOREIGN KEY(idaula) REFERENCES aulas (idaula)
);
CREATE TABLE estudios(
idestudiante NUMBER NOT NULL,
departamento CHAR(3) NOT NULL,
Ncurso NUMBER NOT NULL,
grado CHAR(1),
CONSTRAINT estudios_grado
CHECK(grado IN('A','B','C','D','E')),
CONSTRAINT estudios_idestudiante
FOREIGN KEY(idestudiante) REFERENCES estudiantes (id),
CONSTRAINT estudios_departamento_ncurso
FOREIGN KEY (departamento, ncurso) REFERENCES cursos (departamento, ncurso)
);
CREATE TABLE cambios(
tipo CHAR(1) NOT NULL,
razon VARCHAR(8) NOT NULL,
fecha DATE NOT NULL,
antiguoestudiante NUMBER(5),
antiguodepartamento CHAR(3),
antiguoncurso NUMBER(3),
antiguogrado CHAR(1),
nuevoidestudiante NUMBER(3),
nuevodepartamento CHAR(3),
nuevoncurso NUMBER(3),
nuevogrado CHAR(1)
);
CREATE TABLE errores(
codigo NUMBER,
mensaje VARCHAR(200),
informacion VARCHAR(100)
);
CREATE TABLE temporal(
columnanumerica NUMBER,
columnacaracter VARCHAR(100)
);
CREATE TABLE debug(
nlinea NUMBER,
texto VARCHAR2(100)
);
CREATE SEQUENCE secuencia
START WITH 10000
INCREMENT BY 1;
INSERT INTO estudiantes VALUES(1, 'Scott', 'Smith', 'Computer Science', 0);
INSERT INTO estudiantes VALUES(2, 'Margaret', 'Mason', 'History', 0);
INSERT INTO estudiantes VALUES(3, 'Joane', 'Junebug', 'Computer Science', 0);
INSERT INTO estudiantes VALUES(4, 'Manish', 'Mugratroid', 'Economics', 0);
INSERT INTO estudiantes VALUES(5, 'Patrick', 'Poll', 'History', 0);
INSERT INTO estudiantes VALUES(6, 'Timothy', 'Taller', 'History', 0);
INSERT INTO estudiantes VALUES(7, 'Barbara', 'Blue', 'Economics', 0);
INSERT INTO estudiantes VALUES(8, 'David', 'Dinsmore', 'Music', 0);
INSERT INTO estudiantes VALUES(9, 'Ester', 'Elegant', 'Nutrition', 0);
INSERT INTO estudiantes VALUES(10, 'Rosy', 'Riznit', 'Music', 0);
INSERT INTO estudiantes VALUES(11, 'Rita', 'Razmataz', 'Nutrition', 0);
INSERT INTO aulas VALUES(99999, 'Building 7', 310, 1000, 'Large Lecture Hall');
INSERT INTO aulas VALUES(99998, 'Building 6', 101, 500, 'Small LEcture Hall');
INSERT INTO aulas VALUES(99997, 'Building 6', 150,50, 'Discussion Room A');
INSERT INTO aulas VALUES(99996, 'Building 6', 160,50, 'Discussion Room B');
INSERT INTO aulas VALUES(99995, 'Building 6', 179,50, 'Discussion Room C');
INSERT INTO aulas VALUES(99994, 'Music Building', 100, 10, 'Music Practice Room');
INSERT INTO aulas VALUES(99993, 'Music Building', 200, 1000, 'Concert Room');
INSERT INTO aulas VALUES(99992, 'Building 7', 300, 75, 'Discussion Room D');
INSERT INTO aulas VALUES(99991, 'Building 7', 300, 50, 'Discussion Room E');
######################################################
UPDATE
######################################################
UPDATE CURSOS
SET DEPARTAMENTO='CS' WHERE departamento='cS'
######################################################
PROCEDIMIENTOS
######################################################
CREATE OR REPLACE PROCEDURE AñadeNuevoEstudiante(
p_Nombre estudiantes.nombre%TYPE,
p_Apellido estudiantes.apellido%TYPE,
p_Especialidad estudiantes.especialidad%TYPE) AS
BEGIN
--Inserta una nueva fila en la tabla estudiantes
--Usa secuencia para generar un nuevo ID estudiante
--y asigna el valor cero a creditos
INSERT INTO estudiantes(ID, nombre, apellido, especialidad, creditos)
VALUES(secuencia.nextval, p_Nombre, p_Apellido, p_Especialidad, 0);
COMMIT;
END AñadeNuevoEstudiante;
/
######################################################
Invocar Procedimiento
######################################################
BEGIN
AñadeNuevoEstudiante('David','Lewis','Music');
END;
/
######################################################
CADENAS
SUBSTRAER UNA CADENA
######################################################
SELECT SUBSTR('0000000000'||'123456',1,15) "Subcad" FROM DUAL;
REGRESA del :
Subcad
------------
'000000000012345'
Seguire Agregando mas...
http://sqleficiente.wordpress.com/
"Cual quier reto por dificil que sea, si se puede lograr, si realmente lo intentamos"
Saludos!!
Marco
:D
miércoles, 10 de diciembre de 2008
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario