Download as pdf or txt
Download as pdf or txt
You are on page 1of 56

Tutorial de PostgreSQL

El equipo de desarrollo de PostgreSQL

Editado por
Thomas Lockhart
Tutorial de PostgreSQL

      !#"$
 %'&()*+,$-/.()

0%132547698;:<>=@?
:2BADCE8;FGC8;:6/H 25478ICEJ%C#KMLENNEOQPRN
S138#:T0 192 476/8;:2UT 1GV#CET3WX:;Y
:TZ1RS AD:I[4/U8;1G\ S]
Tabla de contenidos
^_`badce fghghghgZghgZghgZghghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghgZghghghg ghghghgZghghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghgZghghghg ghghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghg
??
i g%jkl cfm_n9l eIfkgZghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghghg ghghghgZghghghg ghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghghgZghghghg ghghghgZghghghg ghghghgZghgZghgZghghghgZgZg
??
o9" p ,  qsrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
t  u v()Qw v3Q drZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhr
x d-/Q  s t .  xyrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhr ??
??
3Q d3z%{wrZr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhr ??
3Q d!
"D$|r rhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhr
} -9 d->~ v Q~u dE€‚rhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhr ??
ƒ d-/ rhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhr ??
„9„ rhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
„… rZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
??
&† E*+‡ˆ‰rhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhr ??
Š  %-/€‹rhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhr
Œ … !# % *+ d)Ž  )5*+ ‘ v 
d -9  …%’’ ’%“ r rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
„” rZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
• xE()Qsx—–˜-9d ƒ 3QE%'r rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhr ??
??
™ g%^šœ›wgZghg ghghghgZghghghg ghghghghgZgZghghgZghghghg ghghghgZghghghg ghghghgZghgZghgZghghghgZgZghghgZghghghg ghghghgZghghghgZgZghghghgZgZghghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghgZghghghg ghg
??

–˜  ž  ƒ -9)rhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
Ÿ *+   
–˜ d ƒ -9)% ž  r7rZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZr
??
ž*+)Q,-/) ~&¡ ž r rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhr ??
¢  -9) d, d‚ d–£  žQ ƒ d-9)rhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhr
¤  d‘ ƒ -9)rZrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhr ??
•¦¥ -9  ƒ d-9)
rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhr ??
•¦¥ -9  ƒ d-9) &
rZrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhr ??
¤  d‘ ƒ -9)-/)QE •¦¥ -9  ƒ -9)%rhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhr ??
??

$ d) §I v!#"$|rZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhr ??
!#  -9†rZrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
ž ¨)-9€‚ D% 'r7rZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhr rhr ??
–˜) -9€œ žQrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhr ??
!#x3Q * • Qr rhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhr ??
!#"D$©*+‘ ‘œrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhr ??
ª g%«žc¬_e lI­n9l _caXg ghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghghg ghghghgZghgZghgZghghghgZgZghghgZghghghg ghghghgZghg
??
Q  • )-9 Q,   Q -9Q wr rhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhr ??
”„ rZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr
??
® g%¯`+°­ ±%akmfgZghgZghghgZgZghghghgZgZghghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghg ghg
??
• )¨ )  )Q)r7rhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhr

§I -9 -9€œ 
–˜)   ) -9QuDŽ   “ rZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhr ??
??
} *+)3Q) ) t   vQ
rZrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr
•  d -9€©  )w‘3  QwrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhr ??
} -/-9 d X~ )w‘   rZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhr ??
??
*+)%)‘ , % ²rhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhr ??
³ g%¯´›­kµ_ad¶ ­~m­~n9fk·/_´5l ad·²ghghg ghghghgZghghghg ghghghgZghgZghgZghghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghgZghghghg ghghghgZghghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZg
??
–˜)Q')Q E%-/QurZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhr ??
• )-9 QrhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhr
•  d-9€‚  )w)  duv-/ žrhrhrhr rhrhrhrZrhrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhr ??
??
$ )%) )w-9 -9©)Q)-9²rhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhr ??
• )  ~ )w-9 ¦rZrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhr
ƒ d -9-9)*+ d)  -9) Qs!#$ • &‰rZrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
¸ ),Ž )) d “ )Q -9 'rhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhr ??
} -9Q ¹d-/) r7rhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhr ??
t E
r rhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
º   )-9) ds v-9§Q )QMrZrZrhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhr ??
??

»
¼ g%½acan9lI­c¾ ·9l e5n9ad·¦«¦¿ak±adma·sm­~^šœ›©­%k©Àf·9l µc­·%ghgZgZghghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghg
??
Á  d)-/r rhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZr
  d Š à } Q€*+-/rhrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZr ??
 -9Q ¦rhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhrhr rhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
&*+ v&
u /Ž  §I v d‚ dQ *+ “ rZrhr rhrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhrZrZrhrhrhrZrhrZrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhr ??
??
– ¥  -/%Ed-9 ‡ˆ3Q-9sud)¹%)rZr rhrhrhrZrhrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrhrZrhrhrZrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhr ??
Ä e Å´ e fµca%ƾ asgZghghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghghgZghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghghg ghghghgZghghghg ghghghgZghgZghgZghghghg ghghghgZghg
??

Ç
Sumario
Q È d3%ERžE)*+ )Q D dM )ž ²EQ*+ )Qœ •  )-9 w • *+ Ã
 %-/€£ ‚ º )u E%É • %5)M  t .  x/Ȳ  ©) dE| d£*+ -/()— œ
