banco de dados

37
Banco de Dados PostgreSQL

Upload: kathy

Post on 23-Feb-2016

45 views

Category:

Documents


0 download

DESCRIPTION

Banco de Dados. PostgreSQL. Tipos de dado. Data definition language. Database - Create , Alter , Drop Schema - Create , Alter , Drop Tablespace - Create , Alter Drop Table - Create , Alter , Drop Index - Create , Alter , Drop. Principais comandos DDL. Database. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Banco de Dados

Banco de DadosPostgreSQL

Page 2: Banco de Dados

TIPOS DE DADO

Page 3: Banco de Dados
Page 4: Banco de Dados
Page 5: Banco de Dados
Page 6: Banco de Dados

DATA DEFINITION LANGUAGE

Page 7: Banco de Dados

Principais comandos DDL

• Database - Create, Alter, Drop• Schema - Create, Alter, Drop• Tablespace - Create, Alter Drop• Table - Create, Alter, Drop• Index - Create, Alter, Drop

Page 8: Banco de Dados

DATABASE

Page 9: Banco de Dados

CREATE DATABASE nome[ [ WITH ] [ OWNER [=] dono_do_banco_de_dados ][ TEMPLATE [=] modelo ][ ENCODING [=] codificação ][ TABLESPACE [=] espaço_de_tabelas ] ]

O comando CREATE DATABASE cria um banco de dados no PostgreSQL.

Exemplos• Para criar um banco de dados:

• CREATE DATABASE lusiadas;• Para criar o banco de dados vendas pertencendo ao

usuário usuvendas com o espaço de tabelas padrão espvendas:• CREATE DATABASE vendas OWNER

usuvendas TABLESPACE espvendas;• Para criar o banco de dados musica com suporte a

conjunto de caracteres ISO-8859-1:• CREATE DATABASE musica ENCODING

'LATIN1';

Page 10: Banco de Dados

ALTER DATABASE nome SET parâmetro { TO | = } { valor | DEFAULT }ALTER DATABASE nome RESET parâmetroALTER DATABASE nome RENAME TO novo_nomeALTER DATABASE nome OWNER TO novo_dono

O comando ALTER DATABASE altera os atributos de um banco de dados.

ExemploPara desabilitar a varredura de índices no banco de dados teste por padrão:• ALTER DATABASE teste SET

enable_indexscan TO off;

Page 11: Banco de Dados

DROP DATABASE nome

O comando DROP DATABASE remove um banco de dados.

O comando DROP DATABASE não pode ser desfeito. Utilize com cuidado!

ExemploPara apagar o banco de dados empresas:• DROP DATABASE empresas;

Page 12: Banco de Dados

SCHEMA

Page 13: Banco de Dados

CREATE SCHEMA nome_do_esquema [ AUTHORIZATION nome_do_usuário ] [ elemento_do_esquema [ ...] ]CREATE SCHEMA AUTHORIZATION nome_do_usuário [ elemento_do_esquema [ ... ] ]

O comando CREATE SCHEMA cria um esquema no banco de dados corrente

Exemplos• Criar um esquema:

• CREATE SCHEMA meu_esquema;• Criar um esquema para o usuário antonio; o esquema

também se chamará antonio:• CREATE SCHEMA AUTHORIZATION antonio;

Page 14: Banco de Dados

ALTER SCHEMA nome RENAME TO novo_nomeALTER SCHEMA nome OWNER TO novo_dono

O comando ALTER SCHEMA altera a definição de um esquema.

Exemplos• Alterar nome de um schema

• ALTER SCHEMA rh RENAME TO recursoshumanos;

Page 15: Banco de Dados

DROP SCHEMA nome [, ...] [ CASCADE | RESTRICT ]

O comando DROP SCHEMA remove esquemas do banco de dados.

Exemplos• Para remover do banco de dados o esquema meu_esquema

junto com todos os objetos que este contém:• DROP SCHEMA meu_esquema CASCADE;

Page 16: Banco de Dados

