Você está na página 1de 27

TIPOS DE DATOS

Tipo Dato VARCHAR2(size [BYTE | CHAR]) Descripcin Cadena de caracteres de longitud varia le !ue tiene co"o ta"a#o "$%i"o el valor de size en BYTE o CHAR& El ta"a#o "$%i"o es de '((( )tes o caracteres* ) la "+ni"a es de , )te o un car$cter& -e de e es.eci/icar el ta"a#o de .ara VARCHAR2& Cadena de caracteres 1nicode de longitud varia le con size co"o "$%i"o ta"a#o de longitud& El n2"ero de )tes !ue .ueden ser 3asta dos veces el ta"a#o de codi/icaci4n A5,61T7,6 ) tres veces el ta"a#o de la codi/icaci4n 1T78& El ta"a#o "$%i"o est$ deter"inado .or la de/inici4n del 9uego de caracteres nacional* con un l+"ite "$%i"o de '((( )tes& -e de e es.eci/icar el size de 0VARCHAR2& 02"ero con . .recisi4n (.arte entera) ) s escala (.arte deci"al)& 5a .recisi4n . .uede variar de , a ;8& 5a s escala .uede variar desde <8' 3asta ,2=& Tanto la .recisi4n ) la escala se encuentran en d+gitos deci"ales& 1n valor nu">rico re!uiere , a 22 )tes& 1n su ti.o del ti.o de datos 01:BER con .recisi4n .& 1n valor de co"a /lotante se re.resenta interna"ente co"o un 01:BER& 5a .recisi4n . .uede variar desde , 3asta ,26 d+gitos inarios& 1n valor /lotante re!uiere , a 22 )tes& Ti.o de datos de caracteres de longitud varia le de 3asta 2 giga )tes* o 2;, <, )tes& Aer"anece .ara co".ati ilidad con versiones anteriores de ?racle& Cntervalo de /ec3as v$lidas del , de enero de '=,2 antes de Cristo a el ;, de dicie" re de DDDD& El /or"ato .or de/ecto se deter"ina e%.l+cita"ente .or el .ar$"etro 05-EBATEE7?R:AT o i".l+cita"ente .or el .ar$"etro 05-ETERRCT?RY& El ta"a#o es de = )tes& Este ti.o de datos contiene los ca".os de /ec3a ) 3ora AF?* :E-* d+a* 3ora* "inuto ) segundo& 0o tiene /racciones de segundo o de una zona 3oraria& 02"ero en co"a /lotante de ;2 )tes& its& Este ti.o de datos re!uiere '

0VARCHAR2(size)

01:BER [ (. [* s]) ]

75?AT [(.)]

5?0@

BATE

BC0ARYE75?AT

BC0ARYEB?1B5E

02"ero en co"a /lotante de 6' its& Este ti.o de datos se re!uieren de 8 )tes& A#o* "es ) d+a co"o valores de la /ec3a* as+ co"o la 3ora* "inutos ) segundos co"o valores de tie".o* donde /ractionalEsecondsE.recision es el n2"ero de d+gitos en la .arte /raccionaria del segundo del ca".o dateti"e& 5os valores ace.tados de /ractionalEsecondsE.recision son del ( al D& El valor .or de/ecto es 6& El /or"ato .or de/ecto se deter"ina e%.l+cita"ente .or el .ar$"etro 05-ETC:E-TA:AE7?R:AT o i".l+cita"ente .or el .ar$"etro 05-ETERRCT?RY& El ta"a#o es de = o ,, )tes* de.endiendo de la .recisi4n& Este ti.o de datos contiene los ca".os

TC:E-TA:A [(/ractionalEsecondsE.recision)]

dateti"e AF?* :E-* BCA* H?RA* :C01T? ) -E@10B?& Contiene las /racciones de segundo* .ero no tiene una zona 3oraria& TC:E-TA:A [(/ractionalEsecondsE.recision)] GCTH TC:E H?0E Todos los valores de TC:E-TA:A* as+ co"o el valor de tie".o de des.laza"iento de la zona* donde /ractionalEsecondsE.recision es el n2"ero de d+gitos en la .arte /raccionaria del segundo del ca".o dateti"e& 5os valores ace.tados son del ( al D& El valor .or de/ecto es 6& El /or"ato .or de/ecto se deter"ina e%.l+cita"ente .or el .ar$"etro 05-ETC:E-TA:AE7?R:AT o i".l+cita"ente .or el .ar$"etro 05-ETERRCT?RY& El ta"a#o se /i9a en ,; )tes& Este ti.o de datos contiene los ca".os dateti"e AF?* :E-* BCA* H?RA* :C01T?* -E@10B?* TC:EH?0EEH?1R ) TC:EH?0EE:C01TE& Cuenta con las /racciones de segundo ) una zona 3oraria e%.l+cita&

TC:E-TA:A [(/ractionalEseconds)] Todos los valores de TC:E-TA:A GCTH TC:E H?0E* con las siguientes GCTH 5?CA5 TC:E H?0E e%ce.cionesI J 5os datos se nor"alizan con la zona 3oraria de ase de datos cuando se al"acenan en la ase de datos& J Cuando se recu.eran los datos* los usuarios ven los datos en la zona de tie".o de la sesi4n& El /or"ato .or de/ecto se deter"ina e%.l+cita"ente .or el .ar$"etro 05-ETC:E-TA:AE7?R:AT o i".l+cita"ente .or el .ar$"etro 05-ETERRCT?RY& El ta"a#o es de = o ,, )tes* de.endiendo de la .recisi4n& C0TERVA5 YEAR [()earE.recision)] T? :?0TH Al"acena un .er+odo de tie".o en a#os ) "eses* donde )earE.recision es el n2"ero de d+gitos en el ca".o dateti"e AF?& 5os valores ace.tados son del ( al D& El valor .redeter"inado es 2& El ta"a#o se /i9a en K )tes& Al"acena un .er+odo de tie".o en d+as* 3oras* "inutos ) segundos* donde J da)E.recision es el n2"ero "$%i"o de d+gitos en el ca".o dateti"e BLA& 5os valores ace.tados son del ( al D& El valor .redeter"inado es 2& J /ractionalEsecondsE.recision es el n2"ero de d+gitos en la .arte /raccionaria del ca".o -E@10B?& 5os valores ace.tados son del ( al D& El valor .or de/ecto es 6& El ta"a#o se /i9a en ,, )tes& RAG(size) Batos inarios sin /or"ato de longitud size& El ta"a#o "$%i"o es de 2((( )tes& -e de e es.eci/icar el ta"a#o de un valor RAG& Batos inarios de ti.o RAG de longitud varia le 3asta 2 giga )tes& Cadena en ase 6' !ue re.resenta la direcci4n 2nica de una /ila en la ta la& Este ti.o de datos es .rinci.al"ente .ara los valores devueltos

C0TERVA5 BAY [(da)E.recision)] T? -EC?0B [(/ractionalEseconds)]

