-
Notifications
You must be signed in to change notification settings - Fork 0
/
BD1_Alter_Table.sql
191 lines (136 loc) · 4.6 KB
/
BD1_Alter_Table.sql
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
create table distribuidores(
idDistribuidor integer,
razaoSocial varchar(50));
insert into distribuidores values (1,'xyz Ltda',NULL,NULL,1);
select * from distribuidores
ALTER TABLE distribuidores
ADD COLUMN endereco VARCHAR(30);
ALTER TABLE fornecedores;
RENAME COLUMN endereco TO ender;
ALTER TABLE fornecedores
RENAME TO fornecedores;
select * from fornecedores;
alter table fornecedores
add column cep char(9);
ALTER TABLE fornecedores
ADD CONSTRAINT
cep_chk CHECK (char_length(cep) = 8);
update fornecedores set cep='90320072' where
idDistribuidor = 1
update fornecedores set cep='90320-072' where
idDistribuidor = 1
update fornecedores set cep='90320' where
idDistribuidor = 1
select character_length(Cep)from fornecedores
select * from fornecedores
insert into Fornecedores values (1,'xyz Ltda',NULL,NULL,1)
alter table fornecedores
add column kkk integer NULL;
select * from fornecedores
alter table fornecedores
drop column kkk;
alter table fornecedores
add column tipo integer NULL;
update fornecedores set tipo = 1
select * from fornecedores
--alterar coluna tipo para restrição NOT NULL
-- É necessário que todos os registros tenham
-- algum valor
update fornecedores set tipo = 1
ALTER table fornecedores
alter column tipo SET NOT NULL
update fornecedores set tipo = NULL;
--ERRO: valor nulo na coluna "tipo" viola a restrição não-nula
DETAIL: Failing row contains (2, KLM, null, null, null, null, null).
--********** Error **********
insert into fornecedores values (2,'KLM')
--ERRO: valor nulo na coluna "tipo" viola a restrição não-nula
--SQL state: 23502
--Detail: Failing row contains (2, KLM, null, null, null, null, null).
insert into fornecedores
(idDistribuidor, razaosocial,tipo)
values (2,'KLM',1)
--Query returned successfully: one row affected, 31 ms execution time.
select * from fornecedores
-- para adicionar Primary Key a coluna da tabela
-- NÃO pode ter valores repetidos nem valores NULL
alter table fornecedores
add constraint
PK primary Key (idDistribuidor)
create table Tipo(
idtipo integer primary key,
descricao varchar (50) not null);
insert into tipo values (1,'Hortfrut'),
(2,'cereais'),
(3,'Conservas'),
(4,'Limpeza');
select * from tipo
select * from fornecedores
update fornecedores set tipo = 2
where iddistribuidor =2
ALTER TABLE fornecedores
ADD CONSTRAINT fk_tipo
FOREIGN KEY (tipo)
REFERENCES tipo(idtipo);
select razaosocial, descricao
from fornecedores join tipo
on tipo = idtipo
select * from fornecedores
insert into fornecedores
(iddistribuidor,ender,tipo,cep,razaosocial)
values
(3,'rua dos patos',3,'90450099','industria tabajara')
insert into fornecedores
(iddistribuidor,ender,tipo,cep,razaosocial)
values
(4,NULL,3,'90450099','Capivara SA')
insert into fornecedores
(iddistribuidor,tipo,cep,razaosocial)
values
(5,3,'90450099','MS SA')
insert into fornecedores
(iddistribuidor,tipo,razaosocial)
values
(6,4,'Oracle SA')
insert into fornecedores
values
(7,'apple sa','California','39848888',1);
insert into fornecedores
values
(8,'Intel sa',null,null,3);
create table cidades(
idCidade serial primary Key,
Municipio varchar (50),
UF char(2));
insert into cidades (municipio,UF)
values ('Porto Alegre','RS'),
('canoas','RS'),
('Gravataí','RS');
select * from cidades
drop table cidades
create table cidades(
Municipio varchar (50),
UF char(2),
idCidade serial primary Key);
insert into cidades
values ('Porto Alegre','RS'),
('canoas','RS'),
('Gravataí','RS');
insert into fornecedores values
(9,'AMD')
select * from fornecedores
--cuidado com a seleção do WHERE
delete from fornecedores where tipo =3
delete from tipo where idtipo=3 on cascade
create table distribuidores(
idDistribuidor integer,
razaoSocial varchar(50),
tipo integer references tipo(idtipo) on delete cascade);
drop table fornecedores
insert into distribuidores values (1,'xyz Ltda',1),
(2,'klm',2),
(3,'Tabajara',2),
(4,'capivara',2);
select * from distribuidores
select * from tipo
delete from tipo where idtipo =2