Banco de dados II - create

43
Banco de Dados II Professor Wagner Gadêa Lorenz [email protected] São Vicente do Sul, 27 de Agosto de 2013 1

Transcript of Banco de dados II - create

Page 1: Banco de dados II - create

Banco de Dados II

Professor Wagner Gadêa Lorenz

[email protected]

São Vicente do Sul, 27 de Agosto de 2013

1

Page 2: Banco de dados II - create

DDL

DDL (Data Definition Language) ou Linguagem de Definição de

Dados:

disponibiliza comandos para a definição e criação do esquema de base

de dados;

comandos para criação, exclusão e alteração de objetos na base de

dados (exemplo de objetos: tabelas, visões, índice, procedimentos

armazenados, etc.) ;

comandos que especificam direitos de acesso; e comandos que

permitem criar restrições de integridade (triggers).

2

Page 3: Banco de dados II - create

História do PostgreSQL

O PostgreSQL (conhecido anteriormente como Postgres95)

derivou do projeto POSTGRES da universidade de Berkley, cuja

última versão foi a 4.2.

O POSTGRES foi originalmente patrocinado pelo DARPA

(Agência de Projetos de Pesquisa Avançada para Defesa), ARO

(Departamento de Pesquisa Militar), NSF (Fundação Científica

Nacional) e ESL Inc.

A implementação do projeto POSTGRES iniciou em 1986, já em

87 tornou-se operacional.3

Page 4: Banco de dados II - create

História do PostgreSQL

A primeira versão lançada para o público externo foi em 1989.

Devido a uma crítica feita ao seu sistema de regras, o

POSTGRES teve essa parte re-implementada e lançada em uma

segunda versão em 1990.

Em 1991 foi lançada a versão 3, com melhorias no executor de

consultas e algumas partes do código foram re-escritas.

As versões subsequentes, até o Postgres95, foram focadas em

confiabilidade e portabilidade.

4

Page 5: Banco de dados II - create

PostgreSQL hoje

A equipe do projeto cresceu e se espalhou pelo mundo.

O Grupo Global de Desenvolvimento do PostgreSQL tem

membros nos Estados Unidos, Canadá, Japão, Russia, vários

países da Europa e alguns outros.

Esse grupo é formado essencialmente por empresas

especializadas em PostgreSQL, empresas usuárias do sistema,

além dos pesquisadores acadêmicos e programadores

independentes.

5

Page 6: Banco de dados II - create

PostgreSQL hoje

Além da programação, essa comunidade é responsável pela

documentação, tradução, criação de ferramentas de

modelagem e gerenciamento, e elaboração de extensões e

acessórios.

6

Page 7: Banco de dados II - create

PostgreSQL hoje

Pela riqueza de recursos e conformidade com os padrões, ele é

um SGBD muito adequado para o estudo universitário do

modelo relacional, além de ser uma ótima opção para

empresas implementarem soluções de alta confiabilidade sem

altos custos de licenciamento.

É um programa distribuído sob a licença BSD, o que torna o seu

código fonte disponível e o seu uso livre para aplicações

comerciais ou não.

http://www.postgresql.org/7

Page 8: Banco de dados II - create

Comandos DDL

A primeira ação que devemos fazer é selecionar o SGBD que

será utilizado para criar a base de dados e suas respectivas

tabelas.

Utilizaremos o PostgreSQL.

8

Page 9: Banco de dados II - create

Criação de Base de Dados e Esquema

Vamos inicialmente criar a nossa base de dados. Para isso

usamos o comando CREATE.

Sintaxe:

CREATE DATABASE nome da base de dados;

Comando:

CREATE DATABASE exercicios;

9

Page 10: Banco de dados II - create

Criação de Base de Dados e Esquema

Também podemos excluir uma base de dados. Para isso

usamos o comando DROP.

Sintaxe:

DROP DATABASE nome da base de dados;

Comando:

DROP DATABASE exercícios;

Obs: O comando deve ser executado com cuidado, já que irá

eliminar também todas as tabelas existentes na base.

