UNIDAD N 1 Introduccin a Oracle y uso del lenguaje SQL
Acceso a la Base de Datos Oracle: Herramienta a usar durante el curso: SqlDeveloper Crear un usuario en la base de datos: Alegajo/Alegajo lab! Desde alumno"alumnolab!: ejecutar el script crea#alumno$sql %&tilitarios de &p'irtal( Create user Alegajo identified by Alegajo default tablespace users temporary tablespace temp quota unlimited on users; Grant connect, resource, create procedure, create trigger to Alegajo; Conectarse como Alegajo/Alegajolab! y cargar las tablas que se usaran en el curso: )ablas*+demobld$ Familiarizarse con SlDe!elo"er: #rimera "arte: Cons$ltas Cons$ltas: Select% &'ere% Order ()% *oins: Order () Select , -rom. / Select lista de columnas y alias de columnas &so de Distinct para eliminar 0ilas duplicadas Cl1usula Order by 2estriccin de 0ilas con 34ere: condiciones simples/ Operadores aritm5ticos/ lgicos y de comparacin: In/ +et6een$$7nd$$/ Li8e/ Case Operador de concatenacin %99( Concepto de null values : is null/ is not null 2eglas de precedencia y uso de par5ntesis :jemplos: Consultar el contenido de algunas tablas para conocer su in0ormacin +aria(les de s$stit$ci,n- &so de ; en sentencias Sql :jemplos: Consultar datos de un empleado dado$ <or id y por apellido$ *oins: Obtener datos de m1s de una tabla$ <roducto cartesiano Cali0icar columnas ambiguas y alias de tabla &sando 34ere tabla$columna = tabla$columna &sando >oin en la clausula -rom: >oin/ Inner >oin/ ?atural >oin/ Outer join ?atural join: columnas que se llaman igual en dos tablas: Select last#name/ name -rom :mployee natural join Department Cl1usula On: Select employee#id/ regional#group/ name -rom :mployee e >oin department d On d$department#id = e$department#id >oin location l On d$location#id = l$location#id @ Outer join: Le0t / 2ig4t y -ull Select last#name/ name -rom :mployee Le0t Outer join Department using %department#id( Sel0t join: Select e$last#name 99 A depende de: A99 j$last#name -rom :mployee e join :mployee j on %e$manager#id = j$employee#id( Cross join: producto cartesiano Select last#name/ name -rom :mployee Cross join Departmet :jemplos: Departamentos y sus empleados/ con outer join/ :mpleados y sus je0es$ Brado de salario de los empleados$ F$nciones de .ila sim"le: ) de /r$"o0 1ro$" () ) 2a!in/ : -unciones de 0ila simple: Sysdate y &ser -unciones para valores nulos: ?vl -unciones de caracteres: Lo6er/ &pper/ Initcap/ Substr/ Lengt4/ Lpad/ 2pad/ )rim/ Decode -unciones num5ricas: 2ound/ )runc/ Cod -unciones de 0ec4as: Cont4s#bet6een/ 7dd#Cont4s/ ?eDt#day/ 2ound -ormatos de 0ec4a %EEEE/ CC/ Cont4/ DD/ Day( -unciones de conversin: )o#number/ )o#c4ar/ )o#date $ :jemplos: :mpleados y la cantidad de dFas que 4ace que trabajan$ Salarios diarios de los empleados redondeados a ! decimales$ <rimeras tres letras del nombre de los empleados$ F$nciones de /r$"o0 1ro$" () ) 2a!in/: Funciones de grupo: 7vg/ Count/ CaD/ Cin/ Sum/ Count distinct Cl1usula Broup by/ agrupar por m1s de una columna Cl1usula Having: eDcluir grupos del resultado :jemplos: Salarios m1Dimo y mFnimo de los empleados de un departamento dado$ Salarios m1Dimo y mFnimo por departamento$ Cantidad de empleados por departamento$ Cantidad de empleados ingresados por cada aGo$ S$(cons$ltas sim"les ) sincronizadas: Subconsultas: van entre par5ntesis/ a la derec4a de la comparacin/ no pueden tener Order +y y los operadores deben coincidir con el tipo de resultado que devuelve la subconsulta$ :jemplos: :mpleados del departamento AOperationsH/ :mpleados que ganan m1s que el promedio de salarios$ :mpleados que ganan m1s que el promedio de salarios de su departamento$ :mpleado m1s antiguo$ :mpleados que ganan m1s que su je0e$ ! Se/$nda "arte: 3ani"$laci,n ) De.inici,n Sentencias de mani"$laci,n de datos: Insert% U"date ) Delete: Inserta 0ilas: Insert into tabla I%lista de columnas(J values %lista de valores( Insertar datos num5ricos/ al0ab5ticos y tipo 0ec4a Insertar con datos de otras tablas: Insert into tabla Select $$$$$$$ 7ctualiKar datos: &pdate tabla set columna = eDpresion I64ere condicionJ :liminar 0ilas: Delete I0romJ tabla I64ere condicionJ Integridad de los datos: no se puede eliminar padre con 4ijos/ insertar 4ijos sin padre/ duplicar clave primaria/ violar otras restricciones de integridad$ :jemplos: Insertar / actualiKar y eliminar 0ilas en la tabla de departamentos$ 3ane4o de transacciones: Commit ) Roll(ac5: Control de transacciones con Commit/ 2ollbac8 y Savepoint :stado de los datos antes y despu5s de Commit o 2ollbac8$ Concepto de Loc8$ :jemplos: Hacer modi0icaciones y asentarlas descartarlas$ 7brir dos coneDiones con el mismo usuario para ver el estado de los datos y loqueos antes y despu5s de commit"rollbac8$
Sentencias de de.inici,n de datos: Create% Alter ) Dro": Create table: Creacin de tablas: reglas para los nombres$ )ipos de datos Crear una tabla usando una subconsulta: crea estructura y datos 7lter table: 7gregar columnas: 7dd %columna tipo#dato IDe0ault expresinJ,...) Codi0icar columna: Codi0y %columna tipo#dato IDe0ault expresinJ( :liminar columna: Drop coumn columna Drop table Re/las de inte/ridad de la (ase ) "ri!ile/ios: Concepto de restricciones o constraints$ ?ot null/ <rimary 8ey/ &nique/ -oreign Ley/ C4ec8 SintaDis/ de0inicin a nivel de columna o de tabla$ 7lterar una tabla para agregar constraints Constraint id#p8 <rimary 8ey %id( Constraint dept#p8 -oreign 8ey %dept#id( 2e0erences dept%dept#id( :liminar una constraint con 7lter table Drop constraint nombre O"tati!o: Otros o(4etos: !istas% 6ndices% sec$encias: Concepto de objeto: tabla/ vista/ secuencia/ sinnimo/ Fndice y program unit Crear secuencias: Create sequence seq start 6it4 n maDvalue m nocycle &so de secuencias: ?eDtval y Currval M