Skip to content

Commit 2b9275b

Browse files
author
Pabo Cervigon
committed
diagram created, socio and direccion added to the script
1 parent f902314 commit 2b9275b

6 files changed

+1934
-156
lines changed

academia.sql

Lines changed: 170 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,170 @@
1+
create schema if not exists franciscomoma;
2+
3+
set schema 'franciscomoma';
4+
5+
6+
create table persona(
7+
id serial primary key,
8+
dni varchar(10) not null,
9+
nombre varchar(50) not null,
10+
apellido_1 varchar(50) not null,
11+
apellido_2 varchar(50)
12+
);
13+
14+
create table contacto(
15+
id serial primary key,
16+
id_persona integer not null,
17+
telefono varchar(10) not null,
18+
email varchar(50) not null,
19+
calle varchar(80) not null,
20+
numero varchar(10) not null,
21+
direccion varchar(30) not null,
22+
constraint contacto_persona_fk foreign key (id_persona) references persona(id)
23+
);
24+
25+
26+
create table poblacion(
27+
id serial primary key,
28+
poblacion varchar(50) not null,
29+
id_provincia integer not null
30+
);
31+
32+
33+
create table provincia(
34+
id serial primary key,
35+
provincia varchar(30) not null
36+
);
37+
38+
39+
alter table poblacion
40+
add constraint poblacion_provincia_fk
41+
foreign key (id_provincia)
42+
references provincia(id);
43+
44+
45+
create schema if not exists franciscomoma;
46+
47+
set schema 'franciscomoma';
48+
49+
50+
create table persona(
51+
id serial primary key,
52+
dni varchar(10) not null,
53+
nombre varchar(50) not null,
54+
apellido_1 varchar(50) not null,
55+
apellido_2 varchar(50)
56+
);
57+
58+
create table contacto(
59+
id serial primary key,
60+
id_persona integer not null,
61+
telefono varchar(10) not null,
62+
email varchar(50) not null,
63+
calle varchar(80) not null,
64+
numero varchar(10) not null,
65+
direccion varchar(30) not null,
66+
constraint contacto_persona_fk foreign key (id_persona) references persona(id)
67+
);
68+
69+
70+
create table poblacion(
71+
id serial primary key,
72+
poblacion varchar(50) not null,
73+
id_provincia integer not null
74+
);
75+
76+
77+
create table provincia(
78+
id serial primary key,
79+
provincia varchar(30) not null
80+
);
81+
82+
83+
create table curso(
84+
id serial primary key,
85+
nombre varchar(80) not null
86+
);
87+
88+
89+
create table edicion(
90+
id serial primary key,
91+
id_curso integer not null,
92+
nombre varchar(80) not null
93+
);
94+
95+
96+
create table matrícula(
97+
id serial primary key,
98+
id_alumno integer not null,
99+
id_edicion integer not null,
100+
fecha date not null
101+
);
102+
103+
104+
alter table edicion
105+
add constraint edicion_curso_fk
106+
foreign key (id_curso)
107+
references curso(id);
108+
109+
110+
alter table matrícula
111+
add constraint matricula_edicion_fk
112+
foreign key (id_edicion)
113+
references edicion(id);
114+
115+
116+
alter table matrícula
117+
add constraint matricula_persona_fk
118+
foreign key (id_alumno)
119+
references persona(id);
120+
121+
122+
123+
insert into provincia (provincia) values ('ALMERIA');
124+
125+
126+
alter table provincia
127+
add constraint unique_provincia
128+
unique (provincia);
129+
130+
131+
create unique index unique_provincia_index on provincia (lower(provincia));
132+
133+
create unique index unique_poblacion_index on poblacion (lower(poblacion), id_provincia);
134+
135+
136+
insert into poblacion (id_provincia, poblacion) values (6, 'Albacete'), (11, 'Albacete');
137+
138+
139+
140+
alter table provincia drop constraint unique_provincia;
141+
142+
143+
select id, initcap(substring(provincia from 2 for 3)) as "Resultado de la funcion" from provincia;
144+
145+
delete from provincia where id = 2;
146+
147+
148+
149+
select * from provincia;
150+
151+
update provincia set provincia = initcap(provincia);
152+
153+
154+
alter table contacto
155+
add constraint solo_emails_validos
156+
check (email like '%@%');
157+
158+
159+
160+
insert into persona (dni, nombre, apellido_1) values ('777771Z', 'Oscar', 'Cañas');
161+
162+
select * from persona;
163+
164+
insert into contacto (id_persona, telefono, email, calle , numero, direccion)
165+
values (1, '88888888', 'hola@mundo', 'Goya', '4', '');
166+
167+
168+
169+
170+

0 commit comments

Comments
 (0)