postgresql - tutorial.pdf
TRANSCRIPT
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 1/56
Tutorial de PostgreSQL
El equipo de desarrollo de PostgreSQL
Editado porThomas Lockhart
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 3/56
Tutorial de PostgreSQL¢ ¡ £ ¥ § © ¡ © © ! £ £ ¡ § § ¡ © ( ¡ 0 1 £ © 3 4 6
¥ 0 ! ¡ ¡ £ 8 @ ¡ B ! 6 ¡ E F @ ! £ 0
H I P R T V X ` a c
X P e g V p g V X T r P R V g t g u v x x y x I V X H I P R T V X P I g X X I e X R V I
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 5/56
Tabla de contenidos
??
j k l m n l k
??o 4 © ( ¡ 0 1 £ ©
??
£ © © @ 0 ¡ £ ! © ( ¡ 0 1 £ ©
??¥ § £ ¡ © E 0 ¡ ( ¡ 0 1 £ © ©
© £ F © § ©
??( ¡ 0 1 £ © z {
??( ¡ 0 1 £ © 3 4 6
??}
E © £ E ! © © 0 ! © £
??
© E £ ¡
??
??
??8 © £ B ¡ § ¡ 1 !
??
¡ 0 ! E
??
3 0 ! 0 © B © 0 ¡ £ B © ¡ £ © © § © © E 0 ¡
??
??
¡& ¢ £ 1 @ 0 ! £ E !
© 1 0 £ ! !
??
??
¥ § ¡ © § ¡ © ! 0 ¡
© § ! E ¡ ! §
??
¡ £ B ! § ! © © § ¡ © § ¡
© § ! E ¡ ! § © ! 0 ¡
?? ¡ B ¡ E ¡ 0 £ ! 8 ¡ © ! 0 ¡
??
© £ ! E ¡ © © © § ¡ © § ¡ © ! 0 ¡
© § ! E ¡ ! §
??
§ 1 © £ !
© § ! E ¡ ! §
??
§ E § ¡
© § ! E ¡ ! §
??
§ E § ¡
© § ! E ¡ ! § © 8 § !
??
§ 1 © £ !
© § ! E ¡ ! § E ¡ 0 £ !
§ E § ¡
© § ! E ¡ ! §
??¥ § 6 © 1 ! © 3 4 6
??3 © § © E 0
?? © E © ! 0 ¡
?? ! § ! E © ! 0 ¡
??3 0 © B
! 0 ! § ¡ 1
??3 4 6 ¥ B © ¡
??ª
« ¬ l - n l
??( ¡ 0 1 £ ©
¡ E © ¢ 0 ¡ © ! £ 0 © E 0 £ !
??
??®
¯ ° - ± k m
??
¡ 1 £ ! ¡ © § © 0 ¡ £ ¡
??¥ © E E © § ¡ 0 ¡ £ 0 © £ ! E 0 ¡ §
??}
B 0 £ ! ¡ !
! © © ! 0 ¡
??
£ © ! E © ! ! © © ! 0 ¡
??}
E E © © £ ! ! ! © © ! 0 ¡
??¥ § B ! ¡ ! © © ! 0 ¡
??³
¯ ´ - k µ ¶ - m - n k · ´ l ·
??
¡ 0 ¡ £ 0 © £ ! E 0 ¡
??
¡ E © 0 ¡
??
£ © ! E © ! © ! E § ! ©
??6 § © ! ¡ ! E § ! © E ¡ 0 ! E !
??
¡ 0 ! £ ! ! E § ! ©
??
© £ © E E ¡ ! B © 0 ¡ © E ¡ § 0 ! 3 ¥ 6 ¥
8
??¸
¡ ¡ ©
© 0 £ © E § ! ©
??}
E 0 ! § ¹ ! E ¡ ©
??
¡ £ £ ! ¡
??º
¡ © E ¡ © © E ¡ 0 ¡
??
»
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 6/56
¼
½ n l - ¾ · l n · « ¿ k ± m · m - - k À · l µ - ·
??Á
© £ © E !
??Â
! § ¡ £ ©
¡ Ã
}
0 B E ¡
??Â
© E 0 ¡ £ ©
??8 B © 8 £ ! © §
Â
! © © © § 0 © BC ¢ ¡
??
E ! £ ! E 0 © £ 0 E ! ! ! ¹ ! !
??Ä
Å ´ µ Æ ¾
??
Ç
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 7/56
Sumario( ¡ 0 1 £ © È © ! £ £ ¡ § § ! ! ¡ £ 1 ! § B © 0 © © © § © ! £ 0 ! B © 0 ¡ ©
© E ! © § !
¡ BC ¢ Ã
0 ! E © § !
º
© £ ! ©
! § ¡ £ ! ©
© £ F © § © È © ¡ © £ ! © B E @ ¡ © § ¡
E ¡ E © 0 ¡ © ! © © ! 0 ¡ £ © § ! E ¡ ! § © ¡ £ © 0 ! ! ! ¡ © 0 ¡ © ! @ ¡ £ ! © B © ¹ ! !
© 0 ! £ ¡ § © © ! § 1 ! ! © © ! 0 ¡ E ¡ B © £ E ! § ©
£ © E © ¡ £ 0 © ! § § © 1 ! ©
3 4 6 z
Ê
3 4 6
È 0 © 1 £ ! © 0 £ ! ! E E ¡ © È © Ì 0 © § ! © 0 ¢ ¡ © ! 0 ¡ ( ¡ 0 Ã
1 £ © 3 4 6 © © E © © 0 © © ¡ B ¡ Í § E ¡ E 1 ¡ ! © £ 0 ¡ © § E 1 ¡ ¡ £ 1 ! §
©
© £ F © § ©
Î
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 9/56
Capítulo 1. Introduction¥ 0 © ¡ E B © 0 ¡ © © § B ! ! § © ! £ ¡ © § 0 © B ! © B ! 0 © B © 0 ¡ © ! © ©
! 0 ¡ ( ¡ 0 1 £ © 3 4 6 Ø È ¡ £ 1 ! £ ! B © 0 © © ! £ £ ¡ § § ! ¡ © § !
º
© £ ! ©
! § ¡ £ !
©
© £ F © § © ( ¡ 0 1 £ © 3 4 6 © 0
! ! ! © ( ¡ 0 1 £ © £ © § © ! © Û
Ü
¥ § £ ¡ © E 0 ¡ ( ¡ 0 1 £ © È
§ © £ ! ¡ ¢ ¡ £ © § ( ¡ £ © ¡ £ E @ ! © § 3 0 ¡ © £ ! F © £ È © © ¡ ¡ £ ¹ ! ¡ ¢ ¡ £ © £ ¡ ¡ £ 1 ! Ã
B ¡ ¡ E ! § © ¡ E ¡ ¡ © § ¡ ¥ ¥
º º Þ
§ !
}
1 © E ! © ( £ ¡ © E 0 ¡ © © 0 1 ! E
}
! ¹ ! ! © § ! © © ! © § ¡ ¥ ¥
º º
}
(
}
È § !
E ! © © 0 1 ! E © § !
}
£ B ! !
}
È § !
! E
! E ¡ ! § ! £ ! § !
© E !
3
È ¥ 3 6 È E
¿Qué es Postgres?6 ¡ 0 © B ! © B ! 0 © B © 0 ¡ ©
! © © ! 0 ¡ £ © § ! E ¡ ! § © 0 £ ! E ¡ ! § ©
3 È
¡ ¡ £ 0 ! B ¡ © § ¡ © ! 0 ¡ © E ¡ 0 © © ! E ¡ § © E E © £ © § ! E ¡ © E ¡ ¡ B Ã
£ © È © E ¡ 0 © © ! 0 £ 0 ¡ © 0 ² ¡ © " ¢ © E E ¡ ¥ § ¡ 0 © B ! E ¡ B © £ E ! § © ! E Ã
0 ! § © È § ¡ 0 ¡ ¡ § © E § © B £ E ¡ © 0 ¡ à ¡ 0 ! 0 © È © 0 © £ ¡ È E ! © ! ©
E ! £ ! E 0 £ © È E ! 0 ! © B ¡ © 0 ! £ ! © E @ ! ¥ 0
1 © © £ ! § B © 0 © £ © E ¡ ¡ E ¡ © © 0 ©
B ¡ © § ¡ © £
! © E ! ¡ ! £ ! § ! ! § E ! E ¡ © 0 £ ! © £ ¡ E © ! ¡ © ! 0 ¡ ¥ § B ¡ Ã
© § ¡ £ © § ! E ¡ ! § 0 0 B ¡ © § ¡ £ © ¡ © ! £ 0 © ¡ £ á B § E ! © ! £ 0 ! ! á
3 © B ! £ 1 ¡ È E ¡ B ¡ © @ ! B © E ¡ ! ¡ È © 0 ! B § E ! 0 ! B @ ! E © B E § § !
BC ¢ § © B © 0 ! E © E © £ 0 ! ! § E ! E ¡ © ( ¡ 0 1 £ © ¡ £ © E © ! ¡ 0 © E ! ! E ¡ ! § Ã
0 ! E ! § ! § E ¡ £$ ¢ ¡ £ ! £ § ¡ 1 © 0 © E ! 0 £ ¡ E ¡ E © ¢ 0 ¡ ! E ¡ ! § ©
E ¡ © ! !
© § ! © § ¡ ! £ ¡ ¢ © © © Ì 0 © © £
E § B © 0 © © § 0 © B !
E § ! ©
@ © £ © E !
0 ¡
E ¡ ©
0 £ ! E ! £ ! E 0 © £ 0 E ! ! ¡ £ 0 ! ¡ 0 © E ! à © Ì § ! ! E ¡ ! §
Þ
© 0 £ E E ¡ ©
¡ 0 £ ! 0
! £ ! ¡ £ © 0 £ 1 1 © £
© 1 § ! £ § ©
0 © 1 £ ! 0 £ ! ! E E ¡ ! §
¥ 0 ! E ! £ ! E 0 © £ 0 E ! E ¡ § ¡ E ! ! ( ¡ 0 1 £ © © § ! E ! 0 © 1 ¡ £ ! © § !
! © © ! 0 ¡ © 0 Ã
E ! ! E ¡ B ¡
Õ ã ä å æ Õ ç Ó å è Ò é Ô Õ ê Ò è å ë
0 © © © 0 ! ¡ © £ © 0 © © § ! £ © © £ ! E ¡ B ¡
Õ Ó Ô å ê æ Ò ì Ò ë Ò Õ ã ä å æ Õ ë
È © © 1 © © £ ! § ¡ ¡ © ! £ ¡ © E @ ! § © ! £ ! ¡ ¡ £ 0 ! £ § © 1 ! Ã
© ©
! © © ! 0 ¡ £ © § ! E ¡ ! § © 0 £ ! E ¡ ! § © ( ¡ 0 1 £ © 0 © © ! § 1 ! E ! £ ! E 0 © £ 0 E !
© ¡ £ ¡ ! © § B ¡ © § ! ! © © ! 0 ¡ ¡ £ © 0 ! ! ! ¡ © 0 ¡ © @ © E @ ¡ È ! § Ã
1 !
! © © ! 0 ¡ E ¡ B © £ E ! § © @ ! E ¡ £$ ¢ ¡ £ ! ¡ £ © E © 0 © B © 0 © E ! £ ! E 0 © £ 0 E ! ©
§ ! © ( ¡ 0 1 £ © © ¢ ¡ © £ !
Breve historia de Postgres¥ § 3 0 © B ! í © 0 ¡ £ ©
! © © ! 0 ¡
© § ! E ¡ ! § ©
£ © 0 ! ! !
© 0 ¡ E ¡ ¡ E ¡ E ¡ Ã
B ¡ ( ¡ 0 1 £ © 3 4 6 £ © © B © 0 © § § ! B ! ¡ ( ¡ 0 1 £ © z {
© 0
© £ ! ¡ © § ! © 0 © ( ¡ 0 Ã
1 £ © © E £ 0 ¡ ©
© £ F © § ©
¡ E © £ E ! © ! E ! ! © © ! £ £ ¡ § § ¡ 0 £ ! § È ( ¡ 0 1 £ © 3 4 6
© © § 1 © 0 ¡ £ © ! © © ! 0 ¡ © E 1 ¡ ! © £ 0 ¡ B
! ! ¹ ! ¡ @ ¡ © ! È ¡ £ © E © Ã
¡ E ¡ 0 £ ¡ § © E ¡ E £ £ © E ! B § 0 Ã © £ È ¡ ¡ £ 0 ! ¡ E ! 0 ¡ ! § ! 0 ! Ì 3 4 6 Ã
E § © ¡ E ¡ § 0 ! È 0 £ ! ! E E ¡ © È 0 ¢ ¡ E ¡ © © ! ¡ £ © § ! £ ¡
È
E ¡ 0 ! ¡ 0 ! B E ¡ ! B § ¡ E ¡ 0 ¡ © © § ! E © E ¡ § © 1 ! © © £ ¡ 1 £ ! B ! E
E § © ¡
È
î î
È
¸
! ! È © £ § È 0 E § ¢ 0 @ ¡
ï
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 10/56
El proyecto Postgres de Berkeley6 ! B § © B © 0 ! E © §
3 ( ¡ 0 1 £ © E ¡ B © ¹ ©
z ö ÷ 6 ¡ E ¡ E © 0 ¡ E ! § © ¢ ! Ã
£ ! © § 0 © B ! © £ ¡ £ © © 0 ! ¡ © ø ù
å ú å ë Ô û ê Õ ü ý Õ ë æ û Ó å ë
§ ! © E © § B ¡ © § ¡
© ! 0 ¡ E ! § ! ! £ © E © ø ù
å ý Õ ë æ û Ó å ë ú Ò æ Ò þ Õ ì å è
¥ § © ¡ © § 0 © B ! © £ © 1 § !
© © E £ 0 ¡ © © © B ¡ B © 0 ¡ © ø ù
å ú å ë Ô û ê Õ ü æ
ù
å ý Õ ë æ û Ó å ë ¢ Ð è å ë Ï ¤ ë æ å Ñ
6 ! § 1 E !
! £ 0 © E 0 £ ! © § 1 © 0 ¡ £ © ! § B ! E © ! B © 0 ¡ © £ ¡ © 0 ! § § ! ! © ø ù
å ý Õ ë æ û Ó å ë Ï æ Õ Ó Ò û å
Ï ¤ ë æ å Ñ
( ¡ 0 1 £ © @ ! ! ! ¡ ¡ £ ! £ ! £ © ¡ © B ¡ £ 0 ! 0 © © © © 0 ¡ E © ¥ § £ B © £ Ã
0 © B ! © ¢ £ © ! © ¡ © £ ! E ¡ ! § ©
z ö § © B ¡ 0 £ ! ¡ © § !
¡ © £ © E !
}
Ã
3 í
©
z ö ö 6 ! ¹ ! B ¡ § !
Â
© £
È © E £ 0 ! © ø ù
å õ Ñ ñ è å Ñ å ê æ Ò æ Ô Õ ê Õ ü ý Õ ë æ û Ó å ë
È !
¡ ¡ E ¡ ! £ ¡ © Ì 0 © £ ¡ ©
¸
¡ ©
z ö z ¥ £ © " ¢ © 0 ! ! ! E £ 0 E ! © § ¢ £ B © £
0 © B ! © £ © 1 § ! ¨
ð Õ Ñ Ñ å ê æ Ò Ó ¤ Õ ê æ
ù
å ý Õ ë æ û Ó å ë ¢ Ð è å ë Ï ¤ ë æ å Ñ
È 0 © © £ © © ! ¡
ê
¢ Ð è å ë ý Ó Õ é å ì Ð Ó å ë ð Ò é
ù
Ô ê û Ò ê ì Ô å ë Ô ê ú Ò æ Ò ã Ò ë å Ï ¤ ë æ å Ñ ë
§ !
Â
© £
È © ! § ©
¸
¡ ©
z z
È § ¡ E ¡ £ ¡ £ ! ! 6 !
Â
© £
! ! £ © E ©
z z
! ! ! B § © B © Ã
0 ! E ! £ ! B Í § 0 § © 1 © 0 ¡ £ © © ! § B ! E © ! B © 0 ¡ È © © E 0 ¡ £ © E ¡ § 0 ! B © ¡ £ ! ¡
0 © B ! © £ © © E £ 0 £ ! © £ © 1 § ! © ¡ ¥ B ! ¡ £ ² ! £ 0 © È § ! 1 © 0 © © £ Ã
¡ © @ ! 0 ! © § § ! ¹ ! B © 0 ¡ © ( ¡ 0 1 £ © z { © £ B
! ! ¡
© E © 0 £ ! £ ¡ © B © ¡ £ ! £ § !
¢ ¡ £ 0 ! § ! § ! ! § !
( ¡ 0 1 £ © ¡ £ B ! ¢ ! £ 0 © © § ! B § © B © 0 ! E © B E @ ! !# ¢ § E ! E ¡ © © © 0 1 ! E
£ ¡ E E ¥ 0 £ © © § § !
Þ
0 © B ! © !
§ © ! 0 ¡ ! E © £ ¡ È ! © 0 © ©
B ¡ 0 ¡ £ ¹ ! E © £ © B © 0 ¡ © B ¡ 0 ¡ £ © ! £ © ! E E È ! ! © © ! 0 ¡ © © 1 Ã
B © 0 ¡ © ! 0 © £ ¡ © ! £ ¡ 0 © B ! © ¡ £ B ! E 1 © ¡ 1 £
E ! 8 ! B © @ ! 0 Ã
§ ¹ ! ¡ E ¡ B ¡ ! @ © £ £ ! B © 0 ! © E ! 0 ! © ! £ ! © £ ! ©
! § B © 0 © È § § 0 £ !
¡ £ B ! 0 ¡ 8 © E @ ¡ § ¡ 1 © ¡ 0 © £ ¡ £ B © 0 © ! ¡ £ ! ¡ £ ¡ £ B Ì !
0 ¡ B © § E 1 ¡
§ ¡ E ¡ B © £ E ! § ¹ ( ¡ 0 1 £ © § § © 1 ! © £ © § £ E ! § 1 © 0 ¡ £ © ! 0 ¡ ! £ ! © § £ ¡ © E 0 ¡
E © 0 E ¡ © E ¡ B 0 ! E 3 © ¡ !
"
! ! § © ©
z z
¥ § 0 ! B ! ¡ © § ! E ¡ B ! © ! £ ¡ © Ì 0 © £ ¡ E ! © § E £ ! 0 ©
z z
( £ ¡ 0 ¡
© @ ¹ ¡ ¡ ¡ © © § B ! 0 © B © 0 ¡ © § E 1 ¡ § ! 0 ! £ © ! © ¡ ¡ £ 0 © © 0 ! ! ¡ E Ã
¢ ! ¡ 0 © BC ¢ ¡ © © ! © E ! £ © ! § ! © 0 1 ! E ¥ © © £ ¹ ¡ ¡ £ £ © E £ © 0 !
E ! £ 1 ! È © § £ ¡ © E 0 ¡ 0 © £ B ¡ E ! § B © 0 © E ¡ § !
Â
© £ Û
Postgres95¥
z z Û È
}
£ © $
&
¸
¡ § §
@ © ( ! ! © £ ¡ 0 £$ ¢ £ © 0 © © § © 1 ! 1 © 3 4 6 ! ( ¡ 0 Ã
1 £ © ( ¡ 0 1 £ © z { © ¢ § E ! ¡ ! E ¡ 0 ! E © § ! ) © ¢ ! £ ! © © E ¡ 0 £ ! £ ! | ¢ £ ¡ Ã
¢ ¡ @ © E ¡ © © § B ¡ E ¡ B ¡ © E © © 0 © © ¡ B ¡ ¢ Í § E ¡ E 1 ¡ ! © £ 0 ¡
© § E 1 ¡ ¡ £ 1 ! § ( ¡ 0 1 £ © ©
© £ F © § ©
¥ § E 1 ¡ © ( ¡ 0 1 £ © z { © ! ! 0 ! ¡ !
}
3
0 ! B ! ¡ £ © E ¡ ©
{ 1
E @ ¡ E ! B ¡ 0 © £ ¡ B © ¡ £ ! £ ¡ © § £ © B © 0 ¡ § ! ! E § ! © B ! 0 © B © Ã
0 ¡ ( ¡ 0 1 £ © z {
Ì © © © E 0 ! ! © 0 ¡ £ ¡ !
à {
1 B
£
¡ © © § ) E ¡
© E @ B ! £ F E ¡ B ! £ ! ¡ E ¡ ( ¡ 0 1 £ © Û
}
© B
© E ¡ £ £ © E E © © £ £ ¡ £ © È 0 !
© £ ¡ § ! £ E ! § © B © ¡ £ !
Þ
3
¥ § § © 1 ! 1 © © E ¡ § 0 ! ( ¡ 0 © § © £ © © BC ¢ § ! ¹ ! ¡ E ¡ 3 4 6 BC ¢ § © B © 0 ! ¡ ©
© § © £ ¡ £
6 ! E ¡ § 0 ! ¡ © £ ¡ ¡ ¡ £ 0 ! ! @ ! 0 ! ( ¡ 0 1 £ © 3 4 6 © £ B
! ! ¡
È © £ ¡ ¡ ! © £ © B § ! ! © ( ¡ 0 1 £ © z { E ¡ E ¡ © 3 4 6 © ! ¡ £
© § ! £ ¡ 6 ! E ¡ © ! 1 £ © 1 ! ! © £ ¡ £ © B § © B © 0 ! ! 8 ! B © ! !
! B § © B © 0 ! E © § ! E §
§ ! í
º
(
6 ! 0 © £ ! ¹
libpq² © £ B ! © E Ã
¡ § © ! £ ! £ ¡ 1 £ ! B ! © E £ 0 ¡ ©
3
}
© B
© § £ ¡ 1 £ ! B ! © B ¡ 0 ¡ £ ¹ ! E È © E § © ¡ £ ¡ 1 £ ! B !
psql
! £ ! £ © ! § ¹ ! £ E ¡ § 0 ! 3 4 6 0 © £ ! E 0 ! ! ¡ § ! § £ © £ ! í
º
readline
ó 4
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 11/56
3
º
! © ! § £ © £ ! © 0 © £ ! ¹ È
libpgtclÈ ¡¤ ¢ ¡ £ 0 ! ! E § © 0 © ! ! ¡ © 8 E §
º
@ © § § © © © B § ¡ È 1 0 E § @ È ! ¡ £ 0 ! ! © ! £ © © 8 E § ! £ ! 0 © £ ! E 0 ! £ E ¡ © § B ¡ Ã
0 ¡ £ ( ¡ 0 1 £ © z { © © ¢ £ ¡ 1 £ ! B !
tcl
3
3 © £ © § ! 0 © £ ! ¹ E ¡ ¡ © 0 ¡ 1 £ ! © 6 ¡ ¡ © 0 ¡ 1 £ ! © © © £ ¡ © £ ¡
© § Í E ¡ B © E ! B ¡ ! £ ! ! § B ! E © ! £ ¡ © 0 ¡ 1 £ ! © © § 0 © B ! © ! £ E @ ¡ ©
© £ ¡ © © § B ! ¡
3
3 © © § B 0 ! B © § 0 © B ! © £ © 1 § ! ! © § © 0 ! E ! È © § ! £ © 1 § !
1 © £ ¡ ¡ § © E ¡ B ¡ £ © 1 § ! © £ © © E £ 0 £ !
3
3 © 0 £ E ¡ © § E 1 ¡ © 0 © £ © © 0 0 ¡ £ ! § 0 £ ¡ E © ¡ § ! E ! £ ! E 0 © £ 0 Ã
E ! E ¡ B © © 3 4 6 © ( ¡ 0 1 £ © z {
3
3 © 0 § ¹ í
º
B ! F © © © ¹ ©
3 B ! F ©
! £ ! § ! E ¡ B § ! E ( ¡ 0 1 £ © z { 0 ! B Ã
¡ ! © £ E ¡ B § ! ¡ E ¡ 1 E E ! £ E @ © ! § @ ! © £ © E ¡ £ £ © 1 ¡ © § ¢ £ ¡ § © B !
© ! § © ! E © ! £ ! § © © § ¡ 1 0 ¡ § ©
PostgreSQL¥
z z ÷ È © @ ¹ ¡ © © 0 © © © § ¡ B £ © 5 ( ¡ 0 1 £ © z { 7 ¡ £ © 0 £ ! © § ! ¡ © § 0 © B Ã
¢ ¡ ¥ § © 1 B ¡ © ¡ ¡ B £ © È ( ¡ 0 1 £ © 3 4 6 ÈW ¢ ! £ ! £ © à © ! £ § ! £ © § ! E © 0 £ © © § ( ¡ 0 1 £ ©
¡ £ 1 ! § § ! © £ ¡ © B
£ © E © 0 © E ¡ E ! ! E ! © 3 4 6
}
§ B B ¡ 0 © B ¡ È @ E Ã
B ¡ © § ¡ Í B © £ ¡ © © £ ! £ 0 © £ ! © § ! ÷
È ¡ § © ¡ ! § ! © E © E ! © 1 !
¡ £ 1 ! § B © 0 © ¡ £ © §& ¢ £ ¡ © E 0 ¡ ( ¡ 0 1 £ ©
£ ! 0 © © § © ! £ £ ¡ § § ¡ © ( ¡ 0 1 £ © z { © @ ¹ ¡ @ E ! © © 0 E ! £ © 0 © © £ § ¡
¢ £ ¡ § © B ! © © § E 1 ¡ © § B ¡ 0 ¡ £ © ! 0 ¡
¡ ( ¡ 0 1 £ © 3 4 6 È © § ! @ !h ¢ ! ! ¡ !
! B © 0 ! £ E ! £ ! E 0 © £ 0 E ! E ! ! E ! © È ! © © § 0 £ ! ! ¡ E ¡ 0 Í ! © 0 ¡ ! § !
£ © !
6 ! £ E ! § © B © ¡ £ ! © ( ¡ 0 1 £ © 3 4 6 E § ©
Þ
3
6 ¡ § ¡ © ¡ © 0 ! § ! @ ! ¡ 0 0 ¡ ¢ ¡ £ © § E ¡ 0 £ ¡ § © E ¡ E £ £ © E ! B § 0 Ã
© £ È © § E ! § © £ B 0 © ! § ¡ ! E E © ¡ © § ¡ § © E 0 £ ! E ¡ 0 ! £ § © © ¡ ! 0 ¡ E ¡ Ã
0 © 0 © £ ! 0 © § ! ! E 0 ! § ¹ ! E © £ © 1 0 £ ¡ È ¢ © £ B 0 © E ¡ ! © © 1 £ ! ©
E ! § © 0 © © ©D ¢ 1 8 B B © 0 £ ! § ! ! © © ! 0 ¡ © £ B ! © E © ¡ § © ! £ ! E ¡ Ã
§ 0 !
3
3 © @ ! B § © B © 0 ! ¡ BC ¢ ¡ £ 0 ! 0 © E ! £ ! E 0 © £ 0 E ! © § B ¡ 0 ¡ £ © ! 0 ¡ È E § © ¡
E ¡ § 0 ! È ! § ¡ £ © ¢ ¢ ¡ £ © © E 0 ¡ È £ © 0 £ E E ¡ © ! ! § ¡ £ © © § ¡ E ! B ¡ E ¡ 0 £ ! 0
" ¢ ! £ ! ¡ £ © 0 £ 1 1 © £
3
3 © @ ! ! ! ¡ E ¡ ! § ! © © § © ! E ¡ © § © 0
! £ 3 4 6 z
È E § © ¡ E § ! ©
£ B ! £ ! È © 0 E ! ¡ £ © © 0 £ © E ¡ B § § ! ¡ È ¡ £ ¹ ! ¡ © 0 ¡ E ! © ! § 0 © £ ! § © È E ¡ Ã
© £ © 0 ¢ ¡ © 0 £ ! ! © © 0 © £ ¡ ! £ ¡ @ © Ì ! © E B ! § ©
3
6 ¡ 0 ¡ 0 © £ ¡ @ ! ¡ B © ¡ £ ! ¡ È E § © ¡ © ¡ 0 ¡ © © E @ !
Ê
@ ¡ £ ! ©
£ ! 1 ¡ ! B § ¡ ¡ ¡ £ 0 ©~ ¢ ! £ ! 0 ¡ 1 © ¡ B 0 £ E ¡ ! E ¡ ! § ©
3
6 ! © § ¡ E ! © § E 1 ¡ © § B ¡ 0 ¡ £ © ! 0 ¡ @ ! ¡ E £ © B © 0 ! ! !# ¢ £ ¡ Ì B ! ! Ã
B © 0 © ©
à Û
1 È 0 © B ¡ © ! £ £ ! © @ ! ! ! ¡ © § ö
1 © © © § ! © £ Ã
÷
© § ! ¹ ! !
Acerca de esta versión( ¡ 0 1 £ © 3 4 6 © 0
¡ § © E ¡ 0 © ¥ 0 © B ! ! § © E £ © § ! © £ ¡ ÷ { © ( ¡ 0 Ã
1 £ © 3 4 6
ó ó
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 12/56
3 © ! £
( ¡ 0 1 £ © D ¢ ! £ ! £ © © £ £ © ! § ! © £ 0 £ ! E ¡ B ¡ ( ¡ 0 1 £ © 3 4 6
¡ B £ © © § ! í ! © §
}
B 0 £ ! ¡ £ ¢ ! £ ! © £ § ! § 0 ! © § ! 0 ! ¡ £ B ! ¡& ¢ ¡ £ 0 ! !
¥ 1 © © £ ! § È ( ¡ 0 1 £ © © © ¡ £ 0 ! £ © ! E ! § © £ 0 © B ! E ¡ B ! 0 § ©
º
Ì
Ê
( ¡ Ì E ¡
¡ ¡ £ 0 © E ¡ B § © 0 ¡ ! § ! § £ © £ ! § E
Recursos¥ 0 © B ! ! § © 0
¡ £ 1 ! ¹ ! ¡ © © £ © 0 © ! £ 0 ©
Þ
8 0 ¡ £ ! §
0 £ ¡ E E ¡ ! £ ! © ¡ ! £ ¡
¡ E £ © E ! £ ! E 0 © £ 0 E ! ! ! ¹ ! !
í ! © §
º
! £ ¡
¡ £ B ! E ¡ 1 © © £ ! § ! £ ! © § ! £ ¡ È E § © E ¡ B ! ¡ 0 ¡ © ! 0 ¡
í ! © § ( £ ¡ 1 £ ! B ! ¡ £
¡ £ B ! E ! ! ¹ ! ! ! £ ! ² £ ¡ 1 £ ! B ! ¡ £ © © !# ¢ § E ! E ¡ © E § © ¡ 0 ¡
© Ì 0 © © E ¡ © È § £ © £ ! © 0 © £ ! E © § ¡ £ © © £ ¡ ! § © ¡ © ! § E ! Ã
E ¡ ©
í ! © §
}
B 0 £ ! ¡ £
¡ £ B ! E ¡ £ © 0 ! § ! E ! B 0 £ ! E 6 0 ! © © ¡ ¡ ¡ £ 0 ! ¡
í ! © § © ! £ £ ¡ § § ! ¡ £
¡ £ B ! E ¢ ! £ ! © ! £ £ ¡ § § ! ¡ £ © © ( ¡ 0 1 £ © ¥ 0 © ¡ E B © 0 ¡ © ! £ ! ! © Ã
§ § ! © £ ¡ ! © © 0 ! E ¡ 0 £ © ¡ ! §̈ ¢ £ ¡ © E 0 ¡ © ( ¡ 0 1 £ © @ § ! ¡ £ B ! E
£ © © £ © £ ! ! § © ! £ £ ¡ § § ¡ © ! § E ! E ¡ © ! ! £ © E © © § ! B
Ð Ô Ò ì å è ý Ó Õ û Ó Ò Ñ Ò ì Õ Ó
}
E Ã
0 ! § B © 0 © E § ¡ © § ! B
Ð Ô Ò ì å è ý Ó Õ û Ó Ò Ñ Ò ì Õ Ó
! ! § ©
© © £ © E !
¡ £ B ! E © 0 ! § § ! ! ¡ £ © § ¡ E ¡ B ! ¡
}
E 0 ! § B © 0 © E § ¡ © § ! B
Ð Ô Ò ì å è
Eë Ð Ò Ó Ô Õ
}
© B ! © 0 © B ! ! § È @ ! ¡ 0 £ ¡ £ © E £ ¡ © § © © £ £
© ! ! ! £ ! § ! 0 ! § ! Ã
E ¡ © § ¡ © ( ¡ 0 1 £ ©
Þ
B ! ¢ ! 1 ©
6 !
1 ! © B ! ! § B ! ! 1 ©
E ¡ 0 © © B ! ¡ £ B ! E ¡ £ © § ¡ E ¡ Ã
B ! ¡
}
4 ( £ © 1 0 !
£ © © 0 ©
6 ! © E E © ( £ © 1 0 !
£ © © 0 ©
}
4
E ¡ 0 © © £ © © 0 ! ! £ © 1 0 ! 1 © Ã
© £ ! § © ¡ 0 £ ¡ ! 0 ¡ © 0 © © © © £ E ¡ § ! § ! 0 ! ¡ £ B ! © © © © ! £ £ ¡ § § ©
6 ¥
}
¥
¥
}
¥
6 ¡ ! £ E @ ¡ § § ! B ! ¡ 6 ¥
}
¥
¥
}
¥
© 0 ! " ¢ ¡ § © ) ¢ ! £ ! ! § 1 ! E ¡ Ã
0 £ E ¡ ©
ó F
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 13/56
) © 3 0 ©
¥ § 0 ¡ $ © © ( ¡ 0 1 £ © H E ¡ 0 © © ¡ £ B ! E © ! § 1 ! 0 £ E ¡ © ¡ Ã
E § ©
Á
! E ! 0
§ ¡ 1 ¡ § § ! B ! ¡ B @ ¡ ! £ E © E ¡ 0 © © © § @ 0 £ E ¡ © § ! § 0 !
© E ¡ £ £ © ¡ © § © E 0 £ E ¡
}
¡ £
© E ¡ 0 £ ! £ ! 0 ! 0 © ¡ £ B ! E
6 0 ! ©
¡ £ £ © ¡
6 ! § 0 ! © E ¡ £ £ © ¡ 1 § Ã 1 © © £ ! § P ! £ E @ © Ø R
© © § 1 ! £ ! £ ! E ¡ 0 © 0 ! £
£ © 1 0 !
º
0 © T
( ¡ 0 1 £ © © £ ¡ E 0 ¡ © E 1 ¡ ! © £ 0 ¡
¡ B ¡ 0 ! § È © © © © § ! E ¡ B !
© ! £ ¡ ! £ ! ¡ ¡ £ 0 ©
}
B © ! © © B © ¹ © ! ! £ ( ¡ 0 1 £ © È © BC ² © ¹ ! £
! © © © £ © ¡ 0 £ ¡ ! £ ! © § © ! © È ! © ! ¡ £ B © ¡ © ¡ E B © 0 ! E
¡ © § ! § 0 ! © E ¡ £ £ © ¡
¡ © £ © E ¡ 0 £ £ § ¡ © !# ¢ £ © ! 3 ! £ © © ¡ © Ã
E £ © ! § 1 ¡ © ¡ © 0 ¡ E B © 0 ! ¡ È © E £ ! § ¡ E ¡ 0 £ ! 3 ! ! © © !
E ! £ ! E 0 © £ 0 E ! ! § E 1 ¡ È @
1 ! § ! ! © £
}
! © § § ¡ E ¡ ¡ E ! ¡ 1 ! © Ì © £ © E ! © © £ ¡ ¡ £ E ¡ ! £ E ¡ £ £ © E E ¡ ©
E ! B ¡ B © ¡ £ © ! § ! ¡ E B © 0 ! E È § ¡ © © ! © ! ¡ £ B ! © © B © ¹ ! £
¥ § 1 § Ã ¡ E Ø Ø ! £ E @ ¡ Ø
Ü
© § ! § 0 ! © E ¡ £ £ © ¡ © © § 1 ! £9 ¢ ! £ ! E ¡ B © ¹ ! £
© !
Terminología¥ § ! ¡ E B © 0 ! E 1 © 0 © È
ë Ô æ Ô Õ
¡
ë Ô æ å
© © © 0 © £$ ¢ £ © 0 ! £ E ¡ B ¡ § ! B
!
© § ! © © 0
0 ! § ! ! ( ¡ 0 1 £ © ! ¡ © © ¡ § © 0 ! § ! £ B
© E ¡ 0 ¡
© ! © © ! 0 ¡ ( ¡ 0 1 £ © © ! B B ! B
! È © 0 © 0 £ B ¡ © ¡ 0 ! È © ¡ £ B !
B
£ © E ! È E ! § © £ E ¡ 0 ¡ E ¡ E £ © 0 ¡ © £ ¡ 1 £ ! B ! ! £ ¡ ! © © ! 0 ¡ ©
( ¡ 0 1 £ © 0 ! § ! ¡
¥ §
ë Ð ñ å Ó Ð ë Ð Ò Ó Ô Õ
© ( ¡ 0 1 £ © © © § ! £ ¡ § § ! B ! ¡
postgres © © © ¡ © § ¡
E @ © £ ¡ © § ! ! © © ! 0 ¡ ! £ ¡ © ( ¡ 0 1 £ ©
¡ B ¡ © £ ! £ ¡ © § ! ! © ©
! 0 ¡ È ¡ § © © ! § E ! § © 1 ¡ © § ¡ B © E ! B ¡ © £ ¡ 0 © E E © © ! E E © © £ !
E ! § © £ ! © § ¡ ! 0 ¡ © ¡ £ B ! ! £ 0 £ ! £ !
}
© B
È ! § ¢ ¢ © £ ! £ ¡ © ( ¡ 0 1 £ © © § ©
¢ © £ B 0 © © © E 0 ! £ £ ¡ 1 £ ! B ! © ¡ ¡ £ 0 © © 1 © © £ ! § B © 0 © ¡ © 0
" ¢ ¡ § © ! £ !
0 ¡ ¡ § ¡ ! £ ¡ 8 © 1 ! © E © 0 ! © © § © £ ! £ ¡ © ( ¡ 0 1 £ ©
ê Õ
© © § B B ¡
© © § © £ ! £ ¡ ©
º
Ì © © E ¡ ¡ E ¡ E ¡ B ¡
Ó Õ Õ æ
¥ § © £ ! £ ¡ © © £ !
0 © © £ © 0 E ! ¡ £ © ! £ ¡
Eõ ú
0 0 ¡ © E © £ ¡ ¡ £ £ ! ¹ ¡ © © © 1 £ !
¥ §
Ò ì Ñ Ô ê Ô ë æ Ó Ò ì Õ Ó ì å è Ò ã Ò ë å ì å ì Ò æ Õ ë
ì Ò æ Ò ã Ò ë å Ò ì Ñ Ô ê Ô ë æ Ó Ò æ Õ Ó
¡
}
È © § ! © £ ¡ ! £ © ¡ Ã
! § © © 0 ! § ! £ ( ¡ 0 1 £ © E ¡ B © E ! B ¡ ! £ ! @ ! E © £ E B § £ ! ¡ § 0 E ! © © 1 £ Ã
! | ¢ ! £ ! 0 © ¥ §
}
© © ! ! £ © ¡ ! £ ¡ ² ¡ £ © § B 0 ¡ ¡ © E £ 0 ¡ B
! © § ! 0 © B ! 0 © © £ E ¡ 0 ¡ © ! © © ! 0 ¡ ¢ § ! 0 § § ! ! £ ! ! £ E ¡
createdb
¥ §
postmaster© © § £ ¡ E © ¡ © ! E 0 Í ! E ¡ B ¡ ! © £ 0 ! © E ¡ 0 £ ¡ § E § © ! £ 1 Ã @ ¡ ©
¢ ! £ ! § ! © 0 E ¡ © ! § 0 © B ! ( ¡ 0 1 £ © 6 ! !# ¢ § E ! E ¡ © £ ¡ 0 © © E ¡ © E 0 ! ! §
post-
masterÈ © B ! 0 © © £ © 1 0 £ ¡ © § ¡ © £ £ ¡ £ © © § 0 © B ! © § ! E ¡ B E ! E © 0 £ ©
§ ¡ £ ¡ E © ¡ ! E F © ¥ §
postmaster © © ! E © ¢ 0 ! £ ! £ ¡ ! £ 1 B © 0 ¡ © © § ! § Ã
© ! © £ © © ! £ ! ¡ © £ ! ¢ 0 ¡ E ¡ B ¡ £ 0 ! B © 0 ¡ 3 © B ! £ 1 ¡ È © § £ ¡ ¡ £ E ¡ ! £
! £ 1 B © 0 ¡ © © E © ! £ ¡ § ¡ © 0 © 0 ! 0 £ ! ! ! £ E ¡ ! £ ¡ 0 ¡ ¡ E ¡ ¡ © ¡
© © © E 0 ! ! § ! B ! © £ ! ¡ £ © © E 0 ¡
¥ § ! E F © © ( ¡ 0 1 £ © © § £ ¡ 1 £ ! B ! © © E 0 ! § ©
postgres£ © ! §
§ ¡ © © © © E 0 ! £ © §
© £ ! £ ¡ £ © E 0 ! B © 0 © © © © § 0 £ £ © 0 © © £ © © © ! £ ¡ © ( ¡ 0 1 £ ©
E ¡ © § ¡ B £ © © § ! ! © © ! 0 ¡ E ¡ B ¡ ! £ 1 B © 0 ¡
3 © B ! £ 1 ¡ È @ ! E © £ © 0 ¡ © § Ã
ó V
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 14/56
B ! © § © £ ¡ ¡ § E ¡ B ! £ 0 ¡ § ¡ © ! § ! 0 ! § ! ! ¡ E ! ! E ¡ ¡ 0 B ! 0 © £
Ê
0 ¡ È
¢ ¡ £ © § § ¡ © 0 ¡ ¡ © 0
£ © E ¡ B © ! ¡ © 0 ¡ B § 0 ! £ ¡
Notación5 7 ¡
/usr/local/pgsql/ © § ! 0 © © ¡ B £ © © E @ © £ ¡ © ! ! £ ! £ © £ © © 0 ! £
© § E ! B ¡ ! 0 @
! § £ © E 0 ¡ £ ¡ @ ¡ B © © § ¢ ¢ © £ ! £ ¡ © ( ¡ 0 1 £ ©
¥ § ! ¡ È § ¡ E ¡ £ E @ © 0 © 5 W 7 5 ` 7
E ! ! © Ì £ © ¡ ! § ! £ ! E § ! © ¡ Ã
E ¡ ! §
! § © £ E ¡ ! © 0 £ © § § ! © 5 a 7 5 c 7
© E ¡ 0 © 1 ! ! £ £ ! © £ 0 E ! § © 5 d 7
E ! © © © © § © 1 £ ! © § ! ¡ E ¡ © © © ! £ ! § ! ! £ £ ! © £ 0 E ! § ©
¥ § ¡ © © BC ¢ § ¡ È § ¡ ! £ 0 © 5 7 5
7
© ! ! £ ! ! 1 £ ¢ ¢ ! £ © Ì £ © ¡ © ¡ ¡ § © ! !
5 d 7 © © § ¡ © £ ! ¡ £ ¡ ¡ § © ! ¡
6 ¡ © © B § ¡ B ¡ 0 £ ! £
£ © © © © E 0 ! ! © © ! £ ! E © 0 ! £ ¡ 1 £ ! B ! 6 !
£ © © © © E 0 ! ! © © § ! E © 0 ! © § £ ¡ ¡ 0 © 0 ! £
£ © E © ! ¡ £ 5 g 7 6 ! £ © ©
© © E 0 ! ! © © § ! E © 0 ! © § © £ ! £ ¡ © ( ¡ 0 1 £ © © 0 ! £
£ © E © ! ¡ £ 5 1 7 È
B © 0 £ ! © § ! £ © © © © E 0 ! ! © © § ! E © 0 ! © ! £ ¡ £ § © 1 ¡
© 0 ! £
£ © E © ! ¡ £ 5 q 7 6 ! £ © © © 3 4 6 © 0 ! £
£ © E © ! ¡ £ 5 r s 7 ¡ ¡
© 0 ! £
¢ £ © E © ! ¡ £ 1 Í £ ¡ BC ¢ 0 È © © © ¡ © § E ¡ 0 © Ì 0 ¡
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 (oDocumentation Mailing List) 13.
Y2K Statement (Informe sobre el efecto 2000)
Autor: Escrito por Thomas Lockhart 14 el 22-10-1998.
¥ § ¥ ¡ © © ! £ £ ¡ § § ¡ í § ¡ ! § ¡ í § ¡ ! § © © § ¡& ¢ B © 0 8 © ! B
© ( ¡ 0 1 £ © 3 4 6 £ ¡ Ã
¢ ¡ £ E ¡ ! © §
£ ¡ § © E 1 ¡ © ¡ 0 $ ! £ © © ( ¡ 0 1 £ © E ¡ B ¡ © £ E ¡ Í § E ¡ È
1 ! £ ! 0 ! £ © ¡ ! § ! ¡ £ E ¡ B ¡ £ 0 ! B © 0 ¡ ¡ £ © B © 0 ¡ 3 © B ! £ 1 ¡ È
© © § B ¡ B © 0 ¡ © § ! © E £ 0 £ !
Þ
3
¥ § ! 0 ¡ £ © © 0 © 0 © Ì 0 ¡ È ¡ § 0 ! £ ¡ © © § © ¡ © ¡ ¡ £ 0 © © ( ¡ 0 1 £ © © ©
¡ © B Ã
£ © ©
z z ÷ È ¡ 0 © © E ¡ 0 ! E ! © 1 Í ² £ ¡ § © B ! © © § E 1 ¡ © ( ¡ 0 1 £ © £ © § ! Ã
E ¡ ! ¡ E ¡ § ¡ E ! B ¡ © © E @ ! © 0 ¡ £ ¡ ! §
© ¥ © £ ¡ ©
3
¥ § ! 0 ¡ £ © © 0 © ¡ £ B © ¡ 0 © © E ¡ 0 ! E ! © § ! © Ì 0 © E ! © ¡ £ B © ¡ £ © © §
£ ¡ § © B ! © § © © E 0 ¡
¡ E © £ 0 ¡ © § ! 9 ¢ £ © ! © £ © 1 £ © È ¡ © ¡ 0 £ ¡ E ! B ¡
© ¡ È ¡ £ © © £ ¡ © © ( ¡ 0 1 £ © £ © E © 0 © ¡ © § ! © £ ! E 0 ! § ( ¡ £ ! B ¡
@ ! © £ © © £ ! ¡ ¡ £ ! § 1 ¡ ¡ £ © £ ¡ § © B ! © Ì 0 © © È ! ! § ! ! © © @ ! 0 ! § Ã
! ! ! ! § ! ! £ 0 E ¢ ! E ! E 0 ! © § ¡ ! £ ¡ © § ! § 0 ! © E ¡ £ £ © ¡ © ¡ ¡ £ 0 ©
3
( ¡ £ § ¡ © © § ! 0 ¡ £ ! © È § ! ¡ E ¡ © © ( ¡ 0 1 £ © @ ! E © ¡ £ © § ! © E @ ! ©
© © E £ © ! ¡ ¡ Í B © £ ¡ ! £ ! © § ! ¡ © 0
¡ E B © 0 ! ! © § ! í ! © §
º
! £ ¡ Ø
"
© © § E !# ¢ 0 § ¡ © § ¡ 0 ¡ © ! 0 ¡ ( ! £ ! ! ¡ © E £ 0 ¡ E ¡ ¡ Í B © £ ¡ È
§ ! 0 £ ! E 1 E ! 0 ! ©
z §
È ¡ © § ! ¡
@ © 5 §
Ã
Ã
7 © 0 © £ £ © 0 ! E ¡ B ¡
5
z §
Ã
Ã
7 È B © 0 £ ! © 5 ÷ z Ã
Ã
7 © 0 © £ £ © 0 ! E ¡ B ¡ 5
÷ z Ã
Ã
7
ó w
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 15/56
3
6 ¡ £ ¡ § © B ! £ © § ! 0 ¡ ! § © © E 0 ¡
© © § 3
0 © B ! ¡¤ ¢ © £ ! 0 ¡
¡ £ © © § ©
© 0 0 ! § ! ¡ ( ¡ 0 1 £ © £ © § ! E ¡ ! ¡ E ¡ § ! ¡ 0 © E © á § ! © E @ ! ! E 0 ! § á © © ©
£ ¡ ! 1 ! £ § § © 1 ! £ ! ! £ © E © £ £ ¡ § © B ! ¡ £ © © § © © E 0 ¡
£ ¡ E ¡ ¡ £ ( ¡ 0 1 £ ©
£ ! © ! 8 @ © í ( £ ¡ © E 0 Ø & ! 8 @ © ( © £ § 0 0 0 © Ø ( ! £ ! § © © £ ! E B
£ ¡ Ã
! ¡ £ © © § ! 0 ¡ © § © © E 0 ¡
È ! £ 0 E § ! £ B © 0 © © § ¡ © 0 © © © © £ E ¡ © §
¡ © ¡ £ E © ¡ E 1 ¡ ! © £ 0 ¡ È E 1 ¡ ¡ £ © § © ¡ @ ! © ¢ ! 1 ! £
Copyrights y Marcas Registradasx Ò æ Ó Ò ì Ð é é Ô y ê ì å è Õ ë æ å æ Õ ë ì å é Õ ñ ¤ Ó Ô û
ù
æ ë å ñ Ó å ë å ê æ Ò Ò Ð ò ê Ô é Ò Ñ å ê æ å Ò Ñ Õ ì Õ ì å Ò é è Ò Ó Ò é Ô y ê
¤ ê Õ
ù
Ò ë Ô ì Õ Ò ñ Ó Õ ã Ò ì Ò ñ Õ Ó ë Ð ë Ò Ð æ Õ Ó å ë Õ Ó Ô û Ô ê Ò è å ë ô x Õ ë ê Ô é Õ ë æ å æ Õ ë ì å é Õ ñ ¤ Ó Ô û
ù
æ û Ò Ó Ò ê æ ò Ò ë
ì å Ó å é
ù
Õ ë ¤ ì å Ñ ë è å û Ò è Ô ë Ñ Õ ë Ð å æ Ô å ê å ê Ò è Ô ì å ë Õ ê è Õ ë Õ Ó Ô û Ô ê Ò è å ë å ê Ô ê û è ë Õ Ð ê Ò æ Ó Ò ì Ð é é Ô y ê
Ò ñ Ó Õ ã Ò ì Ò ñ Õ Ó è Õ ë Ò Ð æ Õ Ó å ë ¤ Õ ë Ð ë Ó å ñ Ó å ë å ê æ Ò ê æ å ë è å û Ò è å ë ô
( ¡ 0 1 £ © 3 4 6 0 © ©
¡ £ 1 @ 0
z z ÷ Ã
² ¡ £ ( ¡ 0 1 £ © 3 4 6 E © 0 £ © ! ¡ § ¡
0 £ B ¡ © § ! § E © E ! ©
© £ F © § ©
( ¡ 0 1 £ © z { 0 © ©
¡& ¢ £ 1 @ 0
z z Û Ã { ¡ £ § ¡
© 1 © 0 © © § !
º
© £ ! ©
! § Ã
¡ £ ! 3 © ! 0 ¡ £ ¹ ! © § ¡ È E ¡ ! È B ¡ E ! E 0 £ E © © 0 © ¡ 0 $ ! £ ©
¡ E B © 0 ! E ! £ ! E ! § © £ £ ¡ 0 ¡ È 1 Í ! 1 ¡ È ! E © £ ¡ ¡ £ © Ã
E £ 0 ¡ È © B £ © © © B ! 0 © 1 ! © § E ¡ £ 1 @ 0 © §
£ £ ! ¡ ! 0 © £ ¡ £ È © 0 ©
£ £ ! ¡ § ¡
¡
£ £ ! ¡ 1 © 0 © © 0 ¡ ! § ! E ¡ !
¥ 1 Í E ! ¡ § !
º
© £ ! ©
! § ¡ £ ! © @ ! £
£ © ¡ ! § © © ! ¡ È E ! ! ¡
! E ! § © £ © £ ¡ ! ¡ © 0 ! È © ! © 0 ¡ £ © E 0 ¡ È £ © E 0 ¡ È © © E ! § © È ! E E © 0 ! § ©
¡ E ¡ 1 © 0 © È E § © ¡ § E £ ¡ E © ! 0 © © £ © § 0 © © § ¡ © © 0 © ¡ 0 $ ! £ ©
¡ E B © 0 ! E È E § ¡ § !
º
© £ ! @ ! ¡ ¡ 0 E ! ! © § !) ¢ ¡ § ! © 0 ! § ©
! ¡
6 !
º
© £ ! ©
! § ¡ £ ! £ © @ ! © © E E ! B © 0 © ¡ £ © E © £ E ! § © £ 1 ! £ ! 0 ! È Ã
E § © ¡ È © £ ¡ ¡ § B 0 ! ! Í E ! B © 0 © ! È § ! 1 ! £ ! 0 ! B § E 0 ! © E ¡ B © £ E ! § !
E ! ! E ! Ë ¢ ! £ ! E B § £ © 0 © £ B ! ¡ £ ¡ 0 ¡ ¥ § ¡ 0 $ ! £ © © © 0 £ ©
! © © 0 £ © 1 ! á 0 ! § E ! § á È § !
º
© £ ! ©
! § ¡ £ ! ¡ 0 © © 1 ! ¡ § 1 ! Ã
E © B ! 0 © B © 0 ¡ È !# ¢ ¡ ¡ È ! E 0 ! § ¹ ! E È B © ¡ £ ! B © 0 ¡ ¡ B ¡ E ! E
º
Ì © ! B ! £ E ! £ © 1 0 £ ! ! ©
Ê
© È 6 0 3 Û È 3 (
}
È 3
3 3 ¡ § ! £ ¡
B ! £ E ! £ © 1 0 £ ! ! © 3 E £ ¡ 0 © B È E ¥
È ¥
0 ! 0 ¡ È
}
§ @ !
}
(
º
6 Ã
8
¡ B ! £ E ! £ © 1 0 £ ! ! © 1 0 ! § ¥ B © 0
¡ £ (
}
Ã
3
Á
( Ã
º
¡ B ! £ Ã
E ! £ © 1 0 £ ! ! ©
Á
© $ § © 0 0 Ã ( ! E F ! £
¡
3
Ê
© B ! £ E ! £ © 1 0 £ ! ! ©
¢ © 3 ¡ 0 $ ! £ ©
¡ ! 0 ¡
Notas
@ 0 0
Þ Ê Ê
¢ ¡ 0 1 £ © § ¡ £ 1
Ê
@ 0 0
Þ Ê Ê
F Ã 0
3
© £ F © § © ¥
º Þ
ö
Ê
² ¡ 0 1 £ ©
Ê
¡ 0 1 £ © @ 0 B §
@ 0 0
Þ Ê Ê
$ $ $ § § 0 £ ! E ¡ B
Ê
Û @ 0 0
Þ Ê Ê
$ $ $ ¡ £ B Ì E ¡ B
Ê
{ @ 0 0
Þ Ê Ê
$ $ $ E ©
Ê Ê
( ! £ 0 8
¡ § § !
Ê
3
Ê
F 8 @ ¡ B © @ 0 B §
÷ B ! § 0 ¡
Þ
! ¡ £ B Ì E ¡ B
§ @ 0 0
Þ Ê Ê
@ 0 0 D E © £ F © § © ©
Ê
¡ § §
Ê
ö ¡ 0 1 £ © § ¡ £ 1
z B ! § 0 ¡
Þ
1 § Ã 1 © © £ ! § ² ¡ 0 1 £ © § ¡ £ 1
@ 0 0
Þ Ê Ê
$ $ $ ( ¡ 0 1 £ © 3 4 6
í
Ê
B @ ¡ ! £ E
Ê
1 § Ã 1 © © £ ! §
Ê
ó»
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 16/56
B ! § 0 ¡
Þ
1 § Ã ¡ E ¢ ¡ 0 1 £ © § ¡ £ 1
@ 0 0
Þ Ê Ê
$ $ $ ( ¡ 0 1 £ © 3 4 6
í
Ê
B @ ¡ ! £ E
Ê
1 § Ã ¡ E
Ê
B ! § 0 ¡
Þ
¡ E ¢ ¡ 0 1 £ © § ¡ £ 1
Û B ! § 0 ¡
Þ
§ ¡ E F @ ! £ 0 ! § B E ! § 0 © E @ ©
{ @ 0 0
Þ Ê Ê
$ $ $ ¡ 0 1 £ © § ¡ £ 1
Ê
¡ E
Ê
© £
Ê
! 0 ! 0 © @ 0 B
÷ @ 0 0
Þ Ê Ê
$ $ $ 1 ¡ £ 1
Ê
¡ 0 $ ! £ ©
Ê
© ! £
@ 0 B §
§ @ 0 0
Þ Ê Ê
§ ! 1 ! 1 © ¢ © £ § E ¡ B
Ê
© $
Ê
F @ 0 B §
ó Ç
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 17/56
Capítulo 2. SQL
¥ 0 © E !7 ¢ 0 § ¡ !# ² ! £ © E ¡ £ 1 ! £ ! B © 0 © E ¡ B ¡ ! £ 0 © © § ! 0 © ¡ E 0 ¡ £ ! § © 3 0 © ! 3 B Ã
F ¡ E
Ï Ô Ñ Õ Ô é ë ó ï ï ×
3 4 6 © @ ! E ¡ © £ 0 ¡ © © § § © 1 ! © © E ¡ § 0 ! £ © § ! E ¡ ! § B
¡ § ! £ ¥ § ¡ B Ã
£ © 5 3 4 6 7 © ! ! £ © ! 0 £ ! ©
Ï æ Ó Ð é æ Ð Ó å ì Ð å Ó ¤x
Ò ê û Ð Ò û å
6 © 1 ! © © E ¡ § 0 !
© 0 £ E 0 £ ! ¡
¥
z § Û ¡ ! §
@ ! B © £ § ! ¡ 0 £ ¡ © © £ ¡ © § § © 1 ! © 3 ¥ 4
º
¥ 6
Ï æ Ó Ð é æ Ð Ó å ì j ê û è Ô ë
ù
Ð å Ó ¤x
Ò ê û Ð Ò û å
©
© © ! £ E @ ¥ 0 © § © 1 ! © © B § © B © 0 ! Ã
¡ E ! § B © 0 © © £ ¡ 0 ¡ 0 ¢ ¡ ©
§ § ! B ! ¡ 3 ¥ 4
º
¥ 6 Ã
©
z § Û Ã § { ¥
z § ÷ Ã
§ § © © ! £ © © 3 ¥ 4
º
¥ 6 § § ! B ! ! 3 ¥ 4
º
¥ 6
Ê
© § ¡ B £ © © E ! B !
3 4 6
© ! £ £ ¡ § § © ¡ ¢ £ ¡ 0 ¡ 0 ¢ ¡ § § ! B ! ¡ 3 0 © B
©
z § § 3 0 © B
BC ¢ § © B © 0
! BC ¢ § ¡ E ¡ 0 ¡ © 3 ¥ 4
º
¥ 6
Ê
¡ $ 3 4 6
Í B © £ ¡ © E ! B ¡ © ©
§ © @ E © £ ¡ ! ¡ $ 3 4 6
£ ! 0 © © § ¢ £ ¡ © E 0 ¡ 3 0 © B
© 0 ! § © Í B © £ ¡ ©
¢ © 0 ¡ © ! £ ¡ È 0 ! 0 ¡ 0 © £ ¡ ©
E ¡ B ¡ © ! § 1 ¡ E § © 0 © © § © E E ¡ ! ¡
í £ ! E ! ! § Ì 0 ¡ ! E © ¢ 0 ! E © 3 0 © B
© § ¡ B B ¡ È
E © § © ! £ £ ¡ § § ¡ ©
¢ £ ¡ E 0 ¡ E ¡ B © £ E ! § © © BC ¢ § © B © 0 ! ! © § § © 1 ! © 3 4 6 ! ! ¡ © § ! 0 © E ¡ § ¡ 1 !
3 0 © B
£ ! 0 © § ¡ ! ¡ 1 © 0 © È
! 0 ! 0 © ¡ 0 £ ¡ © © ¡ £ © ! E ! £ ¡ £ ¡ E 0 ¡
3 4 6 0 ! § © E ¡ B ¡ 3 4 6
Ê
3
È
È
}
6 ¥
£ ! E § ©
¡ £
È í
Ê
3 4 6 ! 0 !
í © © £ ! §
¡ £
È 3
}
3 ¥ 3 ! © E
3 4 6 © 0 ! B © 0
! £ ¡ E ! § @ ¡ ¥
z ö
È § !
}
B © £ E !
! 0 ¡ ! § 3 0 ! ! £
0 0 0 ©
}
3
© E ! £ 1 !
¡ B 0 ©
! © © ! 0 ¡
Á
© § © ! £ £ ¡ § § ¡ © !
¢ £ ¡ © 0 ! © § © 1 ! © £ © § ! E ¡ ! § © 0
! £ ¥ 0 !w ¢ £ ¡¤ ¢ © 0 ! © £ ! 0 E ! ! ©
z ö ÷
E ¡ 0 !
E ! B © 0 © © © § ! § © E 0 ¡ ©
© 3 4 6 ¥
z ö § È © 0 © © 0
! £
}
3 ©
0 ! B ! E © 0 ! ¡ ¡ £ § !
£ 1 ! ¹ ! E 0 © £ ! E ¡ ! § © ¥ 0 ! ! £ ¹ ! E 3
¥ 0 !
© £ © 0
! £ ¡ £ 1 ! § © 3 4 6 £ © E ¡ £ B ! § B © 0 © © § ¡ B £ © © á 3 4 6
Ê
ö ÷ á ¥
z ö z È © § © 0
! £ ¡ £ 1 ! § © © Ì 0 © ¡ È £ © E © § © ¡ ¡ B £ © È 0 ! B ¡ £ Ã
B ! § È © á 3 4 6
Ê
ö z á 8 ! B ©
z ö z © © ! £ £ ¡ § § © 0
! £ £ © § ! E ¡ ! ¡ § § ! B ! ¡
ú Ò æ Ò ã Ò ë åx
Ò ê û Ð Ò û å j Ñ ã å ì ì å ì Ï x
¥ 3 4 6
6 ¡ E ¡ B 0 3
}
3 @ ! © 0 ! ¡ 0 £ ! ! ! ¡ £ ! 0 © B E @ ¡ ! ¡ © § ! © E
© ! © £ B ! B § ! ! © § © 0
! £ ¡ £ 1 ! § È § § ! B ! ¡ ¡ £ B ! § B © 0 ©
Ï x
F
¡
Ï x
ï F
¥ 0 ! © £ © E ¡ £ 0 © © 0
! £ £ ! 0 E ! ¡ £ ! 0 ©
z z
Þõ ê æ å Ó ê Ò ç
æ Ô Õ ê Ò è Ï æ Ò ê ì Ò Ó ì õ Ï
õ j ð ï 4Î » m
ó ï ï F ú Ò æ Ò ã Ò ë åx
Ò ê û Ð Ò û å Ï x
3 4 6
Ê
z
© § ! © £ ! § !
© ¡ £ B ! § B © 0 © § ! 1 © 0 © © £ © © £ © E ! ¡ @ ! § ! © n 3 4 6 © 0
! £ o 3 © ! ! © Ã
E £ E © 0 ! § § ! ! © 3 4 6
Ê
z
©
ú Ò æ å Ò ê ì ú Ò Ó å ê ó ï ïÎ
¥ © § B ¡ B © 0 ¡ © © E £ £
© 0 © ¡ E B © 0 ¡ È © © 0
© ! £ £ ¡ § § ! ¡ © ¡ © 0
! £ © ¡ B ! ¡ ¡ £ B ! § B © Ã
0 © E ¡ B ¡
Ï x
V
3 © ¢ § ! 0 © ! @ ! E © £ © 3 4 6 § © 1 ! © © ! § E ! E © E ¡ B § © 0 ¡ © 8 £ 1 Ã
E ¡ B § © 0 © § ! 1 ! 1 ©
È © © E £ È © £
¡ § © 0 ¡ ! § ! E ¡ § 0 ! E ¡ B 0 ! § © È ¡ £
© © B § ¡ E ¡ § 0 ! £ © E £ !
¥ 0 ! © ! 0 ! £ © ! B E ¡ BC ¢ § © ! ¡ £ © § § ¡ ¡ © © ©
© © £ ! £ § ! ! § ¹ ! E © § © ¡ © 0
! £ ! 0 © ©
z z z
El Modelo de Datos Relacional
¡ B ¡ B © E ¡ ! B ¡ ! 0 © È 3 4 6 © § © 1 ! © £ © § ! E ¡ ! § ¥ 0 ¡ © £ © © E £ © ©
! ! © © §
Ñ Õ ì å è Õ ì å ì Ò æ Õ ë Ó å è Ò é Ô Õ ê Ò è
¢ § E ! ¡ E ! § B © 0 © ¢ ¡ £ ¥
¡ ©
z §
! Ã
£ © B ¡ ! © E £ ¢ E ¡ £ B ! § © § B ¡ © § ¡ © ! 0 ¡ £ © § ! E ¡ ! § B
0 ! £ © ©
Õ Ó Ñ Ò ç
è Ô ì Ò ì å ë ì å è þ Õ ì å è Õ ¢ å è Ò é Ô Õ ê Ò è ì å ú Ò æ Õ ë
È © £ ¡ £ B © £ ¡ © £ © B ¡ ! £ ! B £ ! ! © ©
0 ¡ © 0 ! B
0 0 ¡
óÎ
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 18/56
º
!
ã Ò ë å ì å ì Ò æ Õ ë Ó å è Ò é Ô Õ ê Ò è
© ! ! © © ! 0 ¡ © © © £ E © ¡ £ § ¡ ! £ ¡ E ¡ B ¡
!
é Õ è å é é Ô y ê ì å æ Ò ã è Ò ë
! ! B
© 0 ! § !
º
! 0 ! § ! E ¡ 0 © © § ! E ¡ § B ! È
© § ! © E ! ! § ! £ © £ © © 0 ! £ © 1 0 £ ¡ È E ! ! E ¡ § B ! £ © £ © © 0 ! ! 0 £ 0 ¡ © §
£ © 1 0 £ ¡ E ¡ 0 © ¡ © § ! 0 ! § !
xÒ Ò ë å ì å ú Ò æ Õ ë ì å ý Ó Õ å å ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
B © 0 £ !
© © B § ¡ © ! © © ! 0 ¡ E ¡ 0 © 0 © © 0 £ © 0 ! § !
3
3
º
( ( 6 ¥
© ! 0 ! § ! © £ © E ¡ 1 © © § Í B © £ ¡ 3
È © § ¡ B £ © 3
}
¥
§ !
E !
8
© £ ¡ © © ¡ £
3
(
}
8 © ! 0 ! § ! © ! § B ! E © ! © § Í B © £ ¡ (
© § ¡ B £ © (
}
¥
© § £ © E ¡
(
¥
© ! £ 0 E § ¡
3
3 ¥ 6 6 3 ! § B ! E © ! ¡ £ B ! E ¡ £ © ! £ 0 E § ¡ (
© © ¡ ¡ £ £ ¡ Ã
© © ¡ £ 3
¥ 0 ¡ £ © © © 0 ¡ ! £ ! E ¡ © E 0 ! £ § ! ¡ 0 ! § ! © 0 £ © © § § !
¯ ¶ - ° ´
Ä
· - m - l · m - À ¿ - - m - · « l ¾ n ´ ·
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 | 34 | 2
PART PNO | PNAME | PRICE 4 | 3
---+---------+------ 4 | 4
1 | Tornillos | 10
2 | Tuercas | 8
3 | Cerrojos | 15
4 | Levas | 25
6 ! 0 ! § ! (
}
8 3
º
( ( 6 ¥
© © © © £ E ¡ B ¡
å ê æ Ô ì Ò ì å ë
3 ¥ 6 6 3 © © © © £
E ¡ B ¡ !
Ó å è Ò é Ô y ê
© 0 £ © ! £ 0 E § ¡h ¢ ! £ 0 E § ! £ £ ¡ © © ¡ £ ! £ 0 E § ! £
¡ B ¡ © £ © B ¡ B
0 ! £ © È 3 4 6 ¡ © £ ! © § ! 0 ! § ! 0 ! § E ¡ B ¡ @ ! ¡ © ! È © £ ¡
! 0 © © © § § ¡ © 0 ! £ © B ¡ § ! 0 © ¡ £ ! © § B ¡ © § ¡ £ © § ! E ¡ ! §
Formalidades del Modelo Relacional de Datos¥ § E ¡ E © ¢ 0 ¡ B ! 0 © B
0 E ¡ © ! E © ! ¡ © § B ¡ © § ¡ £ © § ! E ¡ ! § © § !
Ó å è Ò é Ô y ê
© § !
0 © ¡ £ ! © E ¡ 0 ¡ È § ! E ! § © E ¡ 0 ¡ © § £ ¡ E 0 ¡ E ! £ 0 © ! ¡ © ! § 0 ! ©
¡ B ¡ ¥ 0 ! £ © § ! E © § ! 0 © ¡ £ ! © E ¡ 0 ¡ £ ¡ ¡ £ E ¡ ! ! § B ¡ © § ¡ ¡ B £ ©
¡ E ¡ £ E ¡ § ! £ © § ! E © §
þ Õ ì å è Õ j ê æ Ô ì Ò ì ç ¢ å è Ò é Ô y ê
¡ £ B ! § B © 0 © È ¡ B ¡
© BC ¢ § © B © 0 © E ¡ 0 ¡ © ! § ¡ £ © ( ¡ £ © © B § ¡ È © § E ¡ 0 ¡ © § ¡ © 0 © £ ¡ ©
¡ B ¡ 8 ! B ¡ © © B § ¡ © ¡ B ¡ § ! E ! © ! © E ! £ ! E 0 © £ © © § ¡ 1 0
§ ¡ Í B © £ ¡ £ © ! § ©
¥ §
ñ Ó Õ ì Ð é æ Õ é Ò Ó æ å ë Ô Ò ê Õ
© § ¡ ¡ B ¡
D1
È
D2
È
Dk
È © E £ 0 ¡
D1
D2
Dk
© © §
E ¡ 0 ¡ © § ! F Ã 0 § !
v 1È
v 2È
v kÈ 0 ! § © ©
v 1 z D1
È
v 1 z D1
È
v k z Dk
( ¡ £ © © BC ¢ § ¡ È E ! ¡ 0 © © B ¡
kr
È
D1
r
{0,1}
D2
r
{a,b,c}© 0 ¡ E ©
D1
D2
©
{(0,a),(0,b),(0,cº
!
© § ! E © E ! § © £ E ¡ 0 ¡ © §¤ ¢ £ ¡ E 0 ¡ E ! £ 0 © ! ¡ © ¡ ¡ B
¡ B Ã
¡
Þ
R{
D1
D2
Dk
ó ×
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 19/56
( ¡ £ © © B § ¡ È
{(0,a),(0,b),(1,a)}© ! £ © § ! E @ © @ © E @ ¡ © E ¡ 0 ¡ ©
D1
D2
B © E ¡ ! ¡ ! 0 ©
6 ¡ B © B £ ¡ © ! £ © § ! E © § § ! B ! 0 § !
! ! £ © § ! E © ! § 1 Í ¢ £ ¡ E 0 ¡
E ! £ 0 © ! ¡
D1
D2
Dk
© E © © 0 © © © §
k © © 0 © B ¡ ¡ © E ¡ 0 ¡
©
kà 0 § !
º
! £ © § ! E © © © © £ E ¡ B ¡ ! 0 ! § ! E ¡ B ¡ ! B ¡ È £ © E © £ ©
xÒ Ò ë å ì å ú Ò æ Õ ë
ì å ý Ó Õ å å ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
¡ © E ! ! 0 § ! © £ © ¢ £ © © 0 ! E ¡ B ¡ ! § ! E ! ! E ¡ § B Ã
! E ¡ £ £ © ¡ © ! E ¡ BC ² ¡ © 0 © © § ! 0 § ! ! ¡ ¡ B £ © § § ! B ! ¡ ! 0 £ 0 ¡
!
§ ! E ¡ § B ! È ¡ ! E © £ E ! B ¡ ! § ! © E ©
å ë Ð å Ñ Ò Ó å è Ò é Ô Õ ê Ò è
º
å ë Ð å Ñ Ò Ó å è Ò é Ô Õ ê Ò è
R© E ¡ 0 ¡ 0 ¡ © ! 0 £ 0 ¡
A1
È
A2
È
Ak
Á
! ¡ B ¡
Di
È ! £ ! E ! ! ! 0 £ 0 ¡
Ai
È
}
r
i}
r
kÈ © ¡ © © 0 ¡ B ! § ¡ ! § ¡ £ © © § ¡ ! 0 £ 0 ¡
¥ 0 ¡ E © © E £ B ¡ © © © B ! £ © § ! E ¡ ! § E ¡ B ¡
R(A1
, A2
, ... Ak
)
Nota: Un esquema relacional es sólo un juego de plantillas mientras que una relación esun ejemplo de un esquema relacional . La relación consiste en las tuplas (y pueden servistas como una tabla); no así el esquema relacional.
Dominios contra Tipos de Datos
! @ © B ¡ @ ! § ! ¡ ©
ì Õ Ñ Ô ê Ô Õ ë
© § ! © E E ! 0 © £ ¡ £
© E ! § E ! £ © © § ¡ B ¡ © È
¡ £ B ! § B © 0 © È E ¡ 0 ¡ © ! § ¡ £ © 2 ¢ ¡ £ © © B § ¡ © § E ¡ 0 ¡ © § ¡ © 0 © £ ¡ ¡ © §
© § ¡ Í B © £ ¡ £ © ! § ©
¥ 0 £ B ¡ © 0 © B ! © ! © © ! 0 ¡ È @ © B ¡ @ ! § ! ¡
©
æ Ô ñ Õ ë ì å ì Ò æ Õ ë
B
© © ¡ B ¡
! ¡ @ © B ¡ © ¡ ! 0 ! § ! È @ © B ¡
0 ¡ B ! ¡ ! © E ¡ £ © ! 0 £ 0 ¡ E § £
}
E ¡ ! § B © 0 © È @ © B ¡ © E ¡
© 1 ¡ © ! 0 ¡ © © £
© £ ! § B ! E © ! ¡ © ! § ¡ £ © © § ¡ ! 0 £ 0 ¡ ( ¡ £ © © BC ¢ § ¡ È
§ ¡ ! § ¡ £ © ©
SNAME © § ! 0 ! § !
SUPPLIER © £
E ! © ! © E ! £ ! E 0 © £ © È B © 0 £ ! ©
SNO! § B ! E © ! £
© 0 © £ ¡ © B ¡ © 0 ¡ ! 1 ! ¡ 0 ¢ ¡ © ! 0 ¡ ! E ! ! ! 0 £ 0 ¡
¥ § 0 ¢ ¡ ©
SNAME © £
 }
Á }
© 0 © © © § 0 ¡ 3 4 6 ! £ ! E ! © ! © E ! £ ! E 0 © £ ©
© § ¡ 1 0
}
r
È © § 0 ¡ ©
SNO © £
8 ¥ í ¥
¡ § ! ! 1 ! E © 0 ¡ ©
! 0 ¡ È 0 ! B @ ! £ © B ¡ © § © E E ¡ ! ¡ ¡ B ¡| ² ! £ ! ! 0 £ 0 ¡ ¥ § ¡ B ¡ ©
SNAME© © § E ¡ 0 ¡ © 0 ¡ ! § ! E ! © ! © E ! £ ! E 0 © £ © © § ¡ 1 0
}
r
È B © 0 £ !
© § ¡ B ¡ ©
SNO© © § E ¡ 0 ¡ © 0 ¡ ¡ § ¡ Í B © £ ¡ © 0 © £ ¡
Operaciones en el Modelo de Datos Relacional¥ § ! © E E £ © !
Õ Ó Ñ Ò è Ô ì Ò ì å ë ì å è þ Õ ì å è Õ ¢ å è Ò é Ô Õ ê Ò è ì å ú Ò æ Õ ë
© B ¡ § ! ¡ E
B ! 0 © B
0 E ! © § B ¡ © § ¡ £ © § ! E ¡ ! §
}
@ ¡ £ ! E ¡ ¡ E © B ¡ E ¡ B ¡ § ¡ ! 0 ¡ © © ! § B ! Ã
E © ! £ © 0 § ¹ ! ¡ B ¡ © § ¡ © ! 0 ¡ £ © § ! E ¡ ! § È © £ ¡ ¡ E ¡ ¡ E © B ¡ ¡ © B ¡
@ ! E © £ E ¡ 0 ¡ ! © 0 ! 0 ! § ! ! £ ! £ © E © £ ! £ ! § 1 ¡ © © © ! ! © © ! 0 ¡ 0 ¡ ! ! ( ¡ £
© © B § ¡ È ! § 1 © ¡ £ ! ¢ £ © 1 0 ! £ ¡ £ § ¡ ¡ B £ © © 0 ¡ ¡ § ¡ £ ¡ © © ¡ £ © © © Ã
! © § ! £ 0 E § ¡ 0 ¡ £ § § ¡
Á
! ¡ ¡ £ B ! © £ © 0 © © ¡ 0 ! E ¡ © ! £ ! © Ì £ © ! £ § !
¡ © £ ! E ¡ © © 0 £ © £ © § ! E ¡ ©
3
¥ §
è û å ã Ó Ò ¢ å è Ò é Ô Õ ê Ò è
© ! ¡ 0 ! E ! § 1 © £ ! E ! È © § ! E ! § § ! E ¡ § 0 ! © © Ì £ © !
! § E ! ¡ ¡ © £ ! ¡ £ © © © E ! § ¹ ! ¡ ! § ! £ © § ! E ¡ ©
3
¥ §
ð è é Ð è Õ ¢ å è Ò é Ô Õ ê Ò è
© ! ¡ 0 ! E § 1 E ! È ¡ © § ! E ¡ § 0 ! © © Ì £ © ! ¡ £ B Ã
§ ! ¡ ! § 1 ! £ © 0 £ E E ¡ © § 1 E ! © § ! 0 ¢ ¢ § ! © § ! £ © " ¢ © 0 ! © ! ! 0 ! E © £
ó ï
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 20/56
Álgebra Relacional¥ §
è û å ã Ó Ò ¢ å è Ò é Ô Õ ê Ò è
© 0 £ ¡ E ! ¡ £ ¥
¡ ©
z §
¡ 0 © © E ¡ 0 ¡
© ¡ © £ ! E ¡ © E ¡ § ! £ © § ! E ¡ ©
3
3 ¥ 6 ¥
8
Þ
© Ì 0 £ ! ©
æ Ð ñ è Ò ë
! ! £ 0 £ © ! £ © § ! E © ! 0 ! 1 ! ! £ © 0 £ E E
! ! 3 © !
R ! 0 ! § ! © E ¡ 0 © © ! 0 £ 0 ¡
A
r a 0
z
0
}
r ! c ¡ ©
t © ¡ 0 ! ! 0 ¢ ¢ § ! ©
R
t(A) © ¡ 0 ! © § ! § ¡ £ © § ! 0 £ 0 ¡
A © § ! 0 § !
t
3
(
¸
¥
8
Þ
© Ì 0 £ ! ©
Ò æ Ó Ô ã Ð æ Õ ë
E ¡ § B !
© © E E ¡ © ! £ © § ! E 3 © !
R !
£ © § ! E © E ¡ 0 © © ! 0 £ 0 ¡
X
R
r a 0
0
z
Rc È ¡ ©
t
X
© ¡ 0 ! © § ! § ¡ £
© § ! 0 £ 0 ¡
X © § ! 0 § !
t
3
(
º
8
Þ
E ¡ 0 £ © © § £ ¡ E 0 ¡ E ! £ 0 © ! ¡ © ¡ £ © § ! E ¡ © 3 © !
R ! 0 ! § !
© £ ! 1 ¡ ! £ 0
kØ
© !
S ! 0 ! § ! E ¡ £ ! 1 ¡ ! £ 0
kÜ
R
S© © § E ¡ 0 ¡ © § !
kØ
î
kÜ
à 0 § ! E ¡ £ B © £ ¡
kØ
E ¡ B ¡ © 0 © ¡ £ B ! ! 0 § ! ©
R E ¡ Í § 0 B ¡
kÜ
E ¡ B ¡ © 0 © ¡ £ B ! ! 0 § ! ©
S
3
º
Þ
¡ © § ! © § ! 0 © ¡ £ ! © E ¡ 0 ¡ © ¡ 0 ! § ! ! ! § !
0 ! § !
R
S ! B ! © © © £ © § B B ¡ £ ! 1 ¡
È § !
R
S© © § E ¡ 0 ¡ ©
§ ! 0 § ! © © 0
©
R S
¡ © § ! ¡
3
8 ¥
3 ¥
8
Þ
¡ 0 £ © § ! 0 © £ © E E © § ! 0 © ¡ £ ! © E ¡ 0 ¡ © ¡ 0 ! § !
! ! § ! 0 ! § !
R
SÈ
R
S© © § E ¡ 0 ¡ © § ! 0 § ! © © 0
©
R ©
Ss ©
© ¡ £ © © £ © ©
R
S0 © 1 ! © § B B ¡ £ ! 1 ¡
3
¥
¥
¥ Ã ¡ £
Þ
¡ © © § E ¡ 0 ¡ © £ © E ! © ¡ 0 ! § ! 3 © !
R
S ©
© ¡ ¡ 0 ! § ! E ¡ © § B B ¡ £ ! 1 ¡
RÃ
S¥ © § E ¡ 0 ¡ © § ! 0 ¢ ² § ! © © 0
©
R © £ ¡ ¡ ©
S
3
¸
Þ
E ¡ © E 0 ! ¡ 0 ! § ! ¡ £ ! 0 £ 0 ¡ E ¡ B © 3 © !
R ! 0 ! § ! E ¡ § ¡
! 0 £ 0 ¡
AÈ
B
C © !
S ! 0 ! § ! E ¡ § ¡ ! 0 £ 0 ¡
CÈ
D
E
Á
! ! 0 £ 0 ¡ E ¡ B Í
! £ ! ! B ! £ © § ! E ¡ © È © § ! 0 £ 0 ¡
C
3 r
3
o 4
© 0 ! B ¡ @ ! E © ¡ ! ( £ B © £ ¡ E ! § E § ! B ¡ © § £ ¡ E 0 ¡ E ! £ 0 © ! ¡
R
S ¥ 0 ¡ E ©
© § © E E ¡ ! B ¡ § ! 0 § ! E ¡ ! § ¡ £ © ! £ ! © § ! 0 £ 0 ¡ E ¡ B Í
C © ! 1 ! §
}
@ ¡ £ ! 0 © © B ¡ ! 0 ! § ! © E ¡ 0 © © © § ! 0 £ 0 ¡
C ¡ © E © § ¡ E ¡ £ £ © 1 B ¡ © § Ã
B ! ¡ § ! E ¡ § B ! § E ! !
¯ ¶ - ° ´
k j k k - k k k j k l - k
Â
© ! B ¡ § ! 0 ! § ! © © @ ! £ ¡ E ¡ © ! § ! ¡ § ¡ ! ¡ © E © ! £ ¡ ! £ ! !
¡ 3 © ! § ! 1 © 0 © 0 ! § ! ! !
Þ
R A | B | C S C | D | E
--+--+-- --+--+--
1 | 2 | 3 3 | a | b
4 | 5 | 6 6 | c | d
7 | 8 | 9
( £ B © £ ¡ E ! § E § ! B ¡ © § £ ¡ E 0 ¡ E ! £ 0 © ! ¡
R
S 0 © £ © B ¡
Þ
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
F 4
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 21/56
4 | 5 | 6 | 6 | c | d
7 | 8 | 9 | 3 | a | b
7 | 8 | 9 | 6 | c | d
8 £ ! § ! © § © E E
3
0 © £ © B ¡
Þ
A | B | R . C | S . C | D | E
--+--+---+---+--+--
1 | 2 | 3 | 3 | a | b4 | 5 | 6 | 6 | c | d
( ! £ ! © § B ! £ § ! E ¡ § B ! § E ! !
S
C£ © ! § ¹ ! B ¡ § ! 1 © 0 © ¡ © £ ! E
Þ
3
¡ 0 © © B ¡
Þ
A | B | C | D | E
--+--+--+--+--
1 | 2 | 3 | a | b
4 | 5 | 6 | c | d
3
Â
¥
Þ
3 © !
R ! 0 ! § ! E ¡ § ¡ ! 0 £ 0 ¡
}
È
È
È © !
S ! 0 ! § ! E ¡
§ ¡ ! 0 £ 0 ¡
© B ¡ § ! E ¡ B ¡
Þ
3 r a 0
0
z
3 0
z
0 ! § ©
0
}
È
r 0 0
È
r 0
c ¡ © 0
Ì È
© ¡ 0 ! ! 0 § ! © § ! 0 ! § !
R © E ¡ 0 © § ¡
© § ¡ E ¡ B ¡ © 0 ©
x
y
0 © © © § ! 0 § !
tE ¡ 0 © § ¡ © § ¡ E ¡ BC ¢ ¡ © 0 ©
A
B © § ! £ © § ! E
R
! ! § ! 1 © 0 © 0 ! § !
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
3 © © £ ! E ¡ B ¡
A | B
--+--
a | b
e | d
( ! £ ! ! © E £ ¢ E © E B
© 0 ! § § ! ! © §
§ 1 © £ !
© § ! E ¡ ! § £ ! © !
W
Eè è Ñ Ò ê ó ï × ×
` ¡ W
ú Ò æ å ó ï ï w
`
¯ ¶ - ° ´
ª
k n k · ´ l l ´ ± k m ´ µ - Å - ´ n k ´
© E ! § E ! £ © @ © B ¡ ¡ £ B § ! ¡ 0 ¡ ¡ © 0 ¡ ¡ © £ ! ¡ £ © £ © § ! E ¡ ! § © E ¡ B ¡ E ! ! E ©
© £ © E ¢ ¢ © £ ! £ ! 0 ¡ © § ! ! © © ! 0 ¡
Â
¡ § ! B ¡ ! © 0 £ ¡ © © B § ¡ © § ! © E E
¢ £ © !
ñ å Ó Ò é Ô Õ ê å ë å ê å è þ Õ ì å è Õ ì å ú Ò æ Õ ë ¢ å è Ò é Ô Õ ê Ò è
¡ © ! § 1 © © £ ! E ¡ ¡ E © £ § ¡
F ó
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 22/56
¡ B £ © © 0 ¡ ¡ § ¡ £ ¡ © © ¡ £ © © © © © § ! £ 0 E § ¡
Tornillos ¥ 0 ! ¢ £ © 1 0 !
© £ © ¡ © 0 § ¹ ! ¡ © §
§ 1 © £ ! £ © § ! E ¡ ! § E ¡ § ! 1 © 0 © ¡ © £ ! E
Þ
SUPPLIER.SNAME(
PART.PNAME=’Tornillos’(SUPPLIER
SELLS
PART))
6 § ! B ! B ¡ ! © 0 ! ¡ © £ ! E ¡ © ! E ¡ § 0 ! 3 © ! § ! B ¡ § ! E ¡ § 0 ! ! 0 © £ ¡ £ E ¡ 0 £ !
§ ! 0 ! § ! © © 0 £ ¡ © © B § ¡
xÒ Ò ë å ì å ú Ò æ Õ ë ì å ý Ó Õ å å ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
¡ 0 © £ © B ¡
© § 1 © 0 © © © B § ¡
Þ
SNAME-----
Smith
Adams
Cálculo Relacional¥ §
§ E § ¡
© § ! E ¡ ! § © ! ! © § !
è y û Ô é Ò ì å ñ Ó Ô Ñ å Ó Õ Ó ì å ê
Á
! ¡ ! £ ! 0 © © § E
§ E § ¡
£ © § ! E ¡ ! §
Þ
3
¥ §
ð è é Ð è Õ ¢ å è Ò é Ô Õ ê Ò è ì å ú Õ Ñ Ô ê Ô Õ ë
È ¡ © § ! ! £ ! § © © © £ ! E ¡ B ¡ © 0 ©
! 0 £ 0 ¡
© § ! 0 § !
3
¥ §
ð è é Ð è Õ ¢ å è Ò é Ô Õ ê Ò è ì å
ø
Ð ñ è Ò ë
8 @ © ø
Ð ñ è å ¢ å è Ò æ Ô Õ ê Ò è ð Ò è é Ð è Ð ë
8
È ¡ © § ! ! £ ! Ã
§ © © © £ ! 0 § !
¥ Ì ¡ £ © B ¡ § ¡ © § E
§ E § ¡ £ © § ! E ¡ ! § © 0 § ! ² ¡ £ © © © § Í E ¡ 0 § ¹ ! ¡ ¡ £ § !
B ! ¡ £ ! © § © 1 ! © £ © § ! E ¡ ! § © ( ! £ ! ! E © 0 ! § § ! ! ©
0 ! B
© 8
© ! W
ú Ò æ å ó ï ï w
` ¡ W
Eè è Ñ Ò ê ó ï × ×
`
Cálculo Relacional de Tuplas6 ! E ¡ § 0 ! 0 § ¹ ! ! © 8
0 © © © § 1 © 0 © ¡ £ B ! 0 ¡
Þ
Ì
}
Ì
¡ ©
x
© !
! £ ! § © © 0 ¡ 0 § ! È
A© E ¡ 0 ¡ © ! 0 £ 0 ¡
F© ! £ B § ! 6 ! £ © § ! E
£ © § 0 ! 0 © E ¡ 0 © © 0 ¡ ! § ! 0 ¢ ¢ § !
t(A) © ! 0 ! 1 !
F(t)
3 © £ © B ¡ £ © ¡ © £ § ! £ © 1 0 ! © § © © B § ¡
Eê Ò é Õ ê ë Ð è æ Ò Ð æ Ô è Ô Ò ê ì Õ
è û å ã Ó Ò ¢ å è Ò ç
é Ô Õ ê Ò è
0 § ¹ ! ¡ 8
¡ £ B § ! £ © B ¡ § ! 1 © 0 © E ¡ § 0 !
Þ
{x(SNAME)ª
x«
SUPPLIER¬
\nonumber-
y « SELLS-
z « PART (y(SNO)=x(SNO) ¬ \nonumber
z(PNO)=y(PNO)¬
\nonumber
z(PNAME)=’Tornillos’)} \nonumber
¥ ! § ! ¡ § ! E ¡ § 0 ! E ¡ 0 £ ! § ! 0 ! § ! ©
xÒ Ò ë å ì å ú Ò æ Õ ë ì å ý Ó Õ å å ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
© E ¡ 0 £ ! B ¡ ¡ 0 £ ! © ¹ © § B B ¡ £ © § 0 ! ¡ ©
Eê Ò é Õ ê ë Ð è æ Ò Ð æ Ô è Ô Ò ê ì Õ
è û å ã Ó Ò ¢ å è Ò é Ô Õ ê Ò è
F F
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 23/56
Álgebra Relacional contra Cálculo Relacional¥ §
§ 1 © £ ! £ © § ! E ¡ ! § © § E
§ E § ¡ £ © § ! E ¡ ! § 0 © © © § B B ¡
ñ Õ ì å Ó ì å å ñ Ó å ë Ô y ê
@ © © Ã
E £ È 0 ¡ ! § ! E ¡ § 0 ! © © © © ¡ £ B § ! £ 0 § ¹ ! ¡
§ 1 © £ ! £ © § ! E ¡ ! § © ©
0 ! B ¡ £ B § ! £ © 0 § ¹ ! ¡ © § E
§ E § ¡ £ © § ! E ¡ ! § È E © © £ ! ¥ 0 ¡ © £ ¡ ! ¡ ¡ £
¥
¡ ©
z §
¥ 0 © £ ¡ © ¡ £ © ! © ! § 1 ¡ £ 0 B ¡ 5 ! § 1 ¡ £ 0 B ¡ © £ © E E
©
¡ 7
B © ! 0 © © § E ! § ! © Ì ¢ £ © ! £ 0 £ ! £ ! © § E
§ E § ¡ £ © § ! E ¡ ! § © © ©
£ © E £ ! § ! © Ì £ © © B
0 E ! B © 0 © © ! § © 0 © © §
§ 1 © £ ! £ © § ! E ¡ ! § ( ! £ ! !
E B
© 0 ! § § ! ! ¡ £ © © 0 © 0 ¡ È £ ! © ! W
ú Ò æ å ó ï ï w
` W
Eè è Ñ Ò ê ó ï × ×
`
3 © E © ! © E © © § ¡ § © 1 ! © ! ! ¡ © © § E
§ E § ¡ £ © § ! E ¡ ! § ¡ © á B
! § 0 ¡
© § á ¡ á B
© E § ! £ ! 0 ¡ á © § ¡ ! ! ¡ © © §
§ 1 © £ ! £ © § ! E ¡ ! §5 ¢ ¡ £ © © §
§ 1 © £ !
© © E E ! ! £ E ! § B © 0 ©
© § ¡ £ © © § ! ¡¤ ¢ © £ ! E ¡ © È B © 0 £ ! © § E
§ E § ¡ § ¡ 0 £ ! § ! !
! E ¡ B § ! ¡ £ ¡ 0 © £ £ © 0 © © © 0 © £ B ! © § ¡ £ © © © ! § ! E B
© E © 0 ©
El Lenguaje SQL
¡ B ¡ © © § E ! ¡ © § ¡ B
B ¡ © £ ¡ § © 1 ! © £ © § ! E ¡ ! § © È 3 4 6 © 0
! ! ¡ © © §
E
§ E § ¡ £ © § ! E ¡ ! § © 0 ¢ ¢ § !
¡ B ¡ £ © § 0 ! ¡ È 0 ¡ ! E ¡ § 0 ! ¡ £ B § ! ! 0 § ¹ ! ¡ © §
E
§ E § ¡ £ © § ! E ¡ ! § © 0 § ! ¡ © ! § © 0 © È © §
§ 1 © £ ! £ © § ! E ¡ ! §
© © ¡ £ B § ! £
0 ! B 0 § ¹ ! ¡ 3 4 6
Á
! È © B ! £ 1 ¡ È E ! ! E ! © © ! B
! § §
© § E
§ E § ¡
¡ © §
§ 1 © £ ! £ © § ! E ¡ !
}
0 © © B ¡ ! § 0 ! © ! § 1 ! E ! £ ! E 0 © £ 0 E ! £ ¡ ¡ £ E ¡ Ã
! ! ¢ ¡ £ 3 4 6 © ¡ ¡ £ B ! ! £ 0 © © §
§ 1 © £ ! © § E
§ E § ¡ £ © § ! E ¡ ! § ©
Þ
3
¡ B ! ¡ ! £ ! © £ E È ¡ £ £ ! ¡ ¡ B ¡ E ! E © ! 0 ¡
3
! ! E ! © ! £ 0 B 0 E !
Þ
¥ 3 4 6 © ¡ § © E § £ ¡¤ ² © £ ! E ¡ © ! £ 0 B 0 E ! !
E ¡ B ¡ E ¡ B ! £ ! E ¡ © È ¡ £ © © B § ¡
}}
î
0 © © ©
î
¡ 0 £ ¡ ¡¤ ¢ © £ ! ¡ £ ©
! £ 0 B 0 E ¡ ! ! £ © E ! © © §
§ 1 © £ ! £ © § ! E ¡ ! § © E
§ E § ¡ £ © § ! E ¡ ! §
3
}
1 ! E E ¡ B ! ¡ © B £ ©
Þ
© ¡ § © B £ B £ ! £ © § ! E E ¡ 0 £ !
¡ £ ! E ¡ § 0 ! ! 1 ! £ ! £ © § ! E E ! § E § ! ! ! ¡ B £ © © £ © § ! E
3
E ¡ © ! 1 £ © 1 ! !
Þ
© £ ! E ¡ © 0 ! § © E ¡ B ¡
ñ Ó Õ Ñ å ì Ô Õ ® Ò å Ó Ò û å ¯
È
ë Ð Ñ Ò ® ë Ð Ñ ¯
È
Ñ ç
Ô Ñ Õ ® Ñ Ò ¯
È © 0 E © © © ! § E ! £ ! § ! E ¡ § B ! © ! £ © § ! E ! £ ! ¡ 0 © © £ !
E ! 0 ! Í E !
Select¥ § E ¡ B ! ¡ B
! ¡ © 3 4 6 © § ! 0 £ E E 3 ¥ 6 ¥
8 È © © 0 § ¹ ! ! £ ! £ © E © Ã
£ ! £ ! 0 ¡ 6 ! 0 ! Ì ©
Þ
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]]]];
F V
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 24/56
§ 0 £ ! £ © B ¡ ! @ ¡ £ ! § ! E ¡ B § © ! 0 ! Ì © § ! 0 £ E E 3 ¥ 6 ¥
8 E ¡ ! £ ¡ © © B Ã
¢ § ¡ 6 ! 0 ! § ! 0 § ¹ ! ! ! £ ! § ¡ © © BC ¢ § ¡ © © © ©
Þ xÒ Ò ë å ì å ú Ò æ Õ ë ì å ý Ó Õ å å ç
ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
Select sencillas}
0 © © B ¡ ! § 1 ¡ © © BC ¢ § ¡ © E § § ¡ 0 § ¹ ! ¡ § ! 0 £ E E 3 ¥ 6 ¥
8
Þ
¯ ¶ - ° ´
®
- · - k n ´ ´ n k n ´ ° n n ± k
( ! £ ! £ © E © £ ! £ 0 ¡ ! § ! 0 § ! © § ! 0 ! § ! (
}
8 ¡ © © § ! 0 £ 0 ¡ (
¥ © B ! ¡ £
©
È ¡ £ B § ! £ © B ¡ § ! 1 © 0 © E ¡ § 0 !
Þ
SELECT * FROM PART
WHERE PRICE > 10; ¡ 0 © © B ¡ § ! 1 © 0 © 0 ! § !
Þ
PNO | PNAME | PRICE
---+---------+-----
3 | Cerrojos | 15
4 | Levas | 25º
0 § ¹ ! ¡ á ² á © § ! 0 £ E E 3 ¥ 6 ¥
8 ¡ § E 0 ! £ © B ¡ 0 ¡ ¡ § ¡ ! 0 £ 0 ¡ © § ! 0 ! § !
3 © £ © B ¡ £ © E © £ ! £ § ¡ § ¡ ! 0 £ 0 ¡ (
}
¥ (
¥ © § ! 0 ! § ! (
}
8 0 § ¹ ! Ã
£ © B ¡ § ! 0 £ E E
Þ
SELECT PNAME, PRICE
FROM PART
WHERE PRICE > 10;¥ © 0 © E ! ¡ © § £ © § 0 ! ¡ ©
Þ
PNAME | PRICE
--------+-----
Cerrojos | 15
Levas | 25
0 © © © § ! 3 ¥ 6 ¥
8 3 4 6 E ¡ £ £ © " ¢ ¡ © ! § ! á £ ¡ © E E á ©
§ 1 © £ ! £ © § ! E ¡ ! È ¡ !
§ ! á © § © E E á © !
è û å ã Ó Ò ¢ å è Ò é Ô Õ ê Ò è
! £ ! B
© 0 ! § § ©
6 ! E ! § E ! E ¡ © © § ! E § ! § ! )
Á
¥
¥ © © 0 ! B E ¡ © E 0 ! £ © § 1 E ! B © 0 ©
0 § ¹ ! ¡ § ! ¢ ! § ! £ ! E § ! ©
È
}
È
8
Þ
SELECT PNAME, PRICE
FROM PART
WHERE PNAME = ’Cerrojos’ AND
(PRICE = 0 OR PRICE < 15); ! £
E ¡ B ¡ £ © § 0 ! ¡
Þ
PNAME | PRICE
--------+-----
Cerrojos | 15
6 ! ¡ © £ ! E ¡ © ! £ 0 B 0 E ! © © © 0 § ¹ ! £ © § ! § 0 ! © ¡ © 0 ¡ © § ! E § ! § !
)
Á
¥
¥ ( ¡ £ © © BC ¢ § ¡ È © £ © B ¡ E ¡ ¡ E © £ E ! 0 ¡ E © 0 ! 0 ¡ B ! B ¡ ¡ © ¹ ! ©
! £ 0 E § ¡ È ¡ £ ! B ¡ 0 § ¹ ! £ § ! 1 © 0 © E ¡ § 0 !
Þ
SELECT PNAME, PRICE * 2 AS DOUBLE
FROM PART
WHERE PRICE * 2 < 50; ¡ 0 © © B ¡
Þ
PNAME | DOUBLE
--------+------
Tornillos | 20
Tuercas | 16
Cerrojos | 30
F w
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 25/56
0 © © © § ! ² ! § ! £ !
6 ¥ 0 £ ! § ! ! § ! £ ! E § ! ©
}
3 © © § © ¡ 0 0 § ¡ © § ! © 1 !
E ¡ § B ! ¥ 0 ! 0 E E ! © © 0 § ¹ ! £ © ¢ ! £ ! E ! ! © § © B © 0 ¡ © § ! § 0 ! ¡ © 0 ¡C ¢ ! £ !
! 1 ! £ © ¡ 0 0 § ¡ ! § ! E ¡ § B ! £ © § 0 ! 0 © ¥ 0 © © ¡ 0 0 § ¡ £ © E © © § E ! § E ! 0 ¡
© á ! § ! á ¥ § ! § ! ¡ ¢ © © 0 § ¹ ! £ © © 0 ¡ ¡ © § £ © 0 ¡ © § ! E ¡ § 0 !
Joins (Cruces)¥ § 1 © 0 © © © B § ¡ B © 0 £ ! E ¡ B ¡ § !
ä Õ Ô ê ë ® é Ó Ð é å ë ¯
© £ © ! § ¹ ! © 3 4 6
( ! £ ! E £ ¹ ! £ 0 £ © 0 ! § ! 3
º
( ( 6 ¥
È (
}
8 3 ¥ 6 6 3 ! 0 £ ! © ! 0 £ 0 ¡ E ¡ B © È
¡ £ B § ! £ © B ¡ § ! 1 © 0 © 0 £ E E
Þ
SELECT S.SNAME, P.PNAME
FROM SUPPLIER S, PART P, SELLS SE
WHERE S.SNO = SE.SNO AND
P.PNO = SE.PNO;
¡ 0 © £ © B ¡ § ! 1 © 0 © 0 ! § ! E ¡ B ¡ £ © § 0 ! ¡
Þ
SNAME | PNAME
-----+-----
Smith | Tornillos
Smith | Tuercas
Jones | Levas
Adams | Tornillos
Adams | Cerrojos
Blake | Tuercas
Blake | Cerrojos
Blake | Levas
¥ § ! E § ! § !
@ © B ¡ 0 £ ¡ E ¡ ! § ! ! § ¡ B £ © ! £ ! E ! ! £ © § ! E ¡ £ Ã
© @ ! ! 0 £ 0 ¡ E ¡ ¡ B £ © E ¡ B Í 3
(
© § ! £ © § ! E ¡ ©
}
@ ¡ £ ! ¢ ¡ © Ã
B ¡ 0 1 £ © 0 £ © § ¡ ! 0 £ 0 ¡ E ¡ ¡ B £ © E ¡ B Í B § E ! ¡ § ! ! E E ©
¢ £ © ¡ ! § ¡ B £ © © § ! 0 £ 0 ¡ E ¡ © § ¡ B £ © © § ! § ! © 1 ¡ © 0 ¡ 6 ! ¡
© E ! § E § ! © § ! B B ! ¡ £ B ! È 0 ! § E ¡ B ¡ © B © 0 £ ! ©
Eê Ò õ ê ê å Ó ³ Õ Ô ê ®
Eê Ò ³ Õ Ô ê õ ê æ å Ó ç
ê Ò ¯
( £ B © £ ¡ © § £ ¡ E 0 ¡ E ! £ 0 © ! ¡
Þ
3
º
( ( 6 ¥
(
}
8
3 ¥ 6 6 3
}
@ ¡ £ ! © § © E E ¡ ! Ã
B ¡ Í E ! B © 0 © ! © § § ! 0 § ! © ! 0 ! 1 ! § ! E ¡ E ¡ © ! ! © § ! E § ! § !
)
Á
¥
¥ © © E £ È § ¡ ! 0 £ 0 ¡ E ¡ ¡ B £ © E ¡ B Í © © © £ 1 ! § ©
! § B © 0 ©
© § B ! B ¡ § ! E ¡ § B ! £ © © 0 ! 3 3
}
¥ È ( (
}
¥
Operadores Agregados3 4 6 ¢ £ ¡¤ ² ¡ £ E ¡ ! ¡ © £ ! ¡ £ © ! 1 £ © 1 ! ¡ E ¡ B ¡ ¡
}Â
í È
º
8 È 3
º
È
È
}
© 0 ¡ B ! © § ¡ B £ © © ! 0 £ 0 ¡ E ¡ B ¡ ! £ 1 B © 0 ¡ ¥ § ! § ¡ £ © § ¡ © £ ! ¡ £ ! 1 £ © 1 ! Ã
¡ © E ! § E § ! ¡ £ © 0 ¡ ¡ § ¡ ! § ¡ £ © © § ! E ¡ § B ! © © E E ! ! © § ! 0 ! § ! E ¡ B § © 0 !
F»
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 26/56
3 © © " ¢ © E E ! 1 £ ¡ © § ! E ¡ § 0 ! È © § E
§ E § ¡ © @ ! E © § ¡ ¡ £ © § ¡ ! § ¡ £ © ©
E ! ! 1 £ ¡ © ! § ! 1 © 0 © © E E
¯ ¶ - ° ´
³
« µ µ - µ l - ·
3 © £ © B ¡ E ¡ ¡ E © £ © § E ¡ 0 © £ ¡ B © ¡ © 0 ¡ ¡ § ¡ ! £ 0 E § ¡ © § ! 0 ! § ! (
}
8 È 0 § Ã
¹ ! £ © B ¡ § ! 1 © 0 © E ¡ § 0 !
Þ
SELECT AVG(PRICE) AS AVG_PRICEFROM PART;
¥ § £ © § 0 ! ¡ ©
Þ
AVG_PRICE
-------
14.5
3 © £ © B ¡ E ¡ ¡ E © £ E ! 0 ¡ ! £ 0 E § ¡ © £ © E ¡ 1 © © § ! 0 ! § ! (
}
8 È 0 § ¹ ! £ © B ¡ § !
0 £ E E
Þ
SELECT COUNT(PNO)
FROM PART; ¡ 0 © £ © B ¡
Þ
COUNT
-----
4
Agregación por Grupos3 4 6 ¡ © £ B 0 © ! £ 0 E ¡ ! £ § ! 0 § ! © ! 0 ! § ! © 1 £ ¡ ¥ © 0 ! E ¡ E ¡ © È
§ ¡ ¡ © £ ! ¡ £ © ! 1 £ © 1 ! ¡ © E £ 0 ¡ ! 0 © © © ! § E ! £ © ! § ¡ 1 £ ¡ © © E £ È © §
! § ¡ £ © § ¡ © £ ! ¡ £ ! 1 £ © 1 ! ¡ ¡ © E ! § E § ! ¡ £ © 0 ¡ ¡ § ¡ ! § ¡ £ © © § ! E ¡ § B ! © Ã
¢ © E E ! ! È ¡ ¡ £ © 0 ¡ ¡ § ¡ ! § ¡ £ © © 1 £ ¡ ¥ § ¡ © £ ! ¡ £ ! 1 £ © 1 ! ¡ © E ! § E § !
! § B © 0 © ¢ ! £ ! E ! ! 1 £ ¡
¥ § ! £ 0 E ¡ ! B © 0 ¡ © § ! 0 § ! © 1 £ ¡ © @ ! E © 0 § ¹ ! ¡ § ! ! § ! £ ! E § ! ©
´ µ À Ä ¶
© 1 ! © ! § 0 ! © ! 0 £ 0 ¡ © © © § ¡ 1 £ ¡ 3 0 © © B ¡
´ µ ÀÄ ¶
« · ¸
...
¸ « ¹
@ ! £ © B ¡ D ² ! £ 0 E ¡ ! ¡ § ! £ © § ! E © 1 £ ¡ È © 0 ! § B ¡ ¡ ©
¡ 0 § ! ¡ © § B B ¡ 1 £ ¡ § ¡ 0 © © © § B B ¡ ! § ¡ £ © ! 0 £ 0 ¡
}
Ø
È
...
È
} º
¯ ¶ - ° ´
¼
« µ - µ m ·
3 © £ © B ¡ E ¡ ¡ E © £ E
0 ¡ ! £ 0 E § ¡ @ ! ¡ © ¡ ¡ £ E ! ! £ ¡ © © ¡ £ ¡ £ B Ã
§ ! £ © B ¡ § ! E ¡ § 0 !
Þ
SELECT S.SNO, S.SNAME, COUNT(SE.PNO)
FROM SUPPLIER S, SELLS SE
WHERE S.SNO = SE.SNO
GROUP BY S.SNO, S.SNAME; ¡ 0 © £ © B ¡
Þ
SNO | SNAME | COUNT
---+-----+-----
1 | Smith | 2
2 | Jones | 1
3 | Adams | 2
4 | Blake | 3
F Ç
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 27/56
© B ¡ ! @ ¡ £ ! ! B £ ! ! ! § ¡ © © 0
¡ E £ £ © ¡ ! ( £ B © £ ¡ È § ! ¡ © § ! 0 ! § !
3
º
( ( 6 ¥
3 ¥ 6 6 3
Þ
S.SNO | S.SNAME | SE.PNO
-----+------+-----
1 | Smith | 1
1 | Smith | 2
2 | Jones | 4
3 | Adams | 1
3 | Adams | 34 | Blake | 2
4 | Blake | 3
4 | Blake | 4}
@ ¡ £ !| ¢ ! £ 0 E ¡ ! B ¡ § ! 0 § ! © 1 £ ¡ £ © © ¡ 0 ¡ ! § ! 0 § ! © 0 © © © §
B B ¡ ! 0 £ 0 ¡ © 3 3
3 3
}
¥
Þ
S.SNO | S.SNAME | SE.PNO
-----+------+-----
1 | Smith | 1
| 2
-----------------
2 | Jones | 4
-----------------
3 | Adams | 1
| 3
-----------------
4 | Blake | 2
| 3
| 4
¥ © 0 £ ¡ © © B § ¡ È ¡ 0 © © B ¡ E ! 0 £ ¡ 1 £ ¡ ! @ ¡ £ ! ¡ © B ¡ !# ¢ § E ! £ © § ¡¤ ¢ © £ ! ¡ £
! 1 £ © 1 ! ¡
º
8 ! £ ! E ! ! 1 £ ¡ È ¡ 0 © © ¡ © § £ © § 0 ! ¡ 0 ¡ 0 ! § © § ! E ¡ § 0 ! ! !
! 0 © £ ¡ £ B © 0 ©
0 © © © ! £ ! © § £ © § 0 ! ¡ © ! E ¡ § 0 ! 0 § ¹ ! ¡ í
º
(
¡& ¢ © £ ! ¡ £ ©
! 1 £ © 1 ! ¡ ! £ ! ! £ © 0 ¡ ! § ¡ ! 0 £ 0 ¡ ! 1 £ ! ¡ È © © B ¡ £ B © £ ¡ ¡ 0 © © £ § !
§ 0 ! ¡ © 0 ¡ 6 ¡ © B
! 0 £ 0 ¡ © ¡ !# ¢ ! £ © E © © § ! E § ! § ! í
º
(
©
© § © E E ¡ ! £
0 § ¹ ! ¡ ! E ! 1 £ © 1 ! ! ( ¡ £ ¡ 0 £ ¡ § ! ¡ È ¡ © © © 0 § ¹ ! £
E ¡ © ! 1 £ © 1 ! ! © ! 0 £ 0 ¡ © ! ! £ © E © © § ! E § ! § ! í
º
(
Having6 ! E § ! § !
Á}
Â
í 0 £ ! ! ! © ¡ £ B ! B ! £ © E ! ! § ! E § ! § ! )
Á
¥
¥ È © 0 Ã
§ ¹ ! ! £ ! E ¡ © £ ! £ § ¡ ! © § § ¡ 1 £ ¡ © ! 0 ! 1 ! § ! E ! § E ! E ! ! © § !
B B ! 6 ! © Ì £ © ¡ © © £ B 0 ! © § ! E § ! § !
Á}
Â
í © © ¡ § E £ ! £ E ¡ Ã
© ! 1 £ © 1 ! !
! ! © Ì ¢ £ © © 0 § E © § ¡ ! 0 £ 0 ¡ § ! ¡ © © £
£ © E ¡ 1 © £ © ©
§ ! E § ! § ! )
Á
¥
¥ ( ¡ £ ¡ 0 £ ¡ § ! ¡ È 0 ¡ ! © Ì £ © © ¡ § E £ © E ¡ © ! 1 £ © 1 ! !
© © ! ! £ © E © £ © § ! E § ! § !
Á}
Â
í
¯ ¶ - ° ´
»
¼ ¿ k µ
3 © £ © B ¡ ¡ § ! B © 0 © § ¡ £ ¡ © © ¡ £ © © © © B
© ! £ 0 E § ¡ È 0 § ¹ ! £ © B ¡
§ ! E ¡ § 0 !
Þ
SELECT S.SNO, S.SNAME, COUNT(SE.PNO)
FROM SUPPLIER S, SELLS SE
WHERE S.SNO = SE.SNO
FÎ
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 28/56
GROUP BY S.SNO, S.SNAME
HAVING COUNT(SE.PNO) > 1; ¡ 0 © £ © B ¡
Þ
SNO | SNAME | COUNT
---+-----+-----
1 | Smith | 2
3 | Adams | 2
4 | Blake | 3
Subconsultas¥ § ! E § ! § ! )
Á
¥
¥
Á}
Â
í © © £ B 0 © © § ¡ © E ¡ § 0 ! © § © E 0
© E ! § © £ § 1 ! £ ¡ © © © " ¢ © £ © ! § ¡ £ ¥ © 0 © E ! ¡ È © § ! § ¡ £ © © © £ ! £ © § !
© ! § ! E ¢ £ © ! © § ! E ¡ § 0 ! ¥ § ¡ © E ¡ § 0 ! ! B § ! © § ¢ ¡ © £ © Ì £ © Ã
¡ © 3 4 6
¯ ¶ - ° ´
½
Å · - ´ - n l
3 © £ © B ¡ E ¡ ¡ E © £ § ¡ ! £ 0 E § ¡ © 0 © © B ! ¡ £ £ © E ¡ © © § ! £ 0 E § ¡ § § ! B ! ¡
8 ¡ £ § § ¡ È 0 § ¹ ! £ © B ¡ § ! E ¡ § 0 !
Þ
SELECT *
FROM PART
WHERE PRICE > (SELECT PRICE FROM PART
WHERE PNAME=’Tornillos’);
¥ § £ © § 0 ! ¡ © £
Þ
PNO | PNAME | PRICE
---+---------+-----
3 | Cerrojos | 15
4 | Levas | 25
! ¡ £ © ! B ¡ § ! E ¡ § 0 ! ! 0 © £ ¡ £ È ¡ © B ¡ © £ § ! ! § ! £ ! E § ! © 3 ¥ 6 ¥
8 ¡ © Ã
E © 6 ! £ B © £ ! ! § £ E ¢ ¡ © § ! E ¡ § 0 ! Ã ! § ! © ¡ £ © © £ £ © B ¡ E ¡ B ¡ § ! 3 ¥ 6 ¥
8
© Ì 0 © £ ! Ã § ! © 1 ! © § ! E § ! § ! )
Á
¥
¥ È ¡ © © B © ¹ ! ! E ¡ § 0 ! ! ! !
à ¡ £ © © £ £ © B ¡ ! © § § ! E ¡ B ¡ § ! 3 ¥ 6 ¥
8 0 © £ ! ( ! £ ! E ! ! 0 ¢ ¢ § ! © § ! 3 ¥ 6 ¥
8 © Ì Ã
0 © £ ! È § ! 3 ¥ 6 ¥
8 0 © £ ! © © £
© £ © ! § ! ! 8 £ ! E ! ! © ! § ! E È E ¡ ¡ E © £ © B ¡ © §
¢ £ © E ¡ © § ! 0 ¢ ¢ § ! § § ! B ! ! 8 ¡ £ § § ¡ È ¡ £ © B ¡ E @ © © ! £ © § ² £ © E ¡ © § ! 0 ¨ ² § !
! E 0 ! § © B ! ¡ £
3 © £ © B ¡ E ¡ ¡ E © £ 0 ¡ ¡ § ¡ £ ¡ © © ¡ £ © © ¡ © © 1 Í ! £ 0 E § ¡ ¡ £ © © B Ã
¢ § ¡ È ! £ ! ¡ © £ § ¡ © § B ! £ © § ! ! © © ! 0 ¡
È 0 § ¹ ! £ © B ¡
Þ
SELECT *
FROM SUPPLIER S
WHERE NOT EXISTS
(SELECT * FROM SELLS SE
WHERE SE.SNO = S.SNO);
¥ © 0 £ ¡ © © BC ¢ § ¡ È ¡ 0 © £ © B ¡ £ © § 0 ! ¡ ! E ¡ È ¡ £ © E ! ! £ ¡ © © ¡ £ © Ã
© ! § B © ¡ ! £ 0 E § ¡
0 © © © 0 § ¹ ! B ¡ 3 3
© § ! 3 ¥ 6 ¥
8 © Ì 0 © £ ! © § !
E § ! § ! )
Á
¥
¥ © § ! 3 ¥ 6 ¥
8 0 © £ !
¡ B ¡ @ © B ¡ © E £ 0 ¡ ! 0 © È § ! E ¡ § 0 !
© © ! § Í ! ! £ ! E ! ! 0 § ! © § ! E ¡ § 0 ! © Ì 0 © £ ! È © © E £ È © § ! § ¡ £ © 3 3
© 0 ¡ B !
© B £ © © § ! 0 § ! ! E 0 ! § © § ! 3 ¥ 6 ¥
8 © Ì 0 © £ !
F ×
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 29/56
Unión, Intersección, Excepción¥ 0 ! ¡& ¢ © £ ! E ¡ © E ! § E § ! § ! È § ! 0 © £ © E E § ! © £ © E ! © § ! 0 © ¡ £ ! ©
E ¡ 0 ¡ © § ! 0 § ! © £ ! ! © ¡ E ¡ § 0 !
¯ ¶ - ° ´
¾
k k ¸ j k l - · - n l ¸ ¯ ¿ n - ° l
6 ! 1 © 0 © E ¡ § 0 ! © © © B § ¡ ©
º
Þ
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’; ! £
© § £ © § 0 ! ¡
Þ
SNO | SNAME | CITY
---+-----+-----
2 | J ones | Paris
3 | Adams | Vienna}
0 © © B ¡ © © B § ¡ ! £ !
8 ¥
3 ¥
8
Þ
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
WHERE S.SNO > 2; © ! £
E ¡ B ¡ £ © § 0 ! ¡
Þ
SNO | SNAME | CITY
---+-----+-----
2 | J ones | Paris
La única tupla devuelta por ambas partes de la consulta es la úni-
ca que tiene $SNO=2$.
! § B © 0 © È © © B § ¡ © ¥
¥ ( 8
Þ
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
WHERE S.SNO > 3; © ! £
E ¡ B ¡ £ © § 0 ! ¡
Þ
SNO | SNAME | CITY
---+-----+-----
2 | J ones | Paris
3 | Adams | Vienna
F ï
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 30/56
Definición de Datos¥ § § © 1 ! © 3 4 6 E § © E ¡ 0 ¡ © E ¡ B ! ¡ ! £ ! © E © ! 0 ¡
Create Table¥ § E ¡ B ! ¡ ! B © 0 ! §² ¢ ! £ ! © £ ! 0 ¡ © © § © E £ © ! ! © ! £ © § ! E !
© ! 0 ! § !
6 ! 0 ! Ì © § E ¡ B ! ¡
¥
}
8 ¥ 8
}
6 ¥ ©
Þ
CREATE TABLE table_name
(name_of_attr_1 type_of_attr_1
[, name_of_attr_2 type_of_attr_2
[, ...]]);
¯ ¶ - ° ´
À
½ - n ± k m - k l Å ´
( ! £ ! E £ © ! £ § ! 0 ! § ! © ! ©
x Ò Ò ë å ì å ú Ò æ Õ ë ì å ý Ó Õ å å ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
© 0 § ¹ ! Ã
£ ¡ § ! 1 © 0 © 0 £ E E ¡ © © 3 4 6
Þ
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}
E ¡ 0 ! E 1 © ! § 0 ! © ! § 1 ¡ 0 ¡ © ! 0 ¡ ¡& ¢ ¡ £ 0 ! ¡ ¡ £ 3 4 6
Þ
3
8 ¥ í ¥
Þ
© 0 © £ ¡ ! £ ¡ E ¡ 1 ¡ © ¢ ! § ! £ ! E ¡ B § © 0 !
0 © ¢ £ © E
3
3
}
6 6
8
Þ
© 0 © £ ¡ ! £ ¡ E ¡ 1 ¡ © B © !~ ¢ ! § ! £ !
{ 0 © £ © E
3
¥
}
6
pW È
q `
Þ
Í B © £ ¡ © E B ! § E ¡ 1 ¡ ©
p 1 0 ¡ ©D ¢ £ © E È ! B © ¡
q ! § ! © £ © E @ ! ! £ ! © § 0 ¡ © E B ! §
{ Á
pÁ
q Á
3
q © ¡ B 0 © È © ! B ©
© ! § ©
3
6
}
8
Þ
B £ E ¡ E ¡ 1 ¡ © ¡ § © ! § ! £ ! E ¡ B ! à ¡ 0 ! 0 ©
3
Á}
n Þ
E ! © ! © E ! £ ! E 0 © £ © © § ¡ 1 0 ! È © § ¡ 1 0
n
3
Â}
Á}
n Þ
E ! © ! © E ! £ ! E 0 © £ © © § ¡ 1 0 ! £ ! § © È © § ¡ 1 0 B
Ì B !
n
V 4
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 31/56
Create Index3 © 0 § ¹ ! § ¡ E © ! £ ! ! E © § © £ ! £ © § ! E E © ¡ ! ! £ © § ! E 3 ! £ © § ! E
R0 © ©
E © © © § ! 0 £ 0 ¡
A ¡ £ © B ¡ £ © E ¨ ² © £ ! £ 0 ¡ ! § ! 0 § !
t © 0 © ©
t
A
r
a© 0 © BC ¢ ¡ ! £ ¡ Ì B ! ! B © 0 © £ ¡ ¡ £ E ¡ ! § ! § Í B © £ ¡ © 0 ! § © 0 § !
tB
©
© 0 © B ¡ £ ¡ ¡ £ E ¡ ! § ! § 0 ! B ! ¡ ©
R
( ! £ ! E £ © ! £ E © © 3 4 6 © 0 § ¹ ! © § E ¡ B ! ¡
¥
}
8 ¥
¥ 6 ! 0 ! Ì ©
Þ
CREATE INDEX index_nameON table_name ( name_of_attribute );
¯ ¶ - ° ´
½ - l - j k m - ¿
( ! £ ! E £ © ! £ E © § § ! B ! ¡ ¡ £ © © § ! 0 £ 0 ¡ 3
}
¥ © § ! £ © § ! E 3
º
( ( 6 ¥
È
0 § ¹ ! £ © B ¡ § ! 1 © 0 © 0 £ E E
Þ
CREATE INDEX I
ON SUPPLIER (SNAME);
¥ § E © E £ © ! ¡ © B ! 0 © © ! 0 ¡ B
0 E ! B © 0 © © © E £ È E ! ! © ¹ © ! © !
0 § ! © © £ 0 © © § ! £ © § ! E 3
º
( ( 6 ¥
È © ! ! 0 ! £
© § E ©
0 © © © © § Í E ¡
E ! B ¡ © ! £ ¡ © © © £ E £ E ! ¡ © E £ © ! E © © E £ © B © 0 ¡ ©
§ ! © § ¡ E !
Create View3 © © © © £ ! 0 ! E ¡ B ¡ !
æ Ò ã è Ò Ô Ó æ Ð Ò è
È © © E £ È ! 0 ! § ! © ¡ © Ì 0 ©
ü ò ç
ë Ô é Ò Ñ å ê æ å
© § ! ! © © ! 0 ¡ È © £ ¡ !# ¢ ! £ © E © ! § ! £ ¡ E ¡ B ¡ © Ì 0 © © ( ¡ £ E ¡ 0 £ ! È
E ! ¡ @ ! § ! B ¡ © !
æ Ò ã è Ò ã Ò ë å
È @ ! £ © ! § B © 0 © © ! § © 0 © ! § B ! E © ! ¡ ! £ !
E ! ! § ! © § ! 0 ! § ! © ! § 1 Í 0 ¡ © § ! § B ! E © ! B © 0 ¡ E ¡
6 ! 0 ! ¡ 0 © © ! 0 ¡ ! § B ! E © ! ¡ £ ¡ ¡ È 0 1 § © E ! B © 0 © ! § B ! E © Ã
! ¡ ¥ § 1 ! £ È © § 0 © B ! ! § B ! E © ! § ! © E © § ! 0 ! © © E £ È § ! £ © 1 § !
¢ ! £ ! ! E E © © £ ! § ! 0 ! § ! ! © E ! B © 0 © ! § B ! E © ! ! ! £ ! B ! 0 © £ ! § ¹ ! £ § ! 0 !
©
! § 1 Í § 1 ! £ © § ¡ E ! 0
§ ¡ 1 ¡ © § 0 © B ! © !
Ï ¤ ë æ å Ñ ð Ò æ Ò è Õ û ë
( ! £ ! ! E ©
§ ! © £ © 0 © 0 E E ! ! £ ! B § © B © 0 ! £ 0 ! È £ © £ ! © !
Ï õ þ ï ×
¥ 3 4 6 © 0 § ¹ ! © § E ¡ B ! ¡
½ ¯ « Å ¯ Æ j ¯ Ç
! £ ! © £ ! 0 ! 6 ! 0 ! Ì ©
Þ
CREATE VIEW view_name
AS select_stmt
¡ ©
select_stmt© ! 0 £ E E © § © E 0
§ ! È E ¡ B ¡ © © ©
Ï å è å é æ
Ã
0 © © ©
select_stmt
¡ © © © E 0 ! E ! ¡ © E £ © ! § ! 0 ! 3 B § © B © 0 © © ! § B ! E © Ã
! © § ¡
é Ò æ è Õ û Õ ë ì å è ë Ô ë æ å Ñ Ò
© © © E 0 ! E ! ! © ¹ © © £ © ! § ¹ ! ! E ¡ § 0 ! E ¡ 0 £ !
§ ! 0 !
3 © ! § ! 1 © 0 © © E © ! 0 ! 0 § ¹ ! B ¡ © © ¡ § ! 0 ! § ! ©
xÒ Ò ë å ì å
ú Ò æ Õ ë ì å ý Ó Õ å å ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë Þ
CREATE VIEW London_Suppliers
V ó
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 32/56
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’;
}
@ ¡ £ ! ¡ © B ¡ 0 § ¹ ! £ © 0 !
Ó å è Ò é Ô y ê Ô Ó æ Ð Ò è
London_SuppliersE ¡ B ¡ © 0 £ ! 0 ! © ©
¡ 0 £ ! 0 ! § ! ! ©
Þ
SELECT *
FROM London_Suppliers
WHERE P.PNAME = ’Tornillos’;
6 ¡ E ! § ¡ © ¡ § © £
§ ! 1 © 0 © 0 ! § !
Þ
SNAME | PNAME
-----+-------
Smith | Tornillos
( ! £ ! E ! § E § ! £ © 0 © £ © § 0 ! ¡ È © § 0 © B ! © ! © © ! 0 ¡ @ ! £ © ! § ¹ ! ¡ £ © ! B © 0 ©
! E E © ¡
Õ é Ð è æ Õ
! § ! 0 ! § ! © § ! ! © 3
º
( ( 6 ¥
È 3 ¥ 6 6 3 (
}
8
Á
! E © © 0 ¡ © © E 0 ! ¡
§ ! E ¡ § 0 ! ! ! © § ! © E © § ! 0 ! E ¡ 0 £ ! ! © § § ! 0 ! § ! ! © 8 £ ! © ¡ È § !
E ! § E ! E ¡ © ! E ¡ ! § © ! ! © § ! E ¡ § 0 ! E ¡ 0 £ ! § ! 0 !
© ¡ £
!# ¢ § E ! £
¢ ! £ ! ¡ 0 © © £ § ! 0 ! § ! £ © § 0 ! 0 ©
Drop Table, Drop Index, Drop View3 © 0 § ¹ ! © § E ¡ B ! ¡
( 8
}
6 ¥Ý ¢ ! £ ! © § B ! £ ! 0 ! § ! E § © ¡ 0 ¡ ! § !
0 § ! ! § B ! E © ! ! © © § § !
Þ
DROP TABLE table_name;
( ! £ ! © § B ! £ § ! 0 ! § ! 3
º
( ( 6 ¥
È 0 § ¹ ! £ © B ¡ § ! 0 £ E E
Þ
DROP TABLE SUPPLIER;
3 © 0 § ¹ ! © § E ¡ B ! ¡
(
¥ Ù ¢ ! £ ! © § B ! £ E ©
Þ
DROP INDEX index_name;
! § B © 0 © È © § B ! £ © B ¡ ! 0 ! ! ! 0 § ¹ ! ¡ © § E ¡ B ! ¡
(
Â
¥ )
Þ
DROP VIEW view_name;
V F
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 33/56
Manipulación de Datos
Insert Intoº
! © ¹ © © E £ © ! ! 0 ! § ! © !
ð Ó å Ò æ å
ø
Ò ã è å
È © © © £ § § © ! ! E ¡ 0 § ! B © Ã
! 0 © © § E ¡ B ! ¡
j È ¯ Å j È Å µ
6 ! 0 ! Ì ©
Þ
INSERT INTO table_name (name_of_attr_1
[, name_of_attr_2 [,...]])
VALUES (val_attr_1
[, val_attr_2 [, ...]]);
( ! £ ! © £ 0 ! £ § ! ¢ £ B © £ ! 0 § ! © § ! £ © § ! E 3
º
( ( 6 ¥
©
xÒ Ò ë å ì å ú Ò æ Õ ë ì å ý Ó Õ å å ç
ì Õ Ó å ë ¤
¨
Ó æ ò é Ð è Õ ë
0 § ¹ ! B ¡ § ! 1 © 0 © 0 £ E E
Þ
INSERT INTO SUPPLIER (SNO, SNAME, CITY)
VALUES (1, ’Smith’, ’London’);
( ! £ ! © £ 0 ! £ § !~ ¢ £ B © £ ! 0 § ! © § ! £ © § ! E 3 ¥ 6 6 3 È 0 § ¹ ! B ¡
Þ
INSERT INTO SELLS (SNO, PNO)
VALUES (1, 1);
Update( ! £ ! E ! B ! £ ¡ ¡ B
! § ¡ £ © © ! 0 £ 0 ¡ © 0 § ! © ! £ © § ! E È © 0 § ¹ ! © §
E ¡ B ! ¡
º
(
}
8 ¥ 6 ! 0 ! Ì ©
Þ
UPDATE table_name
SET name_of_attr_1 = value_1
[, ... [, name_of_attr_k = value_k]]
WHERE condition;
( ! £ ! E ! B ! £ © § ! § ¡ £ © § ! 0 £ 0 ¡ (
¥ © © § ! £ 0 E § ¡ 8 ¡ £ § § ¡ © § ! £ © § ! E (
}
8 È
0 § ¹ ! B ¡
Þ
UPDATE PART
SET PRICE = 15
WHERE PNAME = ’Tornillos’;
¥ § © ¡ ! § ¡ £ © § ! 0 £ 0 ¡ (
¥ © § ! 0 § ! E ¡ ¡ B £ © © 8 ¡ £ § § ¡ © ! @ ¡ £ !
{
V V
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 34/56
Delete( ! £ ! ¡ £ £ ! £ ! 0 ̈ ² § ! © ! 0 ! § ! ¢ ! £ 0 E § ! £ È 0 § ¹ ! B ¡ © § E ¡ B ! ¡ ¥ 6 ¥ 8 ¥
6 ! 0 ! Ì ©
Þ
DELETE FROM table_name
WHERE condition;
( ! £ ! ¡ £ £ ! £ © § ² £ ¡ © © ¡ £ § § ! B ! ¡ 3 B 0 @ © § ! 0 ! § ! 3
º
( ( 6 ¥
È 0 § ¹ ! B ¡ § ! Ã
1 © 0 © 0 £ E E
Þ
DELETE FROM SUPPLIER
WHERE SNAME = ’Smith’;
System Catalogs¥ 0 ¡ ¡ 0 © B ! © ! © © ! 0 ¡ 3 4 6 © © B § © !
é Ò æ è Õ û Õ ë ì å ë Ô ë æ å Ñ Ò
¢ ! £ ! B ! 0 © © £
© § E ¡ 0 £ ¡ § © 0 ! § ! È 0 ! È E © È © 0 E © 0
© ! © § ! ! © © ! 0 ¡ ¥ 0 ¡
E ! 0
§ ¡ 1 ¡ © § 0 © B ! © © © © 0 1 ! £ E ¡ B ¡ © E ! § © £ ¡ 0 £ ! £ © § ! E ¡ £ B ! §
© 0 £ ! 0 ! © ( ¡ £ © © B § ¡ È @ ! E ! 0
§ ¡ 1 ¡ 0 § ¹ ! ¡ ! £ ! § ! © E © 0 ! ¥ 0 ©
E ! 0
§ ¡ 1 ¡ ! § B ! E © ! § ! E ¡ § 0 ! © § ! © E © § ! 0 ! 3 © B £ © © © @ ! E © !
E ¡ § 0 ! E ¡ 0 £ ! § ! 0 ! È © § 0 © B ! 0 ¡ B ! £ B © £ ¡ § !
é Õ ê ë Ð è æ Ò ì å ì å Ê ê Ô é Ô y ê ì å è Ò Ô ë æ Ò
© § E ! 0
§ ¡ 1 ¡ B ! 0 © £ ! § ¹ ! § ! 0 ! ! 0 © ©~ ¢ £ ¡ E © © £ E ¡ § ! E ¡ § 0 ! © § ! £ ¡ © !
Ï õ þ ï ×
! £ ! ¡ 0 © © £ ! © E £ E B
© 0 ! § § ! !
£ ! © !
ú
¨ ø
j
! £ ! ¡ 0 © © £
B
¡ £ B ! E ¡ £ © § ¡ E ! 0
§ ¡ 1 ¡ © § 0 © B !
SQL Embebido¥ © 0 ! © E E £ © ! £ © B ¡ E ¡ B ¡ © ¢ © © © B © © £ 3 4 6 © § © 1 ! © © @ ¡ 0 ©
C
Á
! ¡ £ ! ¹ ¡ © £ E ! § © ¡ £ § ! © ¢ ¡ £ ! B ¡ © £ © £ 0 § ¹ ! £ 3 4 6 © ©
§ © 1 ! © © @ ¡ 0
Þ
3
Á
! E ¡ § 0 ! © ¡ © © © ¡ £ B § ! £ 0 § ¹ ! ¡ 3 4 6 £ ¡ ¡ £ © © B § ¡ È § !
E ¡ § 0 ! £ © E £ !
( ! £ ! © £ E !7 ¢ ! ¹ © £ © ! § ¹ ! £ © ! E ¡ § 0 ! © E © 0 ! B ¡ § © Ã
1 ! © © @ ¡ 0 © B ! ¡ £9 ¢ ¡ © £ © Ì £ © ¡ © 3 4 6
3
3 BC ² § © B © 0 © © £ © B ¡ ! E E © © £ ! ! ! © © ! 0 ¡ © © ! !# ¢ § E ! E ©
© 0
© E £ 0 ! © © § § © 1 ! © © § @ ¡ 0 © 0 © B ! © £ © © £ ! © § § © 0 © E ¡ !
0 © £ ! E © 1 £
E ! © E £ 0 ! ©
È § ! ¡ £ B ! E ¡ £ © § ¡ § § © 0 © © 0
! § B ! E © ! ! ©
! ! © © ! 0 ¡ © © © ! E E © © £ © 0 § ¹ ! ¡ 3 4 6 © B © ¡
º
£ ¡ 1 £ ! B ! © 0 § ¹ ! 3 4 6 © B © ¡ © § © 1 ! © © @ ¡ 0 E ¡ 0 © © 0 £ E Ã
E ¡ © © § § © 1 ! © © § @ ¡ 0 © 0 £ E E ¡ © ©
Ï x
å Ñ ã å ã Ô ì Õ
¥ 3 4 6
! ! 0 £ E Ã
E © ¥ 3 4 6 © B © ¹ ! E ¡ § ! ! § ! £ ! E § ! ©
¯ Ë ¯ ½
6 ! 0 £ E E ¡ © ¥ 3 4 6
© 0 £ ! ¡ £ B ! © 0 £ E E ¡ © © § § © 1 ! © © § @ ¡ 0 B © ! 0 ©
ñ Ó å é Õ Ñ ñ Ô è Ò ì Õ Ó
©
@ ! 0 ! § B © 0 © © £ 0 ! § § ! B ! ! ! £ 0 ! © § £ © £ ! © © © E 0 ! § ¡ ! £ ! ¡ E ¡ Ã
B ! ¡ © 3 4 6
V w
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 35/56
! ¡ © B ¡ § ¡ © © B § ¡ ©
Ï å è å é æ
¡ © £ ! B ¡ © © § £ © § 0 ! ¡ © § ! E ¡ § 0 ! ©
! § 1 ¡ B | ¢ £ Ì B ¡ ! E ¡ 0 ¡ © 0 ¢ ¢ § ! 6 ! B ! ¡ £ ! © § ¡ § © 1 ! © © @ ¡ 0 ¡
© 0
© ! ¡ ! £ ! ¡ © £ ! £ E ¡ E ¡ 0 ¡ È © B ¡ ¡ © © E © 0 ! B ¡ B © E ! B ¡
¢ ! £ ! ! E E © © £ ! E ! ! 0 § ! Í E ! © § E ¡ 0 ¡ © 0 § ! © © § 0 ! ¡ £ ! 0 £ E E
3 ¥ 6 ¥
8 ¥ 0 © B © E ! B ¡ © © © £ £ ¡ ¡ £ E ¡ ! ¡ © E § ! £ ! ¡
é Ð Ó ë Õ Ó
8 £ ! © § § ¡ È
¢ ¡ © B ¡ 0 § ¹ ! £ © § E ¡ B ! ¡
¥ 8
Á
! £ ! £ © E © £ ! £ ! 0 § ! ! 0 ! £ © § E £ ¡ £
@ ! E ! § ! 1 © 0 © 0 § !
( ! £ ! ! E B
© 0 ! § § ! ! ¡ £ © © § 3 4 6 © B © ¡ È £ ! © ! W
ú Ò æ å Ò ê ì ú Ò Ó å ê
ó ï ïÎ
` È W
ú Ò æ å ó ï ï w
` È ¡ W
Eè è Ñ Ò ê ó ï × ×
`
V»
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 37/56
Capítulo 3. Arquitectura
Postgres Conceptos de arquitectura}
0 © © E ¡ B © ¹ ! £ È © © £ ! E ¡ B £ © © £ § ! ! © © § ! ! £ 0 © E 0 £ ! © § 0 © B ! ( ¡ 0 Ã
1 £ © ¥ 0 © © ¡ E ¡ B ¡ § ! ! £ 0 © © ( ¡ 0 1 £ © 0 © £ ! E 0 ! § © @ ! £
© § 1 © 0 © E ! Ã
¢ 0 § ¡ B E @ ¡ B
© E § § ¡ ¥ § ! © £ 1 ! © ! © © ! 0 ¡ È ( ¡ 0 1 £ © ! B ¡ © § ¡
E § © 0 ©
Ê
© ¡ £ E ¡ ¡ E ¡ E ¡ B ¡ á £ ¡ E © ¡ ¡ £ ! £ ¡ á
º
! © ( ¡ 0 1 £ © E ¡ 0 ©
© § ¡ 1 © 0 © £ ¡ E © ¡ E ¡ ¡& ¢ © £ ! 0 ¡ ©
º
Ì £ ¡ 1 £ ! B !
Þ
3
º
¢ £ ¡ E © ¡ © B ¡ ¡ ¢ ¢ © £ ¡ £
postmaster
È
3
§ ! ! § E ! E ¡ £ © § ! © 0 £ ! ! ! © § ! £ ¡ £ ¡ 0 ©
© 1 È © §& ¢ £ ¡ 1 £ ! B !
psql
È
3
¡ ¡ B
© £ ¡ £ © © ! © © ! 0 ¡ © © 1 ¡ § ! ¡ © § B B ¡ £ ¡ E © ¡
post-
gres
º
Í E ¡
postmasterE ¡ 0 £ ¡ § ! ! E ¡ § © E E © ! © © ! 0 ¡ ! ! © Í E ¡
@ ¡ 0 © ¡ ! © 0 ¡ ! E ¡ § © E E © ! © © ! 0 ¡ © © § © § § ! B ! £ ! 0 ! § ! E
¡ 0 ¡ 6 ! ! § E ! E ¡ © © £ ¡ 0 © © © £ © ! E E © © £ ! ! © 0 © £ B ! ! ! ©
© ! 0 ¡ © 0 £ ¡ © ! 0 ! § ! E @ ! E © § § ! B ! ! ! § ! § £ © £ ! 6 ! § £ © £ ! © ! © 0 Ã
E ¡ © © ! £ ¡ ! 0 £ ! © § ! £ © ! §
postmaster
ð Õ Ñ Õ ë å å ë æ Ò ã è å é å Ð ê Ò é Õ ê å Ô y ê
È © §
E ! § © £ © © 0 ! E ! © ¡' ¢ £ ¡ E © ¡ © © § © £ ¡ £ ! E F ©
Ì µ
ª
½ · - - · l Å ´ - n - k n k - ¿ ± k
E ¡ © E 0 ! © § £ ¡ E © ¡ © £ ¡ 0 © ! § © ¡ © £ ¡ £
}
¢ ! £ 0 £ © © 0 © 0 ¡ È © § ¢ £ ¡ E © ¡
© £ ¡ 0 © © § © £ ¡ £ © ! E F © © E ¡ B E ! § ! 0 © £ © E © §
postmas-
ter
}
© È © §
postmaster © B £ © © © 0
© © E 0 ! ¡ È © © £ ! ¡ © 0 E ¡ © È 0 ! 0 ¡
§ ¡ £ ¡ E © ¡ © £ ¡ 0 © E ¡ B ¡ § ¡ © ! E F © © © © !
6 ! § £ © £ !
libpq © £ B 0 © ! Í E ¡Ý ¢ £ ¡ E © ¡ © £ ¡ 0 © £ © ! § ¹ ! £ B § 0 § © E ¡ © Ã
Ì ¡ © ! £ ¡ E © ¡ © ! E F ©
}
© È § ! ! § E ! E £ ¡ 0 © 0 ¡ ! ! © £ ¡ E © ¡
© Í E ¡ 0 @ £ © !
¡ © Ì ¡ © B § 0 0 @ £ © ! © 0 £ © © § £ ¡ 0 © © § ! E F © ¡ © 0
¡ ¡ £ 0 ! ! © B ¡ B © 0 ¡ ©
libpq
º
! B § E ! E © © 0 ! ! £ 0 © E 0 £ ! © © © §
postmaster © § £ ¡ E © ¡ ! E F © © B £ © © © © E 0 ! © § ! B B ! B
! © § © £ Ã
¡ £ © ! © © ! 0 ¡
È B © 0 £ ! © § ! ! § E ! E © £ ¡ 0 © © © © © E 0 ! £ © © ©
E ! § © £ 0 ¡ © © 0 © © £ © 0 ¡ © B © 0 © È ¡ £ © § ¡ ! £ E @ ¡ © © © © £ ! E E © Ã
¡ © § ! B
! © § E § © 0 ©~ ¢ © © ¡ © £ ! E E © § © ¡ § ¡ ¢ © © © £ ! E E © ¡
! ¡ ¡ B £ © © ! £ E @ ¡ © £ © 0 ©
© § B
! © § © £ ¡ £ © ! © © ! 0 ¡
8 © 1 ! © E © 0 ! © § ¡ © £ E ¡
postmaster ¡ 0 1 £ © © © © E 0 ! E ¡ © § © 0 Ã
E ! ¡ £ © ! £ ¡ © § á ¢ ¢ © £ ! £ ¡ á ( ¡ 0 1 £ ©
¡ 0 © © © § © £ ! £ ¡ ( ¡ 0 1 £ © ¡
© E © 0 ! © £ ! £ ¡ © © E ! § © ! £ ¡ § § ! B ! ¡ áâ ¢ ¡ 0 1 £ © á
© 0 ¡ ! ¡ £ B ! È
© § © £ ! £ ¡ ( ¡ 0 1 £ © © 0 ! B © 0 © ¡ 0 © © © © £ © § © £ ! £ ¡ ©
º
Ì
VÎ
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 38/56
¨
á £ ¡ ¡ 0 á
T ¥ E ! § © £ E ! ¡ È 0 ¡ ¡ § ¡ ! £ E @ ¡ £ © § ! E ¡ ! ¡ E ¡ § ! ! © © ! 0 ¡ © Ã
© © £ 0 © © E © £ ! © 0 © © £ ! £ ¡ ( ¡ 0 1 £ © ( ¡ 0 1 £ ©
V ×
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 39/56
Capítulo 4. Empezando
o
B ¡ © B © ¹ ! £ ! 0 £ ! ! ! £ E ¡ ( ¡ 0 1 £ ©
}
§ 1 ¡ © § ¡ ² ! ¡ © E © ! £ ¡ ! £ ! ! £ ( ¡ 0 1 £ © © © © £ £ © ! § ¹ ! ¡ ¡ £ E ! § Ã
© £ ! £ ¡ È ! § 1 ¡ § ¡ © © £
£ © ! § ¹ ! £ © § ! B 0 £ ! ¡ £ © § ! ! © © ! 0 ¡ ¥ 0 ©
! B 0 £ ! ¡ £ © § !h ¢ © £ ¡ ! © 0 ! § © § ¡ 0 $ ! £ © È E £ © § ¡ £ © E 0 ¡ £ ¡ © § ! ! ©
© ! 0 ¡ © E © § £ ¡ E © ¡
postmaster ¥ 0 ! © £ ¡ ! ¡ 0 © © © © £ © § © £ ! Ã
£ ¡
º
Ì 5 £ ¡ ¡ 0 7
¡ © § ! B 0 £ ! ¡ £ © § 0 © B !
º
! ¢ © £ ¡ ! © © 0 ! § ! £ ! £
( ¡ 0 1 £ © 0 © © £ ! E © 0 ! © © E ! § ¡' ¢ £ § © 1 ! !
3 © 0
0 ! § ! ¡ ( ¡ 0 1 £ © È E ¡ § 0 © § ! 0 £ E E ¡ © © 0 ! § ! E © § ! í ! ©
}
B 0 £ ! E £ © 1 £ © © ! © 0 ! 1 ! E ! ¡ @ ! ! E ¡ E § ¡ § ! 0 ! § ! E
© 0 £ ! § © © © 0 © B ! ! § È E ! § © £ © © B § ¡ © © ! © E ¡ B © E © E ¡ © § E ! £
E 0 © £
5 1 7 ¡ £ © © © © © E £ £
© © § § ! § © ! © £ © © ©
º
Ì 6 ¡ © © B § ¡
© E ¡ B © ¹ ! E ¡ © § E ! £ ! E 0 © £ 5 ² 7 ¡ £ © © © © § § © 1 ! © © E ¡ § 0 ! ( ¡ 0 1 £ © È
( ¡ 0 1 £ © 3 4 6
Configurando el entorno¥ 0 ! © E E © Ì5 ² ¡ © § ! B ! © £ ! © E ¡ 1 £ ! £ © § © 0 ¡ £ ¡ È ! £ ! § ! !7 ¢ § E ! E ¡ ©
}
Ã
B B ¡ © ( ¡ 0 1 £ © @ ! ¡ 0 ! § ! ¡ © E ! ¡ E ¡ £ £ © E 0 ! B © 0 © @ E ¡ § 0 © § ! í ! © §
}
B 0 £ ! ¡ £ § ! ¡ 0 ! © 0 ! § ! E © © ! 0 ! § ! £ ( ¡ 0 1 £ ©
( ¡ 0 1 £ © © ! !# ¢ § E ! E E § © 0 ©
Ê
© £ ¡ £
¡ B ¡ ! £ ¡ È Í E ! B © 0 © © E © 0 ! ! E Ã
E © ¡ ! § ! ! £ 0 © E § © 0 © © © B § ¡ © ! ! § E ! E E § © 0 © © © § B ¡ 0 ¡ £ 0 © £ ! E Ã
0 ¡
psql
( ¡ £ B § E ! È ! B £ © B ¡ © ( ¡ 0 1 £ © @ ! ¡ 0 ! § ! ¡ © © § £ © E Ã
0 ¡ £ ¡
/usr/local/pgsql ( ¡ £ § ¡ 0 ! 0 ¡ È ¡ © © ! © § £ © E 0 ¡ £ ¡
/usr/local/pgsqlÈ
© © £
0 0 £ § ¡Ë ¢ ¡ £ © § ¡ B £ © © § £ © E 0 ¡ £ ¡ ¡ © ( ¡ 0 1 £ © © 0 0 ! § ! ¡ £ © ! § Ã
B © 0 © 8 ¡ ¡ § ¡ £ ¡ 1 £ ! B ! © ( ¡ 0 1 £ © © 0 ! § ! © © 0 © E ! ¡
© © § £ © E 0 ¡ £ ¡
/usr/local/pgsql/bin ( ¡ £ § ¡ 0 ! 0 ¡ È © © £
! ! £ © 0 © £ © E 0 ¡ £ ¡ ! § ! © @ © § §
£ 0 ! © £ © © 3 ! ! ! £ ! 0 © © §
@ © § § ©
© £ F © § © È 0 ! § E ¡ B ¡ 0 E @ ¡ E @ È
© © £
! ! £
% set path = ( /usr/local/pgsql/bin path )
© © § ! £ E @ ¡
.login © £ © E 0 ¡ £ ¡ © £ ¡ ! § 3 ! ! ! £ ! 0 © © §
¡ £ © @ © § § È
0 ! § E ¡ B ¡ @ È F @ ¡ ! @ © 0 ¡ E © © © £
! ! £
% PATH=/usr/local/pgsql/bin:$PATH
% export PATH
© © § ! £ E @ ¡
.profile © £ © E 0 ¡ £ ¡ © £ ¡ ! § © © ! @ ¡ £ ! È ! B £ © B ¡ © @ !
! ! ¡ © § £ © E 0 ¡ £ ¡ © ( ¡ 0 1 £ © ! ! 0 @
}
© B
È @ ! £ © B ¡ £ © © £ © E ! £ © E © Ã
0 © B © 0 © ! 5 E ¡ 1 £ ! £ ! ! £ ! § © © @ © § § 7 ¡ 5 E ¡ 1 £ ! £ ! ! £ ! § © © © 0 ¡ £ ¡ 7 !
§ ¡ § ! £ 1 ¡ © © 0 © ¡ E B © 0 ¡ 3 ¡ © 0 © © E ¡ B § © 0 ! B © 0 © © § Í § 0 B ¡
£ £ ! ¡ ! § £ © © E Ã
0 ¡ © § ! B ¡ E ! E © ! 0 @ È ! 0 © © E ¡ 0 ! £ © © £ ! E ¡ § 0 ! £ § ¡ B ! ! § ©
©
º
Ì © © E £ © © § @ © § § © 0 § ¹ !
3 © § ! B 0 £ ! ¡ £ © § 0 © B ! ¡ 0 © © § ! E ¡ 1 £ ! E © © § B ¡ ¡Ý ² ¡ £ © © E 0 ¡ È
0 © £
© £ © ! § ¹ ! £ 0 £ ! ! ¡ © Ì 0 £ ! ( ¡ £ © © B § ¡ È § ! B
! © £ ¡ £ © ! © ©
! 0 ¡ © ! B
! £ © B ¡ 0 ! È © E © 0 ! £
E ¡ 1 £ ! £ § ! ! £ ! § © © © 0 ¡ £ ¡ ( í
Á
3 8
E ¡ © § ¡ B £ © © § ! B
! © £ ¡ £ © ! © © ! 0 ¡ 8 ! B © © £
© © E E ! £
§ ! ! £ ! § © © © 0 ¡ £ ¡ ( í (
8 3 0 £ ! 0 ! © E ! £ £ ¡ 1 £ ! B ! © ! § E ! E 0 ©
V ï
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 40/56
¡ 0 E ! © ¡ © © E ¡ © E 0 ! £ © ! §
postmasterÈ © © £
E ¡ § 0 ! £ ! § ! B 0 £ ! ¡ £
¢ ! £ ! ! © 1 £ ! £ © © © © 0 ¡ £ ¡ © 0
E ¡ 1 £ ! ¡ ! © E ! ! B © 0 ©
Ejecución del Monitor Interactivo (psql)}
B © ¡ © ! B 0 £ ! ¡ £ @ ! ! © © E 0 ! ¡ ! © E ! ! B © 0 © © §² ¢ £ ¡ E © ¡
post-
master § © @ ! ! ! 0 ¡ £ ¹ ! ¡ ! 0 § ¹ ! £ § ! ! © © ! 0 ¡ È © © E ¡ B © ¹ ! £ ! © © E 0 ! £
! § E ! E ¡ © E ¡ B ¡ ! £ ¡
¡ B ¡ B © E ¡ ! B ¡ d ² £ © ! B © 0 © È © © £ ! ! ! £
/usr/local/pgsql/b! § 5# ¢ ! 0 @ 7 © Í © ! © 0 £ £ © 0 © © £ © © ¥ § ! B ! ¡ £ ! © § ¡ E ! ¡ È © § ¡
Í E ¡ © 0 © £
© @ ! E © £ © 0 £ B ¡ © £ © ! £ ! E
© © ( ¡ 0 1 £ © ÷
È © ¡ ¡ £ 0 ! ¡ 0 ¢ ¡ © £ © 0 © © E ¡ © Ì ¥ § ! B 0 £ ! ¡ £
¢ © © @ ! © £ © § © 1 ¡ © £ B 0 £ E ¡ © Ì ¡ © ² ¡ £ £ © 8
(
Ê
( È ¡ £ © 0 £ 1 £ § ¡ ! E E © ¡ !
§ ! ! © © ! 0 ¡ ! 0 £ ! © E ¡ © Ì ¡ © § ¡ E ! § © © § ! B B ! B
!
¥ 0 ! © § © E E
¢ © © © £ 1 E ! 0 ! © E © 0 £ ! £ ¡ § © B ! ! § ! @ ¡ £ ! © E ¡ © E 0 ! £ ! § ! ! © © ! 0 ¡
3 ¡ 0 © © § ¡ 1 © 0 © B © ! © © © £ £ ¡ £ © ! ¡ £ © ( ¡ 0 1 £ © 0 ! § E ¡ B ¡
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’?
¡ £ B ! § B © 0 © © © ¡ ! ©
© §
postmaster ¡ © 0
© E ¡ ! B © 0 ¡ È ¡
© 0
0 © 0 ! ¡ E ¡ © E 0 ! £ ! § © £ ¡ £ © ¡ E ! ¡ 3 ¡ 0 © © © § 1 © 0 © B © ! © © © £ £ ¡ £
Þ
FATAL 1:Feb 17 23:19:55:process userid (2360) != database owner (268)
3 1 E ! © © § ! B 0 £ ! ¡ £ © © E 0 © §
postmasterB © ! 0 © © § ! £ ¡ © ¡ E ! Ã
¡ 1 ! § © © § ¡ £ © E © 0 § ¹ ! ¡ © § © £ ! £ ¡ © ( ¡ 0 1 £ ©
Administrando una Base de datos}
@ ¡ £ ! © ( ¡ 0 1 £ © © 0
© © E 0
¡ © ¡ © B ¡ E £ © ! £ ! § 1 ! ! © © ! 0 ¡ ! £ ! © Ì Ã
¢ © £ B © 0 ! £ E ¡ © § § !
}
© E £ B ¡ § ! £ © ©
E ! ² ! £ ! ! B 0 £ ! £ ! ! ©
© ! 0 ¡
6 ! B ! ¡ £ ! © § ! !# ¢ § E ! E ¡ © ( ¡ 0 1 £ © ! B © © © § ¡ B £ © © § ! ! © © ! 0 ¡ È
¡ © © © E E ! È © © § B B ¡ © © § © E © 0 ! © © § 0 © B !
3 © § ! B 0 £ ! ¡ £ © ! © © ! 0 ¡ @ ! E ¡ 1 £ ! ¡ E © 0 ! £ § © 1 ¡ ©
E £ © ! E © ! © © ! 0 ¡ È © 0 ¡ E © © © £
© E £ § © © § ¡ B £ © © ! © ! 0 ¡
3 © 0 © © © § E ! ¡ È © 0 ¡ E © © © ¡ B 0 £ § ! § © E 0 £ ! © © 0 ! © E E ¡ £ © E £ © ! E
© 0 £ E E © ! © © ! 0 ¡
w 4
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 41/56
Creación de una base de datos 1 ! B ¡ © © £ © E £ © ! £ ! ! © © ! 0 ¡ § § ! B ! ! B ( © © @ ! E © £ § ¡ E ¡ § !
1 © 0 © ¡ £ ©
Þ
% createdb mydb
3 ¡ E © 0 ! E ¡ § ¡ £ § © 1 ¡ £ © © £ ¡ ! £ ! E £ © ! £ ! © © ! 0 ¡ È © £
§ ¡ 1 © Ã
0 ©
Þ
% createdb mydb
NOTICE:user "su nombre de usuario" is not allowed to create/destroy databases
createdb: database creation failed on mydb.
( ¡ 0 1 £ © § © © £ B 0 © E £ © ! £ E ! § © £ Í B © £ ¡ © ! © © ! 0 ¡ © 0 © B ! ! ¡
! 0 ¡ B
0 E ! B © 0 © © £
© § ! B 0 £ ! ¡ £ © § ! ! © © ! 0 ¡ © E £ © 6 ¡ ¡ B £ ©
© § ! ! © © ! 0 ¡ © © E ¡ B © ¹ ! £ ¢ ¡ £ E ! £
E 0 © £ ! § ! 0 E ¡ © 0
§ B 0 ! ¡
! ! § ¡ 1 0 ©
E ! £ ! E 0 © £ ©
¡ 0 ¡ ¡ § ¡ ! £ ¡ © 0
! 0 ¡ £ ¹ ! ¡ ! £ ! © £
! B 0 £ ! ¡ £ © ! ! © © ! 0 ¡ 3 ( ¡ 0 1 £ © § © © 1 ! § ! E £ © ! E © ! © © ! 0 ¡ È
© 1 £ ! B © 0 © © © ¡ ! © © § ! B 0 £ ! ¡ £ © § 0 © B ! @ ! © ¡ 0 ¡ £ 1 ! £ § © © £ B ¡
¢ ! £ ! @ ! E © £ § ¡ ¥ © © E ! ¡ È E ¡ § 0 © ! § ! B 0 £ ! ¡ £ © § 0 © B !
Acceder a una base de datosº
! © ¹ © @ ! E ¡ 0 £ ¡ ! ! © © ! 0 ¡ È © © ! E E © © £ ! © § § !
Þ
3
¥ © E 0 ! ¡ § ¡ ¢ £ ¡ 1 £ ! B ! © B ¡ 0 ¡ £ ¹ ! E © ( ¡ 0 1 £ © 2 ¢ ¡ £ © © B § ¡
psql
§ ¡
E ! § © § © © £ B 0 © 0 £ ¡ E £ È © 0 ! £ © © E 0 ! £ £ © © 3 4 6 0 © £ ! E 0 ! B © 0 ©
3
¥ E £ © ¡ £ ¡ 1 £ ! B ! ©
! ¡ § ! § £ © £ ! © £ 0 ! 6
( 4 È § ! E ! § § ©
© £ B 0 © © ! £ £ © © 3 4 6 © ©
¡ 0 © © £ B © ! © © £ © © 0 ! © £ ¡ Ã
1 £ ! B ! ¥ 0 ! 0 © £ ! ¹ © E 0 ! B
! © § ! 0 © © § ! B
Ð ò Ò ì å ý Ó Õ û Ó Ò Ñ Ò ì Õ Ó å ë ì å ý Õ ë æ ç
û Ó å Ï x
( © © © © © © © © E 0 ! £
psqlÈ ! £ ! £ ¡ ! £ § ¡ © © B § ¡ © © 0 © B ! ! § 6 ¡ © ©
! E 0 ! £ ! £ ! § ! ! © © ! 0 ¡ B © E £ © ¡ § ! ¡ £ ©
Þ
% psql mydb
3 © § © ! £
§ ! © © ! E ¡ © § 1 © 0 © B © ! ©
Þ
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=>
¥ 0 © £ ¡ B 0 E ! © © § B ¡ 0 ¡ £ © 0
§ 0 ¡ © © © E £ £ E ¡ § 0 ! 3 4 6 © 0 £ ¡
© © Q ² ! E ¡ © 0 £ ! ! ¡ B ! 0 © ¡ ¡ £ © § B ¡ 0 ¡ £ ¥ § ¢ £ ¡ 1 £ ! B !
psql£ © ¡ © ! § ¡
w ó
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 42/56
E 1 ¡ © © E ! © © © B © ¹ ! ¡ £ © § E ! £
E 0 © £ 5 Í 7 ( ¡ £ © © Bw ¢ § ¡ È © © ¡ 0 © © £ § !
! ! ! E © £ E ! © § ! 0 ! Ì © ! £ ! £ © © 3 4 6 ( ¡ 0 1 £ © © E £ © ¡
Þ
mydb=> \h
º
! © ¹ © @ ! ! 0 © £ B ! ¡ © 0 £ ¡ E £ E ¡ § 0 ! È © © ! ! £ © § E ¡ 0 © ¡ © §
© ! E ¡ © 0 £ ! ! ¡ ! § © £ ¡ £ ( ¡ 0 1 £ © © E £ © ¡
Þ
mydb=> \g
¥ 0 ¡ § © E © ! § © £ ¡ £ © ¢ £ ¡ E © © § ! E ¡ § 0 ! 3 0 © £ B ! E ¡ § 0 ! E ¡ ¢ 0 ¡
E ¡ B ! È § ! 5 Í 1 7 ¡ © © E © ! £ !
psql¢ £ ¡ E © ! £
! 0 ¡ B
0 E ! B © 0 © § ! E ¡ § 0 ! 0 © £ Ã
B ! ! E ¡ 0 ¡ E ¡ B ! ( ! £ ! § © © £ E ¡ § 0 ! © © ! £ E @ ¡ È 1 ! B ¡ B
§ © È
© § 1 ! £ © 0 £ ¡ E £ § ! 0 © £ ! E 0 ! B © 0 © È © E £ !
Þ
mydb=> \i nombreDelFichero
( ! £ ! ! § £ ©
psql £ © 1 £ © ! £ !
º
Ì © E £ !
Þ
mydb=> \q
psql0 © £ B ! £
¡ § © £
! § ! § © ! © £ © © ( ! £ ! E ¡ ¡ E © £ B
E 1 ¡ © © E ! Ã
¢ © È © E £ ! Î Ï © © § ² £ ¡ BC ¢ 0 © § B ¡ 0 ¡ £
3 ©~ ¢ © © 0 § ¹ ! £ © Q ¢ ! E ¡ © § ! E ¡ ¡ £
© © B § ¡ © ! E ¡ È 0 ! § ! ¡ £ © § E ! £
E 0 © £ © © ! § © !
© § ! E ¡ § 0 ! 3 4 6 6 !
§ © ! B § © E ¡ B © 0 ! ! E ¡ B © ¹ ! ¡ £ 5 Ð 7 6 ¡ © @ ! ! © " ¢ © § ¡ 1 ¡ ©
@ ! 0 ! © § ! § © § © ! © £
1 ¡ £ ! ¡ 6 ¡ E ¡ B © 0 ! £ ¡ B Í § 0 § © § ¡ © ¡ E ¢ ¢ ! B
© ! § © ! © © ! § ! E ¡ 5
Ê
² ²
Ê
7
Eliminando bases de datos3 © © § ! B 0 £ ! ¡ £ © § ! ! © © ! 0 ¡ B È © © © § B ! £ § ! 0 § ¹ ! ¡ § ! Ã
1 © 0 © ¡ £ ©
º
Ì
Þ
% dropdb mydb
¥ 0 ! ! E E © § B ! E ! B © 0 © 0 ¡ ¡ § ¡ ! £ E @ ¡
º
Ì ! ¡ E ! ¡ ! § ! ! © © ! 0 ¡
¡ © © £ © E © £ ! £ © È ! © © © £
@ ! E © £ © E ¡ £ © E ! E
w F
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 43/56
Capítulo 5. El Lenguaje de consultas¥ § § © 1 ! © © E ¡ § 0 ! © ( ¡ 0 1 £ © ( ¡ 0 1 £ © © ! ! £ ! 0 © © § © 0
! £ 3 4 6
8 © Ã
© B E @ ! © Ì 0 © ¡ © È 0 ! § © E ¡ B ¡ 0 ¡ © 0 © B ! © Ì 0 © § © È @ © £ © E ! È £ © 1 § ! ©
¢ £ ¡ E E E ¡ © ¥ 0 ! ¡ E ! £ ! E 0 © £ 0 E ! 0 ¡ B ! ! © § § © 1 ! © © E ¡ § 0 !
¡ £ 1 ! § © ( ¡ 0 1 £ © ( ¡ 0 4 © §
Ñ 0 ! © E E £ ¡& ¢ ¡ £ E ¡ ! £ B © £ 0 ! ¹ ¡ © E B ¡
! £ ( ¡ 0 1 £ © 3 4 6 ! £ ! £ © ! § ¹ ! £ ¡ © £ ! E ¡ © © E § § ! 6 ! 0 © E © © 0 © B ! ! §
© BC ¢ § © B © 0 © § ! © ² £ ¡ ¡ £ E ¡ ! £ § © ! © ! © © 0 £ ! © £ © 3 4 6 ¡ © ©
1 Í B ¡ ¡ E ¡ Bw ¢ § © 0 ¡ 0 0 ¡ £ ! § ! E © £ E ! © 3 4 6 3 © @ ! © E £ 0 ¡ B © £ ¡ ¡ § £ ¡
¡ £ © 3 4 6 È E § © ¡ W ¥ 6 8 z
` ! W
}
8 ¥ z § ` 8 © 1 ! © E © 0 ! © ! § 1 ! E ! £ ! E Ã
0 © £ 0 E ! © § § © 1 ! © ¡ © Ì 0 © ¡ © © § © 0
! £
}
3
Monitor interactivo¥ § ¡ © © B § ¡ © 1 © È ! B B ¡ © @ ! E £ © ! ¡ § ! ! © © ! 0 ¡ B E ¡ B ¡ ©
© E £ © © § ! © E E ! 0 © £ ¡ £ © @ ! ! £ £ ! E ! ¡
psql 6 ¡ © © B § ¡ © !7 ¢ ! £ © Ã
E © © © 0 © B ! ! § 0 ! B © © © © E ¡ 0 £ ! £ ©
/usr/local/pgsql/src/tutorial/
¡ § 0 © © § E @ © £ ¡
README© © © £ © E 0 ¡ £ ¡ ! £ ! ! © £ E B ¡ ! £ § ¡ ( ! £ ! © BC ¢ © ¹ ! £
E ¡ © § 0 0 ¡ £ ! § @ ! 1 ! § ¡ 1 © 0 ©
Þ
% cd /usr/local/pgsql/src/tutorial
% psql -s mydbWelcome 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
¥ § E ¡ B ! ¡
\i§ © © © § ! E ¡ § 0 ! © © § ¡ E @ © £ ¡ © © E E ! ¡ 6 ! ¡ E
-s§ ©
¢ ¡ © © B ¡ ¡ 1 § © 0 © È © @ ! E © !) ¢ ! ! ! 0 © © © ! £ § ! E ¡ § 0 ! ! § © £ ¡ £
6 ! E ¡ § 0 ! © © 0 ! © E E © 0
© © § E @ © £ ¡
basics.sql
psql0 © © ! £ ¡ E ¡ B ! ¡
\d ! £ ! B ¡ 0 £ ! £ ¡ £ B ! E © 0 © B !
¡ § 0 © 0 ¡
E ¡ B ! ¡ 9 ¢ ! £ ! © £ B
© 0 ! § § © 0 © E § © ©
\? © © © § £ ¡ B 0
psql ! £ ! © £ § 0 ! ¡
© E ¡ B ! ¡ ¡ § ©
Conceptos6 ! ¡ E ! B © 0 ! § © ( ¡ 0 1 £ © © § ! © E § ! © È © © ! E ¡ § © E E © 0 ! E !
© ¡ © 0 ¡
! ! 0 ! E ! 0 © © § ! B B ! E ¡ § © E E © ! 0 £ 0 ¡ E ! ! ! 0 £ 0 ¡ ©
© 0 ¢ ¡ © © E E ¡
! Í È E ! ! 0 ! E ! 0 © ©
Ô ì å ê æ Ô Ê é Ò ì Õ Ó ì å Õ ã ä å æ Õ
¢ © £ B ! © 0 © È © © Í E ¡ ! § ¡ § ! £ 1 ¡ © 0 ¡ ! § ! 0 ! § ! E
! © § ! 0 ! Ì 3 4 6 @ ! Ã
E © £ © © £ © E ! ! 0 ! § ! È ! £ © B ¡ § ¡ 0 £ B ¡
æ Ò ã è Ò
é è Ò ë å
0 0 ! B © 0 ©
}
B B ¡
È !
Ê è Ò
3 4 6 © !
Ô ê ë æ Ò ê é Ô Ò
§ !
é Õ è Ð Ñ ê Ò ë
3 4 6 ¡
Ò æ Ó Ô ã Ð æ Õ ë
¡ B ¡ ! © ¡ ! 0 © Ã
£ ¡ £ B © 0 © È § ! E § ! © © ! 1 £ ¢ ¢ ! © ! © © ! 0 ¡ ! E ¡ § © E E © ! © © ! 0 ¡
1 © 0 ¡ ! ! ¡ £ Í E ¡ £ ¡ E © ¡
postmasterE ¡ 0 0 © ! 0 ! § ! E ¡ 0 ¡
w V
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 44/56
Creación de una nueva clase( © © E £ © ! £ ! © ! E § ! © © © E E ! ¡ © § ¡ B £ © © § ! E § ! © È ! © B
© 0 ¡ ¡
§ ¡ ¡ B £ © © ! 0 £ 0 ¡ 0 ¡
Þ
CREATE TABLE weather (
city varchar(80),
temp_lo int, - temperatura mínima
temp_hi int, - temperatura máxima
prcp real, - precipitacióndate date
);
8 © 1 ! © E © 0 ! © § ! ! § ! £ ! E § ! © § ¡ © 0 E ! ¡ £ © ¡ © § © ! § ! B ! Í Ã
E § ! B Í E § ! 6 ¡ © 0 E ! ¡ £ © © © § § © 1 ! £ ! © £ © § © ! B ! Í E § ! ¡
B Í E § ! © § © ¡ © © 0 £ © ¡ § © E ¡ B § § ! È 0 ! § E ¡ B ¡ § ¡Ý ¢ © £ B 0 © 3 4 6 z
( ¡ 0 Ã
1 £ © 3 4 6 ¡ ¡ £ 0 ! § ¡ 0 ¡ @ ! 0 ! § © © 3 4 6 E ¡ B ¡
Þ
0 È à ¡ ! 0 È £ © ! § È B ! § § 0 È E @ ! £
È
! £ E @ ! £
È ! 0 © È 0 B © È 0 B © 0 ! B È ! E ¡ B ¡ ¡ 0 £ ¡ © 0 ¡ 1 © © £ ! § ¡ 0 £ ¡ E ¡
£ E ¡ E ¡ 0 ¡ © 0 ¡ 1 © ¡ B 0 £ E ¡ 8 ! § E ¡ B ¡ © £ © B ¡ B
0 ! £ © È ( ¡ 0 1 £ © © © © £
E ¡ 1 £ ! ¡ E ¡ Í B © £ ¡ ! £ 0 £ ! £ ¡ © 0 ¡ © ! 0 ¡ © ¡ ¢ ¡ £ © § ! £ ¡
¡ © E © 0 © B © 0 © È § ¡ ¡ B £ © © 0 ¡ ¡ ¡ 0
E 0 E ! B © 0 © ! § ! £ ! E § ! © È © Ì Ã
E © 0 ¡ ¡ © © £ © © £ ! ! £ ! ¡& ¢ ¡ £ 0 ! £ E ! ¡ © © E ! § © © © § © 0
! £ 3 4 6 z
© ¡
B
§ © ¡ È © § E ¡ B ! ¡ ( ¡ 0 1 £ ©
½ ¯ « Å ¯
© 0 E ¡ ! § E ¡ B ! ¡ ! ¡ ! £ ! E £ © ! £ !
0 ! § ! © © § 0 © B ! £ © § ! E ¡ ! § © © B £ © 3 © B ! £ 1 ¡ È © £ © B ¡ © § ! E § ! © 0 © ©
¢ £ ¡ © ! © © ¡ © Ì 0 © ¡ © © § B ¡ © § ¡ £ © § ! E ¡ ! §
Llenando una clase con instancias6 ! © E § ! £ ! E
k · - l
© ! ¢ ! £ ! § § © ! £ ! E § ! © E ¡ 0 ! E !
Þ
INSERT INTO weather
VALUES (’San Francisco’, 46, 50, 0.25, ’11/27/1994’);
8 ! B © © ! £ © § E ¡ B ! ¡
n °
! £ ! E ! £ 1 ! £ 1 £ ! © E ! 0 ! © © ! 0 ¡ © ©
E @ © £ ¡
}
3
í © © £ ! § B © 0 © © 0 ¡ © § © © £ B
£
¡ ¡ £ © § ¡ ! 0 ¡ ¡ § © ¡
¡ © E £ 0 ¡
E ¡ B ¡ ! Í E ! 0 £ ! ! E E £ © E 0 ! B © 0 © ! ¡ © © § ! 0 ! § ! © 0 ¡
º
© © B § ¡ © £ !
Þ
COPY weather FROM ’/home/user/weather.txt’
USING DELIMITERS ’|’;
¡ © © § ! 0 @ © § E @ © £ ¡ ¡ £ 1 © © © © £ ! E E © § © ! § © £ ¡ £ ! E F © È ¡ ! § E § © 0 © È
! © © § © £ ¡ £ § © © © § E @ © £ ¡ £ © E 0 ! B © 0 ©
Consutar a una clase6 ! E § ! © $ © ! 0 @ © £ © © © £ E ¡ § 0 ! ! E ¡ ! © § © E E £ © § ! E ¡ ! § ¡ £ B ! § E ¡ § Ã
0 ! © £ ¡ © E E 6 ! © E § ! £ ! E 3 4 6
· - ´ - n l
© ! ! £ ! @ ! E © £ © 0 ¡ 6 ! © E § ! £ ! E ©
© © ! § 0 ! © 0 ¡ § ! ! £ 0 © © § 0 ! § ¡ ! 0 £ 0 ¡ © @ ! © © £ © © § 0 ¡
w w
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 45/56
! E ! § E ! E § ! ¢ ! £ 0 © © © " ¢ © E E ! E ! § © £ £ © 0 £ E E
( ¡ £ © © B § ¡ È ² ! £ !
£ © E © £ ! £ 0 ¡ ! § ! § ! © $ © ! 0 @ © £ È © E £ !
Þ
SELECT * FROM weather;
! 0 @ © ¡ 0 0 @ ¡ § ©
Þ
+---------+------+------+----+--------+
|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 |
+---------+------+------+----+--------+
( © © © © E E ! £ E ! § © £ © Ì £ © © § ! § 0 ! © © 0 ¡ ( ¡ £ © © B § ¡ È © © @ ! E © £
Þ
SELECT city, (temp_hi+temp_lo)/2 AS temp_avg, date FROM weather;
6 ¡ ¡& ¢ © £ ! ¡ £ © ¡ ¡ § © ! ¡
k m
È
!
k l
©' ¢ © © ! £ © § ! E ! § E ! E ©
E ! § © £ E ¡ § 0 ! ( ¡ £ © © B § ¡ È
SELECT * FROM weather
WHERE city = ’San Francisco’
AND prcp > 0.0;
! E ¡ B ¡ £ © § 0 ! ¡
Þ
+---------+------+------+----+--------+
|city | temp_lo | temp_hi | prcp | date |
+---------+------+------+----+--------+
|San Francisco | 46 | 50 | 0.25 | 11-27-1994 |
+---------+------+------+----+--------+
¡ B ¡ ! 0 © ! § È © © © © E E ! £ © § ¡ £ © § 0 ! ¡ © © § © E 0 © ! © £ © Ã
© § 0 ¡ ©
Ñ Ò ê å Ó Ò Õ Ó ì å ê Ò ì Ò
¡ 0 ! ¡ § !
Ô ê ë æ Ò ê é Ô Ò ë ì Ð ñ è Ô é Ò ì Ò ë
SELECT DISTINCT city
FROM weather
ORDER BY city;
w»
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 46/56
Redireccionamiento de consultas SELECT
! § © £ E ¡ § 0 ! © § © E 0 © © © £ £ © £ © E E ¡ ! ! ! ! © ! E § ! ©
Þ
SELECT * INTO TABLE temp FROM weather;
¥ 0 ¡ ¡ £ B ! © B ! © £ ! B § E 0 ! E ¡ B ! ¡
n - l -
È E £ ©
¡ © ! © ! E § ! © 0 © B
E ¡ © § ! 0 £ 0 ¡ ! B © 0 © © © E E ! ¡ © § ! § 0 ! © 0 ¡ © § E ¡ B ! ¡
· - ´ - n l
k l
¥ 0 ¡ E © ¡ £ © B ¡ È ¡ £ © 0 ¡ È £ © ! § ¹ ! £ E ! § © £ ¡ © £ ! E ¡ £ © § ! E § ! ©
£ © § 0 ! 0 © E ¡ B ¡ § ¡ @ ! £ ! B ¡ ¡ £ © E ! § © £ ¡ 0 £ ! E § ! ©
Joins (uniones) entre clasesÁ
! 0 ! ! @ ¡ £ ! È © 0 £ ! E ¡ § 0 ! § ¡ ! E E © ! ! ! E § ! © ! § ! © ¹ 6 ! E ¡ § 0 ! © Ã
© ! E E © © £ ! B Í § 0 § © E § ! © ! § ! © ¹ È ¡ ! E E © © £ ! § ! B B ! E § ! © © 0 ! § B ¡ ¡ ©
B Í § 0 ¢ § © 0 ! E ! © § ! E § ! © © ! £ ¡ E © ! ! ! § B B ¡ 0 © B ¡
º
! E ¡ § 0 ! ©
! E E © ! ! B Í § 0 § © 0 ! E ! © § ! B B ! ¡ © £ © 0 © E § ! © ! § ! © ¹ © E ¡ ¡ E ©
E ¡ B ¡ ! E ¡ § 0 ! ¡
¡ B ¡ © © B § ¡ È 1 ! B ¡ © © £ © B ¡ © E ¡ 0 £ ! £ 0 ¡ ¡ § ¡
£ © 1 0 £ ¡ © © 0
© © § £ ! 1 ¡ © 0 © B © £ ! 0 £ ! © ¡ 0 £ ¡ £ © 1 0 £ ¡ ¥ © © E 0 ¡ È © E © Ã
0 ! B ¡ E ¡ BC ¢ ! £ ! £ § ¡ ! 0 £ 0 ¡ 0 © B 8 § ¡ 0 © B 8 @ © E ! ! 0 ! E ! ¥ ( E ¡ § ¡
! 0 £ 0 ¡ 0 © B 8 § ¡ 0 © B 8 @ © 0 ¡ ! § ! © B
0 ! E ! ¥ (
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.
( ¡ © B ¡ @ ! E © £ © 0 ¡ E ¡ § ! 1 © 0 © E ¡ § 0 !
Þ
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 verdaderadefinida por el producto cartesiano de las clases indicadas en la consulta. Para estasinstancias en el producto cartesiano cuya cualificación sea verdadera, Postgres calcula ydevuelve 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 Postgresen 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 .
¥ © 0 © E ! ¡ È 0 ! 0 ¡ )
E ¡ B ¡ )
¡ 0 0 ¡ ¡ £ ! 0 ! E ! © § ! E § ! © $ © ! 0 @ © £
© © Ì 0 © © ¡ £ 0 ¡ ! § ! 0 ! E ! © § ! E § ! © ¥ § ! 0 © £ B ¡ § ¡ 1 ! © § ! B ! ¡ £ !
w Ç
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 47/56
© § ¡ 0 © B ! © ! © © ! 0 ¡ )
)
© E ¡ ¡ E © E ¡ B ¡
Ó Ò ê û å Ò Ó Ô Ò ã è å ë ® Ò Ó Ô Ò ã è å ë
ì å Ó Ò ê û Õ ¯
º
! E ¡ § 0 ! © © E ¡ 0 © © £ Í B © £ ¡ ! £ 0 £ ! £ ¡ © ¡ B £ © © E § ! ©
0 0 E ¡ ©
Actualizaciones( © © ! E 0 ! § ¹ ! £ 0 ! E ! © Ì 0 © 0 © ! ¡ © § E ¡ B ! ¡ ! 0 © 3 ¡ 1 ! © © Ã
E £ © © § ! § © E 0 £ ! © § ! 0 © B © £ ! 0 £ ! © §
ö ©
¡ © B £ © ©
1 £ ! ¡ ¢ ¢ © £ ¡ £ !
§ ! 0 © B © £ ! 0 £ ! £ © ! § ( © © ! E 0 ! § ¹ ! £ § ¡ ! 0 ¡ © © 0 ! B ! © £ !
Þ
UPDATE weather
SET temp_hi = temp_hi - 2, temp_lo = temp_lo - 2
WHERE date > ’11/28/1994’;
Borrados6 ¡ ¡ £ £ ! ¡ © @ ! E © ! ¡ © § E ¡ B ! ¡
m - ´ - l - Þ
DELETE FROM weather WHERE city = ’Hayward’;
8 ¡ ¡ § ¡ £ © 1 0 £ ¡ © $ © ! 0 @ © £ © £ 0 © © E © 0 © !
Á
! $ ! £ ¡ ¡ £ £ ! ¡ © © £ ! © £
¢ £ © E ! ¡ E ¡ § ! E ¡ § 0 ! © § ! ¡ £ B !
DELETE FROM classname;
3 ! E ! § E ! E È
m - ´ - l -
B § © B © 0 © ¡ £ £ ! £
0 ¡ ! § ! 0 ! E ! © § ! E § ! © ! Ã
! È ©
¡ § ! ! E ! ¥ § 0 © B ! ¡ © £
E ¡ £ B ! E ! 0 © © @ ! E © £ © 0 ¡
Uso de funciones de conjunto
¡ B ¡ ¡ 0 £ ¡ § © 1 ! © © E ¡ § 0 ! È ( ¡ 0 1 £ © 3 4 6 ¡ ¡ £ 0 ! E ¡ © © E ¡ 0 ¡
º
!
E © E ¡ 0 ¡ E ! § E § ! Í E ¡ £ © § 0 ! ¡ ! ! £ 0 £ © B Í § 0 ¢ § © § ! © © 0 £ ! !
( ¡ £ © © B § ¡ È © Ì 0 © E ¡ © 1 § ¡ ! § © ¢ ! £ ! E ! § E § ! £
count E ¡ 0 ! £
È
sum B ! £
È
avg B © !
È
max B
Ì B ¡
!
min B B ¡
¡ £ © E ¡ 0 ¡ © 0 ! E !
¥ B ¡ £ 0 ! 0 © E ¡ B £ © © £ § ! £ © § ! E © 0 £ © § ! E ¡ © © E ¡ 0 ¡ § ! E §
§ !
3 4 6 Ó Ï
- -
Ï
¿ k µ
6 ! © £ © E ! ! B © 0 ! § © 0 £ © Ó Ï
- -
Ï
¿ k µ
© ©
Þ
Ó Ï
-
-
© § © E E ¡ ! § ! E ¡ § B ! © © 0 £ ! ! ! 0 © © § ¡ 1 £ ¡ © 0 ¡ E © © E ¡ B 0 ! § !
E ¡ © © E ¡ 0 ¡ © © 0 © B ¡ ¡ E ¡ 0 £ ¡ § ! § ! ! ! § ! E © E ¡ 0 ¡
È
B © 0 £ ! © Ï
¿ k µ
© § © E E ¡ ! 1 £ ¡ © § ! © " ¢ © § ¡ 1 £ ¢ ² ¡ © 0 ¡ E © ©
E ¡ B 0 ! § ! E ¡ © © E ¡ 0 ¡ © © 0 © B ¡ ¡ § ! E §
§ ! Ó Ï
- -
© © ¡ E ¡ Ã
0 © © £ E ¡ © © E ¡ 0 ¡ © 0 ¡ © ¡ 0 © © © 0 ¡ 0 © 0 ! £ ! £ ! E
© E ¡ 0 ¡ ! £ ! © 0 © £ B ! £ § ! © £
§ ! © 0 £ ! ! © § ! E ( ¡ £ ¡ 0 £ ! ! £ 0 © È § !
E §
§ ! Ï
¿ k µ
© B £ © E ¡ 0 © © E ¡ © © E ¡ 0 ¡ ¥ 0 £ E 0 ! B © 0 © @ ! § ! ¡ È
0 © © © © E £ £ ! E §
§ ! Ï
¿ k µ
© ¡ © E ¡ © © 1 £ ¡ È © £ ¡ ¡ B © Ã
£ © E © § ! © ! 6 ! B B ! E ¡ E ¡ £ ! © £ ! ! © B ¡ ¡ B
© E ! ¹ E ¡ Ó Ï
- -
¡ B ¡ © © B § ¡ ¡ © B ¡ E ! £ § ! B B ! 0 © B © £ ! 0 £ ! © E ! § © £ ! £ 0 © E ¡
wÎ
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 48/56
SELECT max(temp_lo) FROM weather;
3 © £ © B ¡ ! © £ E ! ¡ E ! © ¡ © © © £ ¡ © 0 ! 0 © B © £ ! 0 £ ! È ¡ © Ã
B ¡ £ ¡ ! £
SELECT city FROM weather WHERE temp_lo = max(temp_lo);
¢ © £ ¡ ¡ E ¡ ! £
© ¡ ! © § ! E B ! Ì
¡ © © © £ ! ! © Ó Ï
- -
3
© B ! £ 1 ¡ È ¡ © B ¡ £ © § ! 0 ! £ § ! E ¡ § 0 ! ¢ ! £ ! § § © ! £ ! E ! ¡ § ¡ © E ! B ¡ ¥ © 0 ©
E ! ¡ ! ¡ !
ë Ð ã ë å è å é é Ô Õ êÞ
SELECT city FROM weather WHERE temp_lo = (SELECT max(temp_lo) FROM weat-
her);
6 ¡ © ! © E ¡ £ £ © E 0 ¡ È ! © § ! © § © E E © ! ¡ © £ ! E © © © 0 © ©
E ! § E § ! £ ¡& ¢ ! E © 1 £ ¡ B ¡ £ 0 ! £ § ¡ © ! © © © § © § © E 0 © Ì 0 © £ ¡ £
6 ! E ¡ © © 1 £ ¡ ¡ 0 ! B B Í 0 § © E ¡ B
¡ § ! E ¡ E §
§ !
û Ó Õ Ð ñ
ã ¤
( ¡ £ © © B § ¡ È ¡ © B ¡ ¡ 0 © © £ § ! 0 © B © £ ! 0 £ ! B B ! 0 ¡ B ! ! © E ! ! E !
E ¡
Þ
SELECT city, max(temp_lo)FROM weather
GROUP BY city;
© ¡ © © § © ! § ! ¡ £ E ! ( ¡ © B ¡ § 0 £ ! £ © 0 ! § ! ! 1 £ ¢ ¢ ! ! ! ¡
Ï
¿ k µ Þ
SELECT city, max(temp_lo)
FROM weather
GROUP BY city
HAVING min(temp_lo) < 0;
© ¡ ! § ¡ B B ¡ £ © § 0 ! ¡ È © £ ¡ © E ! © E ¡ 0 © BC ¢ © £ ! 0 £ ! ! ¡ E © £ ¡
Ã
! § B © 0 © È § ¡ ¡ 0 © £ © ! § ! E ! © E ¡ ¡ B £ © © BC ² © E © ¡ £ ( È © © Ã
£ ! B ¡ @ ! E © £
Þ
SELECT city, max(temp_lo)
FROM weather
WHERE city like ’P%’
GROUP BY city
HAVING min(temp_lo) < 0;
8 © 1 ! © E © 0 ! © ¡ © B ¡ ! § E ! £ § ! £ © 0 £ E E © § ¡ B £ © © E ! © Ó Ï
- -
È
! © ¡ © E © 0 ! E ¡ © © E ¡ 0 ¡ ¥ 0 ¡ © B
© E ! ¹ © ! ! £ § ! £ © 0 £ E E
! Ï
¿ k µ
È © ¡ ! © © 0 ! B ¡ @ ! E © £ § ¡ E
§ E § ¡ © 1 £ ¡ ! £ ! 0 ¡ ! § ! § ! ©
¡ ! ! © § § 0 £ ¡ © Ó Ï
- -
w ×
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 49/56
Capítulo 6. Características Avanzadas de SQL en PostgresÁ
! © ¡ E © £ 0 ¡ § ¡ ! " ¢ © E 0 ¡
E ¡ © ( ¡ 0 1 £ © 3 4 6 ! £ ! ! E E © © £ ! § ¡ ! 0 ¡ È Ã
E 0 £ © B ¡ ! @ ¡ £ ! ! © § § ! E ! £ ! E 0 © £ 0 E ! © ( ¡ 0 1 £ © © § ¡ 0 1 © © § ¡ 1 © Ã
0 ¡ £ © © ! © © ! 0 ¡ E ¡ © E ¡ ! § © ¥ 0 ! E ! £ ! E 0 © £ 0 E ! E § © @ © £ © E ! È 0 B ©
0 £ ! © § ! © © © § 0 © B ¡
! § ¡ £ © ¡ Ã ! 0 B E ¡ © ! 0 ¡ ! 0 £ 0 ¡ ! ! ¡ © © E Ã
0 ¡ £ © E ¡ 0 ¡
6 ¡ © © B § ¡ © © 0 ! © E E | ² © © © E ¡ 0 £ ! £ © 0 ! B ©
ad-
vance.sql© © § £ © E 0 ¡ £ ¡ © § 0 0 ¡ £ ! §
¡ § 0 © © §
! 0 § ¡ { ¢ ! £ ! © £ § ! ¡ £ B ! ©
0 § ¹ ! £ § ¡
Herencia
£ © © B ¡ ¡ E § ! © 6 ! E § ! © E ! 0 ! § E ¡ 0 © © § ! E ! 0 ! § © © § ¡ © 0 ! ¡ È § ! E ! § ©
¡ 0 ! B E ! ©
! 0 £ ! § B © 0 © È § ! E § ! © E !# ¢ 0 ! § © © £ ! @ © £ © ! £ © E 0 ©
CREATE TABLE cities (
name text,
population float,
altitude int - (in ft)
);
CREATE TABLE capitals (
state char(2)) INHERITS (cities);
¥ © 0 © E ! ¡ È ! 0 ! E ! © E ! 0 ! § ù
å Ó å ì Ò
0 ¡ ¡ § ¡ ! 0 £ 0 ¡ ! B © È ¡ § ! 0 ¡
! § 0 0 ©
© ! £ © È E 0 © ¥ § 0 ¡ © § ! 0 £ 0 ¡ ! B © ¡ B £ ©
© 0 © Ì 0 È 0 ¡ ! 0 ¡
© ( ¡ 0 1 £ © ! £ ! E ! © !
}
3
© § ¡ 1 0 ! £ ! § © ¥ § 0 ¡ © § ! 0 £ 0 ¡ ¡ § ! 0 ¡
¡ § ! E
© à ¡ ! 0 È 0 ¢ ¡ © ! 0 ¡ È 0 ! B ! 0 ¡ © ( ¡ 0 1 £ © È ! £ ! Í B © £ ¡ ©
¢ 0 ¡ à ¡ 0 ! 0 © © ¡ § © £ © E 6 ! E § ! © E ! 0 ! § 0 © © ! 0 £ 0 ¡ © Ì 0 £ ! È 0 ! 0 © È ©
B © 0 £ ! ! © 0 ! ¡h ² © £ 0 © © E © ¥ ( ¡ 0 1 £ © È ! E § ! © © © @ © £ © ! £ © 1 ! ¡
! £ ! ¡ 0 £ ! E § ! © È ! E ¡ § 0 ! © © @ ! E © £ £ © © £ © E ! 0 ! 0 ¡ ! 0 ¡ ! § ! 0 ! E !
© ! E § ! © E ¡ B ¡ ! 0 ¡ ! § ! 0 ! E ! © ! E § ! © © E © © 0 ©
Nota: La jerarquía de la herencia es un gráfico acíclico dirigido.
( ¡ £ © © B § ¡ È § ! 1 © 0 © E ¡ § 0 ! © E © 0 £ ! 0 ¡ ! ! © § § ! E ! © © © 0
Ã
0 ! ! ! ! § 0 £ ! © {
¡ B
©
Þ
SELECT name, altitude
FROM cities
WHERE altitude Ô 500;
+-------+-------+
|name | altitude |
+-------+-------+
|Las Vegas | 2174 |
+-------+-------+
|Mariposa | 1953 |
+-------+-------+
( ¡ £ ¡ 0 £ ¡ § ! ¡ È ! £ ! © E ¡ 0 £ ! £ § ¡ ¡ B £ © © 0 ¡ ! § ! E ! © È E § ! § ! E !7 ¢ 0 ! Ã
§ © © 0 ! 0 ! § © È © © 0 0 ! ! ! ! ! § 0 0 © {
¡ B
© È § ! E ¡ § 0 ! ©
Þ
SELECT c.name, c.altitude
w ï
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 50/56
¨
FROM cities* c
WHERE c.altitude > 500;
$ @ E @ £ © 0 £
Þ
+-------+-------+
|name | altitude |
+-------+-------+
|Las Vegas | 2174 |+-------+-------+
|Mariposa | 1953 |
+-------+-------+
|Madison | 845 |
+-------+-------+
}
© § 5 ² 7 © © E 0 © E ! © § ! E ¡ § 0 ! © © £ © ! § ¹ ! £ © ¡ £ © E 0 © 0 ¡ !
§ ! E § ! © © © 0 ¡ £ © ! ¡ © © § § ! © § ! © £ ! £ ! © § ! @ © £ © E ! E @ ¡ © § ¡
E ¡ B ! ¡ © ! @ © B ¡ E 0 ¡
· - ´ - n l
È
k m Õ °
! s !
m - ´ - l -
£ ! ¡¤ ² ¡ £ 0 ©
! © 0 ! ¡ 0 ! E © 5 ² 7 ! § 1 ! § © ¡ 0 £ ¡ E ¡ B ¡
´ l -
Valores No-Atómicosº
¡ © § ¡ £ E ¡ © § B ¡ © § ¡ £ © § ! E ¡ ! § © © § ¡ ! 0 £ 0 ¡ © ! £ © § ! E
¡ ! 0 B E ¡ ( ¡ 0 1 £ © ¡ ¢ ¡ © © © 0 ! £ © 0 £ E E @ § ¡ ! 0 £ 0 ¡ ¢ © © E ¡ 0 © © £ Ã
! § ¡ £ © ! § ¡ © © © ! E E © © £ © © © © § § © 1 ! © © E ¡ § 0 ! ( ¡ £ © © BC ¢ § ¡ È © ¢ © Ã
© E £ © ! £ ! 0 £ 0 ¡ © © ! © E 0 ¡ £ © © ! § 1 ¡ © § ¡ 0 ¡ ! ©
Vectores( ¡ 0 1 £ © © £ B 0 © © § ¡ ! 0 £ 0 ¡ © ! 0 ! E ! © ! © ¡ E ¡ B ¡ © E 0 ¡ £ ©
B § 0 B © ¡ ! § © © § ¡ 1 0 ! ¡ ! £ ! § © ( © © E £ © ! £ © E 0 ¡ £ © © E ! § © £ !
© § ¡ 0 ¡ ! © ¡ © 0 ¡ © ¡ ¡ £ © § ! £ ¡ ( ! £ ! § 0 £ ! £ ¡ È E £ © © B ¡
¢ £ B © £ ¡ ! E § ! © E ¡ © E 0 ¡ £ © © 0 ¢ ¡ ! ©
CREATE TABLE SAL_EMP (name text,
pay_by_quarter int4[],
schedule text[][]
);
6 ! E ¡ § 0 ! © ! £ £ ! E £ © ! £
! E § ! © § § ! B ! ! 3
}
6 8 ¥ ( E ¡ ! E ! © ! © § 0 ¢ ¡
æ å æ
! B ©
È © E 0 ¡ £ B © ¡ ! § © § 0 ¡
Ô ê æ w
2 ¢ ! 8 8 ! £ 0 © £
È © § E ! § £ © ¢ £ © Ã
© 0 ! © § ! § ! £ ¡ 0 £ B © 0 £ ! § © § © B § © ! ¡ © E 0 ¡ £ B © ¡ ! § © § 0 ¡
æ å æ
E @ © Ã
§ ©
È © £ © £ © © 0 ! § ! ! 1 © ! © B ! ! § © § © BC ¢ § © ! ¡
}
@ ¡ £ ! £ © ! § ¹ ! B ¡ ! § 1 ¡
õ Ö Ï j ¢
ø
Ï
@ ¡ 0 © © E ! ¡ ! 1 £ © 1 ! B ¡ ! § ¡ £ © ! © E 0 ¡ £ È © E © £ £ ! B ¡ § ¡ ! § ¡ £ ©
© 0 £ © § § ! © § ¡ © ! £ ! B ¡ B © ! 0 © E ¡ B ! 3 0 © E ¡ ¡ E ©
ð
È © 0 ¡ ¡ © 0 0 ¡ !
§ ! 0 ! Ì ! £ ! E ! § ¹ ! £ © 0 £ E 0 £ !
INSERT INTO SAL_EMP
VALUES (’Bill’,
’{10000, 10000, 10000, 10000}’,
’{{"meeting", "lunch"}, {}}’);
»4
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 51/56
¨
INSERT INTO SAL_EMP
VALUES (’Carol’,
’{20000, 25000, 25000, 25000}’,
’{{"talk", "consult"}, {"meeting"}}’);
( ¡ 0 1 £ © 0 § ¹ ! © ¡ £ B ! £ © © 0 © £ B ! ! § ! E ¡ © E © © E 0 ¡ £ © á ! ! ¡ © ¡ á
Ð © © E £ È © E 0 ¡ £ © © § © B © 0 ¡ E ¡ B © ¹ ! E ¡ © E 0 ¡ £ W
` 0 © £ B ! E ¡ © E 0 ¡ £ W `
}
@ ¡ £ ! ¢ ¡ © B ¡ © © E 0 ! £ ! § 1 ! E ¡ § 0 ! ¡ £ © 3
}
6 8 ¥ ( ( £ B © £ ¡ B ¡ 0 £ ! B ¡ E ¡ Ã
B ¡ ! E E © © £ ! ¡ § ¡ © § © B © 0 ¡ © § © E 0 ¡ £ ¡ £ © ¹ ¥ 0 ! E ¡ § 0 ! © © § © § ¡ ¡ B Ã
£ © © § ¡ © BC ² § © ! ¡ E ¡ ! 1 ¡ @ ! E ! B ! ¡ © © § © 1 ¡ 0 £ B © 0 £ ©
Þ
SELECT name
FROM SAL_EMP
WHERE SAL_EMP.pay_by_quarter[1]× Ô
SAL_EMP.pay_by_quarter[2];
+----+
|name |
+----+
|Carol |
+----+
6 ! 1 © 0 © E ¡ § 0 ! £ © E © £ ! © § ! 1 ¡ © § 0 © £ E © £ 0 £ B © 0 £ © © 0 ¡ ¡ § ¡ © B § © ! ¡
Þ
SELECT SAL_EMP.pay_by_quarter[3] FROM SAL_EMP;
+----------+
|pay_by_quarter |
+----------+
|10000 |
+----------+
|25000 |
+----------+
8 ! B ¡ © B ¡ ! E E © © £ ! E ! § © £ ¡ £ E © © E 0 ¡ £ È ¡ © E 0 ¡ £ © ¥ 0 ! E ¡ Ã
§ 0 ! £ © E © £ ! © § £ B © £ 0 © B © § ! ! 1 © ! ©
§ § ! £ ! § ¡ £ B © £ ¡ ¡ ! © § !
© B ! !
SELECT SAL_EMP.schedule[1:2][1:1]
FROM SAL_EMP
WHERE SAL_EMP.name = ’Bill’;
+-------------+
|schedule |
+-------------+
|{{"meeting"},{""}} |
+-------------+
»ó
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 52/56
¨
Time Travel (Viaje en el tiempo)}
§ B ¡ B © 0 ¡ © ! § £ § ! © £ ÷
© ( ¡ 0 1 £ © ÷
È
è Ò é Ò Ó Ò é æ å Ó ò ë æ Ô é Ò ì å Ô Ò ä å å ê å è æ Ô å Ñ ñ Õ
® æ Ô Ñ å æ Ó Ò å è ¯ ¤ Ò ê Õ å ë æ ë Õ ñ Õ Ó æ Ò ì Ò
¥ Ì 0 © ! £ ! £ ! ¹ ¡ © ! £ ! © 0 ¡
Þ
B ! E 0 ¡ ¡ £ © © §
£ © B © 0 ¡ È © § 0 ! B ! ¡ © ! § B ! E © ! B © 0 ¡ È ! £ E @ ¡ 1 8 0 B © © E £ © E © @ ! 0 ! © §
0 ¡ © ¡ E ¡ 0 © B ¡
¥ E ! B ¡ È ¡ © © © ! E ! £ ! E 0 © £ 0 E ! E ¡ B ¡ § ¡ ! £ ! ¡ £ © 0 £ 1 1 © £
©
¢ © £ B 0 © B 0 ! £ © § E ¡ BC ¢ ¡ £ 0 ! B © 0 ¡ © § ! © © © § 0 © B ¡ E ! ¡ © © © © È E Ã
£ £ £ © ¡ £ © E ! £ 1 ! E ! ¡ ¡ © © E © 0 ! © 1 © © £ ! § È § ! B ! ¡ £9 ¢ ! £ 0 © © § 0 © B ¡
Â
© !
§ ¡ © © B § ¡ © © § £ © E 0 ¡ £ ¡
contrib ! £ ! B ! ¡ £ ¡ £ B ! E
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 quepermiten obtener los mismos resultados. ¿Voluntarios? - thomas 12-01-1998.
Ø Ù Ú Û Ü Ý Þ Ú Ú Ù ß Ù Ý Û à á à â ã Þ à ã Þ á ä â à å Þ Þ æ Þ á Û â Þ ç ß Ù è é Ú Û Ù ß Þ Ý ç â Û Þ à ê æ ê Ú ê à Ý â Ù ë Ù Ý Ý Þ Ý ë Ù æ ì
Ú ê á Û à Ú í â Ú Û î Ý â ë à Ú è Ø Ù Ý Þ å Þ ç ß á Ù ï ß à Ý à Þ æ ë Ù æ Û Ý à Ý á à ß Ù ð á à ë â î æ à ë Û ê à á ã Þ á à ë â ê ã à ã ã Þ
ò à Ý â ß Ù Ú à ï ê Ú Û Þ ã ã Þ ð Þ Ý ó à Ý Þ à á â õ à Ý á à Ú â Ü ê â Þ æ Û Þ ë Ù æ Ú ê á Û à ö
SELECT * FROM cities WHERE name = ’Mariposa’;
+------+--------+-------+|name | population | altitude |
+------+--------+-------+
|Mariposa | 1320 | 1953 |
+------+--------+-------+
Ø Ù Ú Û Ü Ý Þ Ú à ê Û Ù ç ÷ Û â ë à ç Þ æ Û Þ Þ æ ë Ù æ Û Ý à Ý ÷ á à ä Þ Ý Ú â î æ ã Þ á Ý Þ Ü â Ú Û Ý Ù ã Þ ò à Ý â ß Ù Ú à ä ÷ á â ã à ß à Ý à
Þ Ú Û Þ ç Ù ç Þ æ Û Ù è ø Ú Û Þ ã Û à ç ð â ù æ ß Ù ã Ý ó à Þ Ú ß Þ ë â ú ë à Ý ê æ â æ Û Þ Ý ä à á Ù ã Þ Û â Þ ç ß Ù è Ø Ù Ý Þ å Þ ç ß á Ù ï
ß à Ý à ä Þ Ý á à ß Ù ð á à ë â î æ ß à Ú à ã à û ß Ý Þ Ú Þ æ Û Þ ã Þ á à ë â ê ã à ã ã Þ ò à Ý â ß Ù Ú à ï ê Ú Û Þ ã ë Ù Ý Ý Þ Ý ó à á à
Ú â Ü ê â Þ æ Û Þ ë Ù æ Ú ê á Û à ö
SELECT name, population
FROM cities[’epoch’, ’now’]
WHERE name = ’Mariposa’;
ã Ù æ ã Þ ý Þ ß Ù ë í ý â æ ã â ë à Þ á ë Ù ç â Þ æ õ Ù ã Þ á Ý Þ á Ù å ã Þ á Ú â Ú Û Þ ç à è
Nota: En los sistemas Unix, esto siempre es la medianoche del 1 de enero de 1970,GMT.
þâ í à Ý Þ à á â õ à ã Ù Û Ù ã Ù Ú á Ù Ú Þ å Þ ç ß á Ù Ú í à Ú Û à à í Ù Ý à ï á à ë Ù æ Ú ê á Û à à æ Û Þ Ý â Ù Ý ã Þ ä Ù á ä Þ Ý ÷ ö
+------+--------+
|name | population |
+------+--------+
|Mariposa | 1200 |+------+--------+
|Mariposa | 1320 |
+------+--------+
ÿ
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 53/56
é á ä à á Ù Ý ß Ý Þ ã Þ Û Þ Ý ç â æ à ã Ù ß à Ý à Þ á ë Ù ç â Þ æ õ Ù ã Þ á â æ Û Þ Ý ä à á Ù ã Þ Û â Þ ç ß Ù Þ Ú Þ á ç Þ æ Ù Ý ä à á Ù Ý
S
ê Þ ß ê Þ ã à Ý Þ ß Ý Þ Ú Þ æ Û à Ý Þ á Ú â Ú Û Þ ç à ï ç â Þ æ Û Ý à Ú
S
ê Þ Þ á ä à á Ù Ý ß Ý Þ ã Þ Û Þ Ý ç â æ à ã Ù ß à Ý à Þ á ú æ à á
ã Þ á â æ Û Þ Ý ä à á Ù Þ Ú á à í Ù Ý à à ë Û ê à á è Ø Ù Ý á Ù Û à æ Û Ù ï Þ á â æ Û Þ Ý ä à á Ù ã Þ Û â Þ ç ß Ù ê Û â á â õ à ã Ù Þ æ á à
ë Ù æ Ú ê á Û à à æ Û Þ Ý â Ù Ý ß Ù ã Ý ó à í à ð Þ Ý Ú Þ à ð Ý Þ ä â à ã Ù ë Ù ç Ù T V ï W è X
Más características avanzadasØ Ù Ú Û Ü Ý Þ Ú ß Ù Ú Þ Þ ç ê ë í à Ú ë à Ý à ë Û Þ Ý ó Ú Û â ë à Ú
S
ê Þ æ Ù Ú Þ í à æ ä â Ú Û Ù Þ æ Þ Ú Û Þ Û ê Û Ù Ý â à á ï Þ á ë ê à á
í à Ú â ã Ù Ù Ý â Þ æ Û à ã Ù í à ë â à ê Ú ê à Ý â Ù Ú æ ê Þ ä Ù Ú ã Þþ Y a
èa
à Ú ç Þ æ ë â Ù æ à ã à Ú ë à Ý à ë Û Þ Ý ó Ú Û â ë à Ú Ú Þ
ã â Ú ë ê Û Þ æ Û à æ Û Ù Þ æ á à c ê ó à ã Þ á ø Ú ê à Ý â Ù ë Ù ç Ù Þ æ á à ã Þ á Ø Ý Ù Ü Ý à ç à ã Ù Ý è
ÿ e
8/2/2019 PostgreSQL - Tutorial.pdf
http://slidepdf.com/reader/full/postgresql-tutorialpdf 55/56
Bibliografíaþ
Þ á Þ ë ë â î æ ã Þ Ý Þ p Þ Ý Þ æ ë â à Ú û á Þ ë Û ê Ý à Ú Ú Ù ð Ý Þ
þ Y a
û Ø Ù Ú Û Ü Ý Þ Ú è
Libros de referencia sobre SQL
Documentación específica sobre PostgreSQL
Procedimientos y Articulos
Notasq
è í Û Û ß ö r r Ú â ç Ù æ è ë Ú è ë Ù Ý æ Þ á á è Þ ã ê r í Ù ç Þ r ß Ý à ä Þ Þ æ r ß à ß Þ Ý Ú r ß à Ý Û â æ ã Þ u è ã Þ v w è ß Ú è x
y è í Û Û ß ö r r Ú y ì p Û ß è þ
è Þ Ý Þ á Þ û è é ø ö r ß Ù Ú Û Ü Ý Þ Ú r ß à ß Þ Ý Ú r é a
ì ò v ì
q
è ß ã p
ÿ ÿ