TABLESPACE

Page 17: Banco de Dados

CREATE TABLESPACE nome_do_espaço_de_tabelas [ OWNER nome_do_usuário ] LOCATION 'diretório'

O comando CREATE TABLESPACE registra um novo espaço de tabelas para todo o agrupamento.

Exemplos• Criar o espaço de tabelas dbspace em /data/dbs:

• CREATE TABLESPACE dbspace LOCATION '/data/dbs';

• Criar o espaço de tabelas indexspace em /data/indexes pertencendo ao usuário genevieve:• CREATE TABLESPACE indexspace OWNER genevieve

LOCATION '/data/indexes';

Page 18: Banco de Dados

ALTER TABLESPACE nome RENAME TO novo_nomeALTER TABLESPACE nome OWNER TO novo_dono

O comando ALTER TABLESPACE altera a definição de um espaço de tabelas.

Exemplos• Mudar o nome de espaco_para_indices para raid_rapido:

• ALTER TABLESPACE espaco_para_indices RENAME TO raid_rapido;

• Mudar o dono do espaço de tabelas espaco_para_indices:• ALTER TABLESPACE espaco_para_indices OWNER TO

maria;

Page 19: Banco de Dados

DROP TABLESPACE nome_do_espaço_de_tabelas

O comando DROP TABLESPACE remove do sistema um espaço de tabelas.

Exemplos• Para remover do sistema o espaço de tabelas minhas_coisas:

• DROP TABLESPACE minhas_coisas;

Page 20: Banco de Dados

TABLE

Page 21: Banco de Dados

CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE nome_da_tabela ({ nome_da_coluna tipo_de_dado [ DEFAULT expressão_padrão ] [ restrição_de_coluna [ ... ]]| restrição_de_tabela| LIKE tabela_ancestral [ { INCLUDING | EXCLUDING } DEFAULTS ] } [, ... ])[ INHERITS ( tabela_ancestral [, ... ] ) ][ WITH OIDS | WITHOUT OIDS ][ ON COMMIT { PRESERVE ROWS | DELETE ROWS | DROP } ][ TABLESPACE espaço_de_tabelas ]

O comando CREATE TABLE cria uma tabela, inicialmente vazia, no banco de dados corrente. O usuário que executa ocomando se torna o dono da tabela.

Page 22: Banco de Dados

onde restrição_de_coluna é:

[ CONSTRAINT nome_da_restrição ]{ NOT NULL |NULL |UNIQUE [ USING INDEX TABLESPACE espaço_de_tabelas ] |PRIMARY KEY [ USING INDEX TABLESPACE espaço_de_tabelas ] |CHECK (expressão) |REFERENCES tabela_referenciada [ ( coluna_referenciada ) ][ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ][ ON DELETE ação ] [ ON UPDATE ação ] }[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

e restrição_de_tabela é:

[ CONSTRAINT nome_da_restrição ]{ UNIQUE ( nome_da_coluna [, ... ] ) [ USING INDEX TABLESPACE espaço_de_tabelas ] |PRIMARY KEY ( nome_da_coluna [, ... ] ) [ USING INDEX TABLESPACE espaço_de_tabelas ] |CHECK ( expressão ) |FOREIGN KEY ( nome_da_coluna [, ... ] )REFERENCES tabela_referenciada [ ( coluna_referenciada [, ... ] ) ][ MATCH FULL | MATCH PARTIAL | MATCH SIMPLE ] [ ON DELETE ação ] [ ON UPDATE ação ] }[ DEFERRABLE | NOT DEFERRABLE ] [ INITIALLY DEFERRED | INITIALLY IMMEDIATE ]

Page 23: Banco de Dados

Exemplos

Page 24: Banco de Dados
Page 25: Banco de Dados
Page 26: Banco de Dados
Page 27: Banco de Dados
Page 28: Banco de Dados
Page 29: Banco de Dados

ALTER TABLE [ ONLY ] nome [ * ]ação [, ... ]ALTER TABLE [ ONLY ] nome [ * ]RENAME [ COLUMN ] coluna TO novo_nome_da_colunaALTER TABLE nomeRENAME TO novo_nomeonde ação é uma entre:ADD [ COLUMN ] coluna tipo [ restrição_de_coluna [ ... ] ]DROP [ COLUMN ] coluna [ RESTRICT | CASCADE ]ALTER [ COLUMN ] coluna TYPE tipo [ USING expressão ]ALTER [ COLUMN ] coluna SET DEFAULT expressãoALTER [ COLUMN ] coluna DROP DEFAULTALTER [ COLUMN ] coluna { SET | DROP } NOT NULLALTER [ COLUMN ] coluna SET STATISTICS inteiroALTER [ COLUMN ] coluna SET STORAGE { PLAIN | EXTERNAL | EXTENDED | MAIN }ADD restrição_de_tabelaDROP CONSTRAINT nome_da_restrição [ RESTRICT | CASCADE ]CLUSTER ON nome_do_índiceSET WITHOUT CLUSTERSET WITHOUT OIDSOWNER TO novo_donoSET TABLESPACE nome_do_espaço_de_tabelas

O comando ALTER TABLE altera a definição de uma tabela existente.

Page 30: Banco de Dados
Page 31: Banco de Dados
Page 32: Banco de Dados

DROP TABLE nome [, ...] [ CASCADE | RESTRICT ]

O comando DROP TABLE remove tabelas do banco de dados.

Exemplos• Remover duas tabelas, filmes e distribuidores:• DROP TABLE filmes, distribuidores;

Page 33: Banco de Dados

INDEX

Page 34: Banco de Dados

CREATE [ UNIQUE ] INDEX nome_do_índice ON tabela [ USING método ]( { coluna | ( expressão ) } [ classe_de_operadores ] [, ...] )[ TABLESPACE espaço_de_tabelas ][ WHERE predicado ]

O comando CREATE INDEX constrói o índice nome_do_índice na tabela especificada.

Exemplos• Para criar um índice B-tree para a coluna titulo na tabela filmes:

• CREATE UNIQUE INDEX unq_titulo ON filmes (titulo);

• Para criar um índice para a coluna codigo da tabela filmes e fazer o índice residir no espaço de tabelas espaco_indices:• CREATE INDEX idx_codigo ON filmes(codigo)

TABLESPACE espaco_indices;

Page 35: Banco de Dados

ALTER INDEX nomeação [, ... ]ALTER INDEX nomeRENAME TO novo_nome

onde ação é um entre:

OWNER TO novo_donoSET TABLESPACE nome_do_espaço_de_índices

O comando ALTER INDEX altera a definição de um índice existente.

Exemplos• Para mudar o nome de um índice existente:

• ALTER INDEX distribuidores RENAME TO fornecedores;

• Para mover um índice para outro espaço de tabelas:• ALTER INDEX distribuidores SET TABLESPACE

espaco_de_tabelas_rapido;

Page 36: Banco de Dados

DROP INDEX nome [, ...] [ CASCADE | RESTRICT ]

O comando DROP INDEX remove do sistema de banco de dados um índice existente.

Exemplos• O comando a seguir remove o índice

idx_titulo:• DROP INDEX idx_titulo;

Page 37: Banco de Dados

Exercícios

• Para Banco de Dados RH• Criar Banco de Dados –

Empresas• Criar Squema RH• Criar Tabelas

• Empresa • Departamento• Funcao• Teste – com codigo, nome,

data, valor

• Alterar nome do squema para recursoshumanos

• Alterar nome da tabela teste para teste2

• Alterar tipo da coluna codigo da tabela teste2 para decimal e data para timestamp

• Criar um índice único para o nome da tabela teste2

• Criar as primary keys e constratints de relacionamento para as tabelas Empresa, Departamento e Funcao

• Adicionar uma coluna e-mail na tabela teste2

• Apagar índice da coluna nome da tabela teste2

• Apagar tabela teste2