-9)-9 Q ‰‘ ¡ ‰% ¦ -9) ¦ ) %¡ž‘d§I Q   ‰()Ež *+ d¹‚
 %¡3)‘ ~ b )%v‘ dv žQv-/*+ -9 r ¢   B-9  EQ D ) §I
!
"D$z …Ê !
"D$ ” È
) dË ‰ )-9-9) d3Èx© ̆ d)‘Ë DQv žQrdQÃ
 d!"$b ¦ | -/ d) )Q ‰ w*+)œÍ‘-/œxœ-9€œ‘ dEQy -/€y)
 t dE.  x#r

Î
×
Capítulo 1. Introduction
 w-/ *+ d) ‚  )*M)  ‰  %Eœ d)3Q *+ ‰*+ )*+ d) ‚ ž‘%3 d¦
QQ !#"D$Ø¡È@E)*+ )Q © %Ù £ º )u dEÉ •  E)
 t .  dx
r9  !#"$+  ¥ ‘‰ ÚQ   d  žÛr …Ü r/x -9 y  È
 )©¡ ) ¦–˜-9() !
Q ‘E%. QÈ#  ž )¹‚¡u dEv%Ã
)*+‰¨-/% v ݨ-9‰ w ºDº©Þ  }  )-9 x -9Q~ 5)u  -9€
} u)¹d| ©Mž  )| ‚ ºDº Ž  } ƒ  } “ È ¢ ¨-9)b ‚5)u Q-9€É œ
} *+)wŽ } ƒ ¢ “ È% Ÿ )-9€ Š -/)~ •  )-9~Ž Š ! Ÿ“ È%x!#$È 5)-#r

¿Qué es Postgres?
$X *+%X '*+) d)*+ )Qw t    ž% X %-/) QE%-/) dŽ  t –˜!#Èh “
 œ œ*+ —  s   v-/) ‚ œ )w-9 d-/-9€œ v d-/) s-/œ)*+Ã
‘ BÈX   œ-/)  d) ß ‘  D ‚ £ ²Ë  d-/‡ˆ¨-9Xr
£ *+%-9*+ -9 D-9Ã
  d3È
v ²v‘ v)-9 x d‹) *+pdE-9~ ‰ ) ©à %) È d) È-9 )%
-9Ed-9 pd d3Ȳ-/%) %² D*+) QE%x‹ -9()r# ¥  ) *+ )Q ‚ ->)-9Ù   ‚ d
*+   ¥ ) d-/ )—~%s-9-9) ,5 Q E%, -9 D vQ†r*+Ã
 M d-9) 3Q x€b*+ ž² duw dÙ  ˜áâ*+-9%£ Q) á/r
!
ˆM *+‘È-9*+| D()D*+ )-9)%È d3Q*+-9ËQ*+‘p +()%-/ ‰*+ x|¨-9²
*+ *+ d) -9€‹ D-9  ²-/%-/) rd3Q dv  -9 ž )— d)-/-9)² Ã
 %)-/)-9E%w3  )Q ‰-9  |-/)-9 Q‰%-/) dw‘ ¥ -9‰ dË )œu‡ˆ
yw   vs  s   œ ̆ ) dX ¥ -/*+ d) v d
3Q *+

-9 
()  )-9
 
 )-/) 
¢ Q -/%E-9Q B‡Q-/%s² —Q )-9wx—à ̆‘©-9) Þ

ƒ d 3QE-9-9) sŽ • )QE)Q “


ž3²E% /sŽ QE  “
ƒ d,Ž   d “
5)Q E%‚ )-9-9)%
 ,-9 -9 dE‡ˆ -9,-/-/%©~3Q d¡ œw-9Q ‡w  t  d, vž% ¡ )Q¨Ã
-9 -9*+ Õ9ãäGåæ Õ9ç ÓåèÖÒ/éEԈÕ9êÒ/èÖåë r Š €Q  D   Dpd3Q+ d d) d ž I dE%-/*+
Õ9ÓԈåêæ Ò9ìÒ9ësÒ~Õ/ãäRåæ Õ9ë È   D + ) dE)|b‘ +%u -9()‘
 d~%Ež ¡ ) Ã
§Q d t   ¡žQ' d-9)% ' -9) r  Q )  )-9-Q ‡ -9
  w3|²s *+ )y ~¦‘ ¡ w ¦E d) %¡‰‘d§I QrBž w() -9()È
Ã
 )% t %3 d DžQ-9*+ d-/ d()b)-9E‚ -9 /) *M ) -9-Q ‡ ˆ-/ 
    vQ ,  ) )rr

Breve historia de Postgres


!
Q *+‰í‰    t %3 ds ~žQ ƒ %-/)  ¢ E  %¡ ¢ ‘ §I Q¦-/)-/y-/Ã
*+œ  !#"$+Ž x‚‘ du d*+ )Q ‰*+%y  z{ “  ¥  u%y    Q ž Ã
 d d-/ ©  t dE.  x#r • b-9 -9 D )p -9² D ‚QEpdÈ  !#"D$
¦ d) d3Qs w‘  wQ¡ ž-9€œ‘ dEQy* ¥ u)¹dœ()x© M‡Ȇ  -9 )Ã
M-9)  -9)-/  )-9—*+  à u €)È) )|-/%3 y—) ̆‰!#"D$َ5)Ã
-9 x )© ‘-/)  %3ÈQ)-/-9) Èx© x| )-9) dv ¨)¡    “ È
-9)Q)‰Q*+‘p -9— %*+D-9§I  D s )-9 -9 ) §I ' s*+-9€
Ž )-/ x ) • È •¦îî È ¸ u%È  È%Q-/xxQ() “ r

ï
El proyecto Postgres de Berkeley
$v*+ d*+ )Q-9€œ † t –£!w3Q ds-9*+ )¹€D  „ zö%÷r>$ -9)-9 Q,)-9  Ã
E‰ d *+ž  ©  )Q¡ d|øù å'úžåëÔ ûêyՈüýÕ9ëæhû)Óâåë xœ‰ ¨)-9€| *+ d
 ž )-/%² /-/€© +øù å,ýÕ9ëæhû)Óåë¡úDÒ9æ Ò'þÿÕ9ìåè rB² )© ²3Q *+ D 
  — -/QM Ù d3 *+*+ )Qb Ùøù åúDåëÔ û)êbՈü‰æ ù åýÕ/ëæ7ûÓå ë  ÐèÖåë~Ï ëæ åÑ r%$y€-9‚x
   d-9 ž   , w*+-9 )%*+ ) œ  © d %  dMøù å'ýÕ9ëæhû)Óâåë,Ïæ Õ9ÓÒGû)å
Ï %ëæ åÑ r

Q ¦()‰%3—,us u3) ¦*+² )Q  d3 w d) )-9 r/E*M ,3Ã
 d*+‚ y  ‘ž  œ -9)  „ zö ‚xِ  —*+QE%Ë dÝ • )  )-9 } • –£Ã
!
 퉖 ¢   „ z%öör$)¹*+'  dE€ „ Èd -/Qv —øù åõ ўñèˆåўåêæ Ò/æ ÔÖÕ/êžÕˆü ýÕ/ëæhû)Óåë Èd
),-/,  s ̆Q E,  ¸ ) „ z%ö z)r>‚   d3Qv~ )w-9‡Q-/v 
*+ 
3Q *+¦ , @ Ž  ð Õ/ўÑDåêæ Ò9
Ó ¦Õ9ê‰æ ù å)ýÕ9ëæhû)Óâå ë ,ÐèˆåëÏ ëæ åÑ “ È9pd3Q s  s ) )‰ Ž ê
,Ðèˆå
ë ýÓÕ9é>åìÐÓâå
ë ð,Ò9é ù ÔÖê ûMÒ/ê ì Ԉå ë¦Ôˆê|úDÒ9æ Ò/ãBÒ9ëå¦Ï ëæ åÑžë “ xM  dE€ … È   €| d
¸ )D „ zz ’ È D)-9E%‘)r$  € ”  /-9€  „ zz „ x )€ž )v*+ d*+ )Ã
 %-/€žs*+Í  d@   @  *+-9 )*+ d) È/ D §Q d-/ Q² ,-9)  %@*+ E§IE
xM Ë3Q *+y  -9â y  ~)  duXr%Ë Ù*+x²EQ È~  )Q ~u dÃ
) s() w d)¹%*+ )Q ~Q z{vŽ5u * ¥ ¡%‘§Q “ 3 v-9 d) œ ‚*+ E§IE%'
EQ‘‚xw¨‘¡r
Q , *+w  vw*+ *+ d) -9€© *+ -/(),-9-9) , v)u d -9€
xy -/-9€ r)  v d Þ ‚3Q *+‰ ~ ¥ ¡ v ¡¨))-9 È# ‚   d v
*+)QE¹%-/€Ù — d)*+ )QM *+Q d‰— -9-9€)È )œ‘   w —  Ã
*+ )Q ¦ d 'xu 3Q *+%, ¦) *+-9€‚  ¥ ¨-9)rE&†*+‘p y (~  Ã
¹~-/*+D )() *+ )Q d -/% u¦ u )u  r Ÿ )%*+ ) dÈ 5 QE
5) E*+% M&# d-/()) d
 Ž Q *+ )Q ‰%‘E‘ž,5) E*+Ì  “  *+€œ -9€
x++-9*+ d-/%¹€@r%Q ~ €+y3 dv X²E)-9  v Q‰²E— dXx d-/Q
-9 ) ‡ˆ¨-/ -9*M  -9€ !#   …’’d’  ~¨) ds „ zz … r
% *+ )~ s-9*+ )— s  E ̆Q E)@-9%3 s ²-/€‰ )Q „ zz ” râ) 
 D()¹‚‘u|   D ²*+)Q )*+ )QM ²-9€©x|%vQ d~ D D d3Q‘+-9 Ã
)‰Q *+ž   ¦ ‘‡¦ d-/%E s)u  -9€ r> — d3  ¹‰  -9 d3Q
-9
È% x -9QQ *+)€¨-9*+ d) v-9‚  dE€‚Ûr … r

Postgres95
 „ zzÛdÈ } )  Œ x ¸ x • () ) y ©)Qp  Q  v )  ~!
"D$|wQÃ
 d†r  z{~   ‘-9D~-9)Q) X-/€y œ‹ d‘—%E   v )-9) ~ |Ã
‚()  d-9‚ d+ ²*+ )‚-/*+‚ + -9 ) )Q ž ž*+)‚Í‘-9©x©-9€ˆ‚‘  
 
-9€)  s t .  x
r
-/€+   z{y  —% Q| } Š !# • xb3 Ý %*+ )M  -9M dÙ  … { Ùr
–˜ -9()~-9*+‘~ )w*+ E§IE+  )*+ d) |x|— -9 Ù ž*+) d)*+ )Ã
 XrdQ z{u „ r ’ r Ìy3 ž E§I -9  ‘ db E)©  ”’ à { ’  * ¥ v ¥ © d+  ˜-9)I
t )-9()*+.˜-9*+²E%²˜-9 Q uÛr … r }  d* ¥  |-/ d-/-9€É M dE BÈ@p  %
  y )-9 ,*+ E§IE Þ

! X d)  — -/)  w   d  — d *+¹dM-9Ù!#"D$˜Ž *+ d*+ ) %+ 
  u “ r$3 ‘-9)3 Qy)ݐ  £3EQ() M  d!
"D$ Ž u ž* ¥ 
‘§I “ È œ‡+ ¡ *+ % +Q z{-9+ )-/) v!#"$Ë ¨)
  @r $%~ )-9) d‰ /v  db *+ d*+ ) %rd&#*M‘pdË  )%€
)~*+ˆ *+ )Q-9€œ v-/ ¥ 3 ~í ƒ ¢ º  t Œ r$)  ¹ libpq ² E*+%) -9€Ã
)‘ vv*+%, d3-9 s d • r
! }  * ¥  ²²E*+ D*+) E¹%-9€)È D)-9 x€M +)  u|*+Ž psql“
%E d¹ %-9)3 Q¡!#"D$©)Q E%-/Qu  3)w‘ ‡ví Šyº readline r

ó"
! º )y)  u—‘ dE‡ˆ— ) dE ¹È È ‘y-9 )Q w‘w dË&-9âr º 
libpgtcl
()  v §Q d*+È -9()ȆEQ‘~)  u,€ d)  &†-9~)Q -9 @-9‚ *+Ã
Q@Q z{v  *+ tcl
! !
v du€—w)Q  ¹~-9©‘d§I Qs) d†r$¡‘d§I  ¦E%) , v5)u ©5  d
,́)-9£*+ -9)*+ß²E+*+%-/ d) ‘d§I  œE) dyŽ ,3Q *+b +%-9()u—
 )u dE‚   d*+) “ r
! !# | *+)€£Q*+‘p  d¡ *+b | y+)u ¡ M) %)-/%È'¡‘ Éy 
  œ)‘ s-9*+—    d3-9 r
! !#  ‘ x€-9y d
-/€  )Q  œ‘ u Q  E%
)  -/ d)%,-9-Q ‡QÃ
-9 -9*+ ) ds v!#"D$©x—   z{)r
! !
v Q¹€—í Šyº *+. ~Ž5 d‚u ¹w t !
ÿ*+. “ ~w-9*+²-9€ r9  z{~Q*+Ã
‘p ‡ˆv X-9*+D-/y y-/-,y-9() 'Ž #()%‘ 3 ¡-9 ž 
‘ d*+
 ) -9€‚ uE%‘   )Q +‘ “ r

PostgreSQL
 „ z%z ÷È
3 ‰()¹‚ u )Q ž   ‰ ²)*+‘ $#Q z{%)‚  ‡D )œ   *+Ã
Xr d*+ D)  u‰)*+‘ È/Q !#"D$È9¡ à §Q² d -9€ )Q s   
)²x‚u dE) * ¥  -9 )Q -9+-9%-/) !#"D$¡r } )*+*+|Q *+È()-9Ã
*+    ¦ )Í*+   u €—²EQ  ÷)r ’ Èduuˆ )Dvv -9  )-93 d 
)*+ )Q v' x d-/Q  r
ž E)Q ©   d3%EÙ ©3Q d3z%{M3 ©()¹%Ý())-9p| £ )Q¨-/%žx˜ d) ) ž
‘ d*+¦ M d-9€‚ *+Q¡ wQr • +  !#"$È
p ) ()D%3%y
 *+ )Q²-9-9 d⇠-9@x‰-9-9d ÈB% )   ¦ dQE%‘§Q~-/)Q)Í D @ ¥  /r
$ )-/²  *+ E§I, œQ !#"D$©)-9 x  Þ

! $~‘   w DQ‘()%‹©3 Q w d²-/)Q D-9)-9  )-9*+  Ã
u €)Ȇ -/  *+Q ~ž¦-9-9 ¦ ~3€y -9Q E‰-9)Q) , x ) ¦-9)Ã
 d) ž )Q ‚-9Q ¹-9€Ù — 3QÈx‹ *+ —-9%‰ y d ˜ 
-9 )Q s  ,& *+*+ )QE%¦‘3 s s% @ dE*+) d-/ sˆ3)‘ ¡¡-/)Ã
  %†r
! !
~()©*+ *+ )Qy*+ )Q ¦-9d-/Q ‡Q-/s *+Q¡ w È#)-9 x )
 ‘-9)  %3È9u )  -QÈ9 d3Q-/-9) su%  žX-9*+²Ž -/) )Q “
x /,Ž5Q  “ r
! !
¡()' )w )-9) X ‡) -9 † d3 ¥ )²!
"D$z … Èd)-9 x )ž-9u 
*+È
 d) ¨-9 ¦ )Q -9*+%Ȑ E¹%²‚ žQ-/% )ž  d3È
-/)Ã
u €œ Qsx ) v  )Q s‘)sx—( Ì#% -*+ d†r
! $sQ,)Q )s()y*+ E§IÈ%)-/ x ))  u Q,  d-/() Ê ()E
)*+²—xEQ ~v ², d*+pd -/¡%-9) d†r
! $œu -/£ d@-9€b X*+Qv —Qw()©b)-9 d*+ ) %y̆*+dÃ
*+ d) w M  …%’ Ã Û ’ œÈ
xœ bQ *+œ wE)   w()D‘>§Qy ö ’    w   žžu dÃ
€‚÷r ’   )¹r

Acerca de esta versión


Q !#"D$ß  ¥ )‘ œ˜-/ r#3Q œ*+%) ' -9E‘ y©u ˜÷)r {œ ‚ Ã
 d!"$¡r

ó9ó
!
 3% ¥   ,~  B v~~u 3€‚ ‘ ~-9*+—  !#"$¡r
• *+  ‘ D—í‰ ‡—  } *M)3QE%¦u ¦ — %  E*+%vEQr
‚ ) dE%Ȇ  ¡  d ~QE v‰-9    '3Q *+‰-/*+Q‘ º )Ì Ê Ì-/
 v-9*+  ~w‘ ‡‘-#r

Recursos
 *M)   ¥ %)¹)— y  )Q   d Þ

&
Q
5)Q -9-9œ~)  us  r Š -/ ‘ -9d-/Q ‡ -9 u)¹%²r
í‰ ~  º 3 
5) *+-9© ) dE
%E  3 %Eȁ)-9 x v-9*+),x—Q¡  r
í‰ ‡~ d
E*+%
5) *+-9€Ý%u)¹%²‚œ²E*M² ž —-9-9) d†r5)-9 x )b ²
xœ Ì#Q )€| w )-/) È#‘ dE‰ ~)Q 5%-/ d¦xœy  ✠)œ ~-9Ã
-/) r
í‰ ~  } *+) 
5) *+-9€©‘ ) -9€œx—*+)QE%-/€ r$ ~ v  3EQXr
í‰ ~ ž %²
5) E*+%-/€£© G ž ‚  r
 y-9 *+ )QÙ d%Eœ   Ã
w dE)‰   —  %Ù-9)QE‘ x )bx -9Q+   ) (²y) E*+%-/€
 dI  — #+ -9-9) dw% /-9  Ù+  * ÐԈ҉ìåèýÓÕGûÓÒ9ÑDÒ9ìÕ9Ó r } -9Ã
 *+ d) )-9 — dœ  * ÐÔÖÒ¦ìåè
ýÓÕGûÓÒ9ÑDÒ9ìÕ9Ó r
–˜)   ƒ   /)-/
 ) *+-9€© d ~‘ v¡-9*+%)r } -9Q %*+ ) )-/ ‡ˆ— ‚,* ÐԈÒìåè
- ëÐÒ9ÓÔˆÕ r
}  d*+ s vp  ~*+%) %È()x— ¡ -9 3,   ~ v3 dEu ¥ œ vx w~w) %Ã
-9œx— d  Q  Þ

*+y 
$ ¥ )% œ*+) Ž *+£  “ -/)  d) £*+) *+-9€ß‘ ‚—-9Ã
*+)†r
Ÿ } "DŽ5 / )Q Ÿ      “
$~ -9-/€œ v  )  Ÿ    )Q Ž Ÿ } " “ -9)  d) v     ~² d )Q  d)Ã
  x ,3 )Q¡   vQ ) œ   vu @-9‚~Q E*+~ dy   v v  r
$ } –ÙŽ ƒ  } ž–£ “
$¦-9()u¦%*+¦$ } –ËŽ ƒ  } ž–£ “ Q|)‘ w )¦-9)Ã
 ‘ -/) r

ó.
‹ ‘!#
3Q/œ ‘ž s3Q d10#-9)Q ) ˆ)5*+-9€—   ¦ )QE‘ -9) ')ž)Ã
-/ x  r Á x— ©-9 ¥ %*+—*+())-¦   w-9)  d) ‰ d()Q€-9y vs3Q
 -9 D  -9QE€)-9@r }  ‡ ¥ )-9)Q‘Q) ) *+-9€ r
$   • E 
$w3Q‰ ~-/ d à  d) 32Ž -9()u Ø54 “ d ¡ ©‘  d© '%Ew-9) Q' 
  )Qr
º Q 76
Q @  — -9 w ¡-9€‰‘ dEQ‚r • *+žQÈB  ) ¡ s-9*+ )
 ‰  %E‰ ‹3EQ r } *+ D   ‰ *+ d¹ žž s  È *+² ¹ ¥
œ  ) d —Qž%Ey   — y%x  d)Ȳx‚ œv*+ b -/ *+ d) -9€
© bQ~ ‰-9 Xr • )3ˆ  D-9)Q‘ ¦‚    )rd!#² ) ‰| dÃ
3-9 ‘ ž|   )M  pž-9 *+  È -9E‡ˆ‘ Mx|-9)QE‘ x)rd!# ) ‰)  u
-/%Ed-9 ‡Q-/%,%-9€È( ¥  ‘ Er
} %   '-/²-9‰)  dÌ# dE d)-/¦  d ²-/)-9E d-/-9) 
x—-9*+‘s*+ ) ,ww-9 *+ )Q-9€)Ȇ   ~ s )w‘  d)~ *+w v *+ d¹r
 à -9>Ø7Ø)Ž -9()uØ Ü “  wwQ‰ v-/ , , ©‘  d© '%Ew-9*+ )¹
3 ,   r

Terminología
Ý‚-9 *+ )Q-9€Ù3  )Q È ëÔÖæ5ÔÖÕ Ž  ëԈæ å “  ‚   y)Q   %v-/*+‹©* ¥  )
‹—   —  ¥ ) %—Q r%žM    ~3‘ —) %* ¥ ~  Ë-9§Q  
 ‘ w % ‰Q w Ù )œ*+*+‚* ¥  )Ȳ Q  p *+)b )QÈ) — E*M
* ¥ ¡² d-/È-9    d,-/§I ) œ-9)-9 Qy ~*+¡‘)¦xœ‘ ¡ w ¡
Q  ) ˆr
 ëÐñåÓÐëÐ)Ò9ÓÔÖÕ  ©3Q dy — ds  Ý*+ postgres   | —  )˜ ©
¨-/() d ¡‘3 d@ ¡Q@x‘) ¡  r • *+D    E‰ ¡‘ ¡
QÈ )D   ²-/%‘ ¦))  ¦,*+ -9)*+  Q -9-/€—x   ¦-9-9  
-9 %   s ,@QX , E*+¡%E‘QE%Er }  d* ¥ È/%%  d  ~ ,  @ ,
 *+ w E§I -9 QsE%*+  w D   ‰ ) *+ )Q ž)œ  ¥ M)‘ 
   ErB&† )D |-/  d) D   ž 3  d  œ w   êÕ  )*+*+
  —     Eb º )Ì©Ž5   œ ‰-9)-9‹-9*+ ÓâÕ/Õ9æ “ r%   3 %Eb ‘ dE‡7
 d) @ œ d) ¨-9'   Ž - õ ú “  )Q v-/ d¹%) ,   ¡r
 Ò9ìўԈêԈëæ ÓÒ9ìÕ9ÓìåèˆÒ ãBÒ9ëå@ìåìÒ9æ Õ/ë Ž ìÒ9æ Ò/ãBÒ9ëåÒ9ìÑDÔÖêÔÖëæ ÓÒ9æ Õ/Ó “ ž t } ÈB ' 3) )Ã
‘ ¦ ¦) %  '-9y*M -9)*+ ()%-/ d-9 *+²@ )‡ -9 ¦  Ã
|w |Q r/ t }   d ~ ))  du  Eˆ¡², d*+p Qy -9EQy* ¥ 
 d)Q x—*+)Q ) d y-9§Q )Q— ‘%3 d, Q )Q~ 3@-9 createdb r
 postmaster  -9 d3y   ‰-9 Íž-9*+œ )²  dEQD ‰-9) )Ž -/ dâ)Ã5() / “
s Q-/) X 3Q *+¡Q rG$-9-9) X ) d)3 ,-9) -9 % post-
master
È   *+)  d) v 3Q' ,  /s d
3Q *+~x v-/*+ )-9-9€‚ )Q
~-9 ~‘-9. )¡rd postmaster   d -9 Q¡u~ *+ )Q~  D—‡ˆÃ
) ¦ s€ d) @²E¡) ¦ )Qž3 -9*+ *+ d) 'râ!# d*+‘%È9 †-9)

*+ )Qs s) d-/ dE€3 v) d) wQE%‘§Q%@-9©u,Qs-9‚ )   v)
  E§I -9  ~wv*+) ~' d5 d-/QXr
²‘-9. d)Ù DQ vŽ *+ E§I -9 Q‘ postgres  d  “ M  d D E§I -9  %¦ d
 ²  3 %E˜ -9Q *+ d) +  | s) p  Q | +€ ) d— M 3 %E˜ MQ 
Ž -/y 
)*+‘  ¦~‘    -/*+ y% *+ )Q “ r!
y d*+‘È%()-9 X Q Ã

ó8
*+)w ‘ Q5 / -9*+ xy‘   ‰w ‘w-9~-9‚ ‚Q*+  Ê 3QÈ
   )  ¥  -9*+ d)D œ œ3Q—*+ Q  Xr

Notación
#)rhrhr %ž /usr/local/pgsql/  ˆ) v ~ ‚)*M‘ ~ ~¨-9() — ~ 3w%Ew ² / )Q

-9*+)Ž5% ( “  -9Q()*+ v d       r
˜M)È@-/-9()  dŽ #:9 %‚x;#< % “ )ˆ-/£ )M ̆ €£Ù‘©-9u ‚Ã
-9)âr •    d¡-9 )Q wu  Ž #:= %ž> x #:? % “ x©   D-9)Q )‘Edu dEQ-9 ¦ Ž #@A% “
)-9~   v d‘   ' )~ ,-9) ¡   v3 d ‚ ‘E u  -9 d†r
‰@ E§I *+ÈBp ) d3 Ž # Ž %,x # “ % “  , 3%D%Es%  ̆ /3) X‘ )r
#@A%~    ‘ d) ¢ ƒ r
$w E§I *+‰*+3Q ¥ Ë€ ) ~ E§I -9   ‰ d3 u%Ev-9  ) %wxb*+d†r%$
€ d) ' E§I -9  %   ~-9  )Q~ d
)  % ¥ y² d- %,²B  # C7%r$%,€ ) 
E§I -9      ¡v-9  )Qv d# ²  3 %Ež ¦     % ¥ y -9 )'D  #'E%È
*+ )QED   œ€ ) dž E§I -9 Qž  ‚|-9  )Q| y £  ˁ£u d
 % ¥ Ý -9 /‰F  #G%r$‰€ ) ~ !
"D$£ d3Q ¥ ‹ -9 )‰F  #H IJ%œ+)
 % ¥ œ -9 ds')́‚*+QÈ% ² ) ) 
-9) ̆Q@r

Nota: En el momento de escribir (Postgres v6.5) la notación de las órdenes flagging


(o flojos) no es universalmente estable o congruente en todo el conjunto de la docu-
mentación. Por favor, envíe los problemas a la Lista de Correo de la Documentación (o
Documentation Mailing List) 13.

Y2K Statement (Informe sobre el efecto 2000)

Autor: Escrito por Thomas Lockhart 14 el 22-10-1998.

  b ž +퉑%Ž +퉑Xž u *+ ) &# d* “  3Q d!


"D$˜Ã
-9)‚ d ¥ ‘ y-9€b y3  œ% — —Q ž-9*+Ë Ý u-9‹²Í‘-9ȁ
%Ed) ‡ˆx©+ d3²)‘+¡ ‹-9*+ %*+ )Q©œ )*+ d) Xrd!
| *+‘È
y *+*+ )Q— w d3-9  Þ

!    )    ' dÌ#QÈ9uˆ )Q~ dD d% d  ~  3EQ ,    dX d3 Š u d*+Ã
‘  „ zz%÷ È%)  d) -9) %)-/v ))́©²‘ *+ y 
-9€   s dÃ
-9)-9œ,-/%*+‘, v -9()v œQ)— „  ) D …’%’’ Ž Œ …v“ r
!   s w  ‰)5*+ ž)‚  d) ‰-9)3Q)-9 ‰ž Ì#Q )-9 w) *+ ‘ w 
‘ *+¦ # d -9  …’’d’ )-9 ‘   '  ‘ ¡  B€)È%ž  ž-9*+
 © È‘ ©u dE) y ©3Q d— -9 )Q Ý ©+u E€É%-/Q ârE‡ˆ*+
()‘ d d3 dE%²‡‘ ‘ *+  ̆3Q  )È%vw‘    v()%x—) %Ã
xD -9%-/€—-9Qu¦ ¦'  ' d— %' -9E ‰ ¡ r
! ¡|    ² Q¡‘ È -9      ()-9 D‘ D -9()  
  -9E‘ ‹ )+‰)Í*+ ‰—  )+  ¥ Ë-9 *+ )Qw dÙyí‰ ‡y 
º 3 %EØ  ‚ -9‡ˆ — ¦Q¡ vQ†r3~ )¡ -9Eˆ ¦-9‚¡)Í*+ 3È
wQE%)3-9€|)¨-9Qu‰ d „ z  ’ Ȇ)y  ) …%’’’ (# §EKr # ’ à ’„ à ’%„ %w3 ~)Q  Q~-9*+
# „ 
z  ’ à ’d„ à ’„ %È%*+ )Qs  F #%÷zà ’ „ à ’%„ %w )Q  Q~-/*+L # …’ ÷dzà ’„ à ’„ %)r

óM
! $~‘ *+%w Quw% d -9  …%’’’ Ë ! ¢ Ž5Q *+y dEQu “ ‘  X  
Qps)3Q~  @ d-9)@-9¦‘ )-9€ sá⡐ -9()¦-9 á s   d
 )xw ¡ /-/ d)²‘ *+‘ , d% d -9  …’’d’  -9)  r
žE‡ §Q%3 ~‰&() w퉁) +d§I -9IØ  xœ‰&() ‰ 5) Q  BØ  w d  )ž3-9 €|* ¥ ¦Ã
 )w3‘ v  ) y d  d-/Q …’%’’ ȆQ-/ *+ )Q v ‚y   ~Q ) ~   wu d'-9© 
² œ3 -9 -9€‘  È%-9€—@    v)—()x   v%Er

Copyrights y Marcas Registradas


N ҉æ ÓÒ9ìÐéEé>ÔPO/ê|ìåèˆÕ9ëæ5åQæ Õ/ë¦ì%åéEÕ9ñÓÔ û ù æ'ëåñÓåëåêæ5҉ÒSRdÐòJTêԈéEÒ9ÑDåêæ åҞÑDÕ9ìÕwìåÒ9é>èˆÒ9ÓÒ/éEÔUO9ê
êÕ ù ÒwëԈìÕwÒ/ñ%ÓÕ9ãBÒ/ì%ÒvñÕ9Ó¡ëÐëÒ9Ðæ Õ/Óâåë¡Õ9ÓÔ û)ԈêÒ9èˆåëô N Õ9ëVTêԈéEÕ/ë¦æ åQæ Õ/ësìå¦é>Õ9ñdÓÔ û ù æ dû)Ò9ÓÒ9êæ òˆÒ9ë

ìåÓâåé ù Õ/B ë žìå/ Ñ W9ë èÖåIû)Ò9èˆÔÖëÑDÕ9Xë RBÐå,æ ԈåêåZê YÒ9èˆÔÖì
å [ëÕ/êœèÖÕ9ë Õ9ÓÔ û)ԈêÒ9èˆåë,åêœÔˆêdû)èU\ë ÕÐêÒæ ÓÒ9ìÐé>é>ÔPO/ê
Ò9ñÓÕ9ãBÒ9ì Ò¡ñÕ9Ó@èˆÕ9ëÒ9Ðæ Õ9ÓåB ë )]ÕsëÐëÓâåñÓåëåêæ Ò/êæ åëèˆå;û)Ò9èˆåëô r
Q !#"D$œQ ) • x()_ ^ „ zzd÷à …’d’’ ²XQ !#"D$œ )-#rxD QE‘ x ¦‘§Iž
 pdE*+)s w-9 )-9~ t dE.  x#r
Q z{+ ˆ ) • x()  ^ „ zz Û%Ã5{+ ƒ  )Q œ | º )u   • Ã
 ))r !#   E¹%—  Ȳ-9È*+¨-9-9€Ùx+QE‘ -9€Ë   5` œ xb
-/ *+ d) -9€|‰-9 %   s€QÈ#3|))́+%È
xœM M%-/  d)œ  Ã
-9EQÈ# *+ w   ž w*+) d)| -9x()X ) ¥   œ)Q QȆ  ‰ ¥ Ed œxœ
s ¥   s  ) d¡ yQs%s-9²r
—))́œ-/D º )u dEy •  )v ()% ¥  )‘   )È%-9 ²
-9    d )ž ) È/3 d— Q' -9QÈ/) -9 È  -9 d3È/-9-9 )Q 
—-9) @ d) Ȇ)-9 x )‚ -9—-9 )Q ~   ‰ d3 Q ‚  y ~ Q ~3  œ ~xœ
-/ *+ d) -9€)ÈB)-9 ž3 º )u —()‰) ¨-9¦ s‘— sQ 
 )†r
$ º )u E%‹ •  ) ()  d3² -9‡¨-/%*+ )Q ž5 d-/ d¡-9    d¦)Qȁ)Ã
-9 x )Ȳ ‹Ë*+Q©Í)-9*+ d) yÈ©)Q‡œ*+‡-9Q| —-/*+ -9‘
xM-9d-9Ë-9 *+¦ ‹ d *+)‚€Q@r%  œ% ž     ‘ x
  ‡3 ‰ )Q DáâQ)x‚-9 áâÈx‚ º )u E%b •  E)D)©Q ) ‰)) )‘Ã
-9€œ *+%) )*+ˆ ) È%xÈ-9 ¹d-9€)È*+ §Q*+ )Q—*+¨-/%-/€ r
º )Ì© d‰ )‚*+-9y 3Q²œb a Ê ¢  )È$Q¡r%!
)Û%Ȳ!# } ƒ • È)!#  ¢ !|xb!#‰3
*+-‰ d )‰ !# Ë–˜-9x3Q *+ȏ5)-#r†ž • ȝD •  Q)È } () } a,Ùx º $Ã
& ƒ  a+3*+%-9d 3Q @ sžQ†  *+ ) • sr } à ƒ 5! • x Á à º aM*+Ã
-9@  d Á  œ Q à -9.%G • Xr ¢ ! ŸÊ#„ d*+-9¡ dQE¡ ¢  d!# ` œ
Ÿ  )Q r

Notas
„ r )( Q ÞZÊÊ 3R  âr  Ê
… r ()Q ÞZÊÊ  … .à  Qsr • !r t â.  dx
r  º©Þ ö ’ ’%’)Ê ²   Ê Q r ()Q*+
” r ()Q ÞZÊÊ Z>—r   )r -9* Ê
Û)r ()Q ÞZÊÊ Z>—r ) *+̲r -/* Ê
{)r ()Q ÞZÊÊ Z>—r 3-#r d Ê
’)Ê  )& • ‘ Ê ! …Ê  … .&()*+ r ()Q*+
÷)r *+ˆ  Þ x Jc~) *+̲r -9*
)r ()Q ÞZÊÊ () R,r -/r ‘ G.  dx
r  Êed §Qx Ê
ö)r    âr 
z)r *+ˆ  Þ  Ià  d) 5 cw²  /3 âr 
„’ r%() Q ÞhÊÊ Zfyr   !#"$¡r ¢ ƒ í Ê *+()- Ê 3 Ã5 ) dE Ê

ó »
„9„ r *+Q Þ  IÃ5-9)cw   âr 
„ … %r () Q ÞhÊÊ Zfyr   !#"$¡r ¢ ƒ í Ê *+()- Ê 3 Ã5-9 Ê
„ ” %r *+Q Þ -9)cw   âr 
„ Û)r%*+Q Þ -9.()%E`cw *+)âr -/Q -9( r 
„ {)r%() Q ÞhÊÊ Zfyr ²   âr  Ê -/ Ê 3 d Ê QQx r () *
„ ÷)r%() Q ÞhÊÊ Zfyr ) sr  Ê   œ% Ê x  …d’’’ r ()Q*+
„ )r%() Q ÞhÊÊ %)  r  dEâr -9* Ê  œ Ê x … .@r ()Q*+

óÇ
Capítulo 2. SQL
 ¦-/%‡Q ²  -9€D)E%*+ ) -/*+D ¦ ~Q  -/Q# !#  dy!
*MÃ
.u-/rŽ ÏԈh
Ñ g9SÕ Y ÔÖé>
ë ó%ïï× “ r

!
"D$  |()b-9)u dEQ˜ ß s ) >§Q | |-9)3 Q‹ d-9),* ¥  Er,)*+Ã
‘+ #!#"D$J%© d )|%‘ /uQ ‚ Ïæ5ÓÐéEæ5ÐÓâåìfižÐåÓ
 N Ò/êdû)ÐÒâûå Ž $ ) §I œ y-/)  
  -9  “ r/ „ z  ۝D) • ()*+‘ +x©Q d¨ + d² ) >§Q ‰!
" º $
Ž Ïæ ÓÐé>æ ÐÓå, ì jê û)èÖԈë ù ižÐåÓ  N Ò9ê ûÐÒGû)å “ © t – ƒ d3 d-/( r3Q w d) §I ~  ~*+ *+ )QÃ
D)-/%*+ )  y yQ   t – *+D!#" º $kà a ƒ –  „ 'z  Û à {r „ 'z ÷ Ã
‰ ‰ d¨)€‚ )ž du€M w!
" º ²$b*+‰!#" º $ Ê#… x© d)*+‘ ‰ ž-9*+‘€y
!
"D$¡r
 t –Ú G€D —)  užQ ž*+‰!
x * ƒ d „ z rE!#x3Q * ƒ *+ *+ d) €
Ë%*++3 ‘-9§Q  + —!#" º $ Ê#… Ž )l  !#"$ “ xb Ë)Í*+ M -9*+‘w   y
 ()-9 Ë—Ž ) Ú!
"D$ “  E%)  dXx d-/Q@r !#x3Q * ƒ  )3Q€+ ‹ ËÍ*+ dM
   w —  È) %) M)Q )w Ù t – -9*++ ‹ )‰-9 )Q ‰  -9-9)†r
í‰E%-/%sp ̆ yx—-9  %-/€‚ ~!
x * ƒ ‚¡*+3*+/Ȇ t – )-9€œ  #y
 -9Q-9*+ -9    D*+ d*+ )Q‘+ ² ) §I D!#"$‹‘3%²© +Q -9)‡
!
x d* ƒ r
ž E)Q s@ )@3  )Q Èd t – xž‘Q) d@ u )  /) )-9D -9Q
!
"D$y  d'-/*+D!
"D$ Ê ž!wŽ5 t – “ È  t… Ž5 t – “ È ¢ ƒ } • $œŽ ¢ -9 • Esr “ ÈBží Ê !#"D$©Ž D% 
í‰ )  • sr “ È%x—! Œ t } !#‚Ž !#x‘ 5)-#r “ r
!
"D$£ D *+‘p Ý £ d3 ¥ )~¨-/'()x#r „ zö … È } *+ -/% Š Q)'!#Q)²
5)Q Q Ž } Š !# “ )-9€|— • *+ p t %3 dv DD% ,  a ”Áœ…  GM  )
¥
²  d3Q| œ ) >§Q © ˆ-/)' d3 )Er
QM  d3Q|  ‚ ¨-9| d „ zöd÷Mx
-9) ‡ˆw‘ ¥ 3-9*+ d)  œ 
 d-/Q  t –  !#"D$¡r> „ zö È% Q v  ¥ ) } Š !#5 
 %*+‘pdb-9  d©¦ ¢ )¹->€‹5)Q )-9)% D3Q)¹d-9€‹Ž 5! ¢ “ r/ 
u E€| d3 ¥ ),) ~!
"D$+ d-/‘€y) E*M*+ )Q ž )*+‘ w wáâ!
"D$ Ê ö÷á/r3
„ zödzÈ   ¥ )%)@   ̆ d)È)x+ d-/‘€M d@)  u+)*+‘ dÈ)Q*+‘p Ë) Ã
*+È áâ!
"D$ Ê özdá/r&†*+‘p Ë  „ zö zy — #€‹ ‹  ¥ ) %-)%+*+
úDÒ9æ ÒãBÒ9ëå N Ò9êdû)ÐÒâûD å jÑDãBåì%ìåì~Ï i N Ž !
"D$ “ r
$ -9*+ pd'5! ¢ x } Š !#() d3QžQE‘§I)‰ E)Q ¡*+ -/()  )  d— ¨)-/€
 — )‚u €Ý*+ x‹*+%‚ @  ¥ ))%È*++) *+*+ )Q Ï i N .
 Ï i N ]'ï . rd —u €‹ -9)u €+ b ‹  ¥ )Q¨-9)M ) „ zz …Þ õ5êæ åÓêÒ9ç
æ ԈÕ9êÒ9èÏæ Ò9êìÒ9Óìõ Ï ]âkõ jðßï " Î '» m óïï .úžÒ/æ Ò9ãBÒ9ëå N Ò9ê ûÐÒGû)å Ï i N r/!
"D$ Ê z … du 3€MD
  )*+*+ )Q v )Q   d¨ d s-9 )D()‘ n!#"D$‚  ¥ )p o)r!
¦ )~ Ã
-9E-9€b  %  !
"D$ z  Ê … D
ú 9
Ò æ ¡
å 9
Ò 
ê 
ì ž
ú 9
Ò Ó

 
å ê  
 óïï Î r + *+*+ )QM D -9‘
 s-9 *+ )QÈB3 ¡  ¥  d3%EG)‰ )  uD d ¥ )%² )*+)ž) E*+%*+ )Ã
 ‰-9*+ Ï i N 8 r/!
‰)Q (-/ ds D!#"$b + ) §Q ž D-9)-9 ž-9*+ Q©Ž ‰&
)Ã
-9*+ d ‚%)  “ È D d-/QÈ  ¥ ˜‘ QD-9) Q-9*+ Q‘ ÈŽ 
E§I *+œ-9) Q -9 Eu  “ r/QD d )DQ ‰*+ x‚-/*+ E§Ižx©², œ)œ ž d‘
  ~¨)¹-9€œ )  u  ¥ )X)Q , „ zz%zr

El Modelo de Datos Relacional


•  *++*+ )-9)*+‰)Q È!
"D$£ d‰ Ù d) §I œ d -9)âr†Q‹     -9v   —3
‘~ œ  ўÕ/ìdåèˆÕ¦ìå@ìÒ9æ Õ9ëÓåèÖÒ9é>ԈÕ9êÒ/è  ‘-9)-9*+ d) v'¡r Ÿ r • |  „ z ’ ržÃ
 *+~ )— -9-9€b *+ ²*M dM Qv -)* ¥ v  žŽ5 d  q Õ9ÓўÒ/ç
èˆÔˆì%Ò/ì%åë'ìåèdþÿÕ/ì%åèˆr
Õ  åèˆÒ9éEԈÕ9êÒ9èìå úDÒ9æ Õ9ë “ È y*+ —    *+¦%  )D*+‰ d3
œ )  u3Qw* ¥ ,) QuXr

ó Î
º )  ãBÒ/ëå ì%å@ìÒ9æ Õ/ëXÓåèÖÒ/éEԈÕ9êÒ/è s )v‘%3  Q,   3  -9‘ s  ,-9*+
) éEÕ/èÖåé>éEÔUO9êžìåæ5Ò9ãBèˆÒ9ë Ž xž)* ¥ '   ¦ ‘ “ r º )vQ‘-/)  d—¨'xD-/ *+)È
—'   -9¦¨v  / )  y QÈBxD-/-9 *M)v  /3 d)  —QE‘ QD d
Ò tÒ9ëå¡ì%å¡úDÒ9æ Õ9ë¡ìå¡ýÓâSÕ Yååì%Õ/Óâås
 3Q‚-9) d)| d‹D ‘r N  ë   Óæ òˆéEÐèˆÕ9ë *+  QE 
E§I *+ ‘  v%  -/)3Q )Q ~ œ   Q‘r

! ! º $5 ƒ d )‚ ‘‚   ‚ -9 y )Í*+ ‹Ž ! Š ¢ “ È) ')*M‘ yŽ ! Š } –˜ “ x‹
-9 œŽ • 5& Œ “  v ‚²u Er
!  } ƒ &y  ) ‘¦   ¦*+-9 )¦ )Í*M ‰Ž5 Š ¢ “ d†)*+‘ ¦Ž  Š } –£ “ xD  -
Ž  ƒ  •  “   œQ‡-9 @r
! !
$$!œ%*+-9 )) E*+-9€Ë‘   p ‡-9 ©Ž5 Š ¢ “ vu d)M  pÃ
u @Ž ! Š ¢ “ rE3Qu v dœ œ )Q%Ev-/) -9 %%ssQ‘  )Q  r
¯¶ ­ `+°´ f ™'u i g%›a Ä a%·/­vm­vœal f·¡m­vÀcf¿­­%mfc­·xw—«žcl ¾ n/_´ f·

SUPPLIER SNO | SNAME | CITY SELLS SNO | PNO


---+------+----- ---+---
1 | Smith | London 1 | 1
2 | Jones | Paris 1 | 2
3 | Adams | Vienna 2 | 4
4 | Blake | Rome 3 | 1
3 | 3
4 | 2
PART PNO | PNAME | PRICE 4 | 3
---+---------+------ 4 | 4
1 | Tornillos | 10
2 | Tuercas | 8
3 | Cerrojos | 15
4 | Levas | 25

$wQ‘‰ } ƒ &£xË! º $  ƒ  œ   Ùu v-9*+ åêæ ÔÖìÒ/ì%åë xË!#$$)!| œ  d u d
-9*+ ) ÓåèÖÒ/éEÔUO9ê d)   ‚ ‡ˆ-/ D -9 Xx ©u d B -9 Er
• *+—u  *+s* ¥ ¡ % È%!#"$M w œ¡Q‘, -9*+()© ¨)Ȇ 
)Q    — d  /*+s~Q ‡v *+  %-/)âr

Formalidades del Modelo Relacional de Datos


 -9)-9 QÝ*+Q * ¥ Q-9Ý   © ‘x-9 |‘§IÙ ,*+ Ý %-/)   ÓåèÖÒ/éEUÔ O9ê  ‚
 d‡ -9§I )QÈ -/ %# ' y ‘-/§I )RD # -/Qž-9EQ )ž ¦ )v 
*+)r  D d-9€+ ‰Q E‡ˆ ‰-/§I Q-9))*+ ©3 ‹)*+‘
Ž )-9)5 )-9y~  -9€œ  þÿÕ9ìåèÖs Õ jêæ Ԉì%Ò/ì%kç ,åèˆÒ9é>UÔ O9ê “ r Ÿ *+*+ )Q È% œ*+
 *+ *+ )Q v y-9§I  D u d†r E§I *+È% -9§I )  s d)   , 
*+)@r%&#%*+‘p ËÙ §Q *M~ *+)~%w-9 ) -9 -9Q  v )Q 
…’ xs)Í*+ , d r
 ñÓÕ9ìÐé>æ Õé>Ò9Óæ åëԈÒ9êÕ  ©—*+) D È D Èrhrhr D È d-/  D D rhrhr D d— 
-9§I )  ,.à Q  v È v È)rhrhr v ȆQ  1  2 v kD È v D Èrh1rhr y v 2 Dy r y k
1 z 1 z k z
) E§I *+È9-/ )vQ ) *+ kH … È D H {0,1} x D H {a,b,c} d) )-9  D D  {(0,a),(0,b),(0,c),(1,a)
1 2 k 1 1 k

º ) ƒ -9€© ¡-9    d, ‘-9§Q )1 Qœ 2 -9Qy-/%EQ )— ~ )1yy y* 2 ¥ ¡*+Ã
) Þ R { D D rhrhr D r
1 y 2 y y k

ó×
 E§I *+È {(0,a),(0,b),(1,a)} , )w d -9€:(#ž v() d-/() , © ‘-9§I ) 
D1 y D2 *+ )-9D)Q r
$*+ *+‘ œ )M  -9€É ‚%*+£ r • %© -9€˜ ‚́£ -9Q
-9EQ d) D D rhrhr D  -9 ¡   Q ) ¦)u d k xD ¡ Q *+ž ' — ‘-/§I Q
 kà Q r 1 y 2 y y k
º )¡ %-/€D3 ¡   ,u d-9*+‰ ) ‘¡Ž -9*+‰x¦ §I*+Èd d-   N | Ò tÒ9ëå²ìåúDÒ9æ Õ9ë
ìåXýÓSÕ Yååì%Õ/Óâåë   Óæ òÖé>ÐèˆÕ9ë ) -9 ²v   / ) -/*+D )~¨vx-/%-9 *+Ã
)~-9 ) ~ œ-9*+²) Q  wQ )r>ž))*+‘ ,Ž *+  ‘   “ 
 -9 *+)ȁ)¡-9 -*+,w~ ¨)-9€‚   åë RdÐå>ÑDÒsÓâåèˆÒ9é>ÔÖÕ/êÒ9è r
º  å
ë RBÐå>ÑDÒÓåèÖÒ/éEԈÕ9êÒ9è @ —-9§Q )Qž¨)Qž ¡ ‘   È È
rhrhr r Á x‰ *+)
R b „ } H } H È/ ¡) ¦ ¡ *+—A1A2uA k  s' ‘  r
DiÈd²E¦-9¦QE‘ Q A iÈ i k
) )-9 , -/‘*+s ds    d*+w d-)-9*+ R(A , A , ... A ) r
1 2 k

Nota: Un esquema relacional es sólo un juego de plantillas mientras que una relación es
un ejemplo de un esquema relacional. La relación consiste en las tuplas (y pueden ser
vistas como una tabla); no así el esquema relacional.

Dominios contra Tipos de Datos


Œ +() *+œ()‘Ý ìÕ9ÑwԈêԈÕ9ë  + -9-9€É)Q EEr ƒ -9-9‰   M s*+)£ È
 *+*+ )Q ÈX  -9§I )Q£ ©u d—Ž ž E§I *+˜ ds-9§Q  Ù |y d) d—Ù 
 —D)Í*+  d   “ r#Ù p *+)D œ *+% y‘ y œ% 3È)() *+D()‘
 æ ԈñÕ9ë‰ìåžìÒ9æ Õ9ë * ¥ —   | |*+)r • Ù() *+y d¨)Ù )bQ‘ÈX() *+
 *+‹ )| -9€˜3‘ œ  p©% ‘  )-9 Er } -9)*+ d) È() *+ d-/
 p¦§I  © ‰Q d‘ d ¥  ¡*+-9 ))© d+u%  ‰~QE‘ Qrd¦ §Q d*+È
su% , SNAME  ~w ‘ SUPPLIER   ¥ ©-9 d) ¦ v-/%E-9Q B d3È*+  ¦  
*+-9 )% ¥ d) r9ž ¨)*+¡  y))y |Qy wQsD-9w% ‘  Xr
 y SNAME 3 d ¥  } ƒ • Á } ƒ Ž …’d“ Ž Q w d¦  y!#"D$b%Ew-9 d)¡ ~-9-9 dG 
SNO
 |)Q  } H …’“ È' ,Qß SNO 3 d ¥  Š &í‰ ƒ r • É‹)-9€É | y
QÈQ*+‘p +()‘ *M  -9-9)%‚ b*+)|²ED + ‘  XrB²*+)©
SNAME
¦ -9§I ) œ w s¦-9 )%¡ ~-9-9 / ¡ w)Q  } H …’ È#*+ d) 

*+)— SNO , 
-9§I   Qs¡)Í*+ d, ) dr

Operaciones en el Modelo de Datos Relacional


‚D -9-9€© u‰Ž~q Õ9ÓÑDÒ9èÖԈìÒ9ì åësìåèBþÿÕ9ìåèˆÕr åèˆÒ9é>ÔÖÕ/êÒ9èìå'úžÒ9æ5Õ9ë “  ¨)*+D)-9€
*+Q * ¥ Q-/ ²*+ M %-/)âr } ()-9)-9 *+v-9*+|vQv   bˆ*+Ã
-9 )3  Q¹)y ©*+ œ ~Qs d-9)Ȇ d)y-/)-/ d*+  pw *+
()-9 -9œQ'   Q‘' d-/  dEd@ž d3  ~‘ ¦ Q' u‡)r
E§I *+Èdˆ  ‡¦  )Q')*+‘  ¡ ''u  B'   ¡u )Ã
 ˆQE)_ Rr Á x‚5*+  )Q  ‰)Q-9) dv²Ež ̆ ,
M d) ‡ˆ-/ Z
² E%-/)   )Q  -9) r

!  )€ è û)åãBÓX
 Ò ,åèÖÒ/éEԈÕ9êÒ/è X )¦)Q-9€ d‘E%-/dÈ/ ¡-9 %X-/)  X3 s dÌ# 
²-/  B,  -9¹%²¡~%s d-9) d†r
!  | ð W9èˆéEÐèˆB
Õ ,åèˆÒ9é>ԈÕ9êÒ9è d@ )¡) -9€€-9È/) ,X-/)  X3 s dÌ# / E*M Ã
) ), d -/-9) ,€-9s   v  , w   d3Qv d‘y  -9 Er

óï
Álgebra Relacional
Ò ,åèˆÒ9é>ԈÕ9êÒ9è   ž)Q -9ž¡¡r Ÿ r •  ‹  „ z … r • )/Q ž | +-9§I Q
 € è û)åãBÓ
  -9) d,-9©%, d-9) r

! !
$ • &ˎp “>Þ Ì#Q æ ÐñèˆÒ9ë — ¦  )— -9€‹   —Q b )— QE-9-9€
%r!#  R )wQ‘~   v-9)  ) ~ ‚QE‘ Q A r‚ ƒ…„p†IŽ ƒ “ H;=h ƒˆ‡  Ž } “ HM:?%)
t
 )Qw )~Q w R x t(A)  d)Q~ u d% ‘   A z v~Q  t r
!  ƒ ¢ ¸  • &£AŽ ‰ “>Þ Ì†  Ò9æ ÓԈãBÐæ Õ/ë Ž -/ *+) “  d-/‡ˆ¨-/‰ — )‚ d-/€ r!
d R )
 d-9€y   -/)Q )  y% ‘   X 1r ‰Š>Ž R“ H;=hQ Ž a | “ ‡
R
?hÈd) tŽ X“  Qv †u
 d
 ‘   X  wQ  t r z
!  ƒ ¢  º • &œŽ “>Þ -93Q x ¦ † -9 ‰-9 d3%)‰ ¦ %-/) râ!
d R )Q‘
 ,)wŽ  y x “ k x‰  S )Q‘¡-9D)~Ž5%EQx “ kÜ r R S @ %-9§I )Q‰ , k
î à Q '-9 x Ø E*+ d -9*+) )Q ,5*+— )vQ y v d x-/ x,ÍQ*+ Ø

-9*+) d) s *+œ )~Ø Q ²w  S r
k R

! ºžŠ  ¢ Š Ž ‹ “Þ   œœ )€Ý —œ d‡y —-9§I ) ‰ —‰Q‘r†ž%w
Q‘ R x S Ž x—*+‘%s ‘ d‚ d' *+*+—) “ Èw )€ R ‹ S s d-/§I Q
 Q s   v  ¥ œ d R S  y,r
!  Š & ƒ !# • &œ
Ž Œ “>Þ • )Q x ~)Q  -9-/€y v d‡ -9§Q )Q,   ‘%†r
ž%,%,Q‘ R x SÈ R ‹ S , -9§I )Q— v Q ²s     ¥ œ  R x  SIsr3ž
)  u d       R x S Q )œ *+*+—E%)Xr
! ž ŸŸ  ƒ  Š • ‹Ž Ã,   “>Þ  ) D -/§I ) ©  B)-9D ž %‘%†r/!
d  R x S 
)  uœvQ‘¦-9+ )*+*+©E)Xr R à S  )-9§Q  œ ‰ ²   D  ¥ 
 R ² )  S r
! ¸ ¢  Š Ž Ž “>Þ -/) -9Q—v %‘¦3 vQE‘ Qv-9*+ ) r !#  )—Q‘-9‹
Q‘ Q AÈ B x C x  S )~Q‘v-9y, ‘   CÈ D x E r Á x y% ‘  D-9*+́
R
%Ey*+‘~ d-9) d3È) X ‘   C r ƒ Ž > ! H‰_‘’ ƒ“ ‘’ ”p“ ‘’ •S“ –`’ —…“ –k’ ˜ pŽ ‘’ •)„A–`’ •>Ž ƒ ! “ “ r%o9" p
Q*+()-9 )ž  ‡ˆq E*+ d‰-9-9 *+'  -9Q‰-/Q ) R Sy r)Q)-9 
  d-/-9)*+@Q -9 xu @%E¡ QE‘ Q‰-/*+́ C  ¦y %pŽ ‘’ • „™–k’ • “ r
} ()‰ d) *+ )ž %‘ž   ž-9)Q ) ‰ % ‘   ¡u d-/ d¦xœœ-/ d*+¦ Ã
C
*+))~-9 *M)ž ²-/r
¯¶ ­d`b°´ f ™u ™ gšžkavjkk­c›dfe5kEœ~šžkaX›Bfe k|jkl ­cka
 %*+¦%Q‘¦   ž ž()%| -/œ du %)y%3) -9 ²E‰ )
I§ ˆ r3!# %ys  ) dsQ‘,d Þ
R A | B | C S C | D | E
--+--+-- --+--+--
1 | 2 | 3 3 | a | b
4 | 5 | 6 6 | c | d
7 | 8 | 9

*+ -9-9 *+s d


 -9Q-9 ) Ry S
x—Q ) *+ Þ

R x S A | B | R.C | S.C | D | E
--+--+---+---+--+--
1 | 2 | 3 | 3 | a | b
1 | 2 | 3 | 6 | c | d
4 | 5 | 6 | 3 | a | b

."
4 | 5 | 6 | 6 | c | d
7 | 8 | 9 | 3 | a | b
7 | 8 | 9 | 6 | c | d

&#Edsw  d-/-9€ž‘’ •)„A–~’ •>Ž ƒ ! “ Q ) *+ Þ


y
A | B | R.C | S.C | D | E
--+--+---+---+--+--
1 | 2 | 3 | 3 | a | b
4 | 5 | 6 | 6 | c | d

, d*+)²-9 *+)%X -9% r  ¹d*+@s  d) s -9€ Þ ‰ ‘’ ƒ…“ ‘)’ ”p“ ‘’ •K“ –`’ —…“ –k’ ˜ Ž ‘’ •)„A–~’ • Ž ƒ
! “ “ x‘Q ) *+ Þ
SC
y
A | B | C | D | E
--+--+--+--+--
1 | 2 | 3 | a | b
4 | 5 | 6 | c | d

! ž   žُŽ Ÿ “Þ !#  R ) %‘-9b~QEˆ‘ Q } È t È • Èx© xM  S )—Q‘-9


s% ‘   • x—©rž ¨)*+swu3€œ-9*+ Þ9ƒ Ÿß!/H;=h ‡K  P¡ !+¢~`£ ƒ    
 £ Ž } È t“ Hp ¤ £ Ž • Èh “ H ¡ ?†) w £ Ž ̆Èhx “  ) ‰ )ž ‰ ~‰Q‘ Rz   w-9z )R ~€
©-9*+) ) d x x y r Š € d3 w   ‰DQ  t -9)39 w€œ ©-9*+ ) d
A B
x  ~ d-9€ R r
ž%,%,  ) d¡Q‘
R A | B | C | D S C | D
--+--+--+-- --+--
a | b | c | d c | d
a | b | e | f e | f
b | c | e | f
e | d | c | d
e | d | e | f
a | b | d | e
ƒ Ÿß!‰ v u~-9*+
A | B
--+--
a | b
e | d

E— )œ -9-/€Ùxb ¨)-/€Ù* ¥ ‰ Q— d ¤  d‘E ƒ d-9)%@‡ §I) 
9 - èˆèÖÑDÒ
ê óï×× <
 9 úDÒ9æIå óïï M <r
¯¶ ­ `+°´ f ™'u5ª g'šDkan/fk·9_´ l av_l e ´ eI±akmfL¥ž´5µ­Å)ca,¦­´ an9eIfka´
ƒ d -/-9ž   M() *+œ E*M %˜ œ  y²  d— -9) -/*+£-/%-9 
 œ d-/  dâw ž ‚‚‘ œ ‚ r  u*+©)   ‹ E§I *+Ë œ‚3 d-/-9€
 Buw Ž ñ%åÓÒ9é>ÔÖÕ/êåëåê—åèBþÿÕ9ìåèÖÕ¡ì%åúDÒ9æ Õ/B
ë  åèÖÒ/éEԈÕ9êÒ9è “ ) %  ‚   ‡v-/)-/ d'

.ó
)*+‘ s ~ ¦¡u  /¦   wu d) ‚ EQ‡-9  Tornillos r ‰  )Q
  )   ¹%) d ¥  ‘v d-/)
-9‚w  )Q v dE%-/€ Þ
§ (¨ (SUPPLIER © SELLS © PART))
SUPPLIER.SNAME PART.PNAME=’Tornillos’

$*+*+'v d3Q' -9) d' )-9)  rE!## u *+'v-9) Q~)Q X-9)Q
Ò tÒ9ëåìåúDÒ9æ Õ/ëìåýÓSÕ YååìÕ9ÓåJ
Q‘ ¡)   ‰ §Q d*+DŽ N | ë   Óæ òˆéEÐèÖÕ/ë “ ‘Q ) *+

  d) ~ E§I *+ˆ Þ
SNAME
-----
Smith
Adams

Cálculo Relacional
 •¥ -9  ƒ -9)† ,‘¦ ˆ èPOGû)ԈéEÒìå²ñÓԈÑDåÓÕ9Óì%åê r Á xwXu%E%)  %- ¥ -9 
 d-/) Þ

!  x ð W9èˆéEÐèˆÕV åèˆÒ9éEԈÕ9êÒ9è
ìåXúDÕ9ÑDÔÖêÔÖÕ/ë Ž  ƒ • “ È%) v uE%‘ d   y-9*+) )Q 
Ž QE‘ Q “  %sQ r
!  x ð W9èˆéEÐèÖÕ åèˆÒ9é>ÔÖÕ/êÒ9èìå ø Ðñ%èˆÒ9ë &() ~ø ÐñèÖåB,åèÖÒ/æ ÔÖÕ/êÒ9èð,Ò9èˆéEÐèÖÐë Ž & ƒ • “ ȁ) v%suÃ
‘    dEyQ r

̆) /*+3€œ - ¥ -9 y -9) ~ ¦²   w ¦ d́)-9œ Q¹—,


*+x‡‰ w ) §I  d-/) rB‰ )D3-9 €+  %²ž w ƒ • Ž5xœQ*+‘p 
 & ƒ • “ u d+ 9 úDÒ9æ
å %óï%ï M <ž
 9 - èˆèˆÑžÒ9ê %ó%ï× × <r

Cálculo Relacional de Tuplas


$-9)  %@  ¹%d@ ž& ƒ •   ) dž  3  )Q s5*+  Þ Ì†Ž } “‡GŸ Ž5Ì “ ) x  )
uEd‘ ž wQœ È A d¦ M-9§I ) ‚ ‰ ‘  ¦x F d ) €*+ )r9$D d -9€
   )Q -9)3ˆ/  œ ,   t(A)   vQ3  F(t) r
!
    *+ ) s  ) D ) §Q d*+ - êÒvé>Õ9êëÐèÖæ5ÒvÐæ ԈèˆPÔ [/Ò9êìÕ € è ûåãBÓ Ò ,åèÖÒ/ç
é>ÔÖÕ/êÒ9è  ¹%)& ƒ •  *+  *+ w3  )Q v-9)   Þ

{x(SNAME) ª x « SUPPLIER
­ ¬ \nonumber
­
y « SELLS z « PART (y(SNO)=x(SNO) ¬ \nonumber
z(PNO)=y(PNO) ¬ \nonumber
z(PNAME)=’Tornillos’)} \nonumber

Ò tÒ9ëåsìåsúžÒ9æ5Õ9ë ìåsýÓÕSYååì%Õ/Óâåëx  Óæ òˆéEÐèÖÕ9ë


u  )‚-9)  -9) Q‘ N F
)-9)Q*+XQu ¹¡ d%*+*+‰  Q~ - ê Ò'é>Õ9êëÐèˆæ ÒÐæ ԈèˆÔP[9Ò/êìÕ € è û)åãBÓÒB,åèˆÒ9é>ԈÕ9êÒ/è r

..
Álgebra Relacional contra Cálculo Relacional
 ¥  ‘‰ -9)%x‚ - ¥ -9 y d-9)  d) M *+*+ ñÕ9ìdåÓsì%åså
Qñ%ÓåëÔUO9ê (†  dÃ
-9 È  ,s-9)3 Q¡   w v  d œ *+ ' Q¹) ¥  ‘~ -9)%
   
 %*+‘pdž5*+ E , Q¹)w d- ¥ -9 ~ d-9)È9x‰u-9 u )rR w  ,‘v
¡r Ÿ r • ‹  „ 'z  … r/ ‰ ¡ ž‘%3€‚ M +%EQ*+| Ž #d *+© D ) -9-/€
 • J  % “ *+ d)Q ž -/  ) ̆ /3€+‘ âD - ¥ -9 œ -9) ‰  
 ² -9—— dÌ# /€Ë3 d* ¥ ) ˆ-/*+ d)  d  u )Q —  ¥  d‘E d-9)âr  )
-/ €œ* ¥ s d %v‘   v )Qȇ §Q b 9 úžÒ9æ
å %óïï M <
x 9 - èˆèˆÑžÒ/ê %óï×d× <>r
!
-/ —œu d-/ d‰   œž ) §I ž‘‰ Ë - ¥ -9 + -)˜ yáâ* ¥ ‰ 
)u áDáâ* ¥   -9 Quá    ‘  d—  ¥  ‘ %-/)#    d ¥  ‘E
 -9¨-9DŽ G-9*+ d) “ ) © ž¡ dE-9) È*+ )Q - ¥ -9 œœ 
~ œ-/*+)Q  d ¦   ~ Q *+)~ 
 œ  du %-/€y* ¥ , ¨-/ˆ ) r

El Lenguaje SQL
•  *+œ | d-9y w* ¥ *+ ) ) >§Q d¦ -9)% È#!#"D$b d3 ¥ ‘y | d
- ¥ -9 œ %-)%² žQ r • *+‚ d3 QÈ
Q-9) Q *+ D Q¹)‚ d
- ¥ -9 ~ -9)% ¡Q ²Žž y d  u% ) dÈd  ¥  ‘E¡ d-9) “  ¦  s E*+ %
 %*+‘pd—  ¹%)D!
"D$¡r Á x/Èd3y d*+‘È -9-9d '   u%—* ¥   ¥  d#- ¥ -9 
—  ¥  ‘w d-/))r }  ‡Q ) d*+¦ )wQž v )%¡-9E%-/Q /E‡ˆ3Q-9¡-9Ã
) !#"D$|   v) E*MœEQ  d ¥  ‘Evx d- ¥ -9  d -9)  Þ

! •  *+)¡%E)3 d-9€)È‘*+¨-9-9€© Qr


! • -9d y%EQ*+p Q-/% Þ É!
"D$ d—‘ b)-9 ² E%-/) y%EQ*+p Q-/%—‡
-9*+y-/*+-9) È#  §Q d*+ } }ßt î ” r Š € d3 w   w) î )Qs dE% 
Q*+p  -9s%  -9‡ˆy œ  ¥  ‘~ -)) œ- ¥ -9 D -9)âr
! } )%-/€Dxž-/*+) ,*+ d3€ Þ d@‘ˆ ¡*+²E*+ )¦ -9€-9)3Q 
@ )w-/)  wx3) )~ -9€y-/%-/ vw œ)*+‘ v  d-€ r
! Ÿ )-/) v B Þ ¢  -9)  % -9*+ ñÓâÕ/ўåìÔÖr Õ ® ‚Ò YåÓÒGû)
å ¯ È ëÐўF
Ò ® ëÐ/
Ñ ¯È /
Ñ W/ç
QÔÖÑDx Õ ® ÑDSÒ Q¯ È  -#r>   d y-9@~ -9 *+)%¡  )~ d-9€y%E~‘ d) @ )
-9)Q‚́)-9)r

Select
-9*+)* ¥ ¡  œ!#"$| dsw)  -9-9€©!
$ • &È   ~3 v Q¹w~ -9  /Ã
E%@ r$~) ̆,  Þ

SELECT [ALL|DISTINCT]
{ * | expr_1 [AS c_alias_1] [, ...
[, expr_k [AS c_alias_k]]]}
FROM table_name_1 [t_alias_1]
[, ... [, table_name_n [t_alias_n]]]
[WHERE condition]
[GROUP BY name_of_attr_i
[,... [, name_of_attr_j]] [HAVING condition]]
[{UNION [ALL] | INTERSECT | EXCEPT} SELECT ...]
[ORDER BY name_of_attr_i [ASC|DESC]
[, ... [, name_of_attr_j [ASC|DESC]]]];

.8
5   /*+D()‚œ-9*+ §Q‚3 ̆ž —‚)  -9-9€˜!#$ • &˜-9˜u%E‰ E§I *+Ã
†r$%sQ‘   ¹s%Ev¡ §Q d*+s v ¨) œ  )Þ N Ò tÒ9ëåìå@úDÒ9æ Õ/ëì%åýÓÕSYååç
ìÕ9Óå
ë   Óæ òˆéEÐèÖÕ/ë r

Select sencillas
}  ‡# d) *+¡ ), E§I *+¡ )-9¡  ¹%)v)3Q -/-9€©!#$ • & Þ

¯¶ ­ `+°´ f ™'u ® g%šœ_­c


w·9­kn9e5´ ´;a~n/fk|n9_a´ ek°n9an9e ±k
Ež -9  â%¡Q  žQ‘ } ƒ &ˁ) ‰ )Q‘ Q‚ ƒ  • ‹ *+x
  „’ Èd *+  *+s~  )Q v-/)   Þ
SELECT * FROM PART
x‘ d) *+¡w  d) vQ‘ Þ
WHERE PRICE > 10;

PNO | PNAME | PRICE


---+---------+-----
3 | Cerrojos | 15
4 | Levas | 25
º Q ¹)Dáp²á@ œw)  -9-9€œ!
$ • &©-9Q *+¡Q¡¡Q‘ Qs vwQ‘)r
!
    *+ -9   s€© ‘   Š } –˜+x‚ ƒ  • ‹ ‰DQ‘D } ƒ &Ë Q¹Ã
 *+,w)Q -9-9€ Þ
SELECT PNAME, PRICE
FROM PART
WHERE PRICE > 10; Þ
y Q v-/%3 
   % d
PNAME | PRICE
--------+-----
Cerrojos | 15
Š €   ~   ~‰!#$ • &|!#"$M-9E ) v‰‰áâx -9-9€)áX  ¥  ‘Ew d -9)È
)—
Levas | 25

~áâ  -9-9€)á@Ž u B€ è û)åãBÓÒ7 åèˆÒ9é>ÔÖÕ/êÒ9è v* ¥ , Q  “ r


$w-9 ¨-9-9) d‰ Ëœ-9  Z Á  ƒ £   ËQ*+‘p Ë-9) d-/Q3 —€-9*+ d)
 ¹%)%s%‘Eds-9u  ¢ ƒ È } Š DÈ x Š ¢ & Þ
SELECT PNAME, PRICE
FROM PART
WHERE PNAME = ’Cerrojos’ AND
¥ (PRICE =Þ 0 OR PRICE < 15);
 -9*+   
PNAME | PRICE
--------+-----
Cerrojos | 15
$ -9  EQ*+p Q-9    d—  ¹% yvQv ¦‘d§I Qu x d—v-9  
 Á  ƒ ¡r@ E§I *+È 
   *+'-9)-9 -9 )Qž-/  d3Q—
Q*+*+ ' ¹
œEQ‡-9 È%E‡ˆ*+  Q¹'ˆ~3  )Q v-9)   Þ
SELECT PNAME, PRICE * 2 AS DOUBLE
FROM PART
Þ
WHERE PRICE * 2 < 50;
x‘ d) *+
PNAME | DOUBLE
--------+------
Tornillos | 20
Tuercas | 16
Cerrojos | 30

.M
Š €   ,   ,¡²‘s ¢ t $—QX,‘s-9u } !   )  uw ‡ˆ w  ¡  )
-9 *+))r% yQp -9)-9œ  d   ¹%E —-9 d *+ )Q+ œˆ3Qy‘d§I Qu+%E
)%² D)  u‰Q‡Q w¡¦-9 *+)¦   %) rGQ s)  du~ ‡ˆ ‰ -9‘   %-9¨-/% u
 á⠁œá/r>
% )—    Q¹  œQ   D w-9)3 Q)r

Joins (Cruces)

  d) ~ E§I *+*+   ~-9*M— äRÕ9ԈêëB® éEÓÐé>åë¯   %¹ œ œ!#"D$¡r
Ev-/ ¹%Q   ‘ ! º $  ƒ È } ƒ &|x—!#$$!‰w up   v s% ‘  s-9*+ ) È
 *+  /*+s~  )Q ~)  -9-/€ Þ

SELECT S.SNAME, P.PNAME


FROM SUPPLIER S, PART P, SELLS SE
WHERE S.SNO = SE.SNO AND
P.PNO = SE.PNO;

x‘ d) *+sw  d) vQ‘~-9*+—   ) Þ

SNAME | PNAME
-----+-----
Smith | Tornillos
Smith | Tuercas
Jones | Levas
Adams | Tornillos
Adams | Cerrojos
Blake | Tuercas
Blake | Cerrojos
Blake | Levas

|ž-9   Ÿƒ ¢ – () *+)  -9œ |¡)*+‘ ‰%E‰-9‰ -9€|Ã
  D()x|QE‘ Qv-/b)*+‘ ž-/*+́‹Ž5! Š ¢ xM Š ¢ “ bv  -9) r } ()— dÃ
*+@3Q) @ d)  ¡@ ‘  '-9)*+‘ ¡-/*+́—*+¨-9)ž%-/-9€ ¡ 
 B¨#§IM²)*+‘  ²Q‘ Q©-9Ë d²)*+‘  d²  | D b )Q@r $§I
 ž-9-9 D ‰*+*+ E*+%È
Q)-9*+‚ D*+  QED  - êÒvõ êêåÓ ³>Õ/ÔÖf ê ® - êB
Ò ³>Õ9Ԉê‚õ êæ5åÓç
êSÒ ¯ rd*+ M  -/Q|-9 d) Þ ! º $  ƒ  } ƒ & !#$$)! } ()—  -9-9)%Ã
*+́)-9*+ d) w   % ¡   ‰Q5%©y ¦-9)-/y )   ©D-9  
 Á  ƒ ߎ ž d-/QÈ)DQ‘ Qž-9˜)*+‘ y-/*+́˜ ‘ dÝ ~  d “ r Ÿ )%*+ )Q
*+)*+,s-9 *+)¡  /Q,Ž5!r ! Š } –˜È%r  Š } –£ “ r

Operadores Agregados
!
"D$—²-9)¦  @%  'Ž -9*+‰ }  í‰È •¢ ºDŠ &ÈB! º –£È9–˜ Š Èd– } a “
  vQ*+œ 
)*+‘ v  œQE‘ Q-9*+ *+ ) Xr
u' 
 @ ddÃ
ž3 -9-/ ‘ Q, u ' -/ *+)w  -9¨-9 yvQ‘v-9*+ Q)r

. »
!
X œ  d-/¨-9Ù ž Ýœ-/)  Ȳ - ¥ -9 b3 —()-9 —€‹3‘ —Du dw
-9v Ž u yw ˆ ) v -9-9€ “ r

¯¶ ­ `+°´ f ™'u ³ g%«Dµµc­µa%l5­d·


!
   d d*+s-/)-/ d, -/ ~*+ — ~Q¦¦Q‡-9 s ~žQ‘w } ƒ &È#  Ã
¹G d*+,w  )Q v-9) Q Þ
SELECT AVG(PRICE) AS AVG_PRICE
FROM PART;

     Þ
AVG_PRICE
-------
14.5
!
   d d*+~-/)-/ dv-/ %) ‰ ‡ˆ-/ w  -9 ‹ ‹y ‘y } ƒ &È  ¹% *+~
)  -9-/€ Þ
SELECT COUNT(PNO)
FROM PART;Þ
x‘ d) *+
COUNT
-----
4

Agregación por Grupos


!
"D$©)s² *+ v%EQ-/)@  %s  )~ ‘v œ r3‚ d3Q -9)-9) È
   dd~ d3-9 ) dv²   M%-9E ‰v Ž  -9QÈ 
uX d
 dEX ž) -9-9 y‘ ¦ ,su ' ~-9 *+)~ Ã
 -9¨-/% Èd3)‘ Q ,u ' ¦ y Xr>
  ) -9-9 
)u *+ )Q ~-9  “ r
,EQ-9)%*+ ) £ MyQ y d  ²œ M()-9 M Q¹)˜%y‘ œ-9u
´Z¦rµZšDÀ | Ä ¶   ‰ — )œ ‚  ‘  ‰   y ¨) Ëž r!
X ) d*+
´Z¦rµZšDÀ x Ä ¶ , « ·`¸ ...¸$
« ¹ ()‘ *+,²EQ-9)%~ %-/€y œ ²È Q
*+—  
 '— *+*+ ž3†x€ž3#Q ) d— †*M3*+Du d— ' ‘   } È
} ºr
/ Ø
...È

¯¶ ­ `+°´ f ™'u5¼ g%«Dµc­µamf·


!
    *+-9)-9 X-9 ¥ )QQ‡-9 @()—‰u )'-9u  E*+ Ã
 /*+s~-/)   Þ
SELECT S.SNO, S.SNAME, COUNT(SE.PNO)
FROM SUPPLIER S, SELLS SE
WHERE S.SNO = SE.SNO
Þ
GROUP BY S.SNO, S.SNAME;
x‘ d) *+
SNO | SNAME | COUNT
---+-----+-----
1 | Smith | 2
2 | Jones | 1
3 | Adams | 2
4 | Blake | 3

.Ç
ž *+s()~ )w*+E%~~   v  ¥ -9 E )  ‡Gr>E*+ dÈ §I‚ %sQ‘
! º $5 ƒ x—!#$$)! Þ
S.SNO | S.SNAME | SE.PNO
-----+------+-----
1 | Smith | 1
1 | Smith | 2
2 | Jones | 4
3 | Adams | 1
3 | Adams | 3
4 | Blake | 2
4 | Blake | 3
4 | Blake | 4
} )( | -9)*+ % dß — ) )‹ D ˆ   ©Q ) © d
*+*+—QE‘ Q œ!r ! Š ¢ x—!r ! Š } –£ Þ
S.SNO | S.SNAME | SE.PNO
-----+------+-----
1 | Smith | 1
| 2
-----------------
2 | Jones | 4
-----------------
3 | Adams | 1
| 3
-----------------
4 | Blake | 2
| 3
| 4
|)  d3Qœ E§Q d*+È‘Q ) *+-9 % y ²x‚()Ež *+-9   dE
 / •¢ ºžŠ &œ¦-9¦ Èd‘ d) )ž  d3 Q‰QQ ¦-9) Q
)Q E*+ )Q r

Š €   —   œ²Ey @   | œ )œ-/)  ‚  ¹%)‹í ƒ ¢ º  t Œ xb  d


 /w¡ )QM—wQE‘ Qv ²È d‘ d*+v*+ |‘ d) 
 +‘d§I Qu@r$y * ¥ —% ‘  y   M)˜ /-/ dÉ d b-/% 3 +í ƒ ¢ º  t Œ 
  -9-9) ¥ ©  ¹%)œ )D )-/€+  )r9¡ œÈ
)‚ ž   M  ˆ¹
 )-/) , dd, yQE‘ Q,   v% B-9 œ œ~-9  wí ƒ ¢ º  t Œ r

Having
$w-9   Á }   Š íÿ ‘§ID v E*+‰*+ xœ /-9‰ž‰-9  , Á  ƒ Ȇxœ3 ~ QÃ
¹—-9)3 dE%€+%   w w   —Q5%by-9 ¨-/%-/€b— d‹
*+*+)rE$' dÌ# /) ds dE*+Q' v-9  ˆ Á }   Š í  d‘ d—)u -9X )-9Ã
) œ % r • v ̆ B€|   ~  -9 v€y ‘  ,)¡ ‘  ¥  -9 dE v 
  Á  ƒ ¡r ‰È/ ¦ ̆ €   ¦ˆ)u -9 ¡ )-9) d dd
¦-/%  V
 ‘ ¦ /-/ d' yw-9   Á }   Š í‚r

¯¶ ­ `+°´ f ™'u~» g'¼œa¿e kµ


!
†    *+ 3*+ d)  u d /    u ) y* ¥ '  y ‡ˆ-9 È Q¹ *+
~-9) Q Þ
SELECT S.SNO, S.SNAME, COUNT(SE.PNO)
FROM SUPPLIER S, SELLS SE
WHERE S.SNO = SE.SNO

. Î
GROUP BY S.SNO, S.SNAME
Þ
HAVING COUNT(SE.PNO)
x‘ d) *+
> 1;

SNO | SNAME | COUNT


---+-----+-----
1 | Smith | 2
3 | Adams | 2
4 | Blake | 3

Subconsultas
+-9  %F Á  ƒ ‹x Á }   Š í  D dE*+Q D  © D ‘-9) ˆ vŽ 3 ‘  d-/Q “
œ-9    @ %') v v   ¦ ‚uErœ  -9È u%@ ‘  Eu@ 
u  -9€œ uv  ‘-9) R)rE
 ¦ ‘-/)  ,*+‡ˆ~ 
 X ̆ Ã
u !#"D$¡r

¯¶ ­ `+°´ f ™'u~½ g%^_Å·9­ ´ ­n9l


!
X    *+‰-9)-9 ~ž ‡-9 ‰   y  ) dÙ*+x~ d-/|   œ X ‡ˆ-/ +%*+
ˆ&†)K ÖÈ# Q¹ *+ w-/)   Þ

SELECT *
FROM PART
WHERE PRICE > (SELECT PRICE FROM PART
WHERE PNAME=’Tornillos’);

     ¥ Þ
PNO | PNAME | PRICE
---+---------+-----
3 | Cerrojos | 15
4 | Levas | 25
•  )v u3%*+¡-9)  ¦)Q QÈ9 *+@u )¡‘s-9u ,!
$ • &y@u Ã
-9 rE$E*+ dE#)-9 v-9)  ~Ãv   )   G *+ -/*+Dv!#$ • &
̆ )wÃ)xy‰  )‰ d©‰-9  ,   Á  ƒ È#) ~ *+² ¹w )‰-9)  ‰)
Ã@)v   B*+~ —-9*+©!#$ • &ˁ)Q ))rd-9Q  ž—!
$ • &٠̆Ã
 dE)ȉ!#$ • &M)Q )‰ ‘  ¥    u r3&
¡-9w du% -€È
-9)-9  *+¦ 
 B-9+ —Q —*+b  ˆ&#)) ˆÈx+ *+w-9()   %X dX² d-/© —Q ²
-9 † s*+%xEr
!
   d *+@-/)-/ d @u d /   s)‰u ) dD))́—Q‡-9 ~Ž  E§I *+Ã
È%~ , *+) ~‘ v Q “ È%  ¹% d*+ Þ
SELECT *
FROM SUPPLIER S
WHERE NOT EXISTS
(SELECT * FROM SELLS SE
WHERE SE.SNO = S.SNO);
Ù)  d3Q+ E§I *+Ȳ‘ d) *+ž Ë   |u-9‡ˆÈ)   —-9—u u )Ã
 *+ )‰ ÙQ‡-9 @r Š €Q  y    Q¹*+‰!r ! Š ¢  y!#$ • &٠̆ dE)— dË
  Á  ƒ b ‰ž!#$ • &b)Q ))r • *+œ() *+ -9EQy)Q È
ž ‘-9) Q
-9 3 $
 w du%ÍwE‰-9wQ ‰ ~‰-/)  ž ̆ )È ¡ -9QȆ du, ~!r ! Š ¢  w *+
 *+  ~ w-9Q 
 ~!#$ • &© ̆ dE))r

.×
Unión, Intersección, Excepción
  -9) -9-9 %ÉM )€ÈX+)Q 3 d-/-9€ x˜+  /)-9+ ©+ ‡M
-9§I ) ¡ sQ , u², ,3 ‘-9)3 Qr

¯¶ ­ `+°´ f ™'u~¾ g'šDke fkJ¸ jkl ­c·/­%n/l3¸¯J¿n9­°²l


$~  d) v-9)3 Qw , ‚ §Q d*+ ºDŠ  ¢ Š‹Þ
SELECT S.SNO, S.SNAME, S.CITY
FROM SUPPLIER S
WHERE S.SNAME = ’Jones’
UNION
SELECT S.SNO, S.SNAME, S.CITY
FROM SUPPLIER S
¥
WHERE Þ
S.SNAME
ž    %
= ’Adams’;

SNO | SNAME | CITY


---+-----+-----
2 | Jones | Paris
3 | Adams | Vienna
}  ‡# d) *+¡ œ E§I *+²Ev Š & ƒ !
 • & Þ
SELECT S.SNO, S.SNAME, S.CITY
FROM SUPPLIER S
WHERE S.SNO > 1
INTERSECT
SELECT S.SNO, S.SNAME, S.CITY
FROM SUPPLIER S
¥ S.SNO >
WHERE 2; Þ
  v -9*+  Q
SNO | SNAME | CITY
---+-----+-----
2 | Jones | Paris
La única tupla devuelta por ambas partes de la consulta es la úni-
ca que tiene $SNO=2$.
Ÿ )%*+ ) dÈ ‚ §Q d*+ Ja • & Þ
SELECT S.SNO, S.SNAME, S.CITY
FROM SUPPLIER S
WHERE S.SNO > 1
EXCEPT
SELECT S.SNO, S.SNAME, S.CITY
FROM SUPPLIER S
¥ S.SNO >
WHERE 3; Þ
  v -9*+  Q
SNO | SNAME | CITY
---+-----+-----
2 | Jones | Paris
3 | Adams | Vienna

.ï
Definición de Datos

 ) §I v!
"D$©)-9 x w œ-9§Q )Q— -9*+)¡v ¨)-/€‚ Qr

Create Table
²-9*+%)M )*+ )Q² d¨)¦Qv v    -9  )—)  u— -9€+Ž 
)  u~ %‘ “ rE$~) %Ì#, -9*+%) • ƒ  } &©& } t $‚  Þ

CREATE TABLE table_name


(name_of_attr_1 type_of_attr_1
[, name_of_attr_2 type_of_attr_2
[, ...]]);

¯¶ ­ `+°´ f ™'u i'À g ½c­%an/e ±k©m­~_kavl aÅ´ a


Ev-/ d%sQ‘s ¨)¡ d N  Ò tÒ/ëå ì%åúDÒ9æ Õ/ë@ìåýÓÕSYååìÕ9ÓåëB  Óæ òˆé>ÐèˆÕ9ë  w Q¹Ã
y,  d) ,)  -9-9) , !#"$ Þ
CREATE TABLE SUPPLIER
(SNO INTEGER,
SNAME VARCHAR(20),
CITY VARCHAR(20));
CREATE TABLE PART
(PNO INTEGER,
PNAME VARCHAR(20),
PRICE DECIMAL(4 , 2));
CREATE TABLE SELLS
(SNO INTEGER,
PNO INTEGER);

Tipos de Datos en SQL


} -9) ) -9€©  v )w3Qw % )sQ¡ % ,EQ¡!#"D$ Þ

! Š X& í‰ ƒwÞ )Q D‘)E-9œ) v‘âw-9*+ Q~Ž ”„ ‘ ,  d-/€ “ r
! # ! – } $$² Š & Þ )Q ‘)-9œ3)— *+ ~%‘EŽ „ {~‘ ,  d-/€ “ r
! ž   •  – } $Ž p 9hÈ q < “>Þ )Í*+ ~ d-/*+%%-9)w p ‡ˆQX , -€È9 *+ 
„ ’“ r/!#  D*+ È3 ž3 *+
q D ’ -9()DEž ² )Q| d-9*+ârBŽ {ÂÁ p Á q ÃÁ q
  vu r
! Ÿ $ ¢ } & Þ ) *+p -9-9œ— v‘ ‘vx-/*+wàQ) r
! • Á } ƒ Ž n“>Þ -9 d)v v-9 -9Q    ) M¨
§IÈ )  n r
!  } ƒ • Á } ƒ Ž n“>Þ -9 ) -9-9 d /, )Q Mu‘ /È )Q M* ¥ Ì#*+ n r

8"
Create Index

! ž  ¹%‹v‡)-9 v-9  d -9-9 | y d-9€ rd!# )—  -9€ R Q )
M‡)ˆ-/ ž M ²% ‘   A  *+ d-9 ²  s D  t   D  d)  tŽ A“ H a
b ÙQ *+M%̆*+d*+ )Q —²-/))Í*+ M Q v  t * ¥ w  
y œ  d*+—-9)

 %*+ ) R r
E-9 dX œ‡)-9 v œ!#"$‚3 v Q¹~ d-9*+) • ƒ  } &© Š žJ  awr$v3)Q̆s  Þ

CREATE INDEX index_name


ON table_name ( name_of_attribute );

¯¶ ­ `+°´ f ™'u iBi gd½c­al ­jkm­¿


Ey-9 dv Ý‡)-9 *+%+,3‘ y d@QE‘ Q+! Š } –˜Ý ‚ %-/€Ù! º $  ƒ È
 ¹% /*+¡~  ) ~)Q -9-9€ Þ
CREATE INDEX I
ON SUPPLIER (SNAME);

,‡)-9 M-/ d˜ M*+)  d) +% Q* ¥  -9*+ d) r — -9QÈ-9Mu ¹+   + )b)  du
 v3 v) Q v œw -9€‚! º $  ƒ È% v)Q ¥ ‡)-9 v>r Š €Q  v   v d́)-9
-9*+‘   v ‚  %E   v d-/‘@-9 ) v-9 ~ ‚‡)-9 v , œ)-9 d*+ )  
~u -/¡r

Create View
!
y   yu ~ )|u3Q|-9*+Ë ) æ Ò9ãdèÖÄ Ò YԈÓæ ÐÒ9è È D d-/QÈ )‚ ‘©   ‚)‹ Ì#Q ü9òÖç
ëԈéEÒ9ÑDåêæ å ‹—‘  QÈ ‚ /-9 X  |-9*++3 dÌ#  d3 r-9) È
-9 %)œ()‘*+v ‰ ) æ Ò9ãBèˆÒ~ãBÒ/ëå È()x© d*+ ) ž +  u )Q D*+-9 d)²‚
-9v¨w ywQ‘~ œÍœ3ˆ  *+-9 )*+ d) D ‡-9@r
$¡u %¡)œ  d) |% ¡*+%-/ d)¡²È
3Q) ‘ d¦xœ ‡-9*+ )Q ~*+-9 Ã
)†rB+3 Ë QÈ ² d*+*+-9 ) ¨)-9€b DuQŽ  -9QÈ %
~-9-9  ‰¡Q‘,‘%3 ~ ‡-9*+ d) v*+%-/ d),w*+ dE¹% 'žu  “ 
́y  s-9 ¥ s d
3Q *+wŽ u  Ï ëæ åÑ ð,Ò9æ Ò9èˆÕGû)ë “ r>v )w-9 3€œ
   )Q   pd-/)-9 ~*+ d*+ ) %u È ¨p   v Ïõhþÿï× r
y!#"$|  Q¹w 
-9*+) r ½ ¦¯x« Å,f¯ ƞjJ ¯ Ç ²Ev ¨)' )~u r3$~3 ̆s d Þ

CREATE VIEW view_name


AS select_stmt

) select_stmt s )v)3Q -/-9€|  d-/u ¥ È%-9*+ v ¨)€ d ÏåèÖåé>æ r Š €Ã
 d3 ¡   select_stmt )ž  E§I -9 Q-9 )ž ¡-/ du3Q)râ!#*+ *+ )Q  ¡*+-9 Ã
)w œ é>Ò9æ W/èÖÕGûÕ9ë'ìåè
ëԈëæ åÑžÒ xy v E§I -9 Q‰-9~u d¹w   ~ v d¹~ )w-9)3 Q‰-/)QE
~u3Q)r
!
dw‰3  )Q ž d¨)-9€| ~ )žuQžŽ Q¹*+¦ ~)  uy¦Q‘¡ N  Ò tÒ9ëå,ìå
úDÒ9æ Õë'ìå@ýÓâSÕ Yååì%Õ/ÓâåD
ë   Óæ òˆé>ÐèˆÕ9ë “>Þ

CREATE VIEW London_Suppliers

8ó
AS SELECT S.SNAME, P.PNAME
FROM SUPPLIER S, PART P, SELLS SE
WHERE S.SNO = SE.SNO AND
P.PNO = SE.PNO AND
S.CITY = ’London’;

} ()~ *+s Q¹@   ÓâåèˆÒ9éEÔUO9êLYÔÖÓæ ÐÒ9è -9*+3


 vQE%  ¦
Q~ ‘v‘%3 Þ
London_Suppliers

SELECT *
FROM London_Suppliers
WHERE P.PNAME = ’Tornillos’;

$D-/ )s uu  ¥ ~  d) ~Q‘ Þ

SNAME | PNAME
-----+-------
Smith | Tornillos

E-9-9  Q    )È 


3Q *+ ‘ ¦ Q'()~  ¹%ž u*+ )Q  
-9-9  Õ9é>Ðèˆæ Õ ‰¦Q‘, ~‰‘3 ~! º $  ƒ Ȇ!#$$!žxy } ƒ &Xr Á %-/   y E§I -9 Q)
‰-/)  D‰ ©D d¨)-9€M wDu ž-9)QEž   d ‘%¡‘ r9&
  È

-9 %¨-9-9) D-9) Ž5  ˜M-9)3 QM-9)QEM©uQ “ 3 ©² ¥ ˜-9
v‘ ) d'~Q‘~  Q) r

Drop Table, Drop Index, Drop View


!
 Q¹y X-/*+)+ ƒ ¢ £& } t $Ý— *+)v )œ %‘œŽ )-9 x )+ w
 %,%*+-9 )ds d‚ d “>Þ

DROP TABLE table_name;

E *+)w %‘! º $5 ƒ È%  ¹% *+s~)Q -9-9€ Þ

DROP TABLE SUPPLIER;

!
  ¹v -/*+) ƒ ¢ M Š žJaÙ%E *+) ‚‡ˆ)-9 Þ

DROP INDEX index_name;

Ÿ )%*+ ) dÈ *+) *+, )vuQwv Q¹) -9*+%) ƒ ¢   5J Þ

DROP VIEW view_name;

8.
Manipulación de Datos

Insert Into
º ) yu ¹œ   œ —-/ dœ )œ %‘‚Ž u  ð,ÓâåÒ9æ å ø Ò9ãBèˆå “ Ȳ²    v )‚-9Ù w*+ Ã
)Q  
-9*+) j
Ȝ^¯J¦|ÅÙj
ÈZÅ|µ r3$~) ̆,  Þ

INSERT INTO table_name (name_of_attr_1


[, name_of_attr_2 [,...]])
VALUES (val_attr_1
[, val_attr_2 [, ...]]);

E)  @E*+ dE~Q v dy~ d-/€œ! º $5 ƒ Ž  N ÒstÒ9ëå@ìåXúDÒ9æ Õ/ëìå@ýÓâÕSYååç
ìÕ9Óå
ë   Óæ òˆéEÐèÖÕ/ë “ Q¹*+sv3  )Q ~)3Q -/-9€ Þ

INSERT INTO SUPPLIER (SNO, SNAME, CITY)


VALUES (1, ’Smith’, ’London’);

E)  ~*+ ~ v œw  -9€©!#$$!%Ȇ Q¹*+ Þ

INSERT INTO SELLS (SNO, PNO)


VALUES (1, 1);

Update
Ež-9*+‘s )|‚* ¥ u d DQE‘ Q ‰  + ) d -9€)È3 ‰  ¹ 
-9*+) º  } &¡rE$v3)Q̆s  Þ

UPDATE table_name
SET name_of_attr_1 = value_1
[, ... [, name_of_attr_k = value_k]]
WHERE condition;

E¡-9*+‘% %u% % ‘  ‰ ƒ  • —  %EQ‡-9 $ˆ&†))† s¦ -9€ } ƒ &È
 ¹%*+ Þ

UPDATE PART
SET PRICE = 15
WHERE PNAME = ’Tornillos’;

#)  uDu%@ #% ‘  D ƒ  • ©  v-/ x)*+‘  XÖ&#E)IK†  ()E „ {)r

88
Delete
E,‘E%) )¦Q ²¡ , )¡ ‘¡%EQ-9 ;È9  ¹%*+X %-/*+)vž$& Ÿƒ ¢ – r
$~) %Ì#,  Þ

DELETE FROM table_name


WHERE condition;

EM‘Ež ¡²u )%*+Ɉ!#*+Q(:s |b %‘+! º $  ƒ È' Q¹*+œbÃ


  d) v)Q -9-9€ Þ

DELETE FROM SUPPLIER


WHERE SNAME = ’Smith’;

System Catalogs
œ y *+‰ v‘ v v ¡!#"D$|3 ~ d*+  é>Ò9æ W9èˆÕGûÕ9ë'ìå'ëԈëæ åÑDÒ ~*+)Q ) 
-/)Q v  p‰Q‘ȆuQÈ#‡ˆ)-9 È# d -¦  ¥ ‚ ¨)s ©ž‘ ~ v% †r3Q
-9 ¥ s d#3Q *+~ ²  d —)u QX-9*+
 ¦-/    XQEv d -9€œ)*+
 —Q %3 rv E§I *+Ȳ()xb Ù-/% ¥ |  ¹%+œy d¨)-9€Ý u3Qr†3Q
-9 ¥ M*M-/ d)—-9) Qœ ž— ¨)-9€‹ D—u )rB!
 d*+ D    ()-9 D )
-9)  ©-/) |‚uQÈ ' d*+| *+|*+ b éEÕ/êëÐèˆæ Òìå~ì%å Ê¡êԈéEUÔ O9êÙìå~èˆL
Ò YԈëæ Ò
¥
 -9 —xy*+% ¹d‰wuQž%) , ~-9 d B'-/‚ž-9) Q‰   EŽ5u 
Ïõhþÿï× M‘Q ) ‰ b d3-9-9€ß* ¥  Q “ rD‡ §I | ú ~ø j |‘Q ) d
* ¥  ) *+-9€‚‘ ,-/% ¥ , 3Q *+)r

SQL Embebido
 d3Q¦3 d-/-9€— u  *+-9*+D ¡   s *+‘ d‘ !#"$—  — ) §I ¦ s()Ž sr r
“ r Á xy¦¹) ¡)-9 ¡,%¡   wE‡ˆ*+¡      Q¹ !#"D$  ~ 
 ) §I  v()3 Þ
C

! Á xœ-9) Q   ‰)© ž²  d ©5*+ s  ¹%)‚!#"D$b œŽ ¡ §Q d*+È

9- )3 Q' -9 Eu “ rE3 d-/%¹ ¦ d¹ '-/)   ) d-/ d3Q*+' — )Ã
 §I  ()² *+x'  ̆ Bu   ~!#"$sr
! !
*+² *+ )Q +    *+—-9-9 ² dDM )+‘ M © —  © )+-9-9€ß  
 ¥ -9  d‹ d² ) §Q ž ²()3Ž5,r rB b3Q *+ D  uD D‘ Q -9b )
)Q 5%-/ s ¥ ¨-/ -9EQ¦  • ÈBxD) E*M-/€—‘ ¡'‘  d'  ¥ *+-9 ) d
)~‘  vQ    v   -9-9    Q¹)!
"D$© *+‘ d‘ “ r

º |  E%*+D   ž Q¹D!
"D$‹ d*+‘ ‘œ M + ) §I D w()3@-/) D dM)  -9Ã
-9) ~  ) §I — X()  )3Q -/-9 dw Ïi N åÑDãBåãBԈì%Õ Ž !#"$ “ r • )  -9Ã
-9€‹ !#"$Ù d*+ ¹—-9Ùw²‘ ‰-9u  J ¯ Ë,¯½ ^šœ› r$%~)  -9-9 ~!
"D$
 QE) E*+ —)  -9-9 ' d# ) §I  †()*+ )Q   ñÓâåéEÕ/ўñ ÔÖèˆÒ9ìÕ9Ó Ž  
()‘ %*+ ) —)  ‚*+~©  ž y‘ dE‡ˆ ž   y E§I -9  Ùžu‰-9Ã
*+)s !
"D$ “ r

8M
•  )‰u *+'' E§I *+' ÏåèÖåé>æ ‘ Eu*+   ¦ † d3 Q‰ ¡-9)3 Q' 
‚*+ x|€̆*+© M-/§I ) | D %†r/$*+xE‡ˆ D ) §I  D()3X)
 ¥  )'¦² E%-/—-9§Q  È  ¡*+   ¦) -9  %*+' —*+ d-/%)3*+
%-/-9 ) @v-9 ́)-9v †-/§I Q ¦ %' u   %'X ))3Q -/-9€
!
$ • &Xr  *+ -9)*+M²  d  ²-)%M -9d)M  éEÐÓëÕ9Ó r%&
 ~ È
 *+~ Q¹ d-/*+) Ÿ & • Á ²E d-/  / )—Q —xM% ) ¦ -9 E
()-9~~  d) vQ )r
E, )3-9 €* ¥ @ d %s‘ , %!#"$— *+‘ d‘È9‡ §I ,h
 9 úDÒ9æIåÒ9êì¡úžÒ/Ó åê 
óïï Î < _È 9 úDÒ9æ
å  óï%ï M < Èž
 9 - èˆèÖÑDÒ9ê dóï×× <>r

8 »
8Ç
Capítulo 3. Arquitectura

Postgres Conceptos de arquitectura


} ) Q @ ,-/*+ )¹%QÈB d‘ ‡s-9*M d) %@‘ @ ,%   -9Q E¡ d d*+3QÃ
 dœr†) ) d)+-9*+b~ w   ‰)Q -9 ‹ —() ¥ X   y-/Ã
‡Q b*+ -/()‹* ¥ D )-9@r†˜ž§I ‚ y‘ ž —QÈ3Q d © Ù*+ d
-9 ) Ê  u-9)-9©-/*+Máâ-9 ©  á/r º ) €Ë3Q d~-9)3Q
y¡  d) ,-/ d3,-/  us º )̉Ž5E*+d “>Þ

! º œ -9  d*+)—  dEuŽ postmaster“ È


! w-9-9€y3‘ v~   vQE%‘>§Q  3 %EŽ5 ) d) “ Ž5 r r Èd *+ psql “ È%x
! )‰‰* ¥ @ u X ,‘ @ dQX   )‰)~Ž5 d*+*+ž-9  post-
“r
gres
º ‹Í)-9 -9) y )œ-9 -9-9€Ë ‘%3 dw Qwd‰ ‹ Ù́)-9
postmaster
()Er D d‘| d3Q| )-9 -9-9€‹ D‘  ž v3 ž3  d *+¡ )) %-/€
 ‚ Xr9$%,%-9-/) , v )Q )|   v    œ-9-/ d @w )w Q *+)~‘
  s ) D  )~)Q-9€œ()-9 yˆ*+ ~~‘ v$v‘ ~ )u‡ QÃ
-9) , v  —~QEup , vw ©% postmaster Ž ð Õ9ÑDÕ¡ëå'åëæ Ò9ãBèˆåéEå'ÐêÒéEÕ9ê
å Q%UÔ O9ê “ È% 
-9 %
œ    )-/w œ) du-9  d‚ d
 Eu'Ž ‘-9. ) “

Ì e µ_ca ª'u i g½f`bf—·9­~­%·/l adÅ´ ­n9­v_ka~n9fk­¿e ±k


x-9) -9  
-/ d3ž 5) d)‚#)  du EuEr }  X   ¦ ) È% 
-/ d
   )|x 3 dEu d©‘-9. )© ~-9*+ )-9‚3œw)Q u d)-9€‚  postmas-
ter
r } )   dȆ d postmaster  *+  v  ¥ E§I -9  %)È% d3² E%)²  -9) È )Q
,-/ d3,  )Q )©-9*+—, ‘-9. )©u ) d‚x vu'r
$©‘  libpq ² E*M ‚| ˜Í)-9Ý-9 Ë d˜5) d)É d¹w*+   d-9) dÃ
Ì#) sž²-9 , ‚‘-9. d)¡r } )   dÈ#‰-9-9€© ) )|Qu‡ˆw s ‚-/ d3
| ©Í)-9‚Q()  r • ) dÌ#) *+  Q() M )Q ‰ d )Q )Mxœ ‘-/. )M)œ  ¥ 
 % œ*+*+ d) Ý d libpq r º )©*+-/%-/€£ ‚ d3Q|  Q -9 | D   © d
x d#-9 d3‰‘-9. )y3 d*+ ¦ ¡ E§I -9   —*+*+v* ¥  vŽ † uÃ
@ ‘  ¦Q “ È *+ d)     ~²-/%-/€— y ) d)‚   ¦ E§I -9  %E  
postmaster
-9 %    Xr>ž ‘ ¦ d)   D *+ ) dÈ    '-/(u'   ²  d — %-/-9 Ã
¡ ©ž* ¥  )‰ -9 )Q ~   d©)y '-/-9 d3‘ sŽ —€œ   d© '-9-/ d²
3%) ‚)*+‘  -9()u  /) “ 
* ¥  )w  u@ ‘ v  r
&# d)ž M-9  )QD   žv u-9 postmaster xœQ d ‰ E§I -9  ©-9M d) )Q¨Ã
-9  ž  ‚ )áâ    Eá 3Q d Š Q ž   ž )    ©3Q d)
) -9   X y 3 ž  -9†Ž5 §Er y  ž*+žáâ  á “ rEž Q%'5*+È
'    E3Q d— ¨)Qu*M ) ©)Ë  d) ©   | ž d'3  d  Ý º )Ì

8 Î


Ž áâ á “ 6†+-9 %   ¡-/%3ÈQvv-()uv -9)v-9+‘ ž žQ Ã


‘ y Q ) -9 @~ Q v3  d 3   r>  r

8×
Capítulo 4. Empezando
o • €*+ *+ d¹Xw ‘§Q%'-9œ3Q d3q

}   ) žv²3) -9 E‰ sQ ²  d M , d¹ds-/ ˆÃ
    ÈBxž )' ‘ d ¥  ¹d *+)  ¡‘ ¡ ¦% †râ
*+)   dD dE)D   ‰) €œ 3  œ% dÈ#-9 €y -9 ¦ ‰¡‘%3 d
 % ¡ v)-9€— -9  postmaster r> w² 3)w)—Q ) v   ~  3  d  Ã
E º )Ì~Ž #%  % “ © d*+)QE%s d)3Q *+)r º )ž 3)D   w)3Qsx‚ 
Q  ©Q ) @ )w-9  )Q~  -9
Eu 
!
@  ¥ )Q)‹Q È-9)3 Q ‚D)  -9-9 ž œ)3Q-9€˜ ˜|í‰ ‡‚
} *+)QE%-/€œx—  B v~ d ~ ‡w-9 )D()x~-9)-9 —~)Q-9€'r
–˜ ) ‰ d œ Q œ*+) %È-9    ~ E§I *+b   œu d‚   œ-/*+ )-9 y-/˜ -9 ¥ -/Q 
#E%—Ý€ d) w   y — -/‘ ¥ Ù dÙ ‚‡ˆ) y —€ d) w º )Ìr$‰ E§I *+
  -9*+ d)¹‹-/‹ -9E%-/Q /r  #²
%Ù€ ) v b  ) §I  -9)  y3Q d3È
Q  !#"$sr

Configurando el entorno
 D3 d-/-9€b Ì#²) ‰*+)  D-9)¨ ¡ ² d) E)È%v%-/%-/) r }  Ã
*+*+¡   ~  ¦()‰—) %y ~)-9—-9E -9Q *+ d)  (#-9)  wwí‰ ‡‰ d
} *+)QE%@x—%,) %¡ )Q-9€‚  v)3Q  r
Q   )ˆ-/-9€+-9 ) Ê  uEr • *+©  %EÈ́)-9*+ )Q D) -9  -9Ã
-9 Ë‚| y-9 ) œŽ5 Ù E§I *+Ù œ )|-9-9€˜-9 ) œ D '*+) ž)Q -9Ã
 u psql“ *+-9È *+ *+~   3Q d~()—©)3Q© b  -9Ã
  /usr/local/pgsql r%+ %) È)) u y  -9  /usr/local/pgsqlÈ
 ‘  ¥ 3 Q Ëw ')*+‘ y  d-9 Eb) ‚3Q d d py)3Q‹ dÃ
*+ )Q r
&†—²E*+% ‚Q  ‚) %ßŽ ˜ d ©-9 “ dß d' -9 E
r+Q) È ‘ d ¥ ' ) d3Q  -Q+——  Ù3() d
  M ©€ ) r!#  3M )+u) © d • () ¡ t E.  dx/ÈQ -/*+˜Q-/(ßÝ-93()È
/usr/local/pgsql/bin
 ‘  ¥ ' )

% set path = ( /usr/local/pgsql/bin path )


‚ -/()u .login  ~ | -9 E 3)âr3!# ‰ )žu)Q v  t  E) w() È
 %
-/*+—()È.(œ‘(œ )Q)-9 ds d‘ d ¥ )

% PATH=/usr/local/pgsql/bin:$PATH
% export PATH
M d²-/()u .profile  ž ‹ -9Qœ 3)ârdž d3 ‰()E%È *+ *+v   ž()
)) d# -9Q‰‘y 3Q d' ‚Q( r }  * ¥ ÈB() *+' d G )-95 /-9  )Ã
 d*+ )    #%-/)¨ ² )¦u‘
 s ,() 5 %¦,
 #%-/)¨  )¡u‘ , , )QE)l%¦
~~ '  ,-9 *+ )Q@râ!#%)~ )  d) ,-9*+ d *+ d) , d%ÍQ*+w ¥ Iw%d d3² -9Ã
 œ wž*+¨-9-9€+ ‰ bQ()È
%)  ‰-9) ) ¡ ‘ G‡-9)3 Qs*+)  
 º )̉   ~ d3-9‘ y 
()    v Q¹)r
!
  d,%*+) D   *++)ÝQ ) |M-9)¨ E%-/€ d£ s*+ݲD d -9 È
 d) ¥   © ¹% ‰ ‘§IË dÌ#QEr
ž §Q d*+È@ |* ¥  )M3 dEuž œ‘%3 d
Q, , )ž* ¥  )w *+Qȁ) -9 Q ¥ -9)¨  wu‘  v ) )yí Á ¢ !#&
-9œ 
)*+‘ v ~* ¥  )w3 dEu@ ‘ , Qr>&†*+‘p œ ‘ d ¥  -9¨-/%
‰u‘ ~ w )Q)œí‰ ¢ ƒ &¡rB!#  ‰ w)-9, |²E*+‰ w-9-9€|xœp Q

8ï
)Q¨-/   )©²   D-9) -9  ž postmasterÈ# ‘ d ¥ -/)  ¦)*+)3Q
v  E     v © ) )—  ¥ -/)¨  -9  *+ )Q r

Ejecución del Monitor Interactivo (psql)


}  *+ )‚    ‹*+)QE¡()x E§I -9  © - *+ d) ž ²-9 
post-
xM D()x— QE¹%©— Q¹¦—‘%3 ž QÈ   ž-9*+ )¹%— §Q d-/ Q
-9-) X-/*+w  @r • *+w*M )-9)*+@² du%*+ ) dÈ ‘ dE‡ˆ, ) /usr/local/pgsql/bin
master
 #Q:( %w ~‘Í   dD ~ +)Qp  Q v ~€ d) r9|‰*+x‡‰ ~¦-93È
d¡
́)-9   vQ ) ¥   v()-9 @ œQp *+)s  d-9€ r
ž  ~  u÷)r ” È žEQ|Q  /)Q  ~-9) ̆€ rB%*+) 
   ž()‘  d M *+Q-9) dÌ#) w² dË& •  Ê  dÈM  )w-9-9 v
w‘ ~ vQsžQE%upds ~-9) Ì#ˆ) ¡-9 sŽ ©ˆž*+*+‰* ¥  ) “ r3 ‰  d-9-/€
   '3 d))¨@-9 us )-9  )QE,‘ *+%Xs¡()¡  -9) d-/Q¡¡‘    % †r
!
‘  d) ~3  )Q ‰*+ d)3>§Q v  dE D )y +3Q dwŽ  -9*+ psql 
“>Þ
createdb

% psql template1
Connection to database ’postgres’ failed.
connectDB() failed: Is the postmaster running and accepting connections
at ’UNIX Socket’ on port ’5432’?


% psql -h localhost template1


Connection to database ’postgres’ failed.
connectDB() failed: Is the postmaster running and accepting TCP/IP
(with -i) connections at ’localhost’ on port ’5432’?
)*+*+ d) ¦ ' ‘‰   Ž „“  postmaster )D d ¥ d— )-/)*+ d) È DŽ …%“  ¥
) d) )-9) d-/Q@3 dEu d  u-9Xr!

‘Q ) v   d) v*+ d)3§I v v dE Þ

FATAL 1:Feb 17 23:19:55:process userid (2360) != database owner (268)


!
ˆ)¨-9ž   ž *+)QE, E§I -9 Q€y  postmaster *+ ) ~   Ey d  u-9Ã
Xr>ž‡ v   v d)-/   ¹      v  dr

Administrando una Base de datos


} )( D   ž    ¥ E§I -9  ¥ ) ‰ d*+-9 ,% )D‘%3 w ‰Qž Ì#Ã
 *+ )QX-9y r }  ‡
 -9‘*+,'€ d)  ‘ ¥ -/% ²E*+)QE% )~‘
 % 
$ž*+x‡ ž-9-9) Q d%3 *+ d+   D )*+‘ ž ž‘%3 ‰ w È
) v  -9¨-/%È%   *+*+—   v   ©-9  ) v œ 3Q *+)r
!
 '*+) w œ‘ D œ D()|-9)¨ EÙ -9  )Q©£u d
-9 /-9€Ë ‘%3 dv  È ) )-9 ~ ‘  ¥ ‹ -9 D )*+‘   w‘ Qr
!
 Q y dw X-/%3È ) )-9 ž   —*+Qv‚ d-/Q Ey  Qy3 d-/-9€Ý‘ -9  -9€Ýx
   -9-9€œ ‘3 d  vQr

M"
Creación de una base de datos
ž*MD   ‚   d ‚-9 /w )©‘ y ‚Qž%*+©*+x‘@r#   ‚()-9 ‹-9˜
  )Q v  Þ

% createdb mydb

!
†)-9  )Qv-9y,Eu ,    -/ %‘   % 3Èdu d ¥   )Ã
 Þ

% createdb mydb
NOTICE:user "su nombre de usuario" is not allowed to create/destroy databases
createdb: database creation failed on mydb.

Q  ‰ *+ w-9 ,-9    ,)Í*+ d‚ ž‘  wQ dM M3Q *+Dœx
  * ¥ Q-9*+ )Q y  ¥ *+)3Q yœ‘ y y% ‰   œ-9 €Xr%$ž)*+‘ 
 —‰‘ ‰ —QD ‘ Ù-9*+ )¹%v~ Ý-9 ¥ -9Q ~ d‘pd -9bx‹  ¥ Ë*+ %
| )|)Q   ”… -/-Q  r Š Ë     ¥ ˜  ¹D© 
*+) ²   )¦‘3    QrG!#  X s) d¡¡-9 d-/€  ‘  ,QÈ
  *+ d) ~ ¦ d‘—ž   ‰ d%*+)3Q, 3Q *+ž()D ~ %E ~ *+
v()-9 Xr>œ  v-9È%-9)3 Q v*+)QE@  *+r

Acceder a una base de datos


º )~u ¹v   v()~-9)Q — )w‘  % Ȇ²  d -9-9 ) 'v  Þ

! 
§I -9  )+ž*+w y*+)Q¹-9€Ý œ  ‰Ž  E§I *+ psql“ 
-9    v dE*+Q y)Q -9QÈ QXx— E§I -9 Q€ ) d,!#"D$|) -9Qu*+ d)
! -9E‘ )© ‹*+  • )©‘ ‡ ž3 ‘ Q)w$ t "È—-9 ²
 dE*+Q D )u¡€ ) !#"$Ù d3 • x|‘Q ) ¦*+ )§I ~ D     db3 ËÃ
E%*+)r w)Q 5%¹w ¡-9  ž* ¥ ¡ d)Q ‰ d©$  * ÐòˆÒì%å ýÓâÕGûÓÒ/ўÒ9ìÕ/Óâåë'ìå'ýÕ9ëæ ç
û)ÓâåÏ i N
   ž     D §Q d-/ Q psqlÈ‘sv E§I *+~ d+  ž*+) ârd$|²  
-9 uX~~‘  Q,*+x‘— d3-9‘ )~ d Þ

% psql mydb
!
  ¥ ~‘ d)u d)~-9‚ 
  ) ~*+ d)3>§Q Þ

Welcome to the POSTGRESQL interactive sql monitor:


Please read the file COPYRIGHT for copyright terms of POSTGRESQL

type \? for help on slash commands


type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: template1

mydb=>

  ²*+†)-/¡   ,  *+)Q  ¥ 3Qwxw²     -9‘² X-9)3 Q@!#"D$ )Q


  y d3²-/D ¦ ‘§I*+%) )@ 
*+) Er3
E%*+ psql  ) 

Mó
-9€v ž -/% ž   ž *+ ¹%+¦ ²-9 ¥ -/Q 7#:͙%)rB¦ §Q *MÈ   ž‘ ) d¦
x v-9 -9v ~) ̆¡ u%E € )  !#"D$©  , -/‘ ) Þ

mydb=> \h
º ) u ¹D   ()x— dE*+)%© ž)  -9-9) QȲ  d Ds d-9) d)| d
-9D  ԤI%
3 dEu  s d-/‘ ) Þ

mydb=> \g
 — ~-9 ~ u    w-/ d3 ž-9)3 Q)r3!#Q *+)D M-9)  ž-/| ‚ )Q
x|-9*+Èb #:Í# %| v) -9 )r psql -9 d ¥ % Q* ¥  -9*+ d) D%~-9)3 Qv Ã
*+)-9‹ )Q|x+-9*+)rd ¦-9)  %~ d3 D b%-9()uÈ*Mv*+x Ÿ  È
y ' )  -9E )Q -9 u*+ )Q È% -9‘ Þ

mydb=> \i nombreDelFichero
E' psql
x  / º )̉ -/‘ Þ

mydb=> \q
x Q *+) ¥ xuu d ¥ ~~‡) dw € ) rEŽ v-9)-9 * ¥ s-9€,  -9Ã
 È -9‘/Î Ï| ‚ ²*+² d*+)I  “ r!# ~   ‚  ¹%' d3%-/¦ ‚‘)-9—Ž 
psql
E§I *+M d3²-9È %‘ %¦x+ -9 ¥ -9 ¡ )  u—‡) d “ dË%~-93 Qw!#"D$¡r $
‡) d¦*+ -9*+ d) %¦-/*+ )¹%Ms#Ð%)r9$œ   ž()xž  p  w ) d
() ¦ †¨) ¡‡)   ¥ )E%@r$-9*+ )Q'*+ÍQ  xž'   ¦-/ %* ¥ 
  )~‡ˆ) w  )%‚-9Z  # Ê ²rhrZ1r ² Ê %

Eliminando bases de datos


!
 dw *+)QE% y‘%3   w*+x‘È   D *+)y Q¹)|y3Ã
  d) v  º )Ì Þ

% dropdb mydb
 ‰-9-9€‚ *+)ž ‡-9*+ )Q ~ ¦-9()u º )Ì-/%sD‰‘ ~ ~Q
x)   y d-/  dEdE dÈ%‡   v ‘ d ¥ ()-9 3 -/œ -9 -€ r

M.
Capítulo 5. El Lenguaje de consultas

 ) §I v v-9) Qs v  s  s ds )wu)Q  
d3 ¥ )@!#"$ ” & Ã
) *+ -9()~ dÌ#Q )) d3ÈQ v-9*+MQw  d*+œ dÌ#Q )‘ È()  )-9È 
 -9-9€Mx‚5 )-9) rd +-9E%- dE‡ˆ3Q-9 *+% ) ) §I ž ‰-9)  %
)
 ¡   Ž  "D   “ 1r ÑQ -9-9€y²-/)v y*+ Xu ¹%D -9€*+
3%Q ~!
"D$Ý— ¹d -9) d‰ )-9r$y)Q )-9€Ù   *+) 
¦*+ *+ d) ‰‰ ‰²-/) ~ )D dD ~)  QEžu 3€M ~!#"D$bxœ)œ ¦
))́Ë*++ ‹-9*M  +Q  X%-/ d-y !
"D$¡r !# ()Ù d3-9 |) *+ d‰‘
‘ !#"D$È )-9 x )  9h–˜$†&z ” <)Ò  97 } &z <>rE&† )v y-9  ) v    ) -9Ed-9Ã
 dE‡ˆ3Q-9  
 ) §I v‚ ̆ d)3) ,   ¥ ) } Š !
>r

Monitor interactivo
—s §Q d*+,     )È% *+*+s   ()~-/ /Dv‘ ¦ Q *+x‘-9*+
 -9E‘ ¦ œw ‘ -9-9€‚%) 'x   v()~E%)-/% psql r>$, E§I *+s   v% BÃ
-9 ‰ ž Q ,*+) d %*+‘p ž3     ‰ d)-/)QE)  /usr/local/pgsql/src/tutorial/ r
• ) Q ž d¨-9()  dM  ž /-9 ©%E‰‘ ,-9€*+‚ †r/%E‰ *+ d¹
-9œ 
Q  Eˆ()w3  )Q Þ
README

% cd /usr/local/pgsql/src/tutorial
% psql -s mydb
Welcome to the POSTGRESQL interactive sql monitor:
Please read the file COPYRIGHT for copyright terms of POSTGRESQL

type \? for help on slash commands


type \q to quit
type \g or terminate with semicolon to execute query
You are currently connected to the database: postgres

mydb=> \i basics.sql

-/*+) \i  d w d©%¦-/)  ¡  v¦¨-/() d¦  d-/¨-9žr3$‰²-/€ -s 


) ¦ d*+D) Q ÈB   ()-9 s ) )Q  ¡ )u²-9)3 Qv3 dEuEr
$ -9)  %s   w -9-9€œ  ¥ œ y ¨-9()  basics.sql r
  ) ~us-9*+) \d ~*+3QE% ) *+-9€© v d*+)r • )3 Q ~p  
-9*+)'u d* ¥ ' Q xDQ -9 \?   ¦ d#*+² psql ²E¦u X —Q
psql
 -9*+)s)‘ r

Conceptos
$w)-/€| )*+ d)  d©3Q d¡ sw ~-/%3 dȆ   ~ ¡ )‰-9 d-/-9€© ~)Q)-9
 v œ‘d§I Q@r • ~)3Q)-9wQ ) ~w*+3*Mž-9 -9-/ˆ€‚ vQE‘ Qsx—-9wQE‘ Q 
  ÙQ+  -9‡ˆ¨-9Xr– ¥ v́)È-9—) )-9œ   —  Ԉìåêæ Ô Êsé>Ò9ìÕÓìåÕ9ãäRåæ Õ Ž ¢   “
 *+) )Q È   v  Í)-/v%D Qv~) -9€ r Œ w   w)QÌ# !#"D$©()Ã
-9 w d5 / )-9‰‰ ‘Ȇ  *+s¡ p *+) æ5Ò9ãBèˆÒ x é>èÖÒ/ëå )Q)R*+ )Q r } *+*+
Èh ) ÊsèˆÒ !#"$+  ) ÔÖêëæ5Ò9êé>ÔˆÒ x©% é>Õ9èˆÐÑDêÒ9ë !#"D$‹ Ò/æ ÓÔÖãBÐæ Õ9ë r • *+‚xD ž §I‚) dÃ
E*+ )Q È¡-9 s3 ~ œ ‚‘ ¡  ¡x— )w-/ -9-9€© v‘ ¡ v 
 d3Q)~' œÍ)-9-/ d postmaster -9)3Q x ~ )~) %-/€‚ Xr

M8
Creación de una nueva clase
   ž-9 %¡ )  du-/%3 ž  -9¨-/%)© d²)*+‘ D ž-9 DÈ d* ¥  DQ
,)*+‘ ds  ‘  x— sQ Þ

CREATE TABLE weather (


city varchar(80),
temp_lo int, - temperatura mínima
temp_hi int, - temperatura máxima
prcp real, - precipitación
date date
);

&# d)¡ ž-9  )Q¡   s@²‘â-/%u ,xwX ) ¨-9 3 d)3‘ d@¡*+xÍÃ
-9 ˆ,x—*+)Í3-9 r$¡ )Q¨-/% d,  d œ @w3 d' )‘ ¡v*+xÍ-9 ¡
*+)Í-/  3 © d) | )Q ‚‘ d-9*+ÈX  -9*+ËÝ *+Q ‚!#"$z … r
QÃ
 d,!#"D$|3EQ‰s ¡()‘Q  , v!#"$|-9*+ Þ )QȆà Ȇ dÈ3*+%) Ȇ-9()EŽ Šœ“ È
u-()Ž Šy“ È% ÈQ*+ ȲxM *+ d3Q*+È)‡-/*+bQ~ — + ) xbQ~-9Ý 
E-9-/§I Q— vQs d*+pd -9r3&#-9*+u d d*+,* ¥ ¡Q² dÈ#  s²   v 
-9)¨ Ë-9ß É)Í*+ dÙE‘Q Ý ©Q ©Q ¨)—D d,  @r
• ) -9  ) d*+ ) dȲž)*+‘ ž —Qb)b3Ý) ¥ -9 -9*+ )Q œ²‘â‰-9u È) ̆Ã
-9  D) v v   ~%E~EQ'-9s  d-/% s dœ   ¥ )!#"D$z … r Œ d)
* ¥ @ §QÈ -/*+)‰   r ½ ¦¯s « Å ¯ @p ) -9‰-9*+)‰ 3‰-9 d )
 %‘  # *+v d-)
  d*+ rE!#— *M‘%Èdu  *+'   %,-9 'Q ) d
² d s   v3œ ̆ d)3) s 
*+  d-9)âr

Llenando una clase con instancias


$~ d-/G-/€ e k·9­cl   wv ) )w-9 -9œ) %)-/ Þ

INSERT INTO weather


VALUES (’San Francisco’, 46, 50, 0.25, ’11/27/1994’);

&#%*+‘pd  d ,  %-9*+ n9f°Jw ¦-9 ²) dX-9)Q  sQX 
¨-/() d@Ž } ! • 5 “ rí‰ ) *+ )Q s  ž   s * ¥ @ ¥ ²w   ¡'QX— d‡
Ž ‚ d3-9  “ -/*+‚ )́)-9 )-9-9€| -9 *+ d) ‰œ  ‰ %‘ Q)@r º 
E§I *+3 dE‡ˆ Þ

COPY weather FROM ’/home/user/weather.txt’


USING DELIMITERS ’|’;

)  † ( #¨-9() ž — d‘ ¦ X-9-9 ‘ ¡†3 dEuX‘%-/. )yÈ )D#-9 )Q È
xv   v  u@ v 
¨-9()  d-/Qd*+ )

Consutar a una clase


$v-9 rœ d () d    -/)  v-/œ )~  -9-9€œ d-9)%)*+x-9)3 Ã
 %  x -9-9€'rE$~ d-/G-/€œ!#"$ ·/­%´5­%n/l 3  3~²E()-9 X  Xr>$ -9 -9€œ3
u v © žQž  )yŽ ‰ v   w ž¦ ‘  ¡   ‰()‚ ~   du  d  “

MM
xM )-9 ¨-9-9€bŽ — ‰     -9¨-9-9 %   ¦ d3Q-/-9€ “ rd¦ E§I *+ȲE
œ Q() QÈ% -9E‘ Þ
 -  @ , ¨s

SELECT * FROM weather;

)©Q() v Q )() M‘ Þ

+---------+------+------+----+--------+
|city | temp_lo | temp_hi | prcp | date |
+---------+------+------+----+--------+
|San Francisco | 46 | 50 | 0.25 | 11-27-1994 |
+---------+------+------+----+--------+
|San Francisco | 43 | 57 | 0 | 11-29-1994 |
+---------+------+------+----+--------+
|Hayward | 37 | 54 | | 11-29-1994 |
+---------+------+------+----+--------+

     d3 d-/¨-9-9 %    ̆ €ž žsQ¡   Q)@râ) E§I *+È9   '()-9  Þ

SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;

$~  B~‘ )wŽ akm È fc ) kflQ“@“     b 3% b—-9 ¨-/%-/€b
-9 %   @-9)  r3' §Q d*+È

SELECT * FROM weather


WHERE city = ’San Francisco’
AND prcp > 0.0;

~-9*M    Þ

+---------+------+------+----+--------+
|city | temp_lo | temp_hi | prcp | date |
+---------+------+------+----+--------+
|San Francisco | 46 | 50 | 0.25 | 11-27-1994 |
+---------+------+------+----+--------+

•  *+— )Q ~¨)%È#  d ~  -9¨-/%'   ~¦   , ~ |  -9²   ©3 d  Ã
u  d s ÑDÒ9êåÓÒ¡Õ9ÓìåêÒ9ìÒ    %) Ԉêëæ Ò9êéEԈÒ9ëìÐñèˆÔˆéEÒ9ì Ò9ë r

SELECT DISTINCT city


FROM weather
ORDER BY city;

M »
Redireccionamiento de consultas SELECT
•    d-9) Qw  -9)  d  @  /-/-9)w~ )~)  duw-9 Þ

SELECT * INTO TABLE temp FROM weather;

 ž *+ *+) dE*+‡-9Qv y-9*+) n9c­%al ­ Èd-9 ¥ )3  v)  uv-9 Q *+
-9˜ '% ‘  b)*+ dxË x D  d-/¨-9ž ˜|Q|  )‹ '-9*+) ·9­´ ­ n9l
e kl f rB) )-9 w *+Ȳ¦3   d3QÈ d ¹%¦-9    ¦ -9€b‘ D-/%3
   )Q -9*+—()%E‡ˆ*+,‘ -9    d' ~-9 r

Joins (uniones) entre clases


Á   ()E%Èd)  QE'-9) Q €D-9-9 ‡dy )v-9 vu ¹)r$'-9) Q   Ã
 M%-/-9  ,*+ÍQ -/ˆ3 dvDu ¹È
©-9-9  d,*+*+—-9 ž ‰ %²*+©  
*+Í  d¡) %)-/%s vw-9  %‚-9  *+*+—Q *+br º )w-/)  ‰  
-9-9 ²M©*+ÍQ ) )-9 ©D*+*+ِ  /) d—-9 D|Mu ¹| ‚-9)-9
-9*+‚ )-9)3 Qv§Q r • *+© E§I *+È%*+   D    *+v d)-/)QEsQ
 3Q~     ¥ Ë ‹ @)M Q *+ Q E~ Qw dQr Ù  d-/Qȁ) -9 dÃ
 *+-9*+~QE‘ Q d*+ &‹xÝQ *+ &()' œ-/%©) %)-/M–££-9ßˆ
QE‘ Q  d*+ &x d*+ &() Q%s  d* ¥ s)Q)-9s–£r

Nota: Esto es sólo un modelo conceptual. El verdadero join puede hacerse de una ma-
nera más eficaz, pero esto es invisible para el usuario.
 *+¡()%-/ d d3Q-9‚v3  )Q ~-/)   Þ

SELECT W1.city, W1.temp_lo AS low, W1.temp_hi AS high,


W2.city, W2.temp_lo AS low, W2.temp_hi AS high
FROM weather W1, weather W2
WHERE W1.temp_lo < W2.temp_lo
AND W1.temp_hi > W2.temp_hi;

+---------+---+----+----------+---+----+
|city | low | high | city | low | high |
+---------+---+----+----------+---+----+
|San Francisco | 43 | 57 | San Francisco | 46 | 50 |
+---------+---+----+----------+---+----+
|San Francisco | 37 | 54 | San Francisco | 46 | 50 |
+---------+---+----+----------+---+----+

Nota: : Los matices de este join están en que la cualificación es una expresión verdadera
definida por el producto cartesiano de las clases indicadas en la consulta. Para estas
instancias en el producto cartesiano cuya cualificación sea verdadera, Postgres calcula y
devuelve los valores especificados en la lista de destino. Postgres SQL no da ningún sig-
nificado a los valores duplicados en este tipo de expresiones. Esto significa que Postgres
en ocasiones recalcula la misma lista de destino varias veces. Esto ocurre frecuente-
mente cuando las expresiones booleanas se conectan con un "or". Para eliminar estos
duplicados, debe usar la declaración select distinct .

D  ¡-93ÈB )Q$ „ -9*+/ …  3Q ' ))Q)-9 ¡¦-9 7œ d () d
xy ‰ dÌ#Q ) d© Q%¡¦)Q)-9¡ ~‰-9 r3Ž5©‰Q E*+‡w ~‰*+xE‡ˆ

MÇ
 ¦ *+%s v‘ , v% 7 „ x+ …  v-9)-9 |-9*+ ÓÒ9êdû)B å YÒ9ÓԈÒ9ãBèˆåx
ë ® YÒ9ÓÔÖÒ/ãBèˆåë
ìå ÓÒ9ê û)SÕ ¯ r “º )D-9)  ²  d w-/) d) ¡ M)Í*+ œ‘Q ‚ ‰)*+‘  w-93 d
x  Q -9) r

Actualizaciones
   %-/Q ¹X)Q)-9s dÌ# d) d, ) 
-9*+%) % r!
)w   v Ã
-9 ‘ v   ~‰ -9Q Ew ~s d*+  ,  … ö‰ Š u d*+‘ ~  … E¡  dE 
~Q *+ Q E dârE   v%-/Q ¹d's s   v*+)  Þ

UPDATE weather
SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2
WHERE date > ’11/28/1994’;

Borrados
$s‘E 3 v()%-/ dy 3%) -9*+) m­%´5­dl ­Þ

DELETE FROM weather WHERE city = ’Hayward’;

&# 3Q $œ % () s dEQ ) -9   Á xœb+‘E%r9D d‘ ‡ž3 d
 B-9u-/œ,-/)  , w E*+

DELETE FROM classname;

!
ˆ‚ )w-9 ¨-9-9€)È m­´I­%l5­ *+ d*+ )Q w‘E ¥ Q%s,) )-9s vw-9 vÃ
È  E§ ¥ )vu%-/‡ˆ)r>
 *+w)  ¥ -9)¨*+-9€©)Q , ()-9 @ Q@r

Uso de funciones de conjunto


•  *+M ~ ) §I w -/)  È  !#"$Ù y )-9) dw -9§Q )Q@r º )
 )-/€y -9§Q )Q—-9-9 v ý)-9  Qž~ X *+Í  ds¨   d) )r
 §Q d*+È/ ̆ d )-9) d‘ Xs-9-9  countŽ -9)Q “ È sum Ž  *+% “ È avg
Ž *+  “ È max Ž * ¥ ̆*+ “ ) min Ž *+‡)*+ “ ‘  œ-9§Q )Q— v)Q)-9†r
 *+Q) v-9*+ ) d~ %-/€y )Q , )-/) , -9§Q  x— -9 ¥  
!
"D+ $ ÓZÏ ­c­ h x Ï a¿e kµ rdrâ$¦  /)-/¦ )*+ d) % )QV
Ó+Ï ­c­ /x Ï a¿e kµ X   Þ ÓZÏ ­ u
c­   -9-9)-9 *+)% ¡ ) ¦)Q  ¡ 'xD )Q)-9  ¦-/*+ Q
 )-/)   ¦-/§I ) Ž5  Q *+-9) ~  p¨'uyv -/€œ -9§Q )Q “ È
*+ )QE¡  / Ï a¿e kµ 3 d -9-/)ž ¦ w¨%¦  p s ‰ ²¦xœ d) )-/ d3
-9*+ Qœ¡ )-9) d¡ v-9§Q  Xrž ~  v*+yw-9 ¥  $  ÓZÏ ­c­   d v)—-9)Ã
 d)  )-9) dž y-9§Q )Q˲   +   y)+  d) œ )Q+) d) v v )œ )-/€
 -9§Q Qv d dE*+)@  p¨w  ¥ w d) v ~ )-9€ r' ~ dÈ 
-9 ¥ 3 %X  Ï a¿e5kµ 3 d*+ ¦-9)  d) — )-9)   ¡-9§I )RXrŽ QE-9 %*+ )Q ¦()‘È
3Q —   s d3-9‘ )¦-/ ¥  r  Ï a¿e5k)µ   )‰  ¡5 )-9)  ¡ ÈB w)‰*+ Ã
 -  ))r$v*+*+~-9)-/ˆ€œE‡ˆ @ v  y*+* ¥ , d¨-9¹-9  ÓZÏ ­%c­

• *+ E§I *+²— *+s‘ -9v*+‡)*+‰ d*+  v d‚-9    d²EQ -9

M Î
SELECT max(temp_lo) FROM weather;

!
#    *+s‘ X  pv-9 ‚-9  /s) v  dy d3Q, *+² E%  È Ã
*+,‘%

SELECT city FROM weather WHERE temp_lo = max(temp_lo);

 ) )-9) ¥  ‘—w   ~‰ )-9€‚*+̆Ž “ )y   v3 d' w fÓZÏ ­c­ r!

*+‘
È# *M¡ d )Qw-/)  ‰~ uw-/%‘—   v‘ -9*+†r3œ 
-9 ) ) ëÐãBëåèˆå>é>éEԈÕ9ê Þ

SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weat-
her);

$b   œx© d-9E d- Èx©   y© ‘3 d -9-/€˜ ž )‚ dE-9€˜)  d) )Q œ  
-9-9  |~ )-9€‚  ‚*+Q   v  d‚ d
3 d -9) ̆ dEEr
$¦ )-9) dv ž ²‚+ *M‘pd+*+ x©ÍQ -9*+‘ ¥ )-9M-9 ¥ 3 % û)ÓÕ9Ðñ
ã… r%v E§I *+Ȳ *+‰‘ ) dvy *+ dE% —*+‡)*+œ *+y Ë-/%—-9 
-9 Þ

SELECT city, max(temp_lo)


FROM weather
GROUP BY city;

  ž) u  u w )D¨s-/ %¡r/ *+v¨QE%,  ¨ ¦ )


Ï a¿e k²µXÞ

SELECT city, max(temp_lo)


FROM weather
GROUP BY city
HAVING min(temp_lo) < 0;

  w)ž*+*+¦ d3 Q3È# y w-9  ¡-/MQ *+ Q E%¡‘§Iœ-/ dXr Ÿ Ã
)*+ )Q È)€©)) d d3%|-9  d¦-9 xv)*+‘  *+² -9 Ms
 ˆ ˆÈ ‘ Ã
E‡ˆ*+,()%-/ d Þ

SELECT city, max(temp_lo)


FROM weather
WHERE city like ’P%’
GROUP BY city
HAVING min(temp_lo) < 0;

&# d)w œ-9  )Qw   ~ *+s-9@w  -9-9€œ d)*+‘ ~ -9 | EÓZÏ ­c­ È
x   )D) -9   )-/) , -9§I )QXr33QD '* ¥   ¨-/%¹    )Xv d3Q-/-9€
ÄÏ a¿e k)µ Èh d‘yD   ž uQ*+()%-/ d,- ¥ -9  ‰ œE‰Q¦¨  
ÓZÏ ­c­ r
)%3y d¨Qr

M×
Capítulo 6. Características Avanzadas de SQL en Postgres
Á  ‘ )-/ ‘ dEQ—¦ -9 ¡‘ ¥ -9¦ ~  ~!
"D$%Ew-9-9 )  ‰¦QȆÃ
-9 Q *+ž()Eœ   %ž-/%E-9Q â‡Q-/%ž œ3Q dž   ‚Q)  d˜ yD d3Ã
  w y‘ w y% ‰-9)u -9) r†3Q‰-9-9 d⇠-9ž)-9 x Ý()  )-9ÈQ*+
 u Ž uˆ§Q w ‚   *+² “ xœu ¡)à Q€*+-9 ~ ¡Ž Q‘ Q¦‘s ©u -9Ã
  ¡xœ-9§Q )Q “ r9$s E§Q d*+ ~  ‰ -9-/€|²   © )-9)QE%E ~ %*+‘p | d ad-
d|  -9 y Q  âr/Ž • )  w  • ‡ˆ y{žwu ,D *+ž
vance.sql “
 ¹%E r

Herencia
•  / *+-9 r3$‰-/%3 w-9Q¡-9)  ) ‰¦-9Q s ‰ Q3Ȇ¦-9  d
œQ*+‘p œ-/ˆ  r Š % *+ )Q È%w-9 -9Q  ‘ ‡()  X -/Q r

CREATE TABLE cities (


name text,
population float,
altitude int - (in ft)
);

CREATE TABLE capitals (


state char(2)
) INHERITS (cities);

œ  v-9È% )w) )-9w v-9Q ù åÓâåìÒ  ¡,QE‘ QsŽ )*+ È% Q‚x
Q  “  ¡3 œ² BÈB-9  d†r#Q‰ #% ‘  ‰)*+ ¡Ž )*M‘ “ Q ̆ ÈB — ž)Qu
   s²E-9 ) } ! • 5 )Q Mud‘ r> ² 
% ‘  D² % 
Ž ‘-9€ “ d¦à È# MQy ~QÈ
Q*+‘p ©)Quy wQ d¦È
w)Í*+ ¦
 ) žàQ)  ¡‘ ¦ -93€ rE$-9 -9QQ )  yQ‘ Qž ̆  Èd3QQ È  
*+     p¦  D² EQ ) d-/ d r  È )-/ ¡   ¡()   X ¡)) )v
uEd¡  -9 Èx— )w-9) Qw   v()-9 @  / )-9~ )QwQs%s) %)-/%
  )~-9 v-9*+w  ,) )-9,  )w-9 x3 , -9 ) d) r

Nota: La jerarquía de la herencia es un gráfico acíclico dirigido.


 ¡ E§I *+È  d) -9)3 Q )-9  )QE    %v-9       ¥ +Ã
  ,w ‚% ~ { ’’ * ¥ s d Þ

SELECT name, altitude


FROM cities
WHERE altitude Ô 500;

+-------+-------+
|name | altitude |
+-------+-------+
|Las Vegas | 2174 |
+-------+-------+
|Mariposa | 1953 |
+-------+-------+

@Q%È%²E )-9) @,)*+‘ d,    -9  /3È )-/ ‡ˆ  -/% %Ã
    %  d3È%   v  p œQ  w )~Q | { ’’ * ¥ s dȆv-/)  w  Þ

SELECT c.name, c.altitude

Mï


FROM cities* c
WHERE c.altitude > 500;

œ()-9(‚ Q ) Þ

+-------+-------+
|name | altitude |
+-------+-------+
|Las Vegas | 2174 |
+-------+-------+
|Mariposa | 1953 |
+-------+-------+
|Madison | 845 |
+-------+-------+

}  ‡d '#²
%¡  p  s-9  dX)-9¦   s¡-9)   ‘ , d ¹%E ,‘ ,-9Q @x‰Q
-9      pd+¦ d‘>§Q‚ ‰  +§Q dE  ‡ˆD ž()  )-9)r9–˜ -9()~ ž
-9*+)'   ¦x() *+,3-9 QDŽ ·9­´ ­dn/l È akJm Õ_° ) I‚%) m­´ ­dl5­ “ ‘E)—²
#'²
%~
    v s-9*+ a´ l ­ c r
~ Q~)Q-9€‚r

Valores No-Atómicos
º ) £ +‚)-9‚ d¦*+ É d-9)¡ œ   ‹‚ ‘  œ b )Ë d -9€
bQ€*+-9~3Q d~)© D   QE-9-9€_(v ‘  v   +-9) d)  ‘Ã
u /        -9-9 ) 3 ¦  ¡ # d) §I  -9) Q)rE@ §Q d*+È 3 ¦  Ã
 y-9 XQ‘ Q,   v œu -9Q ' v% ) ¡Q,‘ r

Vectores
Q  *+ ©   M—QE‘ Q | )bˆ)3Q)-9+3 dÉ ¨)-/*+˜u -9  
*+  *+ d) ‰ y)Q ɨ#§QœbuE%‘ r†   —-9 dwu -9Q ~ œ-9    dE
 žQž‘3 —+ — ²ž d¨)žv @  Xr†œ QE%v3 £ Ȳ-9 *+
*+  )~-9 v-9‚u -9Q    ¡‘ r

CREATE TABLE SAL_EMP (


name text,
pay_by_quarter int4[],
schedule text[][]
);

$y-/)  ‚ —E‘y-/ d ¥ )œ-93 —*+%œ! } $J&–Ù£-9Ý )‚-9 d)y @Q
æ
å Qæ Ž )%*+ “ Èh Ëu -9Qv )*+ d)3@ dXQ Ԉêæ~M Ž x&‘x&  âQ  “ È) X-/ %X  /Ã
 )  #%EžQE*+ d3QE%#  *+ %žx yu -9Q‘*+ d)3† d#  æ å
Q%æ Ž 3-9() Ã
  “ Ȳ   ‚  /3 d) |‚ )© *+%)  *+ @r } ()E‚ d ¹%*+D )
õ ÖDÏ jJ ø Ï ) ()    -9 )‚ d%*+u dv ‹u -9 QÈ )-9 *+wu d
)Q ¦u ,x¡ %Ed*+s*+  -9*+r!

 d©-9)-9 ð È Q) sˆ3Q) 
~) ̆,~)-9¹@   -9 r

INSERT INTO SAL_EMP


VALUES (’Bill’,
’{10000, 10000, 10000, 10000}’,
’{{"meeting", "lunch"}, {}}’);

» "


INSERT INTO SAL_EMP


VALUES (’Carol’,
’{20000, 25000, 25000, 25000}’,
’{{"talk", "consult"}, {"meeting"}}’);

Q   ¹, , *+¡ ) Q E*+s¡-9)u )-9€ ,u d-/Q dáâ‘%3 ž )á


Ðw ¡ -9 Ȇ ‚u d-/Q  ~© d *+ )Q¡-/*+ )¹%ž-9|u -9  9 „ <²xyQ *+)‰-9©u d-/Q 9h:  <>r
} ()w d*+s E§I -9   ¡-9) Q¡‘ v! } J $ &²–˜r3E*+ d*+3Q*+¦-9Ã
*+©%-/-9 ) ¡ M|  d*+ )Q© d)u -9 s¡u ¹)r93Q-9) Q— u  u w)*+Ã
‘ B, vs *+² s-9 x,,()œ-9*+‘D œ 
  )—QE*+ d3Q Þ

SELECT name
FROM SAL_EMP
WHERE SAL_EMP.pay_by_quarter[1] ×rÔ
SAL_EMP.pay_by_quarter[2];

+----+
|name |
+----+
|Carol |
+----+

$~  d) v-9)3 Qw -9  v %D Q -/ / *+     ¡s d*+  Þ

SELECT SAL_EMP.pay_by_quarter[3] FROM SAL_EMP;

+----------+
|pay_by_quarter |
+----------+
|10000 |
+----------+
|25000 |
+----------+

&#%*+‘pdy *+s-9-9 ) @~-/ %   @-9€y  yu -9 QÈ  ‘u -9  rE v-/)Ã
 Q— -9   *+ Q *  — )— t —w*+ ww‡ˆ~ ˆ
 *+))r

SELECT SAL_EMP.schedule[1:2][1:1]
FROM SAL_EMP
WHERE SAL_EMP.name = ’Bill’;

+-------------+
|schedule |
+-------------+
|{{"meeting"},{""}} |
+-------------+

» ó


Time Travel (Viaje en el tiempo)


}  *+*+ d) ž ¡u €÷)r …  s  'u÷)r … È èˆÒ,éEÒ9ÓÒ9é>æ åÓòÖëæ ԈéEÒ ìå YԈÒGäGååêžåèæ ԈåўñÕ
® æ5ÔÖÑwå‰æ ÓÒSYåèU¯sÒêÕåëæ W—ëÕ9ñÕ9Óæ Ò/ìdÒ r
̆3Q ˜už¹) D‚ Q Þ *+²-9 Ù‘ œ 
 )*+ )QȆ dQ*+ ) v*+-9 )%*+ ) Ȇx— ‚-/()u&% *+ ~   ~-9 - ~() w d
)¨) — d‚²-9Q *+Xr
Ù-9*+‘Ȳ) œ y)  uw-/%E-> ‡Q-/%‰-9*+bž3²E% /žŽ    “  
 *+ d©*+Q  d-9*+ %*+ )Q‚ du§I ~ ‚   *+²y-/ )— ‰ d3 d ȁ|)-9 Ã
E@ œ‘ -9d~-9 )) ) -9 QwŽ y d) È%~*+x'Q  
Q *+ “ r  d
, E§I *+¡ dy  -9  contrib v*+x) *+-9€ r

Time travel ha sido descartado:: : El texto restante en esta sección se conserva sola-
mente hasta que pueda ser reescrito ajustándose al contexto de las nuevas técnicas que
permiten obtener los mismos resultados. ¿Voluntarios? - thomas 12-01-1998.

Ø  Ù Ú)Û`ÜÝÞÚxÚ)Ùß ÙlÝ
Û à,á5à,â5ãJÞà,ã Þálä_â5à1å`ÞFÞæEÞálÛ â5ÞçÂß ÙèKéJÚ)Û Ùbß ÞݏçÂâ5Û`ÞFà,ê æZê Ú)êJà'ݏâ5ÙbëSÙlݏÝÞÝBëSÙlæ:ì
Ú)êJá5Û`àÚ+í:â5Ú)Û`îÝ
â5ëSàÚè_Ø ÙlÝÄޏåkÞçÂß á5Ùlï|ß àÝ
àžÞæ:ëSÙlæ:Û Ý
àÝÄá5àß Ùðá5àëSâ5îlæàëSÛ`ê àásã ÞÂá5àÂëSâ5ê ãJàãñãJÞ
òÉàÝpâ5ß ÙlÚKàïê Ú)Û`Þã>ãJÞðÞÝ
óôà,ÝÞàá5â5õàÝDá5àÚ)â5Üê â5Þæ:Û`ÞëSÙæ:Ú)ê á5Û à_ö

SELECT * FROM cities WHERE name = ’Mariposa’;

+------+--------+-------+
|name | population | altitude |
+------+--------+-------+
|Mariposa | 1320 | 1953 |
+------+--------+-------+

Ø  Ù Ú)Û`ÜÝÞÚBà'ê Û ÙlçÂ÷Û â5ëSàçÂÞæ:Û ÞsÞæ:ëSÙlæ:Û Ý


àÝ
÷rá5àVäÞÝ
Ú)â5îæbãJÞáÝÞÜâ5Ú)Û ÝÙ$ãJÞsòÉàÝ
â5ß l
Ù ÚKàVä÷á5â5ãJàVß àÝ
à
ÞÚ)Û ÞxçÂÙlçÂÞæ:Û`ÙXèAø/ÚKÛ`ÞãLÛ`àçÂðâ5ùæhß ÙãJÝ
ó5à7ÞÚKß ÞëSâ5úJëSàÝ:ê æÄâ5æ:Û`ÞÝ
äàá5Ù,ãJÞxÛ`â5ÞçÂß  Ù èØ ÙlÝJޏåkÞçÂß á5Ùlï
ß àÝ
à$ä_ÞÝ7á5à/ß Ùlðá5àëSâ5îæÂß à'ÚKàã à/ûEß ÝÞÚ)Þæ:Û`Þ,ãJÞ/á5à/ëSâ5ê ãJàãã Þ/òÉàÝ
â5ß ÙÚ)àïê Ú) Û ÞãüëSÙÝ
ÝÞÝ
ó5à$á5à
Ú)â5Üê â5Þæ:Û`ÞFëSÙæ:Ú)ê á5Û`à:ö

SELECT name, population


FROM cities[’epoch’, ’now’]
WHERE name = ’Mariposa’;
ãJÙlæ:ãJÞrýpÞß ÙlëSí:ýâ5æ:ãJâ5ëSàÞálëSÙçÂâ5Þæ:õÙLãJÞáÝÞá5مåãJÞálÚ)â5Ú)Û ÞçÂà_è

Nota: En los sistemas Unix, esto siempre es la medianoche del 1 de enero de 1970,
GMT.

þ â™í:à,Ý
Þàá5â5õà'ãJÙÄÛ`Ùã ÙÚsá5ÙÚxޏåkÞçÂß á5ÙlÚ7í:àÚ)Û`ààí:Ùlݏàïá5à,ë‚Ùlæ:Ú)ê á5Û à,àæ:Û`ÞÝ
â5ÙÝDãJÞäÙlá5ä_Þݏ÷_ö

+------+--------+
|name | population |
+------+--------+
|Mariposa | 1200 |
+------+--------+
|Mariposa | 1320 |
+------+--------+

ÿ
éJálä_à'á5ÙÝBß ÝÞãJÞÛ`ÞÝpçÂâ5æ:àã Ùbß àÝ
à,ÞálëSÙçÂâ5Þæ:õÙbãJÞálâ5æ:Û`ÞÝ
ä_à'á5ÙbãJÞFÛ â5ÞçÂß ÙbÞÚsÞálçÂÞæ:ÙlÝ|äàá5ÙlÝ
5 ê Þrß ê ÞãJàFÝÞß ÝނÚ)Þæ:Û à'ÝBÞáeÚKâ5Ú)Û`ÞçÂàï'çÂâ5Þæ_Û Ý
àÚ 5 ê ÞFÞáeäàá5ÙlÝDß Ý
ÞãJÞÛ`ÞÝpçÂâ5æ:àãJÙÄß àÝ
àFÞáeú æ:àá
ãJÞáXâ5æ:Û`ÞÝ
ä_à'á5ÙÒÞÚÄá5à>í:ÙlÝ
àÂà'ë‚Û`ê àápè™Ø ÙlÝ/á5ÙÒÛ àæ:Û`ÙlïDÞáXâ5æ:Û Þݏäàá5Ù ã ÞEÛ â5ÞçÂß Ù ê Û`â5á5â5õàãJÙÒÞæÉá5à
ëSÙæ:Ú)ê á5Û à,à'æ:Û ÞÝ
â5ÙlÝBß ÙlãJÝ
ó5àí:à'ðÞݏÚ)Þrà'ðÝ
Þä_â5àãJÙÄë‚ÙlçÂÙ76!8 ï39
è :

Más características avanzadas


Ø  Ù Ú)Û`ÜÝÞÚÄß ÙlÚKÞޞçÂê ëSí:àÚÄëSàÝ
àë‚Û`ÞÝpóUÚ)Û â5ëSàÚ 5 êJÞ>æ:Ù ÚKÞfí:à'æ äâ5Ú)Û Ù;ÞæÃÞÚ)Û Þ>Û`êJÛ`Ùlݏâ5àá5ïÞáxëSê àá
í:à$ÚKâ5ã ÙbÙÝ
â5Þæ:Û`àãJÙbí:à'ë‚â5à$ê Ú)ê àÝ
â5ÙÚVæ:ê Þä_ÙlÚ7ãJÞ þ<;>= è = àÚsçÂÞæ:ë‚â5Ùlæ àãJàÚVë‚à'ݏàëSÛ ÞÝ
ó5Ú)Û`â5ëSàÚ7Ú)Þ
ãJâ5Ú)ë‚ê Û`Þæ+Û`àæ:Û ÙÄÞæZá5à@?$ê ó5àã ÞáløhÚ)ê àÝ
â5ÙÄëSÙlçÂÙbÞæ+á5à,ãJÞáeØJÝÙlÜÝ
àçÂà'ãJÙݏè

ÿA
ÿE
Bibliografía
þ Þá5ÞëSëSâ5îæ+ãJÞÝ
Þ(F ÞÝޅæ:ëSâ5àÚxûbá5Þë‚Û`ê ݏà'ÚxÚ)ÙlðÝÞ þ<;.= ûLØ ÙÚ)Û ÜÝÞÚè

Libros de referencia sobre SQL

Documentación específica sobre PostgreSQL

Procedimientos y Articulos

Notas G
è í:Û`Û ßsöIH1H™Ú)â5çÒÙlæ|è ëSÚè ë‚ÙlÝ
æ:Þá5ápè ÞãJêBH™í:ÙlçÂÞHeß ÝàäÞÞæHeß à'ß ÞÝ
ÚJH™ß àÝ
Û`â5æ:ãJÞK è ãJÞ(LM:è ß 
Ú èN
GY
O:è í:Û`Û ßsöIH1H™ÚPOQì F Û`ßsè R þ è SJÞÝ4QÞá5Þûeè é1T/øfö UVVV!Heß ÙÚ)Û ÜÝÞÚH™ß àß ÞÝ
ÚHeé1W = ì òXULì è ß ã1F

ÿÿ
ÿ 

You might also like