10

Page 11: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

Com a base de dados criada, é necessário criarmos as tabelas

para essa base de dados.

• CREATE TABLE

– Cria uma nova tabela na base de dados, especificando

nome, atributos e restrições.

• ALTER TABLE

– Altera definições de uma tabela.

• DROP TABLE

– Remove uma tabela, quando suas definições não são mais

necessárias.

11

Page 12: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

CREATE TABLE

– Colunas são especificadas primeiro, sob a forma:

<nomeCol> <domínio> <restrição>

– Depois Chaves, integridade referencial e restrições de integridade

Sintaxe:

CREATE TABLE <nome_da_tabela>

( <nome_da_col1> <tipo_da_col1> NOT NULL,

<nome_da_col2> <tipo_da_col2> NOT NULL,

...

PRIMARY KEY <lista_de_nomes_de_col>,

FOREIGN KEY <nomes_de_col>

REFERENCES <nome_tab_ref>(<nome_da_col_ref>)

);

12

Page 13: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

Comando:

CREATE TABLE filmes (

cod char(5) NOT NULL,

titulo varchar(40) NOT NULL,

distribuidora integer NOT NULL,

data_prod date,

tempo int,

PRIMARY KEY (cod)

);

13

Page 14: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

Comando:

CREATE TABLE distribuidora (

cod_dist integer NOT NULL,

nome varchar(80) NOT NULL,

PRIMARY KEY (cod_dist)

);

14

Page 15: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

DROP TABLE

Para excluir uma tabela, utiliza-se o comando DROP. Quando você exclui

uma tabela, você exclui todos os dados que foram armazenados nela.

Sintaxe:

DROP TABLE nome_da_tabela ;

Comando:

DROP TABLE filmes;

15

Page 16: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

ALTER TABLE

O comando nos permite alterar a estrutura de uma tabela. Com ele

podemos adicionar atributos, excluir atributos, alterar o tipo ou tamanho

do atributo, adicionar e excluir constrains.

Sintaxe - Adicionar atributo:

ALTER TABLE <nome_da_tabela>

ADD <nome_da_col1> <tipo_da_col1> ;

Comando - Adicionar atributo

ALTER TABLE filmes

ADD sinopse varchar(200);

16

Page 17: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

Sintaxe - Excluir atributo:

ALTER TABLE <nome_da_tabela>

DROP <nome_da_col1>;

Comando - Excluir atributo

ALTER TABLE filmes

DROP sinopse;

17

Page 18: Banco de dados II - create

Criação de Tabelas e Definição de Constrains

Sintaxe - Adiciona uma chave primária:

ALTER TABLE <nome_da_tabela>

ADD PRIMARY KEY <nome_da_col1>;

Comando - Adicionar atributo

ALTER TABLE filmes

ADD PRIMARY KEY (cod);

18

Page 19: Banco de dados II - create

Prática

19

Page 20: Banco de dados II - create

Prática – Criar Tabelas

Exemplo Modelo Relacional

AUTOR ( COD_AUTOR, NOME, NASCIMENTO)

LIVRO (TITULO, COD_AUTOR, COD_EDITORA,

VALOR REAL, PUBLICACAO, VOLUME)

Cod_Autor referencia AUTOR

Cod_Editora referencia EDITORA

EDITORA( COD_EDITORA, RAZAO, CGC, ENDERECO, CIDADE )

20

Page 21: Banco de dados II - create

Prática – Criar Tabelas

AUTOR ( COD_AUTOR, NOME, NASCIMENTO)

CREATE TABLE Autor(

Cod_Autor integer NOT NULL,

Nome char(30) NOT NULL,

Nascimento date NULL,

PRIMARY KEY (Cod_Autor)

);

21

Page 22: Banco de dados II - create

Prática – Criar Tabelas

EDITORA( COD_EDITORA, RAZAO, CGC, ENDERECO, CIDADE )

