Está en la página 1de 16

Informe SQL

Nombre: Oliver Oliva Asignatura: Programacin de Base de Datos Profesor: Patricio Y !e" #ec$a: %&'()'%(*+

ndice

Historia de SQL....3 Funcionalidad......7 Sentencias SQL....9

Evolucin.........................5

Historia de SQL
La historia del estndar SQL inicia con la proposicin de E.F Codd de las bases de datos relacionales, y la experimentacin de IB con s! proyecto System"# a mediados de los $%& , dando como primer res!ltado el len'!a(e llamado SEQ)EL *Se+!enced En'lish Q!ery Lan'!a'e, Len'!a(e de cons!ltas sec!encial en In'l,s-, c!ya implementacin se reali. en los sistemas internos de IB *SEQ)EL /# - entre 01$2 y 01$3. Los b!enos res!ltados cond!(eron a !na re4isin y me(ora de la especi5icacin, naciendo as6 SEQ)EL"7, c!yo nombre debi ser cambiado a SQL, Str!ct!red Q!ery Lan'!a'e, por moti4os le'ales *no se p!eden re'istrar marcas +!e sean !n s!stanti4o com8n, siendo !na de las acepciones de 9se+!el: la expansin de !na historia literaria-. El a;o 01$1 4e como la empresa #elational So5t<are, Inc. lan.a el primer so5t<are S=B> relacional basado en SQL, llamado ?racle. En 01@A IB comerciali.a >B7, s! prod!cto de bases de datos relacionales y, otras compa;6as,

