Você está na página 1de 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 dErhrhrZrhrhrhr 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 ??
!#  -9rZrhr 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 lIn9l _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  )w3  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 adghghg 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)-9rhrhrhr 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-9Q )QMrZrZrhrhrhrZrhrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrhrZrZrhrhrZrhrhrhr rhrhrhrZrhrhrhr rhrhrhrZrhrZrhrZrhr ??
??

g%acan9lIc 9l e5n9adakadmasm~^%kf9l 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 fca% asgZghghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZgZghghgZghghghg ghghghghgZghghgZgZghghghgZghgZghgZghghghg ghghghgZghghghg ghghghgZghghgZgZghghghgZghgZghgZghghghghg ghghghgZghghghg ghghghgZghgZghgZghghghg ghghghgZghg

??

Sumario
Q  d3%ERE)*+ )Q D dM ) EQ*+ )Q  )-9 w *+ 
 %-/  )u E% %5)M t .  x/  ) dE| d*+ -/() 
-9)-9 Q   %  -9)  ) %dI Q   ()E *+ d
 %3) ~ b )%v dv Qv-/*+ -9 r  B-9  EQ D ) I
!
"D$z  !
"D$
) d  )-9-9) d3x  d) DQv QrdQ
 d!"$b  | -/ d) )Q  w*+)-/x-9 dEQy -/y)
 t dE.  x#r

Captulo 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-/)*+
 BX   -/)  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 vQr*+
 M d-9) 3Q xb*+  duw d  *+-9% Q) /r
!
M *+-9*+| D()D*+ )-9)% d3Q*+-9Q*+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 BQ-/%s Q )-9wx -9)
d 3QE-9-9) s )QE)Q
3E% /s QE 
d,   d
5)Q E% )-9-9)%

 ,-9 -9 dE -9,-/-/%~3Q d w-9Q w  t  d, v%  )Q
-9 -9*+ 9G 9 /E9/ r Q  D   Dpd3Q+ d d) d  I dE%-/*+
9 99s~/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) %dI QrB w() -9()

 )% t %3 d DQ-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 ) -/)  %3Q)-/-9) x x| )-9) dv )   
-9)Q)Q*+p -9 %*+D-9I  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| ' y9h) x )-9| *+ d
  )-/% /-/ + ,9h)D9 '9 rB ) 3Q *+ D 
~   r%$y-9x
  -/QM d3 *+*+ )Qb  D )b /7
   d-9    , w*+-9 )%*+ )    d %  dM '9h), 9G)
%  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-9Q-/v 
*+ 
3Q *+ , @  /D 9
9 )9h) ,   9pd3Q s  s ) )
,
9>
,9 M/
 |D9 /B9   xM dE    | d
)D zz D)-9E%)r$   /-9 zz x ) )v*+ d*+ )
 %-/s*+  d@   @ *+-9 )*+ d) / D Q d-/ Q ,-9)  %@*+ EIE
xM 3Q *+y  -9 y  ~)  duXr% *+xEQ ~  )Q ~u d
) s() w d)%*+ )Q ~Q z{v5u * %Q 3 v-9 d)  *+ EIE%'
EQxwr
Q , *+w  vw*+ *+ d) -9 *+ -/(),-9-9) , v)u d -9
xy -/-9r)  v d 3Q *+ ~  v ))-9 #    d v
*+)QE%-/  d)*+ )QM *+Q d -9-9) )   w   
*+ )Q  d 'xu3Q *+%, ) *+-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 XE)-9  v QE 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 -9x|%vQ d~ D D d3Q+-9 
)Q *+     d-/%E s)u  -9r>  d3    -9 d3Q
-9
% x -9QQ *+)-9*+ d) v-9 dEr r
Postgres95
 zzd } )  x x () ) y )Qp  Q  v )  ~!
"D$|wQ
 dr  z{~   -9D~-9)Q) X-/y  d%E   v )-9) ~ |
()  d-9 d+ *+ )-/*+ + -9 ) )Q  *+)-9x-9  
 
-9)  s t .  x
r
-/+   z{y  % Q| } !# xb3  %*+ )M  -9M d  { r
-9()~-9*+~ )w*+ EIE+  )*+ d) |x| -9  *+) d)*+ )
 XrdQ z{u r r y3 EI -9   db E)   {  * v  d+  -9)I
t )-9()*+.-9*+E%-9 Q ur r }  d*  |-/ d-/-9 M dE B@p  %
 y)-9 ,*+ EIE
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  db *+ d*+ ) %rd&#*Mpd  )%
)~*+ *+ )Q-9 v-/ 3 ~  t r$)   libpq E*+%) -9
) vv*+%, d3-9 s d r
! }  *  E*+ D*+) E%-9) D)-9 xM +)  u|*+ psql
%E d %-9)3 Q!#"D$)Q E%-/Qu 3)w v y readline r
!

"

)y)  u dE ) dE 


 y-9 )Q ww d&-9r
libpgtcl
()  v Q d*+ -9()EQ~)  u, d) &-9~)Q -9 @-9 *+
Q@Q z{v  *+ tcl
!
v duw)Q  ~-9dI Qs) dr$dI  E%) , v5)u 5  d
,)-9*+ -9)*+E+*+%-/ d) dI  E) dy ,3Q *+b +%-9()u
)u dE   d*+) r
!# | *+)Q*+p d *+b | y+)u  M) %)-/%' y 
  ) s-9*+   d3-9 r
!#   x-9y d
-/  )Q   u Q  E%
)  -/ d)%,-9-Q Q
-9-9*+ ) ds v!#"D$x   z{)r
!
v Q y *+. ~5 du w t !
*+. ~w-9*+-9r9  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   
)xu 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
$)-/ *+ EI, Q !#"D$)-9 x
!

!
!

$~   w DQ()%3 Q w d-/)Q D-9)-9  )-9*+  
u ) -/  *+Q ~-9-9  ~3y -9Q E-9)Q) , x ) -9)
 d)  )Q -9Q -9  3Qx *+ -9% y d 
-9 )Q s  ,& *+*+ )QE%3 s s% @ dE*+) d-/ s3) -/)
  %r
!
~()*+ *+ )Qy*+ )Q -9d-/Q Q-/s *+Q w #)-9 x )
 -9)  %39u ) -Q9 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( #% -*+ dr
$sQ,)Q )s()y*+ EI%)-/ x ))  uQ,  d-/() ()E
)*+xEQ ~v , d*+pd -/%-9) dr
$u -/ d@-9b 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 versin

Q !#"D$  ) -/ r#3Q *+%) ' -9E yu )r { 
 d!"$r

!
 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  -9u)%r
~  3 
5) *+-9 ) dE
%E  3 %E)-9 x v-9*+),xQ  r
~ d
E*+%
5) *+-9%u)%E*M  -9-9) dr5)-9 x )b 
x #Q )| w )-/) # dE ~)Q 5%-/ dxy  ) ~-9
-/) r
~  } *+) 
5) *+-9 ) -9x*+)QE%-/r$ ~ v  3EQXr
~  %
5) E*+%-/ G    r
 y-9 *+ )Q d%E  
w dE)    %-9)QE x )bx -9Q+   ) (y) E*+%-/
 dI   #+ -9-9) dw% /-9  +
 * G9D99 r } -9
 *+ d) )-9  d
 * 
G9D99 r
)    /)-/
) *+-9 d ~ v-9*+%)r } -9Q %*+ ) )-/  ,* 
- 9 r
}  d*+ s vp  ~*+%) %()x  -9 3,   ~ v3 dEu  vx w~w) %
-9x d  Q 
*+y 
$ )% *+)  *+  -/)  d) *+) *+-9 -9
*+)r
} "D5 / )Q     
$~ -9-/ v  )     )Q  } " -9)  d) v    ~ d )Q d)
 x ,3 )Q   vQ )   vu @-9~Q E*+~ dy   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)QQ) ) *+-9r

$  E 


$w3Q ~-/ d   d) 32 -9()u 54 d    d '%Ew-9) Q' 
  )Qr
Q 76
Q @   -9 w -9 dEQr *+QB  )  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 *+ dr
  -9>7) -9()u  wwQ v-/ , ,   d '%Ew-9*+ )
3 ,   r

Terminologa

-9 *+ )Q-93  )Q 5       y)Q   %v-/*+*  )


    ) %Q r%M    ~3 ) %* ~  -9Q  
  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*+%EQE%Er }  d* /%%  d  ~ ,  @ ,
 *+ w EI -9 QsE%*+  w D    ) *+ )Q )  M) 
   ErB& )D |-/  d) D   3  d   w     )*+*+
      Eb )5   -9)-9-9*+ /9 r%   3 %Eb  dE7
 d) @  d) -9'    -  )Q v-/ d%) ,   r
 9 99B9@9 / 9 /B99D 9 /  t } B ' 3) )
  ) %  '-9y*M -9)*+()%-/ d-9 *+@ ) -9   
|w |Q r/ t }   d ~ ))  du  E, d*+p Qy -9EQy* 
 d)Q x*+)Q ) d y-9Q )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   *+)  d) v 3Q' ,  /s d
3Q *+~x v-/*+ )-9-9 )Q
master
~-9 ~-9. )rd postmaster   d -9 Qu~ *+ )Q~  D
)  s d) @E)  )Q3 -9*+ *+ d) 'r!# d*+%9 -9)

*+ )Qs s) d-/ dE3 v) d) wQE%Q%@-9u,Qs-9 )   v)
  EI -9  ~wv*+) ~' d5 d-/QXr
-9. d) DQ v *+ EI -9 Q postgres  d  M  d D EI -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  Q5 /-9*+ xy   w w-9~-9 Q*+  3Q


   )   -9*+ d)D 3Q*+ Q  Xr

Notacin

#)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 Eu  -9 dr
@ EI *+Bp ) d3 # %,
x # %  , 3%D%Es%   /3) X )r
#@A%~    d) r
$w EI *+*+3Q  ) ~ EI -9    d3 u%Ev-9  ) %wxb*+dr%$
 d) ' EI -9  %  ~-9  )Q~ d
)  % y d- %,B
 # C7%r$%, ) 
EI -9     v-9  )Qv d#   3 %E     % y -9 )'D
 #'E%
*+ )QED    ) d EI -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 notacin de las rdenes flagging
(o flojos) no es universalmente estable o congruente en todo el conjunto de la documentacin. Por favor, enve los problemas a la Lista de Correo de la Documentacin (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-9b y3  %  Q -9*+  u-9-9
%Ed) x+ d3)+ -9*+ %*+ )Q )*+ d) Xrd!
| *+
y *+*+ )Q w d3-9 
   )  ' d#Q9u )Q~ dD 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 dy y 
3 %E  -9  Q vQr3~ ) -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) +dI -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

9E>PO/|95Q /%E9 '5SRdJTE9D D9w9>9/EUO9


ww/%9B/%v99 /9 )9 N 9VTE/ Q /s>9d d)99 9

 /B
/
W9I)9D9X
RB, Z
Y9
[/99 )9,d)U\ 9>>PO/
99B9 9@99 9B
)]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-9x+QE -9   5`  xb
-/ *+ d) -9|-9 %   sQ#3|))+%
xM M%-/  d) 
-9EQ# *+ w    w*+) d)| -9x()X )  )Q Q  Ed x
s  s  ) d yQs%s-9r
))-/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 DQ)x-9 x )u E%b  E)D)Q ) )) )
-9 *+%) )*+ ) %x-9 d-9)*+ Q*+ )Q*+-/%-/r
) d )*+-9y 3Qb
a  )$Qr%!
)%!# } )!#  !|xb!#3
*+- d ) !# -9x3Q *+5)-#r D  Q) } () } a,x $
& a+3*+%-9d 3Q @ sQ  *+ ) sr } 5! x  aM*+
-9@  d   Q -9.%G Xr ! # d*+-9 dQE  d!# ` 
 )Qr
N



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  I5-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  dEr -9*   x .@r ()Q*+

Captulo 2. SQL
 -/%Q   -9D)E%*+ ) -/*+D  ~Q -/Q# !# dy!
*M
g9S Y >
% r
.u-/r h
!
"D$  |()b-9)u dEQ s ) >Q | |-9)3 Q d-9),*  Er,)*+
+
#!#"D$J% d )|% /uQ  5E5fi
 N /d) $ ) I  y-/)  
  -9  r/ z  D) ()*+ +xQ 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) ) duM w!
" $b*+!#" $ # x d)*+  -9*+y
!
"D$r
t  GD )  uQ *+!
x * d z rE!#x3Q * *+ *+ d)
%*++3 -9Q  + !#" $ # )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 xQ) d@ u )  /) )-9D -9Q
!
"D$y  d'-/*+D!
"D$ !w5 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 DD% ,
 a   GM  )

  d3Q|  ) >Q  -/)' d3 )Er


QM  d3Q|   -9| d zdMx
-9) w 3-9*+ d)  
 d-/Q  t  !#"D$r> z % Q v  ) } !#5 
 %*+pdb-9  d )->5)Q )-9)% D3Q)d-9 5! r/ 
u E| d3 ),) ~!
"D$+ d-/y) E*M*+ )Q )*+ w w!
"D$ /r3
zdz   )%)@    d))x+ d-/M d@)  u+)*+ d)Q*+p ) 
*+ !
"D$ zd/r&*+p z zy  #   ) %-)%+*+
D9 B9 N 9d)D
jDB%~ i N !
"D$ r
$-9*+ pd'5! x } !#() d3QQEI) E)Q *+ -/() ) d )-/
 )u *+ x*+% @  ))%*++) *+*+ )Q  i N .
  i N ]' . rd u  -9)u + b   )Q-9)M ) zz  5 9
99 99 ]k j " ' m  ./ 9B9 N 9 G) i N r/!
"D$ z du 3MD
  )*+*+ )Q v )Q   d d s-9 )D()
n!#"D$  )p o)r!
 )~ 
D








 r + *+*+ )QM D -9

-9E-9b  %  !


"D$ z
 s-9 *+ )QB3   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  
EI *+-9) Q -9 Eu  r/QD d )DQ *+ x-/*+ EIx, )  d
  ~)-9 )  u  )X)Q , zz%zr

El Modelo de Datos Relacional

 *++*+ )-9)*+)Q !


"D$ d  d) I  d -9)rQ     -9v   3
~  /d@9 99>9/  -9)-9*+ d) v'r r | z r
 *+~ ) -9-9b *+ *M dM Qv -)* v  5 d
q 9/
%/%'d/%r
9E99D9 9  y*+     *+% )D*+ d3
 )  u3Qw* ,) QuXr

)  B/%@9 /X/E9/ s )v%3  Q,   3  -9 s  ,-9*+
) E/>EUO959B9 x)* '     r )vQ-/)  d'xD-/ *+)
'   -9v  / )  y QBxD-/-9 *M)v  /3 d)  QE QD d
t9%D9 9S Y%/s
   E9 *+  QE 
 3Q-9) d)| dD r N 
EI *+   v% -/)3Q )Q ~   Qr
! $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%/vmval fmvcf%mfcxwcl n/_ f


SUPPLIER

PART

SNO | SNAME |
---+------+----1 | Smith |
2 | Jones |
3 | Adams |
4 | Blake |

CITY

SELLS
---+---

London
Paris
Vienna
Rome

PNO | PNAME
|
---+---------+-----1 | Tornillos |
2 | Tuercas
|
3 | Cerrojos
|
4 | Levas
|

SNO | PNO
1
1
2
3
3
4
4

PRICE
4

|
|
|
|
|
|
|

1
2
4
1
3
2
3

10
8
15
25

$wQ } &x! $      u v-9*+  /% x!#$$)!|   d u d


-9*+ ) /EUO9 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 -9I )Q -/ %# ' y -/I )RD # -/Q-9EQ ) )v 
*+)r  D d-9+ Q E -/I Q-9))*+ 3 )*+
j %/%k ,9>U O9 r *+*+ )Q % *+
)-9)5 )-9y~  -9  9s
*+ *+ )Q v y-9I  D u dr EI *+% -9I )  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 
-9I )  ,. Q  v v )rhrhr v Q 1  2 v kD v D rh1rhr y v 2 Dy r y k
1
2
k
1 z
1
1 z
1
k z
k
) EI *+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)
) -9 -9    d, -9Q )1 Q 2 -9Qy-/%EQ ) ~ )1yy y* 2 *+
) R { D D rhrhr D r
1

 EI *+ {(0,a),(0,b),(1,a)} , )w d -9:(# v() d-/() ,  -9I ) 
D1 y D2 *+ )-9D)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
t9D9 9
) %-/D3    ,u d-9*+ )  -9*+x I*+d d-   N |
XS Y%/    >9 ) -9 v   / ) -/*+D )~vx-/%-9 *+
)~-9 ) ~ -9*+) Q  wQ )r>))*+ , *+    
-9 *+))-9 -*+,w~ )-9    Rd>Ds9>/9 r

RB>D/E99 @ -9Q )Q)Q    
rhrhr r x *+)
R b
} H } H / )   *+A1A2uA k  s'   r
DidE-9QE Q A i
i
k
) )-9 , -/*+s ds    d*+w d-)-9*+ R(A , A , ... A ) r
1

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

Dominios contra Tipos de Datos


+() *+() 9w9 + -9-9)Q EEr -9-9   M s*+) 
*+*+ )Q X  -9I )Q u d  EI *+ ds-9Q   |y d) d 
 D)*+  d   r# p *+)D  *+% y y % 3)() *+D()
 99 9 *    | |*+)r () *+y d) )bQX() *+
 *+ )| -93  p%   )-9 Er } -9)*+ d) () *+ d-/
 pI   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
SNO
 y SNAME 3 d } } d Q w d  y!#"D$b%Ew-9 d) ~-9-9 dG 
 |)Q  } H  ' ,Q SNO 3 d & r )-9 | y
QQ*+p +() *M  -9-9)% b*+)|ED +   XrB*+)
 -9I )  w s-9 )% ~-9-9 /  w)Q  } H  #*+ d) 
SNAME

*+) SNO , 
-9I   Qs)*+ d, ) dr

Operaciones en el Modelo de Datos Relacional

D -9-9 u~q 9D99 sB9r9>/9'959  )*+D)-9


*+Q * Q-/ *+ M %-/)r } ()-9)-9 *+v-9*+|vQv   b*+
-9 )3  Q)y *+  ~Qs d-9) d)y-/)-/ d*+  pw *+
()-9 -9Q'  Q' d-/  dEd@ d3  ~  Q' u)r
EI *+d    )Q')*+   ''u  B'   u )
M d) -/ Z
 QE)_ Rr x5*+  )Q  )Q-9) dvE  ,
 E%-/)  )Q  -9) r
,/E9/ X ))Q-9 dE%-/d/ -9 %X-/)  X3 s d# 
 ) )BX

-/  B,  -9%~%s d-9) dr
W9EB
,9>99 d@ )) -9-9/) ,X-/)  X3 s d# / E*M 
!  |
) ), d -/-9) ,-9s   v , w   d3Qv dy  -9 Er
!

lgebra Relacional
,9>99  )Q -9r r   z r )/Q | +-9I 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 pI H;=h  } HM:?%)
 )Qw )~Q w R x t(A)  d)Q~ u d%    A z v~Q  t r
t
  &A >   9 B / -/ *+)  d-/-/ ) d-/r!
d R )

 d-9y   -/)Q )  y%    X 1r > R H;=hQ a |
?hd) t X  Qv u
R
z
 d
    X  wQ  t r
 & > -93Q x  -9 -9 d3%)  %-/) r!
d R )Q
 ,)w  y x k x  S )Q-9D)~5%EQx k r R S @ %-9I )Q , k
Q '-9 x E*+ d -9*+) )Q ,5*+ )vQ y v d x-/ x,Q*+
k
k
R
-9*+) d) s *+ )~ Q w S r
k
     )  dy -9I )  Qr%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 -9Q )Q,  %r
%,%,Q R x S R S , -9I )Q vQ s     R x SIsr3
)  u d       R x S Q ) *+*+E%)Xr
    ,
 >  ) D -/I )   B)-9D  %%r/!
d R x S 
)  uvQ-9+ )*+*+E)Xr R S  )-9Q       D 
R ) S r
> -/) -9Qv %3 vQE Qv-9*+ ) r !#  )Q-9
R
Q Q A B x C x  S )~Qv-9y,    C D x E r x y%   D-9*+
%Ey*+~ d-9) d3) X    C r >
! H_  p S ` k p  )A` >
! r%o9" p
Q*+()-9 )  qE*+ 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-/ dx-/ d*+ 
C
*+))~-9 *M) -/r
 d`b f u gkavjkkcdfe5kE~kaXBfe k|jkl cka
%*+%Q    ()%| -/ du %)y%3) -9 E )
I r3!# %ys  ) dsQ,d
R

A | B |
--+--+-1 | 2 |
4 | 5 |
7 | 8 |

C
3
6
9

S
C | D | E
--+--+-3 | a | b
6 | c | d

*+ -9-9 *+s d


 -9Q-9 )
R x S

."

A | B | R.C | S.C |
--+--+---+---+--+-1 | 2 | 3 | 3 |
1 | 2 | 3 | 6 |
4 | 5 | 6 | 3 |

Ry S

xQ ) *+

D | E
a | b
c | d
a | b

4 | 5 |
7 | 8 |
7 | 8 |

&#Edsw  d-/-9 )A~ >


y

6
9
9

|
|
|

6
3
6

| c | d
| a | b
| c | d

! Q ) *+

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

, d*+)-9 *+)%X -9%


! xQ ) *+

r  d*+@s  d) s -9 ) p K ` k  )A~

SC

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

  !#  R ) %-9b~QE Q } t x xM  S )Q-9


s%    xr )*+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
x  ~ d-9 R r
A B
%,%,  ) dQ
R

A | B | C |
--+--+--+-a | b | c |
a | b | e |
b | c | e |
e | d | c |
e | d | e |
a | b | d |

! v u~-9*+

D
d
f
f
d
f
e

S
C | D
--+-c | d
e | f

A | B
--+-a | b
e | d

E ) -9-/xb )-/*  Q d  dE d-9)%@ I) 
 <
9 - D
 9 D9I  M <r
 `+ f 'u5 g'Dkan/fk9_ l av_l e eIakmfL5)ca, an9eIfka
d -/-9   M() *+ E*M %   y  d -9) -/*+-/%-9 
  d-/  dw     r u*+)    EI *+ 3 d-/-9
/E99 ) %    v-/)-/ d'
 Buw %9>/B9%D9 /B

.

)*+ s ~ u  /   wu d) EQ-9  Tornillos r   )Q
  )   %) d  v d-/)
-9w  )Q v dE%-/

SUPPLIER.SNAME

PART.PNAME=Tornillos

(SUPPLIER

SELLS

PART))

$*+*+'v d3Q' -9) d' )-9)  rE!## u *+'v-9) Q~)Q X-9)Q
t9D9 /S Y9J
   E/ Q ) *+
Q )    Q d*+D N |


  d) ~ EI *+
SNAME
----Smith
Adams

Clculo Relacional
  -9  -9) ,  POG)ED9% r xwXu%E%)  %- -9 
 d-/)
W9EV9E99
XD9D/ %) vuE% d  y-9*+) )Q 
 x
QE Q  %sQ r
W9E9>/9 %9 &() ~ B,/ /9,9E & ) v%su
!  x
   dEyQ r
!

) /*+3 - -9 y -9) ~    w  d)-9 Q,


*+x w ) I  d-/) rB )D3-9 +  % w 5xQ*+p
 & u d+
 9 D9
%% M <
 9 - 9 %% <r

Clculo Relacional de Tuplas


$-9)  %@  %d@ &   ) d  3  )Q s5*+  } G 5 ) x  )
uEd  wQ  A d M-9I )     x F d ) *+ )r9$D d -9
   )Q -9)3/   ,  t(A)   vQ3  F(t) r
,/
!
    *+ ) s  ) D ) Q d*+ - v>95v P [/9 B
>/9  %)& *+  *+w3  )Q v-9)  
{x(SNAME) x

SUPPLIER
\nonumber

y SELLS
z PART (y(SNO)=x(SNO)
z(PNO)=y(PNO) \nonumber
z(PNAME)=Tornillos)} \nonumber

\nonumber

t9ss959sSY%/x   E9
u  )-9)  -9) Q N F
)-9)Q*+XQu d%*+*+  Q~ -  '>9  P[9/ )BB,9>9/ r

..

lgebra Relacional contra Clculo Relacional


   -9)%x - -9 y d-9)  d) M *+*+ 9ds%s
Q%UO9 (  d
-9  ,s-9)3 Q   w v  d *+ ' Q)  ~ -9)%
  
 %*+pd5*+ E , Q)w d- -9 ~ d-9)9xu-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    dE 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% ) dd   E d-9)    s E*+ %
 %*+pd  %)D!
"D$r x/d3y d*+ -9-9d '   u%*   d#- -9 
   w d-/))r }  Q ) d*+ )wQ v )%-9E%-/Q /E3Q-9-9
)!#"D$|   v) E*MEQ  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%  -9y   ~ -)) - -9 D -9)r
! } )%-/Dx-/*+) ,*+ d3 d@ *+E*+ ) -9-9)3Q 
@ )w-/)  wx3) )~ -9y-/%-/ vw )*+ v  d-r
YG)
F
/
/
W/
! )-/) v B  -9)  % -9*+ /r
QDx
DS Q   -#r>   d y-9@~-9 *+)%  )~ d-9y%E~ d) @ )
-9)Q)-9)r
!

Select

-9*+)*   !#"$| dsw)  -9-9!


$ &   ~3 v Qw~ -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*+ Q3  )  -9-9!#$ &-9u%E EI *+


t9@D9 /%SY
r$%sQ  s%Ev Q d*+s v ) ) N 
9
   E/ r
Select sencillas

}  # d) *+ ), EI *+ )-9  %)v)3Q -/-9!#$ &


 `+ f 'u g%_c
w9kn9e5 ;a~n/fk|n9_a ekn9an9e k
E -9  %Q  Q } &) )Q Q  *+x
   d *+  *+s~  )Q v-/)  
SELECT * FROM PART
WHERE PRICE > 10;

x d) *+w  d) vQ


PNO | PNAME
|
---+---------+----3 | Cerrojos
|
4 | Levas
|

PRICE
15
25

Q )Dp@ w)  -9-9!


$ &-9Q *+QQ Qs vwQ)r
!
    *+ -9   s    } +x  DQD } & Q
 *+,w)Q -9-9
SELECT PNAME, PRICE
FROM PART
WHERE PRICE > 10;

y Q v-/%3 


   % d

PNAME
| PRICE
--------+----Cerrojos
|
15
Levas
|
25

   ~   ~!#$ &|!#"$M-9E ) vx -9-9)X  Ew d -9)


)
~  -9-9)@ u B )B79>/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 dI Qux dv-9  
  r@ EI *+ 
   *+'-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+ 3QydI Qu+%E
)% D)  uQQ w-9 *+)   %) rGQ s)  du~   -9 %-9-/% u
  /r>
%)    Q  Q   D w-9)3 Q)r

Joins (Cruces)


  d) ~ EI *+*+   ~-9*M R9B 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
- B
>9 5
 -9-9 D *+*+ E*+%
Q)-9*+ D*+  QED - v  >/f
S rd*+ M  -/Q|-9 d) ! $ 
 } &
!#$$)! } ()  -9-9)%
*+)-9*+ d) w   %    Q5%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 yvQv-9*+ Q)r

!
X  d-/-9  -/)   - -9 b3 ()-9 3 Du dw
-9v  u yw  ) v -9-9 r
 `+ f 'u g%Dca%l5d
!
   d d*+s-/)-/ d, -/ ~*+  ~QQ-9 s ~Qw } &#  
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

Agregacin 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
ZrZD |
   )        y )  r!
X ) d*+
ZrZD x
` ...$
() *+,EQ-9)%~ %-/y   Q
*+  
,
 ' *+*+ 3x3#Q ) d *M3*+Du d '    }

} r
/
...
 `+ f 'u5 g%Dcamf
!
    *+-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*+ dI %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 EQ d*+Q ) *+-9 % y x()E *+-9  dE
 /  &-9 d d) )  d3 QQQ -9) Q
)Q E*+ )Q r

     Ey @   | )-/)    %)  t xb  d


 /w )QMwQE Qv  d d*+v*+ | d) 
 +dI 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  ,  x3 ~ Q
-9)3 dE%+%   w w   Q5%by-9 -/%-/b d
*+*+)rE$' d# /) ds dE*+Q' v-9   }  d d)u -9X )-9
)  % r v  B|   ~  -9 vy   ,)    -9 dE v
-/%  V
   r /      )u -9 )-9) d dd
   /-/ d' yw-9   } r
 `+ f 'u~ g'ae 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)
> 1;

x d) *+

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
|
---+---------+----3 | Cerrojos
|
4 | Levas
|

PRICE
15
25

 )v u3%*+-9)  )Q Q9 *+@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 ) dD))Q-9 ~  EI *+
%~ , *+) ~ v Q %  % d*+
SELECT *
FROM SUPPLIER S
WHERE NOT EXISTS
(SELECT * FROM SELLS SE
WHERE SE.SNO = S.SNO);

)  d3Q+ EI *+ d) *+    |u-9)   -9u u )
 *+ ) Q-9 @r Q  y    Q*+!r !  y!#$ &  dE) d
-9 3 $
   b !#$ &b)Q ))r *+() *+ -9EQy)Q 
 -9) Q
 w du%wE-9wQ  ~-/)    )  -9Q du, ~!r !  w *+
 *+  ~ w-9Q 
 ~!#$ &  dE))r

.

Unin, Interseccin, Excepcin

  -9) -9-9 %M )X+)Q 3 d-/-9 x+  /)-9+ + M
-9I )  sQ , u, ,3 -9)3 Qr
 `+ f 'u~ g'Dke fkJ jkl c/%n/l3Jn9l
$~  d) v-9)3 Qw ,  Q d*+ D
SELECT S.SNO,
FROM SUPPLIER
WHERE S.SNAME
UNION
SELECT S.SNO,
FROM SUPPLIER
WHERE
S.SNAME

    %

S.SNAME, S.CITY
S
= Jones
S.SNAME, S.CITY
S
= Adams;
SNO | SNAME | CITY
---+-----+----2 | Jones | Paris
3 | Adams | Vienna

}  # d) *+  EI *+Ev & !


 &
SELECT S.SNO,
FROM SUPPLIER
WHERE S.SNO >
INTERSECT
SELECT S.SNO,
FROM SUPPLIER
WHERE
S.SNO >

S.SNAME, S.CITY
S
1
S.SNAME, S.CITY
S
2;

  v -9*+  Q

SNO | SNAME | CITY


---+-----+----2 | Jones | Paris
La nica tupla devuelta por ambas partes de la consulta es la nica que tiene $SNO=2$.

)%*+ ) d  Q d*+ Ja &


SELECT S.SNO,
FROM SUPPLIER
WHERE S.SNO >
EXCEPT
SELECT S.SNO,
FROM SUPPLIER
WHERE
S.SNO >

S.SNAME, S.CITY
S
1
S.SNAME, S.CITY
S
3;

  v -9*+  Q

SNO | SNAME | CITY


---+-----+----2 | Jones | Paris
3 | Adams | Vienna

.

Definicin de Datos

 ) I v!
"D$)-9 x w -9Q )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 km~_kavl a a


t/%D9 /@SY9B   >9  w Q
Ev-/ d%sQs ) d N 
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) vw-9*+ Q~   ,  d-/ r
! } $$ & )Q )-93) *+ ~%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-/*+wQ) 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-9rd!# )  -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)Qs 
CREATE INDEX index_name
ON table_name ( name_of_attribute );

 `+ f 'u iBi gdcal 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 9  D d-/Q )    ) #Q 9


!
y   yu ~ )|u3Q|-9*+ ) 9d
E9D   Q  /-9 X  |-9*++3 d#  d3 r-9) 
-9 %)()*+v ) 9B~B/ ()x d*+ ) +  u )Q D*+-9 d)
-9vw ywQ~ 3  *+-9 )*+ d) D -9@r
$u %)  d) |% *+%-/ d)
3Q)  dx -9*+ )Q ~*+-9
)rB+3  Q  d*+*+-9 ) )-9b DuQ  -9Q %
~-9-9  Q,%3 ~ -9*+ d) v*+%-/ d),w*+ dE% 'u 
y  s-9 s d
3Q *+w u     ,9 9G) r>v )w-9 3
  )Q  pd-/)-9~*+ d*+ ) %u  p   v h r
x
,f
jJ
Ev )' )~u r3$~3 s d
y!#"$|  Qw 
-9*+) r
CREATE VIEW view_name
AS select_stmt

) select_stmt s )v)3Q -/-9|  d-/u %-9*+ v ) d > r 


 d3   select_stmt )  EI -9 Q-9 ) -/ du3Q)r!#*+ *+ )Q  *+-9
)w  >9 W/G9'
  xy v EI -9 Q-9~u dw   ~ v d~ )w-9)3 Q-/)QE
~u3Q)r
t9,
!
dw3  )Q  d)-9| ~ )uQ Q*+ ~)  uyQ N 
D9 '@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@   9EUO9LY 9


Q~ v%3

London_Suppliers

-9*+3
 vQE%  

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 EI -9 Q)
-/)  D D d)-9M wDu -9)QE   d % r9&
  

-9 %-9-9) D-9) 5  M-9)3 QM-9)QEMuQ 3  -9
v ) d'~Q~  Q) r
Drop Table, Drop Index, Drop View

!
 Qy 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.

Manipulacin de Datos
Insert Into

) yu    -/ d ) % u  ,9 9B    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 dy~ d-/! $5  N st9@XD9 /@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)Qs 
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;

EME 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 W9G9'' D ~*+)Q ) 
-/)Q v  pQuQ#)-9 # d -   )s  ~ v% r3Q
-9 s d#3Q *+~   d )u QX-9*+
 -/    XQEv d -9)*+
 Q %3 rv EI *+()xb -/% |  %+y d)-9 u3Qr3Q
-9 M*M-/ d)-9) Q  )-9 Du )rB!
 d*+ D    ()-9 D )
Y
-9)  -/) |uQ ' d*+| *+|*+ b E/ ~% EU O9~L

 -9 xy*+% dwuQ%) , ~-9 d B'-/-9) Q   E5u 
h MQ )  b d3-9-9*  Q rD I | ~ j |Q ) d
* ) *+-9 ,-/% , 3Q *+)r
SQL Embebido
 d3Q3 d-/-9 u  *+-9*+D    s *+ d !#"$   ) I  s() sr r
r xy) )-9 ,%   wE*+     Q!#"D$  ~ 
C
 ) I  v()3
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  ()35,r rB b3Q *+ D  uD D Q -9b )
)Q 5%-/ s -/ -9EQ BxD) E*M-/ '  d'  *+-9 ) d
)~  vQ   v   -9-9    Q)!
"D$ *+ d r
!

|
E%*+D   QD!
"D$ d*+  M + ) I D w()3@-/) D dM)  -9
-9) ~  ) I  X() )3Q -/-9 dw i N DBB% !#"$ r )  -9
, ^ r$%~)  -9-9 ~!
"D$
-9 !#"$ d*+ -9w -9u  J
 QE) E*+ )  -9-9 ' d# ) I  ()*+ )Q   E/ 99  
() %*+ ) )  *+~   y dE    y EI -9  u-9
*+)s !
"D$ r

8M

 )u *+'' EI *+' >  Eu*+    d3 Q -9)3 Q' 
*+ x|*+ M-/I ) | D %r/$*+xE D ) I  D()3X)
  )' E%-/-9Q    *+   ) -9  %*+' *+ d-/%)3*+
%-/-9 ) @v-9 )-9v -/I Q  %' u   %'X ))3Q -/-9
!
$ &Xr  *+ -9)*+M  d  -)%M -9d)M  E9 r%&
 ~ 
 *+~ Q d-/*+) & E d-/  / )Q xM% )  -9 E
()-9~~  d) vQ )r
E, )3-9 * @ d %s , %!#"$ *+ d9 I ,h
 9 D9I9/  
 < _ 9 D9
 % M < 
 9 - D9 d <>r

8

Captulo 3. Arquitectura
Postgres Conceptos de arquitectura

} ) Q @ ,-/*+ )%QB d s-9*M d) %@ @ ,%   -9Q E d d*+3Q
 dr) ) d)+-9*+b~ w   )Q -9  () X   y-/
Q b*+ -/()* D )-9@rI  y  Q3Q 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-9y3 v~   vQE%>Q  3 %E5 ) d) 5 r r d *+ psql %x
! )* @ u X , @ dQX   ))~5 d*+*+-9  postr
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 9D' 9BE'E9
Q%U O9 % 
-9 %
    )-/w ) du-9  d d
 Eu' -9. )
!

e _ca 'u i gf`bf9~%/l ad n9v_ka~n9fke k

x-9) -9  
-/ d3 5) d)#)  du EuEr }  X    ) % 
-/ d
   )|x 3 dEu d-9. ) ~-9*+ )-93w)Q u d)-9  postmasr } )   d d postmaster  *+  v  EI -9  %)% d3 E%)  -9)  )Q
ter
,-/ d3,  )Q )-9*+, -9. )u ) dx vu'r
$  libpq E*M | )-9-9  d5) d) dw*+   d-9) d
#) s-9 , -9. d)r } )   d#-9-9 ) )|Quw s -/ d3
| )-9Q() 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*+  EI -9   *+*+v*  v  u
postmaster
@   Q *+ d)    ~-/%-/ y ) d)   EI -9  %E  
-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 xQ d EI -9  -9M d) )Q
-9   )    E3Q d Q   )    3Q d)
) -9   X y 3   -95 Er y  *+   rE Q%'5*+
'    E3Q d )Qu*M ) )  d)   |  d'3  d   )

 6+-9 %   -/%3Qvv-()uv -9)v-9+  Q


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

8

Captulo 4. Empezando
o *+ *+ dXw Q%'-93Q d3q
}   ) v3) -9 E sQ   d M , dds-/ 
    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    ~ EI *+b   u d   -/*+ )-9 y-/ -9 -/Q 
#E% d) w   y -/ d ) y  d) w )r$ EI *+
  -9*+ d)-/ -9E%-/Q /r
 #
% ) v b  ) I  -9)  y3Q d3
Q !#"$sr

Configurando el entorno

 D3 d-/-9b #) *+)  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  EI *+ )|-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
/usr/local/pgsql/bin
  M  ) r!# 3M )+u)  d ()  t E.  dx/Q-/*+Q-/(-93()
   ' )
% 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# -9Qy 3Q d' Q(r }  * B() *+' d G )-95 /-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|xp Q

8

)Q-/   )   D-9) -9   postmaster#  d -/)  )*+)3Q
v  E     v ) )  -/)  -9  *+ )Q r

Ejecucin del Monitor Interactivo (psql)

}  *+ )    *+)QE()x EI -9   - *+ d) -9 


postxM D()x QE% Q%3  Q   -9*+ )% Q d-/ Q
master
-9-) X-/*+w  @r *+w*M )-9)*+@ du%*+ ) d  dE, ) /usr/local/pgsql/bin
 #Q:( %w ~   dD ~ +)Qp  Q v ~ d) r9|*+x ~-93
d
)-9   vQ )   v()-9 @ Qp *+)s  d-9r
 ~  u)r  EQ|Q  /)Q  ~-9) rB%*+) 
   ()  d M *+Q-9) d#) w d&  dM  )w-9-9 v
w ~ vQsQE%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)3I v v dE
FATAL 1:Feb 17 23:19:55:process userid (2360) != database owner (268)

!
)-9   *+)QE, EI -9 Qy  postmaster *+ ) ~   Ey d  u-9
Xr> v   v d)-/         v  dr

Administrando una Base de datos

} )( D       EI -9  )  d*+-9 ,% )D%3 w Q #
 *+ )QX-9y 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  )Qu d
-9 /-9 %3 dv   ) )-9 ~    -9 D )*+   w Qr
!
 Q y dw X-/%3 ) )-9    *+Qv d-/Q Ey  Qy3 d-/-9 -9  -9x
   -9-9 3 d vQr

M"

Creacin de una base de datos


*MD     d -9 /w ) y Q%*+*+x@r#   ()-9 -9
  )Q v
% createdb mydb

!
)-9  )Qv-9y,Eu ,   -/ %  % 3du 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 dM M3Q *+Dx
  * Q-9*+ )Q y  *+)3Q y y y%    -9 Xr%$)*+ 
   QD  -9*+ )%v~ -9 -9Q ~ dpd -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     EI *+ psql 
-9   v dE*+Q y)Q -9Q QXx EI -9 Q ) d,!#"D$|) -9Qu*+ d)
! -9E ) *+ )  3  Q)w$ t "-9 
 dE*+Q D )u ) !#"$ d3 x|Q ) *+ )I ~ D     db3 
E%*+)r w)Q 5%w -9  *  d)Q d$
 * %G/9/''9
) i N
!

       D Q d-/ Q psqlsv EI *+~ 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

-9v -/%   *+ %+ -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

Q *+) xuu d ~~) dw  ) rE v-9)-9 * s-9,  -9
psql
  -9/ | *+ d*+)I  r!# ~    %' d3%-/ )-9 
EI *+M d3-9 % %x+ -9 -9  )  u) d d%~-93 Qw!#"D$r $
) d*+ -9*+ d) %-/*+ )%Ms#%)r9$   ()x  p  w ) d
()  ) )   )E%@r$-9*+ )Q'*+Q x'   -/ %* 
  )~) w  )%-9Z
# rhrZ1r %
x

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.

Captulo 5. El Lenguaje de consultas



 ) I v v-9) Qs v  s  s ds )wu)Q  
d3 )@!#"$ &
) *+ -9()~ d#Q )) d3Q v-9*+MQw  d*+ d#Q ) ()  )-9 
 -9-9Mx5 )-9) rd +-9E%- dE3Q-9 *+% ) ) I  -9)  %
)
     "D   1r Q -9-9y-/)v y*+ Xu %D -9*+
3%Q ~!
"D$ d -9) d )-9r$y)Q )-9   *+) 
*+ *+ d)  -/) ~ )D dD ~)  QEu 3M ~!#"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
 dE3Q-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>$, EI *+s   v% B
-9 Q ,*+) d %*+p 3    d)-/)QE) /usr/local/pgsql/src/tutorial/ r
) Q d-9() 
dM   /-9 %E ,-9*+ r/%E *+ d
README
-9 
Q  E()w3  )Q
% 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-/-9r3$-/ -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  
psql
-9*+)'u d* ' Q xDQ -9 \?   d#*+ psql Eu X Q
 -9*+)s) r

Conceptos

$w)-/| )*+ d)  d3Q d sw ~-/%3 d   ~  )-9 d-/-9 ~)Q)-9
 v dI Q@r ~)3Q)-9wQ ) ~w*+3*M-9 -9-/ vQE Qsx-9wQE Q 
  Q+  -9-9Xr v)-9) )-9     s>99R
 *+) )Q   v )-/v%D Qv~) -9r w   w)Q#!#"D$()
-9 w d5 / )-9   *+s p *+) 59B x >/ )Q)R*+ )Q r } *+*+
h ) s !#"$+  ) 59> x% >9D9 !#"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

Creacin 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,
temp_hi
int,
prcp
real,
date
date
);

- temperatura mnima
- temperatura mxima
- precipitacin

&# 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$|3EQs ()Q  , v!#"$|-9*+ )Q  d3*+%) -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 )*+ dEQ  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)
s
@p ) -9-9*+) 3-9 d )
* @ Q -/*+)   r
 %  # *+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 k9cl   wv ) )w-9 -9) %)-/


INSERT INTO weather
VALUES (San Francisco, 46, 50, 0.25, 11/27/1994);

&#%*+pd  d ,  %-9*+ n9fJw -9 ) dX-9)Q  sQX 
-/() d@ } ! 5 r ) *+ )Q s     s * @ w   'QX d
 d3-9  -/*+ ))-9 )-9-9| -9 *+ d)    % Q)@r
EI *+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 -93
u v Q  )y  v   w       () ~  du  d 

MM

xM )-9 -9-9b      -9-9-9 %    d3Q-/-9 rd EI *+E
 -  @ ,s
 Q() Q% -9E
SELECT * FROM weather;

)Q() v Q )() M


+---------+------+------+----+--------+
|city
| temp_lo | temp_hi | prcp
+---------+------+------+----+--------+
|San Francisco | 46
| 50
| 0.25
+---------+------+------+----+--------+
|San Francisco | 43
| 57
| 0
+---------+------+------+----+--------+
|Hayward
| 37
| 54
|
+---------+------+------+----+--------+

| date

| 11-27-1994 |
| 11-29-1994 |
| 11-29-1994 |

   d3 d-/-9-9 %      sQ  Q)@r) EI *+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 D999    %)  9E9E9 9 r
SELECT DISTINCT city
FROM weather
ORDER BY city;

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     -9b D-/%3
   )Q -9*+()%E*+, -9    d' ~-9 r

Joins (uniones) entre clases

  ()E%d)  QE'-9) QD-9-9 dy )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 QvQr *+ EI *+%*+   D    *+v d)-/)QEsQ
 3Q~     @)M Q *+ Q E~ Qw dQr  d-/Q) -9 d
 *+-9*+~QE Q d*+ &xQ *+ &()' -/%) %)-/M-9
QE Q d*+ &x d*+ &() Q%s d* s)Q)-9sr
Nota: Esto es slo un modelo conceptual. El verdadero join puede hacerse de una manera ms eficaz, pero esto es invisible para el usuario.

 *+()%-/ d d3Q-9v3  )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 estn en que la cualificacin es una expresin verdadera
definida por el producto cartesiano de las clases indicadas en la consulta. Para estas
instancias en el producto cartesiano cuya cualificacin sea verdadera, Postgres calcula y
devuelve los valores especificados en la lista de destino. Postgres SQL no da ningn significado 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 frecuentemente cuando las expresiones booleanas se conectan con un "or". Para eliminar estos
duplicados, debe usar la declaracin select distinct .

D  -93B )Q$ -9*+/  3Q ' ))Q)-9 -9 7 d () d
xy d#Q ) dQ%)Q)-9 ~-9 r35Q E*+w ~*+xE

M

Y99Bx
Y9/B
  *+%s v , v% 7 x+  v-9)-9 |-9*+ 9d)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 drE   v%-/Q d's s   v*+) 
UPDATE weather
SET temp_hi = temp_hi - 2,
WHERE date > 11/28/1994;

temp_lo = temp_lo - 2

Borrados

$sE3 v()%-/ dy 3%) -9*+) m%5dl 


DELETE FROM weather WHERE city = Hayward;

&# 3Q $ % () s dEQ ) -9   xb+E%r9D d 3 d


 B-9u-/,-/)  , w E*+
DELETE FROM classname;

!
 )w-9 -9-9) mI%l5 *+ d*+ )Q wE 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 -9Q )Q@r )
)-/y -9Q )Q-9-9 v y)-9  Q~ X *+  ds  d) )r
 Q d*+/  d )-9) d Xs-9-9  count -9)Q sum  *+% avg
*+  max * *+ ) min *+)*+   -9Q )Q v)Q)-9r
*+Q) v-9*+ ) d~ %-/y )Q , )-/) , -9Q  x-9  
!
"D+
$ Z c h
x ae k rdr$  /)-/ )*+ d) % )QV
+ c /
x ae k X   Z u
c   -9-9)-9 *+)% ) )Q   'xD )Q)-9  -/*+ Q
)-/)  -/I ) 5  Q *+-9) ~  p'uyv -/ -9Q )Q
*+ )QE  /
ae k 3 d -9-/)  w%  p s  x d) )-/ d3
-9*+ Q )-9) d v-9Q  Xr ~  v*+yw-9  $
 Z c   d v)-9)
 d)  )-9) d y-9Q )Q   +   y)+  d)  )Q+) d) v v ) )-/
 -9Q Qv d dE*+)@  pw  w d) v ~ )-9r' ~ d 
-9 3 %X
 ae5k 3 d*+ -9)  d) )-9)  -9I )RXr QE-9 %*+ )Q ()
3Q    s d3-9 )-/  r
 ae5k)   )  5 )-9)   B w)*+
 -  ))r$v*+*+~-9)-/E @ v  y*+* , d-9-9 Z %c
r
*+ EI *+ *+s -9v*+)*+ d*+  v d-9    dEQ -9

SELECT max(temp_lo) FROM weather;

!
#    *+s X  pv-9 -9  /s) v  dy d3Q, *+ E%  
*+,%
SELECT city FROM weather WHERE temp_lo = max(temp_lo);

 ) )-9)  w   ~ )-9*+ )y   v3 d' w fZ c r!

*+
# *M d )Qw-/)  ~ uw-/%   v -9*+r3 
-9 ) ) B>>E9
SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

$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  + *Mpd+*+ xQ -9*+ )-9M-9 3 % )9
 r%v EI *+ *+ ) dvy *+ dE% *+)*+ *+y -/%-9 
-9
SELECT city, max(temp_lo)
FROM weather
GROUP BY city;

  ) u  u w )Ds-/ %r/ *+vQE%,    )


ae kX
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 | EZ c
x   )D) -9   )-/) , -9I )QXr33QD '*  -/%    )Xv d3Q-/-9
 ae k) h dyD   uQ*+()%-/ d,- -9   EQ  
)%3y dQr
Z c r

M

Captulo 6. Caractersticas 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) r3Q-9-9 d -9)-9 x ()  )-9Q*+
 u  uQ w   *+ xu ) Q*+-9 ~  Q Qs u -9
  x-9Q )Q r9$s EQ 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
population
altitude
);

(
text,
float,
int

- (in ft)

CREATE TABLE capitals (


state
char(2)
) INHERITS (cities);

  v-9% )w) )-9w v-9Q   ,QE Qs )*+ % Qx
Q   3  BB-9  dr#Q #%   )*+ )*M Q  B  )Qu
   sE-9 ) } ! 5 )Q Mud r>  
%   D % 
-9 d # MQy ~Q
Q*+p )Quy wQ d
w)*+ 
 ) Q)    -93rE$-9 -9QQ )  yQ Q   d3QQ  
*+     p  D EQ ) d-/ dr   )-/    ()   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 jerarqua de la herencia es un grfico acclico dirigido.

  EI *+  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 dv-/)  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 @xQ
-9      pd+ d>Q  +Q dE  D ()  )-9)r9 -9()~ 
m _ ) I%) m dl5 E)
-9*+)'   x() *+,3-9 QD 9 dn/l akJ
~ Q~)Q-9r
#'
%~
    v s-9*+ a l c r

Valores No-Atmicos

)  +)-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  *+   MQE Q | )b)3Q)-9+3 d )-/*+u -9  
*+  *+ d)  y)Q #QbuE% r   -9 dwu -9Q ~ -9    dE
 Q3 +   d)v @  Xr QE%v3 -9 *+
*+  )~-9 v-9u -9Q    r
CREATE TABLE SAL_EMP (
name
text,
pay_by_quarter int4[],
schedule
text[][]
);

$y-/)   Ey-/ d )-93 *+%! } $J&-9 )-9 d)y @Q

Q )%*+ h u -9Qv )*+ d)3@ dXQ ~M x&x&  Q  ) X-/ %X  /
 )  #%EQE*+ 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) s3Q) 
~) ,~)-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 *+)-9u d-/Q 9h:
<>r
} ()w d*+s EI -9   -9) Q v! } J
$ &r3E*+ d*+3Q*+-9
*+%-/-9 )  M|  d*+ )Q d)u -9 su )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
|
+----------+

&#%*+pdy *+s-9-9 ) @~-/ %   @-9y  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 ,E99>  E YGG 
5w SYUs W99 /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*+b3E% /     
 *+ d*+Q d-9*+ %*+ )Q duI ~   *+y-/ )  d3 d |)-9 
E@  -9d~-9 )) ) -9 Qw y d) %~*+x'Q  
Q *+ r d
, EI *+ dy  -9  contrib v*+x) *+-9r
Time travel ha sido descartado:: : El texto restante en esta seccin se conserva solamente hasta que pueda ser reescrito ajustndose al contexto de las nuevas tcnicas que
permiten obtener los mismos resultados. Voluntarios? - thomas 12-01-1998.


)`x) l
,5,5J, l_51`FEl 5 KJ) b 5`F, Z )J'5bSlBSl:
)J5`+:5)`
5S_ lk 5l| 
:Sl:
5 5S5lS` s 5S5 JJ
p5 lK )`>J
,55D5)5 5:`S:) 5 _
SELECT * FROM cities WHERE name = Mariposa;
+------+--------+-------+
|name
| population | altitude |
+------+--------+-------+
|Mariposa | 1320
| 1953
|
+------+--------+-------+


)`B' l 5S: s:Sl:

r5V
)5bJ5) $Js
5 l
KV55JV 

) xl:`XA/K`L`5h J
57K S5JS: 5:`
5,Jx`5 
 lJk 5l

$_75/ l5S5 'K /E ):`,J/5/S5 J /
5 ) ) S

5$5
)5 5:`FS:) 5`:
SELECT name, population
FROM cities[epoch, now]
WHERE name = Mariposa;

Jl:Jrp lS:5:J5SlS5:LJ5Jl)5) _

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

:,
55'J` s5xk 5l7:)`:l5,l:) 5 ,:`
5DJl5__
+------+--------+
|name
| population |
+------+--------+
|Mariposa | 1200
|
+------+--------+
|Mariposa | 1320
|
+------+--------+

Jl_'5B J`p5: b 
,lS5:bJl5:`
_'5bJF 5 bsl:l|5l
5 r JF ): 'BeK5)`'5_
 5 Fe5lD
J`p5:J 
Fe :
JX5:`
_'55>:l
'` p l/5 :`lDX5: 5 E 5 `555J5
S:) 5 ,': 
5lB lJ
5:')r'
_5Jl76!8 39
:

Ms caractersticas avanzadas


)` lK S:S
`pU) 5S 5 J>: Kf:' 5) ;) >`J`l55xS 
:$K5 b
5:`Jb:'5$ ) 
5V: _l7J <;>= = s:5l JV'S 
5)`5S7)
J5) `+`: Z5@?$ 5 lh) 
5Slb+5,JeJl
'J

A

E

Bibliografa
5SS5+J
(F :S5xb5` 'x)l <;.= L ) 

Libros de referencia sobre SQL


Documentacin especfica sobre PostgreSQL
Procedimientos y Articulos
Notas
G

O:

:` sIH1H)5l| S l
:5p JBH:lHe He ' 
JH 
`5:JK J(LM: 
N
GY
:` sIH1HPOQ F `s R SJ4Q5e 1T/f UVVV!He ) H  
He1W = XUL 1F

Você também pode gostar