CREATE TABLE Editora(

Cod_Editora integer NOT NULL,

Razao char(40) NOT NULL,

CGC char (14) NOT NULL unique,

Endereco char(40) NOT NULL,

Cidade char(25) NOT NULL,

PRIMARY KEY (Cod_Editora)

);

22

Page 23: Banco de dados II - create

Prática – Criar Tabelas

LIVRO (TITULO, COD_AUTOR, COD_EDITORA, VALOR REAL, PUBLICACAO, VOLUME)

Cod_Autor referencia AUTOR

Cod_Editora referencia EDITORA

CREATE TABLE Livro(

Titulo char(30) NOT NULL,

Cod_Autor integer NOT NULL,

Cod_Editora integer NOT NULL,

ValorReal real NOT NULL,

Publicacao date NOT NULL,

Volume integer,

PRIMARY KEY (Titulo, Cod_Autor),

FOREIGN KEY (Cod_Autor) REFERENCES AUTOR,

FOREIGN KEY (Cod_Editora) REFERENCES EDITORA

); 23

Page 24: Banco de dados II - create

Prática – Criar Tabelas

DROP TABLE Editora

OBS : não exclui se tiverem livros referenciando uma editora.

Cláusula ON DELETE CASCADE

24

Page 25: Banco de dados II - create

Prática – Criar Tabelas

LIVRO (TITULO, COD_AUTOR, COD_EDITORA, VALOR REAL, PUBLICACAO, VOLUME)

Cod_Autor referencia AUTOR

Cod_Editora referencia EDITORA

CREATE TABLE Livro(

Titulo char(30) NOT NULL,

Cod_Autor integer NOT NULL,

Cod_Editora integer NOT NULL,

ValorReal real NOT NULL,

Publicacao date NOT NULL,

Volume integer,

PRIMARY KEY (Titulo, Cod_Autor),

FOREIGN KEY (Cod_Autor) REFERENCES AUTOR,

FOREIGN KEY (Cod_Editora) REFERENCES EDITORA ON DELETE CASCADE );

25

Page 26: Banco de dados II - create

Comando INSERT

Comando INSERT é usado em banco de dados, quando

queremos inserir dados na base. Podemos especificar uma

linha a ser inserida ou escrever uma consulta cujo resultado é

um conjunto de linha a inserir.

26

Page 27: Banco de dados II - create

Comando INSERT

Sintaxe:

INSERT INTO nome_da_tabela (atributo_1,...,atributo_n)

VALUES (valor_1,..., valor_n);

Comando:

INSERT INTO autor (Cod_Autor, nome, nascimento)

VALUES (1,’fulano’, ‘02/02/1985’);

....

INSERT INTO Editora (Cod_Editora, Razao,CGC,Endereco,Cidade)

VALUES (1, 'Editora 1', '323344HJ', 'Av. Rio Branco', 'Santa Maria');

.....

27

Page 28: Banco de dados II - create

Comando INSERT

INSERT INTO Livro (Titulo,Cod_Autor,Cod_Editora,ValorReal,Publicacao,Volume)

VALUES ('TITULO 1',1,1,'35.00','22-03-2011','1');

...

Efetuar INSERT para a nossas tabelas Filmes e Distribuidora.

INSERT INTO distribuidora (cod_dist,nome)

VALUES (1,'distribuidora1');

...

INSERT INTO filmes (cod,titulo,distribuidora,data_prod,tempo)

VALUES (1,'filme1',1,'23/08/2011',120);

...28

Page 29: Banco de dados II - create

Comando SELECT

Depois que inserimos dados em uma tabela, podemos começar a

fazer a consulta nessa tabela. A estrutura básica de uma consulta em

SQL consiste em três comandos: SELECT, FROM E WHERE.

O comando SELECT é usado para selecionar os atributos desejados

no resultado de uma consulta.

O comando FROM define quais tabelas serão usadas na consulta.

O comando WHERE descreve a condição da consulta e não é

obrigatório.

29

Page 30: Banco de dados II - create

Comando SELECT

Sintaxe:

select lista_atributos

from tabela

[where condição]

30

Page 31: Banco de dados II - create