entre ellas Sysbase y icroso5t si'!en s! camino. El estndar SQL +!e empleamos hoy es el res!ltado de la adopcin de SQL por parte del Bmerican Cationals Standards Instit!te en 01@D,*BCSI-, y s!s re4isiones en 01@1 y 0117. La tendencia en n!estros d6as, (!nto a la incl!sin de tecnolo'6as Eeb, es de inte'rar SQL a las plata5ormas de pro'ramacin tradicionales como !na 5orma de enlace entre los sistemas comp!tacionales de cara al !s!ario, con !na experiencia de !so me(orada y simpli5icada para el in'reso de datos, y los sistemas e in5raestr!ct!ras especialistas en bases de datos. )n claro e(emplo de ello es el F>BC, !na inter5a. de pro'ramacin de aplicaciones lan.ada en 011$ (!nto con la F>G 0.0, +!e permite operaciones entre bases de datos relacionales SQL y Fa4a. En 011@, ?racle @i permite inte'racin de bases de datos e internet, y en el a;o 0111 F7EE estandari.a los accesos de F>BC desde aplicaciones, permitiendo (!nto con ?racle

@i !n acceso remoto a las colecciones de datos.

E4ol!cin de SQL
Este len'!a(e se ha con4ertido en !n estndar de hecho a lo lar'o de los a;os, 'racias a la m8ltiple adopcin de las empresas. Esto deber6a potenciali.ar !na interaccin estrecha entre las di4ersas 5ormas de traba(ar de las distintas compa;6as desarrolladoras +!e basan s!s prod!ctos en SQL. Co obstante, cada prod!ctor adopta en s! propia base de datos el cora.n de SQL, llamado Entry Le4el, ampliando s! 5!ncionalidad dependiendo de s! propio p!nto de 4ista. He a contin!acin !n repaso de los principales cambios desde s! adopcin por parte del BCSI en 01@DH 01@D I SQL"@D, primera especi5icacin de BCSI. 01@$ J SQL0, norma IS? 01@@ JSQLSer4er para ?S"7, sistema operati4o de IB . icroso5t se s!be al carro de las S=B>

0117 I Se rati5ica el estndar BCSI SQL7, !sado hasta hoy. 0117 I icroso5t p!blica s! especi5icacin ?>BC, +!e permite acceder a c!al+!ier dato desde c!al+!ier aplicacin, sin importar +!, S=B> almacene la in5ormacin. 011D I Se p!blica el BKI estndar ?LBK para acceso a bases de datos y la pr!eba de rendimiento ?LBK. Estas dos herramientas a!mentan el rendimiento en las cons!ltas de 'randes cantidades de datos, en detrimiento de la insercin de los mismos. Es ampliamente !sado en el campo de la Inteli'encia Empresarial, c!ya aplicacin re+!iere !na 4elocidad de resp!esta cr6tica a la hora de mane(ar enormes 4ol8menes de datos en tiempo real a 5in de 'enerar conocimiento y estrate'ias comerciales. 011$ I S!n icrosystems lan.a F>BC, inte'racin de SQL y Fa4a. 7%%A I Inicio de la re4isin de SQLA.

F!ncionalidad

Caracter6sticasH Las 4enta(as, como se han mencionado, pro4ienen de la amplia colaboracin de 'randes 'i'antes de la ind!stria in5ormtica como IB , ?racle y icroso5t. Entre ellas se enc!entranH Lransportabilidad entre sistemas in5ormticos con !n menor es5!er.o de adaptacin, acceso a B> desde Internet, y !na c!r4a de aprendi.a(e ele4ado 'racias a s! sintaxis de alto ni4el inspirada en el in'l,s moderno. Los principales desarrolladores de sol!ciones de 'estin de base de datos o5recen entre s!s prod!ctos SB=>, por lo +!e s!s herramientas 5!ncionan con m!chas marcas di5erentes de bases SQL, siendo !no de los moti4os de s! pop!laridad hasta hoy. SQL es !na herramienta potente para conectar a los !s!arios, pro'ramas e in5raestr!ct!ra con los datos almacenados en las bases relacionales. El motor de bases de datos es la base del S=B>, responsable de estr!ct!rar, almacenar y rec!perar

los datos desde la base de datos. Los !s!arios p!eden, en s! 5orma ms r!dimentaria de !tili.acin, escribir comandos en pro'ramas interacti4os para rec!perar y manip!lar la in5ormacin insertada en las tablas relacionales y 4erlos en pantalla, con !n res!ltado ase+!ible de 4is!ali.ar, entender y act!ar con5orme a lo mostrado. Bl ser !n len'!a(e cliente"ser4idor, los ordenadores p!eden !tili.ar SQL para com!nicarse mediante red con los ser4idores de B>.

Sentencias de SQL

B contin!acin, se presentarn los comandos estndar de SQL a tra4,s de !n e(emplo 5!ncional de base de datos, en la opcin de ?racle traba(ada en clases.
"MCreacin de tablas relacionales, comando C#EBLE, +!e tambi,n p!ede ser !tili.ado para crear procedimientos, pa+!etes, sec!encias, etc.M" C#EBLE LBBLE B#LISLB *I>NB#LISLB C) BE# K#I B#O GEO, C? B#E PB#CHB#*7%- C?L C)LL, BKELLI>? PB#CHB#*7%- C?L C)LL -Q C#EBLE LBBLE >ISC? *I>N>ISC? C) BE# K#I B#O GEO, I>NB#LISLB C) BE# C?L C)LL, LIL)L? PB#CHB#*7%%- C?L C)LL, K#ECI? C) BE# C?L C)LL -Q C#EBLE LBBLE PECLB *I>NPECLB C) BE# K#I B#O GEO, I>N>ISC? C) BE# C?L C)LL -Q "M#es!ltado del motorH table B#LISLB creado. table >ISC? creado. table PECLB creado.

Bhora bien, I>NB#LISLB de la tabla >ISC? y I>N>ISC? de la tabla PECLB son cla4es 5orneas +!e no 5!eron declaradas al momento de la creacin de la tabla, por lo +!e se deben especi5icar. Bc entra en (!e'o la capacidad de dinamismo de contenido de las tablas, por lo +!e rec!rrimos al comando BLLE#. M" BLLE# LBBLE >ISC? B>> F?#EI=C GEO*I>NB#LISLB- #EFE#ECCES B#LISLB*I>NB#LISLB-Q BLLE# LBBLE PECLB B>> F?#EI=C GEO*I>N>ISC?- #EFE#ECCES >ISC?*I>N>ISC?-Q "M#es!ltado del motorH table >ISC? alterado. table PECLB alterado. Si 5alta al'8n campo en !na tabla, tambi,n se p!ede a're'ar, mediante el comando BLLE# y s! modi5icador B>> M" BLLE# LBBLE >ISC? B>> KISLBS C) BE# C?L C)LLQ "M#es!ltado del motorH table >ISC? alterado. Peamos a contin!acin la estr!ct!ra de las tablas, comando >ESCM" >ESC B#LISLBQ >ESC >ISC?Q >ESC PECLBQ

"M#es!ltado del motorH >ESC B#LISLB Combre C!lo Lipo JJJJJJJJJJ JJJJJJJJ JJJJJJJJJJJJ I>NB#LISLB C?L C)LL C) BE# C? B#E C?L C)LL PB#CHB#7*7%BKELLI>? C?L C)LL PB#CHB#7*7%>ESC >ISC? Combre C!lo Lipo JJJJJJJJJJJ JJJJJJJJ JJJJJJJJJJJJ I>N>ISC? C?L C)LL C) BE# I>NB#LISLB C?L C)LL C) BE# LIL)L? C?L C)LL PB#CHB#7*7%%K#ECI? C?L C)LL C) BE# KISLBS C?L C)LL C) BE# >ESC PECLB Combre C!lo Lipo JJJJJJJJ JJJJJJJJ JJJJJJ I>NPECLB C?L C)LL C) BE# I>N>ISC? C?L C)LL C) BE# In'resaremos datos a las A tablas, con el !so del comando ICSE#L ICL?. Bdems, para hacer ms cmoda la asi'nacin de cla4es primarias y e4itar la repeticin de las mismas, crearemos sec!encias para s! 'eneracin. M" C#EBLE SEQ)ECCE I>N>ELB#LISLBQ "MLas sec!encias, tal c!al estn siendo creadas, tienen !n 4alor inicial de 0, se incrementan en 0 !nidad, y tienen !n 4alor mximo de 11111111111111111111111111, esto se p!ede modi5icar.M"

C#EBLE SEQ)ECCE I>N>EL>ISC? SLB#L EILH 0% JJICICIB C?C 0% ICC#E ECL BO 7Q JJ ICC#E ECL? EC 7 )CI>B>ES C#EBLE SEQ)ECCE I>N>ELBPECLBQ "M #es!ltado del motorH se+!ence I>N>ELB#LISLB creado. se+!ence I>N>EL>ISC? creado. se+!ence I>N>ELBPECLB creado. I>N Kara hacer +!e la sec!encia determine el si'!iente 4alor a insertar, llamamos al n!e4o ob(eto, y seleccionamos la 4ariable CE/LPBLM" ICSE#L ICL? B#LISLB PBL)ES*I>N>ELB#LISLB.CE/LPBL,&Freddy&,&L!rbina&-Q ICSE#L ICL? B#LISLB PBL)ES*I>N>ELB#LISLB.CE/LPBL,&Foe&,&Kino&-Q ICSE#L ICL? B#LISLB PBL)ES*I>N>ELB#LISLB.CE/LPBL,&Fohn&,&Easabi&-Q "M#es!ltado del motorH 0 5ilas insertadas. 0 5ilas insertadas. 0 5ilas insertadas. Lo mismo para el disco. B 5in de seleccionar la I> correcta de artista, seleccionaremos todos los campos de la tabla B#LISLB con la sentencia SELECL M" SELECL M F#? B#LISLBQ

ICSE#L ICL? >ISC? PBL)ES *I>N>EL>ISC?.CE/LPBL,0,&E+!ilibrio Espirit!al&,A11%,0%-Q ICSE#L ICL? >ISC? PBL)ES *I>N>EL>ISC?.CE/LPBL,7,& i mam compra el diario&,$@%%,0%%-Q ICSE#L ICL? >ISC? PBL)ES *I>N>EL>ISC?.CE/LPBL,A,&Ci idea de por +!, lo hice&,A%%,$@%%-Q "M#es!ltado del motorH 0 5ilas insertadas. 0 5ilas insertadas. 0 5ilas insertadas. O ya +!e hemos creado las tablas e introd!cido 4alores en dos de ellas, manip!lemos los datos !n rato. Seleccionemos el nombre de !n disco y s! artista asociado. Seleccionamos datos desde !na tabla... SELECL / F#? O M" SELECL C? B#E,BKELLI>?, LIL)L? F#? B#LISLB,>ISC? EHE#E B#LISLB.I>NB#LISLBR>ISC?.I>NB#LISLBQ "MLa cl!s!la <here especi5ica +!e se m!estren en pantalla el nombre y apellido del artista c!yo I> est, re'istrado en el campo I>NB#LISLB de la tabla >ISC?. SHa comen.ado la 4enta de discos del d6a de hoyT B're'!emos primero la 5echa de 4enta a la tabla Pentas para obtener me(ores detalles de los mo4imientos. M" BLLE# LBBLE PECLB B>> FECHB >BLEQ >ESC PECLBQ "M>ESC#IKCIUC >E LB ESL#)CL)#B >E LB LBBLB PECLBM" SELECL M F#? >ISC?Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,0%,&07"07"7%07&-Q

ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,07,&07"07"7%07&-Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,02,&07"07"7%07&-Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,0%,&0A"07"7%07&-Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,0%,&0A"07"7%07&-Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,0%,&02"07"7%07&-Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,02,&03"07"7%07&-Q ICSE#L ICL? PECLB PBL)ES*I>N>ELBPECLB.CE/LPBL,02,&07"07"7%07&-Q "MSeleccionemos los datos de la tabla 4entaM" SELECL M F#? PECLBQ "MKero estos datos a priori, no los podemos interpretar 5cilmente, orden,moslos.Krimero haremos !na n!e4a cons!lta a la base de datos, pero ahora asociaremos la I>NPECLB a la I>N>ISC?, y tambi,n la I>N>ISC? a la I>NB#LISLB, esto lo hacemos con la cl!s!la ICCE# F?IC, la c!al bsicamente !ne dos tablas entre s6M" SELECL C? B#E,BKELLI>?,LIL)L?,FECHB F#? PECLB P "MB;adimos !n alias VPV a 5in de simpl5icar la llamada a las tablasM" ICCE# F?IC >ISC? > ?C P.I>N>ISC?R>.I>N>ISC? "MBhora, hacemos la !nin de las 5ilas c!yo I>N>ISC? coincida, es decir, las 4entas de !n discoM" ICCE# F?IC B#LISLB B# ?C >.I>NB#LISLBRB#.I>NB#LISLBQ "MO 5inalmente, !nimos las 5ilas del disco con las del artistaM"

SELECL M F#? B#LISLBQ SELECL M F#? >ISC?Q SELECL M F#? PECLBQ "MComo res!ltado, nos entre'a en pantalla todas las 4entas. Kero 4ayamos a !n caso espec65ico. Contemos c!ntos discos 4endi Freddy L!rbina, con la id 0M" SELECL C?)CL*I>NPECLB-F#? B#LISLB B# JJla 5!ncin C?)CL c!enta el n8mero de 5ilas ICCE# F?IC >ISC? > ?C >.I>NB#LISLBRB#.I>NB#LISLB "MComo la idNartista no existe en la tabla Penta, !nimos las tablas como en el anterior e(emplo M" ICCE# F?IC PECLB P ?C P.I>N>ISC?R>.I>N>ISC? EHE#E B#.I>NB#LISLBR0Q "MEl parmetro Ehere indica el idM" "MPeamos al'!nas 8ltimas 5!nciones, y s!s !tilidadesM" "M cl!s!la HBPIC=, similar a <here, pero se aboca a 'r!pos en l!'ar de 5ilas indi4id!ales *F)CCI?CES C?)CL, B/,ELC-M" SELECL I>N>ISC? F#? PECLB =#?)K BO I>N>ISC? HBPIC= S) *I>NPECLB-WAQ SELECL M F#? >ISC?Q "MSPaya, creo +!e al'!ien 4endi !n disco en blanco como el C> de Freddy t!rbinaT ?X, antes de despedir al locatario corr!pto,habr +!e borrar esa 4enta, +!, pena HcM" >ELELE PECLB EHE#E I>NPECLBR$Q "Mn!e4amente la cla!s!la <here, haciendo de las s!yas, borrando solamente la 4enta n8mero $M" "MComprobamos +!e se ha eliminadoM" SELECL M F#? PECLBQ

"MO ya +!e este d6a de act!ali.aciones y operaciones ha acabado, hay +!e con5irmar los cambios, hay +!e '!ardarlos de5initi4amente. S6, p!es la sabia nat!rale.a de ?racle y SQL han pensado en +!e podamos cometer errores, por lo +!e las operaciones son almacenadas temporalmente en #B y, al salir de este pro'rama probablemente pre'!nte si con5irmamos los cambios *'!ardarlos a disco-. Kara hacerlo nosotros mismos antes de cerrar... )saremos el comando C? ILM" C? ILQ "M=racias por la atencin a este pe+!e;o paseo por ?racle"SQLT *HM"