5?0@ RAG R?GCB

.or la .seudo colu"na R?GCB& 1R?GCB [(size)] Cadena en ase 6' !ue re.resenta la direcci4n l4gica de una /ila de una ta la de +ndice organizado& El ta"a#o o.cional es el ta"a#o de una colu"na de ti.o 1R?GCB de ?racle& El ta"a#o "$%i"o ) .or de/ecto es de '((( )tes& Cadena de caracteres de longitud /i9a de size )tes de ta"a#o o size de caracteres& El ta"a#o "$%i"o es de 2((( )tes o caracteres* el ta"a#o .redeter"inado ) "+ni"o es de , )te& Cadena de caracteres de longitud /i9a de size caracteres de ta"a#o de largo& El n2"ero de )tes .ueden ser 3asta dos veces el ta"a#o de codi/icaci4n A5,61T7,6 ) tres veces el ta"a#o de la codi/icaci4n 1T78& El ta"a#o "$%i"o est$ deter"inado .or la de/inici4n del 9uego de caracteres nacional* con un l+"ite "$%i"o de 2((( )tes& El ta"a#o .redeter"inado ) "+ni"o es de un car$cter& 1n o 9eto de ti.o 5?B !ue contiene caracteres de un )te o "ulti )te& -on co".ati les tanto de anc3o /i9o ) con9untos de anc3o varia le de caracteres* con el car$cter de ase de datos esta lecida& El ta"a#o "$%i"o es (' giga )tes < ,) J (ta"a#o del lo!ue de la ase de datos)& 1n o 9eto de ti.o 5?B !ue contiene caracteres 1nicode& -on co".ati le tanto de anc3o /i9o ) con9untos de anc3o varia le de caracteres* con el con9unto ase de datos de car$cter nacional& El ta"a#o "$%i"o es (' giga )tes < ,) J (ta"a#o del lo!ue de la ase de datos)& @uarda los datos nacionales so re el con9unto de caracteres& 1n o 9eto de ti.o 5?B inario& El ta"a#o "$%i"o es (' giga )tes < ,) J (ta"a#o del lo!ue de la ase de datos)& Contiene un localizador a un arc3ivo inario al"acenado /uera de la ase de datos& Aer"ite /lu9o de )tes de EM- .ara el acceso a 5?B e%ternos !ue residen en el servidor de ase de datos& El ta"a#o "$%i"o es de ' giga )tes&

CHAR [(size [BYTE | CHAR])]

0CHAR[(size)]

C5?B

0C5?B

B5?B

B7C5E

Disparadores
CREATE [?R REA5ACE] TRC@@ER no" re "o"ento aconteci"iento ?0 ta la [[RE7ERE0CC0@ (old A- aliasEold|neN A- aliasEneN) 7?R EACH R?G [GHE0 condicion]] lo!ueEA5M-O5P

Sintaxis:
CREATE OR REPLACE TRIGGER nombredisparador "o"ento<< BE7?RE* A7TER ? C0-TEAB ?7 evento<< C0-ERT* 1ABATE ? BE5ETE o/ CA:A?-<< solo .ara u.date on 0?:BRETAB5A 0CVE5<<.uede ser a nivel de sentencia (state"ent) o de /ila (/or eac3 roN) N3en C?0BCCC?0<<o.cional egin C1ERA? BE5 BC-AARAB?R<<sentencias E0B no" redis.aradorP

-e dis.ara auto"$tica"ente des.u>s de la "odi/icaci4n del salario de la ta la e".leado ) .ase un co"entario a la ta la auditar&
Create or re.lace trigger auditarEsalario a/ter u.date o/ salario on e".leado /or eac3 roN egin insert into auditar values (Qse 3a "odi/icado el salarioQ || Iold&nu"Ee".leado)P endP

1n trigger !ue nos guarda los datos de un usuario al 3acer login en la ase de datosI
create or re.lace trigger control a/ter logon on data ase egin insert into controlEcone%ion (usuario* "o"ento* evento) values R?RAE5?@C0E1-ER* -Y-TC:E-TA:A* ?RAE-Y-EVE0T)P endP

Co".rue a las veces !ue se 3a actualizado la ta la&


CREATE ?R REA5ACE TRC@@ER TREACT1A5CHAREAR?B1CT?BE7?RE 1ABATE ?0 AR?B1CT7?R EACH R?G BE@C0 C0-ERT C0T? AR1EBA VA51E- S1-ER* -Y-BATETP E0B TREACT1A5CHAREAR?B1CT?-P

1n agente de e .ertenecer a una /a"ilia o una o/icina .ero no .uede .ertenecer a una /a"ilia ) a una o/icina a la vez&
CREATE OR REPLACE TRIGGER integridad_agentes BEFORE INSERT OR UPDATE ON agentes FOR EACH ROW BEGIN IF (:ne !"a#i$ia IS NULL and :ne !%"i&ina IS NULL' THEN RAISE_APPLICATION_ERROR(()*)*+, -Un agente n% ./ede ser 0/1r"an%-'2 ELSIF (:ne !"a#i$ia IS NOT NULL and :ne !%"i&ina IS NOT NULL' THEN RAISE_APPLICATION_ERROR(()*)*), -Un agente n% ./ede tener d%s .adres-'2 END IF2 END2 /

Creacin e insercin de tablas


Insercin de registros
INSERT INTO n%#3re_ta3$a ($ista_&a#.%s' 4ALUES ($ista_5a$%res'2

En el siguiente e9e".lo se inserta un nuevo registro en la ta la 1-1ARC?- en el !ue se tienen todos los datos dis.oni lesI
INSERT INTO USUARIOS (L%gin, Pass %rd, N%#3re, A.e$$id%s, Dire&&i%n, CP, L%&a$idad, Pr%5in&ia, Pais, F_Na&i#ient%, F_Ingre%, C%rre%, Credit%, Se6%' 4ALUES (-#igr%d78-, -8P9:;4-, -<IGUEL ANGEL-, -RODRIGUE= RODRIGUE=-, -ARCO DEL LADRILLO,PASEO-, ->?**+-, -4ALLADOLID-, -4ALLADOLID-, -ESPA@A-, -)?A*>A+B??-, -+*A*+A)**7-, -#igr%d78Cg#ai$!&%#-, )**, -H-'2

En este otro e9e".lo* se inserta un registro de igual "anera* .ero sin dis.oner de todos los datosI
INSERT INTO USUARIOS (L%gin, Pass %rd, N%#3re, A.e$$id%s, C%rre%' 4ALUES (-natsan8D-, 'VBROMI', 'NATALIA', 'SANCHEZ GARCIA', 'natsan63@hotmail !om'"#

Modificacin de registros
5a sentencia UPDATE .er"ite "odi/icar una serie de valores de deter"inados registros de las ta las de la ase de datos& 5a "anera "$s sencilla de utilizar la sentencia UPDATE tiene la siguiente sinta%isI
UPDATE n%#3re_ta3$a SET n%#3re_&a#.% ; 5a$%r E, n%#3re_ &a#.% ; 5a$%rF!!!
$ %HERE !on&i!i'n (#

Actualizaci4n de dos ca".os* .oniendo a ( el cr>dito ) orrando la in/or"aci4n del ca".o Aais de todos los usuariosI
)*+ATE )S)ARIOS SET C,-&ito . /, *ais . N)LL#