Comando SELECT

Consultar tabela

SELECT * FROM filmes;

SELECT * FROM distribuidora;

SELECT cod,titulo,distribuidora,data_prod,tempo FROM filmes;

31

Page 32: Banco de dados II - create

Comando UPDATE

O comando UPDATE modifica valores inseridos dentro de uma tabela

Sintaxe:

UPDATE nome da tabela

SET nome do atributo1 = novo valor [{, nome do atributo_n = novo valor};]

[WHERE condição;]

Comando:

UPDATE filmes

SET titulo = ‘Titulo foi trocado'

WHERE cod =‘1';

32

Page 33: Banco de dados II - create

Comando DELETE

Sintaxe:

DELETE FROM nome_da_tabela [;]

[WHERE condição]

O comando WHERE permite aplicar uma condição que seleciona quais linhas da tabela serão excluídas.

Excluir o Filme com titulo ‘filme2’.

Comando:

DELETE FROM filmes WHERE titulo=‘filme2’;

33

Page 34: Banco de dados II - create

Comando DELETE

Quando você utiliza o DELETE sem a condição WHERE, todos os

registros da tabela serão excluídos.

Comando:

DELETE FROM filmes;

34

Page 35: Banco de dados II - create

Ordenação de Resultados

O comando ORDER BY, como o próprio nome diz, é utilizado

para ordenar o resultado de uma consulta. Ele não altera a

ordem dos dados da tabela física, somente o resultado da

consulta aparece ordenado.

35

Page 36: Banco de dados II - create

Ordenação de Resultados

Sintaxe:

select lista_atributos

from lista_tabelas

[where condição]

[order by nome_atributo 1 [desc] {[,

nome_atributo n [desc]]} ]

Comando:

select * from filmes order by tempo;

select * from filmes order by tempo desc;

select * from filmes order by cod asc, tempo desc; 36

Page 37: Banco de dados II - create

Ordenação de Resultados

É possível limitar a quantidade de valores ordenados a

retornar.

select * from filmes order by tempo LIMIT 2;

37

Page 38: Banco de dados II - create

Comando SELECT

• Facilidades para projeção de informações

– Não há eliminação de duplicatas no Select

• tabela ≡ coleção

– retorno de valores calculados

• uso de operadores aritméticos (+,-,*,/)

– invocação de funções de agregação

• COUNT (contador de ocorrências [de um atributo])

• MAX / MIN (valores máximo / mínimo de um atributo)

• SUM (somador de valores de um atributo)

• AVG (média de valores de um atributo)38

Page 39: Banco de dados II - create

Comando SELECT

• Função COUNT - Exemplos

– informar o total de filmes cadastrados.

select count (*) from filmes;

– total de filmes com mais de 120 min de duração.

select count (*) from filmes where tempo> 120;

39

Page 40: Banco de dados II - create

Cláusula WHERE

• Facilidades para seleção de dados

– busca por padrões

• cláusula [NOT] LIKE

– teste de existência de valores nulos

• cláusula IS [NOT] NULL

– busca por intervalos de valores

• cláusula [NOT] BETWEEN valor1 AND valor2

– teste de pertinência elemento-conjunto

• cláusula [NOT] IN

40

Page 41: Banco de dados II - create

Cláusula WHERE

• Busca por padrões

where atributo like ´padrão´

% : casa com qq cadeia de caracteres

´_´ : casa com um único caractere

[a-f] : casa com qq caractere entre

´a´ e ´f´ (SQL-Server)

• Exemplos

– buscar cod e nome dos filmes com inicial ‘f’

select cod, titulo from filmes where titulo like 'f%'

41

Page 42: Banco de dados II - create

Prática

• Utilizar o arquivo “Banco de dados tennis” disponível no Moodle da disciplina.

• Efetuar operações de SELECT utilizando condições WHERE.

• Lista de Exercícios.

42

Page 43: Banco de dados II - create

Conteúdo e Dúvidas

Conteúdo

Disponível no moodle.

Dúvidas

[email protected]

43