Escolar Documentos
Profissional Documentos
Cultura Documentos
PostgreSQL
Tipos de Dados
●
O padrão SQL somente especifica os tipos inteiros integer
(ou int) e smallint. O tipo bigint, e os nomes de tipo int2,
int4 e int8 são extensões, também compartilhadas por
vários outros sistemas de banco de dados SQL.
Exemplo
●
drop table testeTipo;
●
CREATE TABLE testeTipo(
atr1 smallint,
atr2 int,
atr3 bigint, --ou int8,
atr4 decimal(7,3),
atr5 numeric(5,2),
atr6 real,
atr7 float, --double
atr8 serial,
atr9 bigserial -- ou serial8)
Tipos
●
Os tipos de dados smallserial, serial e bigserial não
são verdadeiros tipos, mas uma notação conveniente
para a criação de colunas cujos valores são auto
incrementais
●
CREATE TABLE Funcionarios (
IdFunc SERIAL PRIMARY KEY,
NomeFunc VARCHAR(60),
DescrCargo TEXT);
●
INSERT INTO Funcionarios (NomeFunc, DescrCargo) VALUES
('Fábio','CEO da Bóson Treinamentos em Tecnologia'),
('Sandra','Diretora da Okinawa Foods');
●
drop table tipos2;
●
create table tipos2(
atr1 money, --atr2 money(6,2),
atr3 char(3),
atr4 char,
atr5 varchar(6) ,
atr6 text);
●
insert into tipos2 values(14.3839, 'ali', 'a', 'mirela','ajjfhaf..');
●
SELECT atr6 , char_length(atr6) FROM tipos2;
●
drop table tipos3;
●
create table tipos3(
atr1 boolean,
atr2 date,
atr3 time,
atr4 timestamp,
atr5 time with time zone );
●
insert into tipos3 values ('true','Feb 8, 1999','23:33:15', '31-10-2022
22:33:15','23:33:15 CXT')
●
começar com uma boa escolha e pesquisa dos tipos de
dados corretos para cada necessidade e SGBD.
●
Quando escolhemos um data type limitamos os
valores que podem ser incluídos em um determinado
atributo, e dessa forma começamos a garantir a
qualidade dos dados.
●
Corrigir um data type é muito mais trabalhoso do que
criar as colunas com o tipo certo.
●
Limpar dados é caro!
CREATE TABLE
●
Chave primária: PRIMARY KEY
●
Chave candidata: UNIQUE
●
Chave estrangeira: FOREIGN KEY
●
Atributos não-nulos: NOT NULL
●
Restrições de checagem: CHECK
●
Valores default: DEFAULT
●
Auto Incremento: Serial ou SEQUENCE
●
create sequence if not exists seq1
increment 1
start 1
●
select currval('seq1')
●
select nextval('seq1')
●
create table tab01(
atr1 int primary key ,
atr2 int default nextval('seq1'),
atr3 date not null,
atr4 int unique,
atr5 char check (atr5 = 'F' or atr5 = 'V'),
atr6 int check (atr6 > 0 ),
atr7 char(3) default 'aaa'
)
●
insert into tab01(atr1, atr3, atr4, atr5, atr6) values (1,'01-01-2000', 1, 'F', 2)
ALTER TABLE
●
Inclusão de Chave Estrangeira
●
ALTER TABLE tab1 add constraint fk_chave
FOREIGN KEY (atr5) REFERENCES tab2 (atr1)
ON DELETE SET NULL ON UPDATE CASCADE;
●
Inclusão de Chave Primária
●
alter table testetipo add constraint pk_atributo
primary key(atr1)
ALTER TABLE
●
ALTER TABLE tab01 ADD COLUMN atr8 time;
●
ALTER TABLE tab01 drop COLUMN atr8;
●
ALTER TABLE testetipo ALTER COLUMN atr3 SET not null
●
ALTER TABLE testetipo ALTER COLUMN atr4 SET
DEFAULT 10.33
●
ALTER TABLE testetipo ALTER COLUMN atr4 DROP
DEFAULT
●
ALTER TABLE testetipo ADD CONSTRAINT check_posi
CHECK (atr5 > 1)
●
ALTER TABLE testetipo RENAME COLUMN atr9 TO atr22
●
ALTER TABLE
●
create table tabalter(
atr1 int primary key,
atr2 char(2),
atr3 varchar(4),
atr4 float,
atr5 time);
●
ALTER TABLE