Borrado de registros
DE ETE
Esta es la sinta%is !ue de es tener en cuenta .ara utilizarlaI
+ELETE 0ROM nom1,-2ta1la $ %HERE !on&i!i'n (#

-in la cl$usula N3ere* se orrar$n todos los registrosI


+ELETE 0ROM )S)ARIOS#

Aara ver un e9e".lo de uso de la sentencia DE ETE en la !ue se indi!ue una condici4n* su.onga"os !ue !uere"os eli"inar todos los usuarios cu)o cr>dito es ceroI
+ELETE 0ROM )S)ARIOS %HERE C,-&ito . /#

Creacin de tablas
CREATE TABLE EesG/e#a!F n%#3redeTa3$a ( &%$/#na+ Ti.%_Dat%, &%$/#na) Ti.%_Dat%, !!! &%$/#naN Ti.%_Dat% '2 CREATE TABLE USUARIOS (N%#3re 4ARCHAR():''2
CREATE TABLE NO<BRETABLA ( C%$/#na+ Ti.%_Dat% ECONSTRAINT n%#3rede$arestri&&iHnF ENOT NULLF EUNIIUEF EPRI<ARJ KEJF EFOREIGN KEJF EDEFAULT 5a$%rF EREFERENCES n%#3reTa3$a E(&%$/#na E, &%$/#na F'F EON DELETE CASCADEFF ECHECK &%ndi&iHnF, C%$/#na) Ti.%_Dat% ECONSTRAINT n%#3rede$arestri&&iHnF ENOT NULLF EUNIIUEF EPRI<ARJ KEJF EFOREIGN KEJF EDEFAULT 5a$%rF EREFERENCES n%#3reTa3$a E(&%$/#na E, &%$/#na F'F EON DELETE CASCADEFF

ECHECK &%ndi&iHnF,!!!'2 Ejemplo:


CREATE TABLE USUARIOS ( L%gin 4ARCHAR(+:' CONSTRAINT /s/_$%g_PK PRI<ARJ KEJ, Pass %rd 4ARCHAR (7' NOT NULL,

Fe&0a_Ingres% DATE DEFAULT SJSDATE'2

Restricciones
Reglas:
TABEC?5EAU a reviatura del ti.o de restricci4n&
*3 03 NN )3

V Ari"ar) Ue)& V 7oreign Ue)& V 0ot 0ull&

V 1ni!ue& C3 . Ch-!4 56ali&a!i'n"

NOT NULL (obligatorio) CREATE TABLE USUARIOS ( F_Na&i#ient% DATE CONSTRAINT Us/_Fna&_NN NOT NULL'2

UNIQUE CREATE TABLE USUARIOS ( L%gin 4ARCHAR) ():' CONSTRAINT Us/_L%g_UK UNIIUE'2 CREATE TABLE USUARIOS ( L%gin 4ARCHAR) ():', C%rre% 4ARCHAR) ():', CONSTRAINT Us/ari%_UK UNIIUE (L%gin, C%rre%''2

PRIMARY KEY CREATE TABLE USUARIOS ( L%gin 4ARCHAR) ():' CONSTRAINT Us/_$%g_PK PRI<ARJ KEJ'2 CREATE TABLE USUARIOS ( N%#3re 4ARCHAR) ():', A.e$$id%s 4ARCHAR) (D*', F_Na&i#ient% DATE, CONSTRAINT Us/_PK PRI<ARJ KEJ(N%#3re, A.e$$id%s, F_Na&i#ient%''2

FOREIGN KEY CREATE TABLE USUARIOS ( C%d_Partida NU<BER(7' CONSTRAINT C%d_Part_FK REFERENCES PARTIDAS(C%d_Partida''2 -i el ca".o al !ue 3ace re/erencia es clave .rinci.al en su ta la no es necesario indicar el no" re del ca".oI CREATE TABLE USUARIOS ( C%d_Partida NU<BER(7' CONSTRAINT C%d_Part_FK REFERENCES PARTIDAS'2 CREATE TABLE USUARIOS ( C%d_Partida NU<BER(7', F_Partida DATE, CONSTRAINT Partida_C%d_F_FK FOREIGN KEJ (C%d_Partida, F_Partida' REFERENCES PARTIDAS'2 PARA E4ITAR ERRORES DE INTEGRIDAD REFERENCIAL, se crean en .ri"er lugar las ta las !ue no tengan claves a9enas& -i !uere"os orrar las ta las tendre"os !ue .roceder al contrario* orrare"os las ta las !ue

tengan claves a9enas antes& ?TRA -?51CCW0 es usar ?0 BE5ETE CA-CABE .ara orrar todos los registros cu)a clave a9ena sea igual a la clave del registro orrado& ?0 BE5ETE -ET 0155I colocar$ el valor 0155 en todas las claves a9enas relacionadas con la orrada& DEFAULT Y ALIDA!I"N CREATE TABLE USUARIOS ( Pais 4ARCHAR)()*' DEFAULT - Es.aLa - '2 CREATE TABLE USUARIOS ( Fe&0a_ingres% DATE DEFAULT SJSDATE'2 CREATE TABLE USUARIOS ( Credit% NU<BER(>' CHECK (Cr1dit% BETWEEN * AND )***''2 1na "is"a colu"na .uede tener varios C!EC" asociados a ella* .ara ello .one"os varios CO#ST$AI#T seguidos ) se.arados .or co"as&

Eli%inacin de tablas
DROP TABLE N%#3reTa3$a ECASCADE CONSTRAINTSF2 (Cascade .or si es calve a9ena en otra ta la) DROP TABLE USUARIOS2

Modificacin de tablas
RENA<E N%#3re4ieM% TO N%#3reN/e5%2 Para aadir columnas: ALTER TABLE N%#3reTa3$a ADD ( C%$/#naN/e5a+ Ti.%_Dat%s EPr%.iedadesF E, C%$/#naN/e5a) Ti.%_Dat%s EPr%.iedadesF !!! '2 Para borrar col&%nas: ALTER TABLE N%#3reTa3$a DROP COLU<N (C%$/#na+ E, C%$/#na), !!!F'2 Para %odificar el tipo de datos ' las propiedades de &na col&%na: ALTER TABLE N%#3reTa3$a <ODIFJ (C%$/#na+ Ti.%Dat%s E.r%.iedadesF E, &%$/#na) Ti.%Dat%s E.r%.iedadesF !!!F '2 Para reno%brar col&%nas: ALTER TABLE N%#3reTa3$a RENA<E COLU<N N%#3reAntig/% TO N%#3reN/e5%2 Para %odificar las restricciones o eli%inarlas: ALTER TABLA N%#3reTa3$a DROP CONSTRAINT N%#3reRestri&&i%n2 Para %odificar el no%bre de las restricciones:

ALTER TABLE N%#3reTa3$a RENA<E CONSTRAINT N%#3re4ieM% TO N%#3reN/e5%2 Para acti(ar o desacti(ar restricciones: ALTER TABLE N%#3reTa3$a DISABLE CONSTRAINT N%#3reRestri&&i%n ECASCADEF2 CASCADE eli%ina las restricciones )&e dependan de *sta:

ALTER TABLE ECASCADEF2

N%#3reTa3$a

ENABLE

CONSTRAINT

N%#3reRestri&&i%n

Creacin ' eli%inacin de +ndices


CREATE INDE9 C%$/#na) !!!F'2 N%#3reIndi&e ON N%#3reTa3$a (C%$/#na+ E,

DROP INDE9 N%#3reIndi&e2

Us&arios
Crear &s&ario
CREATE USER N%#3reUs/ari% IDENTIFIED BJ C$a5eA&&es% EDEFAULT TABLESPACE ta3$es.a&e F ETE<PORARJ TABLESPACE ta3$es.a&eF EIUOTA int NK O <P ON ta3$es.a&eF EIUOTA UNLI<ITED ON ta3$es.a&eF EPROFILE .er"i$F2 CREATE USER Us/ari%Li#itad% IDENTIFIED BJ .ass %rdde#i/s/ari%$i#itad% 2

Modificar &s&ario
ALTER USER N%#3reUs/ari% IDENTIFIED BJ &$a5e_a&&es% EDEFAULT TABLESPACE ta3$es.a&e F ETE<PORARJ TABLESPACE ta3$es.a&eF EIUOTA int NK O <P ON ta3$es.a&eF EIUOTA UNLI<ITED ON ta3$es.a&eF EPROFILE .er"i$F2

Eli%inar &s&ario
DROP USER N%#3reUs/ari% ECASCADEF2 5a o.ci4n CA-CABE orra todos los o 9etos del usuario antes de orrarlo& -in esta o.ci4n no nos de9ar+a eli"inar al usuario si >ste tuviera ta las creadas&

Per%isos
GRANT N.ri5i$egi%_%3Met% E, .ri5i$egi%_%3Met%F!!!OALLOEPRI4ILEGESFP

ON E/s/ari%!F%3Met% FRO< N/s/ari%+Or%$+OPUBLICP E,N/s/ari%)Or%$)OPUBLICF !!! EWITH GRANT OPTIONF2 ON es.e&i"i&a e$ %3Met% s%3re e$ G/e se &%n&eden $%s .ri5i$egi%s! TO seLa$a a $%s /s/ari%s % r%$es a $%s G/e se &%n&eden .ri5i$egi%s! ALL &%n&ede t%d%s $%s .ri5i$egi%s s%3re e$ %3Met% es.e&i"i&ad%! EWITH GRANT OPTIONF .er#ite G/e e$ re&e.t%r de$ .ri5i$egi% se $% asigne a %tr%s! PUBLIC 0a&e G/e /n .ri5i$egi% est1 dis.%ni3$e .ara t%d%s $%s /s/ari%s! GRANT INSERT TO Us/ari%s TO Ana2 (.er#itirQ a Ana insertar dat%s en $a ta3$a Us/ari%s' GRANT ALL ON Partidas TO Ana2 (R/an &%n&ede t%d%s $%s .ri5i$egi%s s%3re $a ta3$a Partidas a Ana'

Pri(ilegios de siste%a
GRANT NPri5i$egi%+ O r%$+ P E, .ri5i$egi%) O r%$)P, !!!F TO N/s/ari%+ O r%$+O PUBLICP E, /s/ari%) O r%$) O PUBLICP !!! F EWITH AD<IN OPTIONF2 Bonde T? se#ala a los usuarios o roles a los !ue se conceden .rivilegios& GCTH AB:C0 ?ATC?0 es una o.ci4n !ue .er"ite al rece.tor de esos .rivilegios !ue .ueda conceder esos "is"os .rivilegios a otros usuarios o roles& A1B5CC 3ace !ue un .rivilegio est> dis.oni le .ara todos los usuarios& GRANT sSste#_.ri5(s' TO grantee EIDENTIFIED BJ .ass %rdF EWITH AD<IN OPTIONF GRANT r%$e TO grantee EIDENTIFIED BJ .ass %rdF EWITH AD<IN OPTIONF GRANT ALL PRI4ILEGES TO grantee EIDENTIFIED BJ .ass %rdF EWITH AD<IN OPTIONF Vea"os algunos e9e".losI Aara conceder a Ana el rol de C?00ECT con todos los .rivilegios !ue >ste tiene asociados& GRANT CONNECT TO Ana2 Concede a Ana el .rivilegio de usuarios a otros& orrar usuarios ) !ue >sta .uede conceder el "is"o .rivilegio de orrar

GRANT DROP USER TO Ana WITH AD<IN OPTION2

$e(ocar per%isos
-o re ob,etosI RE4OKE N.ri5i$egi%_%3Met% E, .ri5i$egi%_%3Met%F!!!OALLOEPRI4ILEGESFP ON E/s/ari%!F%3Met% FRO< N/s/ari%Or%$OPUBLICP E,N/s/ari%Or%$OPUBLICF !!!2

Del siste%a o roles a &s&ariosI RE4OKE N.ri5i$egi%_st#a O r%$P E, N.ri5i$egi%_st#a O r%$PF!!!OALLO EPRI4ILEGESFP ON E/s/ari%!F%3Met% FRO< N/s/ari%Or%$OPUBLICP E,N/s/ari%Or%$OPUBLICF !!!2

Xuan va a !uitar el .er"iso de seleccionar ) de actualizar so re la ta la 1suarios a AnaI REV?UE -E5ECT* 1ABATE ?0 1suarios 7R?: AnaP ) va a !uitarle el .er"iso de eli"inar usuariosI RE4OKE DROP USER FRO< Ana2

Co%andos
CREATE BR?A A5TER -e utiliza .ara crear nuevas ta las* ca".os e +ndices& -e utiliza .ara eli"inar ta las e +ndices& -e utiliza .ara "odi/icar ta las&

-E5ECT C0-ERT 1ABATE BE5ETE

-e utiliza .ara consultar /ilas !ue satis/agan un criterio deter"inado& -e utiliza .ara cargar datos en una 2nica o.eraci4n& -e utiliza .ara "odi/icar valores de ca".os ) /ilas es.ec+/icos& -e utiliza .ara eli"inar /ilas de una ta la&

C -USU AS
7R?: GHERE HAVC0@ -e utiliza .ara es.eci/icar la ta la de la !ue se van a seleccionar las /ilas& -e utiliza .ara es.eci/icar las condiciones !ue de en reunir las /ilas !ue se van a seleccionar& -e utiliza .ara e%.resar la condici4n !ue de e satis/acer cada gru.o&

@R?1A BY -e utiliza .ara se.arar las /ilas seleccionadas en gru.os es.ec+/icos& ?RBER BY -e utiliza .ara ordenar las /ilas seleccionadas de acuerdo a un orden es.ec+/ico&

Operadores
A0B ?R 0?T Eval2a dos condiciones ) devuelve un valor de verdad s4lo si a" as son ciertas& Eval2a dos condiciones ) devuelve un valor de verdad si alguna de las dos es cierta& Bevuelve el valor contrario de la e%.resi4n&

V YV* ST* ZV S T SV TV in

Cgualdad Besigualdad :enor !ue :a)or !ue :enor o igual !ue :a)or o igual !ue Cgual a cual!uiera de los "ie" ros entre .ar>ntesis Bistinto a cual!uiera de los "ie" ros entre .ar>ntesis Contenido rango en el

-E5ECT J 7R?: GHERE idBe.arta"ento V ,((P -E5ECT J 7R?: GHERE idBe.arta"ento YV ,(( -E5ECT J 7R?: GHERE idBe.arta"ento S 2((P -E5ECT J 7R?: GHERE idBe.arta"ento T 2((P -E5ECT J 7R?: GHERE idBe.arta"ento SV 2((P -E5ECT J 7R?: GHERE idBe.arta"ento TV 2((P -E5ECT J 7R?: GHERE idBe.arta"ento in (,((* ;(()P -E5ECT J 7R?: GHERE idBe.arta"ento not in (2(()P

e".leado e".leado e".leado e".leado e".leado e".leado E".leado

not in etNeen not etNeen

E".leado

-E5ECT J 7R?: E".leado GHERE idBe.arta"ento etNeen ,(( and 2((P -E5ECT J 7R?: E".leado GHERE idBe.arta"ento not etNeen ,(( and 2((P -E5ECT J 7R?: GHERE no" reE".leado li[e Q\5uis\QP E".leado

7uera del rango Contiene la cadena Qa cQ a .artir del segundo car$cter ) luego cual!uier cadena de car$cteres

li[e QEa c \Q

] < J M :?B ("* n) ||

-u"a Resta Aroducto Bivisi4n :4dulo Concatenaci4n

-E5ECT no" reE".leado* salario ] co"ision 7R?: E".leado GHERE o/icio V QVE0BEB?RQP -E5ECT no" reE".leado 7R?: E".leado GHERE s)sdate < /ec3aEalta T ;6KP -E5ECT no" reE".leado* salarioJ,2 ^-alario Anual^ 7R?: E".leadoP -E5ECT no" reE".leado* T?ECHAR(salarioM ;(*QDDD*DDD&DDQ) 7R?: ^E".leado^ Bevuelve el resto resultante de dividir ^"^ entre ^n^& -E5ECT no" reE".leado||o/icio 7R?: E".leadoP

.&nciones

AV@ C?10T -1: :A_ :C0

Calcula el .ro"edio de los valores de un ca".o deter"inado& Bevuelve el n2"ero de /ilas de la selecci4n& Bevuelve la su"a de todos los valores de un ca".o deter"inado& Bevuelve el valor "$s alto de un ca".o deter"inado& Bevuelve el valor "+ni"o de un ca".o deter"inado&

ITE$A ES
2;M(;MD= :ar+a K 5iteral /ec3a& 5iteral caracteres& 5iteral n2"ero&

Deli%itadores en P /S0
Beli"itadores -i".les& Beli"itadores Co".uestos& -+" olo& JJ ST `V SV TV && || SS TT << MJ JM IV VT -igni/icado& E%.onenciaci4n& Bistinto& Bistinto& :enor o igual& :a)or o igual& Rango& Concatenaci4n& Beli"itador de eti!uetas& Beli"itador de eti!uetas& Co"entario de una l+nea& Co"entario de varias l+neas& Co"entario de varias l+neas& Asignaci4n& -elector de no" re de .ar$"etro&

Smbolo. + % . / ( ) : , * " = < > @ ; -

-igni/icado& -u"a& Cndicador de atri uto& -elector& Bivisi4n& Beli"itador de lista& Beli"itador de lista& Varia le 3ost& -e.arador de ele"entos& Aroducto& Beli"itador de identi/icador acotado& Cgual relacional& :enor& :a)or& Cndicador de acceso re"oto& Ter"inador de sentencias& RestaMnegaci4n&

SE ECT
SELECT EALL O DISTINCTF &%$/#na+, &%$/#na), !!! FRO< ta3$a+, ta3$a), !!! WHERE &%ndi&iHn+, &%ndi&iHn), !!! ORDER BJ %rdena&iHn2

SELECT F_Na&i#ient% TFe&0a de Na&i#ient%T FRO< USUARIOS2

SE ECT EA

1 DISTI#CT F Uno" reEca".oV EN,Uno" reEca".oVPF .$OM Uno" reEta laVOUno" reEvistaV EN,Uno" reEta laVOUno" reEvistaVPF E2!E$E UcondicionV EN A#DOO$ U&%ndi&i%nVPFF E3$OUP B4 Uno" reEca".oV EN,Uno" reEca".o VPFF E!A5I#3 UcondicionVEN A#DOO$ U&%ndi&i%nVPFF EO$DE$ B4 Uno" reEca".oVOUindi&e_&a#.%V EASC O DESCF EN,Uno" reEca".oVOUindi&e_&a#.%V EASC O DESC FPFF

SE ECT A DISTI#CT .$OM

Aala ra clave !ue indica !ue la sentencia de -O5 !ue !uere"os e9ecutar es de selecci4n& Cndica !ue !uere"os seleccionar todos los valores& Es el valor .or de/ecto ) no suele es.eci/icarse casi nunca& Cndica !ue !uere"os seleccionar s4lo los valores distintos& Cndica la ta la (o ta las) desde la !ue !uere"os recu.erar los datos& En el caso de !ue e%ista "$s de una ta la se deno"ina a la consulta ^consulta co" inada^ o ^9oin^& En las consultas co" inadas es necesario a.licar una condici4n de co" inaci4n a trav>s de una cl$usula 2!E$E& Es.eci/ica una condici4n !ue de e cu".lirse .ara !ue los datos sean devueltos .or la consulta& Ad"ite los o.eradores l4gicos A#D ) O$& Es.eci/ica la agru.aci4n !ue se da a los datos& -e usa sie".re en co" inaci4n con /unciones agregadas& Es.eci/ica una condici4n !ue de e cu".lirse .ara !ue los datos sean devueltos .or la consulta& -u /unciona"iento es si"ilar al de 2!E$E .ero a.licado al con9unto de resultados devueltos .or la consulta& Be e a.licarse sie".re 9unto a 3$OUP B4 ) la condici4n de e estar re/erida a los ca".os contenidos en ella& Aresenta el resultado ordenado .or las colu"nas indicadas& El orden .uede e%.resarse con ASC (orden ascendente) ) DESC (orden descendente)& El valor .redeter"inado es ASC6

2!E$E 3$OUP B4

!A5I#3

O$DE$ B4

SELECT n%#3re, a.e$$id%s FRO< USUARIOS WHERE se6% ; -<-2

Cons&ltas calc&ladas
SELECT N%#3re, Credit%, Credit% W ): 0ROM )S)ARIOS# Aonerle un alias a la colu"na creada a#adi>ndolo detr$s de la e%.resi4n 9unto con la .ala ra AS SELECT N%#3re, Credit%, Credit% W ): AS Credit%N/e5% 0ROM )S)ARIOS#

.&nciones n&%*ricas
ABS7n8
Calcula el valor a soluto de un n2"ero n& E9e".loI SELECT ABS((+?' FRO< DUAL2 (( Res/$tad%: +?

E9P7n8
Calcula an * es decir* el e%.onente en ase e del n2"ero n& E9e".loI
SELECT E9P()' FRO< DUAL2 (( Res/$tad%: ?,D7 CEIL(n' Calcula el valor entero in"ediata"ente su.erior o igual al argu"ento n& E9e".loI SELECT CEIL(+?!>' FRO< DUAL2 (( Res/$tad%: +7

. OO$7n8
Calcula el valor entero in"ediata"ente in/erior o igual al .ar$"etro n& E9e".loI SELECT FLOOR(+?!>' FRO< DUAL2 (( Res/$tad%: +?

MOD7%:n8
Calcula el resto resultante de dividir " entre n& E9e".loI SELECT <OD(+:, )' FRO< DUAL2 ((Res/$tad%: +

PO2E$7(alor: exponente8
Eleva el valor al e%.onente indicado& E9e".loI SELECT POWER(>, :' FRO< DUAL2 (( Res/$tad%: +*)>

$OU#D7n: deci%ales8
Redondea el n2"ero n al siguiente n2"ero con el n2"ero de deci"ales !ue se indican&

E9e".loI SELECT ROUND(+)!:7?>, )' FRO< DUAL2 (( Res/$tad%: +)!:B

S0$T7n8
Calcula la ra+z cuadrada de n& E9e".loI SELECT SIRT():' FRO< DUAL2 ((Res/$tad%: :

T$U#C7%:n8
Trunca un n2"ero a la cantidad de deci"ales es.eci/icada .or el segundo argu"ento& -i se o"ite el segundo argu"ento* se truncan todos los deci"ales& -i ^n^ es negativo* el n2"ero es truncado desde la .arte entera&

E9e".losI
SELECT SELECT SELECT SELECT TRUNC(+)?!>:8?, )' FRO< DUAL2 (( Res/$tad%: +)?!>: TRUNC(>:?)!:8?7, ()' FRO< DUAL2 (( Res/$tad%: >:** TRUNC(>:?)!:8?7, (+' FRO< DUAL2 (( Res/$tad%: >:?* TRUNC(>:?)!:8?7' FRO< DUAL2 (( Res/$tad%: >:?)

SI3#7n8
-i el argu"ento ^n^es un valor .ositivo* retorna ,* si es negativo* devuelve <, ) ( si es (&
SELECT SIGN5783" 0ROM +)AL# 9 R-s:lta&o; 7<

.&nciones de cadena de caracteres


Al "ani.ular ca".os de ti.o car$cter o cadena de caracteres& Co"o resultado .odre"os o tener caracteres o n2"eros&

C!$7n8
Bevuelve el car$cter cu)o valor codi/icado es n& E9e".loI SELECT CHR(7+' FRO< DUAL2 ((Res/$tad%: I

ASCII7n8
Bevuelve el valor A-CCC de n& E9e".loI SELECT ASCII(-O-' FRO< DUAL2 ((Res/$tad%: ?B

CO#CAT7cad;: cad<8
Bevuelve las dos cadenas unidas& Es e!uivalente al o.erador || E9e".loI SELECT CONCAT(-H%$a-, -</nd%-' FRO< DUAL2 ((Res/$tad%: H%$a</nd%

O2E$7cad8
Bevuelve la cadena cad con todos sus caracteres en "in2sculas&

E9e".loI SELECT LOWER(-En <InXs&/$AS-' FRO< DUAL2 ((Res/$tad%: en #inXs&/$as

UPPE$7cad8
Bevuelve la cadena cad con todos sus caracteres en "a)2sculas& E9e".loI
SELECT )**ER5'En MA=>s!:lAS'" 0ROM +)AL# 77R-s:lta&o; EN MA?@SC)LAS

I#ITCAP7cad8
Bevuelve la cadena cad con su .ri"er car$cter en "a)2scula& E9e".loI SELECT INITCAP(-0%$a-' FRO< DUAL2 ((Res/$tad%: H%$a

PAD7cad;: n: cad<8
Bevuelve cad, con longitud n* a9ustada a la derec3a* rellenando .or la iz!uierda con cad2& E9e".loI SELECT LPAD(-<-, :, -Y-' FRO< DUAL2 ((Res/$tad%: YYYY<

$PAD7cad;: n: cad<8
Bevuelve cad, con longitud n* a9ustada a la iz!uierda* rellenando .or la derec3a con cad2& EMe#.$%: SELECT RPAD(-<-, :, -Y-' FRO< DUAL2 ((Res/$tad%: <YYYY

$EP ACE7cad: ant: n&e8


Bevuelve cad en la !ue cada ocurrencia de la cadena ant 3a sido sustituida .or la cadena n&e& E9e".loI SELECT REPLACE(-&%rre%Cg#ai$!es-, -es-, -&%#-' FRO< DUAL2 ((Res/$tad%: &%rre%Cg#ai$!&%#

SUBST$7cad: %: n8
Bevuelve la cadena cad co".uesta .or n caracteres a .artir de la .osici4n "& E9e".loI SELECT SUBSTR(-+)D>:8?-, D, )' FRO< DUAL2 ((Res/$tad%: D>

E#3T!7cad8
Bevuelve la longitud de cad& E9e".loI SELECT LENGTH(-0%$a-' FRO< DUAL2 ((Res/$tad%: >

T$IM7cad8
Eli"ina los es.acios en lanco a la iz!uierda ) la derec3a de cad ) los es.acios do les del interior& E9e".loI SELECT TRI<(- H%$a de n/e5% -' FRO< DUAL2 ((Res/$tad%: H%$a de n/e5%

T$IM7cad8
Eli"ina los es.acios a la iz!uierda !ue .osea cad& E9e".loI SELECT LTRI<(- H%$a-' FRO< DUAL2 ((Res/$tad%: H%$a

$T$IM7cad8
Eli"ina los es.acios a la derec3a !ue .osea cad& E9e".loI SELECT RTRI<(-H%$a -' FRO< DUAL2 ((Res/$tad%: H%$a

I#ST$7cad: cadB&scada =: posInicial =: nAparicin>>8


? tiene la .osici4n en la !ue se encuentra la cadena uscada en la cadena inicial cad& -e .uede co"enzar a uscar desde una .osici4n inicial concreta e incluso indicar el n2"ero de a.arici4n de la cadena uscada& -i no encuentra nada devuelve cero& E9e".loI SELECT INSTR(-/s/ari%s-, -/-' FRO< DUAL2 ((Res/$tad%: + SELECT INSTR(-/s/ari%s-, -/-, )' FRO< DUAL2 ((Res/$tad%: D
SELECT INSTR5':s:a,ios', ':', 8, 8" 0ROM +)AL# 77R-s:lta&o; /

.&nciones de %ane,o de fec?as

S4SDATE
Bevuelve la /ec3a ) 3ora actuales& E9e".loI -E5ECT -Y-BATE 7R?: B1A5P <<ResultadoI 26M(=M,,

S4STIMESTAMP
Bevuelve la /ec3a ) 3ora actuales en /or"ato TC:E-TA:A& E9e".loI -E5ECT -Y-TC:E-TA:A 7R?: B1A5P <<ResultadoI 26<X15<,, (8&;2&KD*6(D((( A: ](2I((

ADD@MO#T!S7fec?a: n8
A#ade a la /ec3a el n2"ero de "eses indicado con n& E9e".loI -E5ECT ABBE:?0TH-(Q2=M(=M,,Q* K) 7R?: B1A5P <<ResultadoI 2=M,2M,,

MO#T!S@BET2EE#7fec?a;: fec?a<8
Bevuelve el n2"ero de "eses !ue 3a) entre /ec3a, ) /ec3a2& E 9e".loI -E5ECT :?0TH-EBETGEE0(Q,2M(=M,,Q*Q,2M(;M,,Q) 7R?: B1A5P <<ResultadoI '

AST@DA47fec?a8
Bevuelve el 2lti"o d+a del "es al !ue .ertenece la /ec3a& El valor devuelto es ti.o BATE&

E9e".loI -E5ECT 5A-TEBAY(Q2=M(=M,,Q) 7R?: B1A5P <<ResultadoI ;,M(=M,,

#E9T@DA47fec?a: d8
Cndica el d+a !ue corres.onde si a#adi"os a la /ec3a el d+a d& El d+a devuelto .uede ser te%to (Q5unesQ* :artesQ* &&) o el n2"ero del d+a de la se"ana (,Vlunes* 2V"artes* &&) de.endiendo de la con/iguraci4n& E9e".loI -E5ECT 0E_TEBAY(Q;,M,2M,,Q*Q510E-Q) 7R?: B1A5P << ResultadoI (2M(,M,2

E9T$ACT7(alor .$OM fec?a8


E%trae un valor de una /ec3a concreta& El valor .uede ser da)* "ont3* )ear* 3ours* etc& E9e".loI -E5ECT E_TRACT(:?0TH 7R?: -Y-BATE) 7R?: B1A5P <<ResultadoI =

.&nciones de con(ersin

TO@#UMBE$7cad: for%ato8
Convierte te%tos en n2"eros& -e suele utilizar .ara dar un /or"ato concreto a los n2"eros& 5os /or"atos !ue .ode"os utilizar son los siguientesI
S+%bolo B C D .or%atos para nA%eros ' s& significado Significado Aosiciones nu">ricas& -i el n2"ero !ue se !uiere visualizar contiene "enos d+gitos de los !ue se es.eci/ican en el /or"ato* se rellena con lancos& Vis:aliAa !-,os Bo, la iAC:i-,&a hasta !omBl-ta, la lonDit:& &-l Eo,mato -sB-!iEi!a&o Ant-Bon- -l siDno &- &'la, al n>m-,o Colo!a -n la Bosi!i'n &on&- s- in!l:=a, -l sFm1olo &- la mon-&a lo!al 5s- B:-&!onEiD:,a, -n la 1as- &- &atos m-&iant- -l Ba,Gm-t,o 0-5EC1RRE0CY" S D 3 ABa,-!-,G -l sFm1olo &-l siDno *osi!i'n &-l sFm1olo &-!imal, C:- -n -sBaHol -s la !oma *osi!i'n &-l s-Ba,a&o, &- D,:Bo, C:- -n -sBaHol -s -l B:nto

TO@C!A$7d: for%ato8
Convierte un n2"ero o /ec3a d a cadena de caracteres* se utiliza nor"al"ente .ara /ec3as )a !ue de n2"ero a te%to se 3ace de /or"a i".l+cita co"o 3e"os visto antes&

TO@DATE7 cad: for%ato8


Convierte te%tos a /ec3as& Aode"os indicar el /or"ato con el !ue !uere"os !ue a.arezca& Aara las /unciones TO@C!A$ ) TO@DATE* en el caso de /ec3as* indica"os el /or"ato inclu)endo los siguientes s+" olosI

.or%atos para fec?as ' s& significado


S+%bolo
44 4444 MM MO# MO#T! D4 DA4 DD D 0 22 AM PM !!;< !!<E MI SS SSSS

Significado
AHo -n Eo,mato &- &os !iE,as AHo -n Eo,mato &- !:at,o !iE,as M-s -n Eo,mato &- &os !iE,as Las t,-s B,im-,as l-t,as &-l m-s Nom1,- !omBl-to &-l m-s +Fa &- la s-mana -n t,-s l-t,as +Fa !omBl-to &- la s-mana +Fa -n Eo,mato &- &os !iE,as +Fa &- la s-mana &-l < al I S-m-st,S-mana &-l aHo In&i!a&o, a m In&i!a&o, B m Ho,a &- < a <8 Ho,a &- / a 83 Min:tos &- / a S-D:n&os &-nt,o &-l min:to S-D:n&os &-nt,o &-s&- las / ho,as

SUM ' COU#T

SUM:
-1:([A55|BC-TC0CT] e%.resi4n) -E5ECT -1:( credito) 7R?: 1suariosP

COU#T:
C?10T([A55|BC-TC0CT] e%.resi4n) SELECT COUNT(n%#3re' FRO< Us/ari%s2 SELECT COUNT(Y' FRO< Us/ari%s2

MI# ' MA9

MI#:
<IN (EALLO DISTINCTF e6.resiHn'

SELECT <IN(&redit%' FRO< Us/ari%s2

MA9:
<A9 (EALLO DISTINCTF e6.resiHn' SELECT <A9 (&redit%' FRO< Us/ari%s2

A53: 5A$: STDE5 ' STDE5P

A53
A4G (EALLO DISTINCTF e6.resiHn' se$e&t a5g (a$$ sa$ari%' "r%# e#.$ead%s2 :edia del salario "+ni"o ) "$%i"oI SELECT A4G(SALARIO_<IN', A4G(SALARIO_<A9' FRO< TRABAROS2

5A$
Bevuelve la varianza estad+stica de todos los valores de la e%.resi4n& 4AR (EALLO DISTINCTF e6.resiHn'

STDE5
Bevuelve la desviaci4n t+.ica estad+stica de todos los valores de la e%.resi4n& STDE4 (EALLO DISTINCTF e6.resiHn'

3ro&p b'6 Agr&pa%iento de registros


SELECT &%$/#na+, &%$/#na), !!! FRO< ta3$a+, ta3$a), !!! WHERE &%ndi&iHn+, &%ndi&iHn), Z GROUP BJ &%$/#na+, &%$/#na), Z HA4ING &%ndi&iHn ORDER BJ %rdena&iHn2 SELECT .r%5in&ia, SU<(&redit%' FRO< Us/ari%s GROUP BJ .r%5in&ia2 ?rden en el !ue se e9ecutan las cl$usulasI ,& GHERE !ue /iltra las /ilas seg2n las condiciones !ue .onga"os& 2& @R?1A BY !ue crea una ta la de gru.os nueva& ;& HAVC0@ /iltra los gru.os& '& ?RBER BY !ue ordena o clasi/ica la salida&

!A5I#3
SELECT .r%5in&ia, SU<(&redit%' FRO< Us/ari%s GROUP BJ .r%5in&ia HA4ING .r%5in&ia ; -C[DI=- OR .r%5in&ia; -BADARO=-2

Cons&ltas %&ltitablas
SELECT ta3$a+!&%$/#na+, ta3$a+!&%$/#na), Z, ta3$a)!&%$/#na+, ta3$a)!&%$/#na), Z FRO< ta3$a+ ECROSS ROIN ta3$a)F O ENATURAL ROIN ta3$a)F O EROIN ta3$a) USING (&%$/#na' O EROIN ta3$a) ON (ta3$a+!&%$/#na;ta3$a)!&%$/#na'F O ELEFT O RIGTH O FULL OUTER ROIN ta3$a) ON (ta3$a+!&%$/#na;ta3$a)!&%$/#na'F

FOI#6 Co%posiciones internas


Asociar ta las es Biscri"inar de alguna /or"a .ara !ue 2nica"ente a.arezcan /ilas de una ta la !ue est>n relacionadas con la otra ta la& -i !uere"os o tener el 3istorial la oral de los e".leados inclu)endo no" res ) a.ellidos de los e".leados* la /ec3a en !ue entraron a tra a9ar ) la /ec3a de /in de tra a9o si )a no contin2an en la e".resa* tendre"osI SELECT N%#3re, A.e$$id%+, A.e$$id%), Fe&0a_ini&i%, Fe&0a_"in FRO< E<PLEADOS, HISTORIAL_LABORAL WHERE HISTORIAL_LABORAL!E#.$ead%_DNI; E<PLEADOS!DNI2 Va"os a o tener el 3istorial con los no" res de de.arta"ento* no" re ) a.ellidos del e".leado de todos los de.arta"entosI SELECT N%#3re_D.t%, N%#3re, A.e$$id%+, A.e$$id%)
0ROM +E*ARTAMENTOS, EM*LEA+OS, HISTORIAL2LABORAL

WHERE E<PLEADOS!DNI; HISTORIAL_LABORAL! E<PLEADO_DNI


AN+ HISTORIAL2LABORAL +*TO2CO+ . +E*ARTAMENTOS +*TO2CO+#

Co%posiciones externas
Aara o tener un listado con los no" res de los distintos de.arta"entos ) sus 9e/es con sus datos .ersonales& Be en a.arecer todos los de.arta"entos aun!ue no tengan asignado ning2n 9e/e&
SELECT D!NO<BRE_DPTO, D!REFE, E!NO<BRE, E!APELLIDO+, E!APELLIDO) FRO< DEPARTA<ENTOS D, E<PLEADOS E WHERE D!REFE ; E!DNI(W'2

MI#US
Bevuelve a!uellas /ilas !ue est$n en el .ri"er -E5ECT .ero no en el segundo& 5as /ilas du.licadas del .ri"er -E5ECT se reducir$n a una antes de co"enzar la co".araci4n& SELECT n%#3re, d%#i&i$i% FRO< INGLES <INUS SELECT n%#3re,d%#i&i$i% FRO< PORTUGUES2

S&bcons&ltas
SELECT $istaE6.r FRO< ta3$a WHERE e6.resiHn OPERADOR ( SELECT $istaE6.r FRO< ta3$a'2 5a su consulta .uede ir dentro de las cl$usulas 2!E$E* !A5I#3 o .$OM& El ?AERAB?R .uede ser G* H* GI* HI* JI* I o I#& -E5ECT 0o" reEe".leado* sueldo 7R?: E:A5EAB?GHERE -1E5B? S (-E5ECT -1E5B? 7R?: E:A5EAB?GHERE 0o" reEe".le V QAnaQ)P

A#4
Co".ara con cual!uier /ila de la consulta& 5a instrucci4n es v$lida si 3a) un registro en la su consulta !ue .er"ite !ue la co".araci4n sea cierta&

A
Co".ara con todas las /ilas de la consulta& 5a instrucci4n resultar$ cierta si es cierta toda la co".araci4n con los registros de la su consulta&

I#
0o utiliza co".arador* lo !ue 3ace es co".ro ar si el valor se encuentra en el resultado de la su consulta&

#OT I#
Co".rue a si un valor no se encuentra en una su consulta& En la siguiente consulta o tene"os el e".leado !ue "enos co raI SELECT n%#3re, s/e$d% FRO< E<PLEADOS
%HERE s:-l&o J. ALL 5SELECT s:-l&o 0ROM EM*LEA+OS"#

Precedencia
,& -e eval2a la "ulti.licaci4n (J) ) la divisi4n (M) al "is"o nivel& 2& A continuaci4n su"as (]) ) restas (<)& ;& Concatenaci4n (| |)& '& Todas las co".araciones (S* T* b)& K& Bes.u>s evaluare"os los o.eradores C- 0155* C0* 0?T 0155* 5CUE* BETGEE0& 6& 0?T& =& A0B& 8& ?R& -i !uisi>ra"os variar este orden necesitar+a"os utilizar .ar>ntesis&

Você também pode gostar