1. Banco de Dados Postgresql
Para acessar, executar ssh para:
servidor : servlab.ucpel.tche.br
usuario: aluno-web
senha: aluno-web
1) Ir para o diretório de trabalho pessoal
cd /home/aluno-web/public_html/pw123/meunome
onde meunome é o nome do aluno, se for a primeira vez que está utilizando o servidor triton, siga para o
item 3.
2) Verificar se está no diretório correto
pwd
analisar o retorno
3) Se o diretório (meunome) não existir, criar
cd /home/aluno-web/public_html/pw123/
mkdir meunome
4) Criar a base de dados
createdb meunome_nomebase
este comando cria a base de dados para que o aluno possa trabalhar. A base é criada no
catálogo/dicionário do banco.
5) Comando para acessar o ambiente do postgres
psql meunome_nomebase
Principais comandos do ambiente:
? --> mostra comandos do ambiente psql
d <tabela> --> mostra estrutura da tabela
di --> mostra índices
dt --> mostra as tabelas
dv mostra views
dp mostra permissões
i arquivo --> executa um script
e arquivo edita um arquivo
(export EDITOR=caminho para o editor - /usr/bin/pico)
o arquivo direciona a saída dos comandos para um arquivo (o finaliza)
l --> lista as bases de dados
h --> apresenta comandos SQL
h comando sql --> help do comando
q --> sai do ambiente
c conecta em outra base de dados
! Comando do so
(ex: ! Pico scritp.txt)
Criação de base postgresql
- no linux: createdb nomebase
- no psql: create database nomebase
Remoção de base postgresql
- no linux: dropdb nomebase
- no psql: drop database nomebase
Crie sempre as tabelas (create table) utilizando scripts, não digite diretamente na linha de comando.
2. Dessa forma se algo estiver errado, basta corrigir o script e executar novamente. Para executar o script
utilize o comando i <nome_script>.
Ex:
pico criatabelacliente.txt
create table cliente(codigo int,nome varchar(30),primary key (codigo));
CTRL+X
createdb basevendas
psql basevendas
# i criatabelacliente.txt
Exercícios de SQL
Esta base de dados permite armazenar informações sobre a quantidade de pessoas de um determinado sexo e
categoria (chefe, cônjuge, filho, ...) que residem em um bairro de uma cidade. Os scripts podem ser criados no
windows e copiados via ftp para o servidor linux.
MODELO ER
MODELO LÓGICO-RELACIONAL
Estado (siglaestado, nome)
Cidade (codcid, nome, siglaestado)
Bairro(codbairro, nome)
Categoria (codcategoria, descricao)
Qtdpessoasbairro (codbairro, codcategoria, sexo, ano, qtd)
Exemplo de Informações armazenadas
Cidade Estado
Codcidade Nome Siglaestado Siglaestado Nome
1 Pelotas Rs Rs Rio Grande do Sul
2 Jaguarão Rs Sp São Paulo
3 Arroio Grande Rs
Bairro Categoria
Codbairro Nome codcidade Codcategoria Nome
1 Lindóia 1 1 Chefe
2 Centro 1 2 Cônjuge
3 Pestano 1 3 Filho
3. Qtdpessoasbairro
codbairro Codcategoria Sexo ano qtd
1 1 M 2000 9000
1 2 M 2000 2000
2 1 M 2000 7000
3 1 M 2000 1000
Responda às questões (sql ddl / dml):
Os dados do exemplo são válidos apenas para efeito de exercício, obviamente não
correspondem a realidade. Também considerar para efeito de exercício que as tabelas possuem
um número muito maior de registros.
1) Comando que cria em uma base de dados a tabela cidade
2) Comando que cria em uma base de dados a tabela qtdpessoasbairro
3) Comandos que inserem as informações que constam no exemplo. Observar a ordem correta
de inclusão.
4) Comando que lista o nome da cidade e o nome do estado
5) Comando que lista o nome do bairro, o nome da cidade e o nome do estado, em ordem
alfabética de nome do estado, dentro do estado por cidade e na cidade em ordem inversa de
nome de bairro
6) Comando que lista o nome da cidade, o nome do bairro, o nome da categoria, o sexo, o ano
e a quantidade de pessoas
7) Comando que lista o nome da cidade, o nome do bairro, o nome da categoria, o sexo, o ano
e a quantidade de pessoas do ano de 1990.
8) Comando que lista o nome da cidade, o nome do bairro, o nome da categoria, o sexo, o ano
e a quantidade de homens do ano de 2000
9) Comando que soma o número de homens em pelotas no ano de 2000
10) Comando que soma o número de homens em pelotas no ano de 2000, mas somente dos
bairros Lindóia, Navegantes, Pestano.
11) Comando que soma o número de homens chefes de família em pelotas no ano de 2000, mas
somente dos bairros Lindóia, Navegantes, Pestano.
12) Comando que mostre o código da categoria com maior quantidade em 1990.
13) Comando que apresente o total de mulheres do bairro Lindóia, que são chefes de família.
14) Comando que modifica o nome da categoria 1 para Chefes de família.
15) Comando que modifica o nome do bairro centro para central.
16) Comando que apaga os dados da tabela qtdpessoasbairro. (somente para os dados
anteriores a 1990)
17) Comando que apaga os dados da tabela qtdpessoasbairro, do bairro cujo código é igual a 1.
Agrupamentos (group by - assunto não trabalhado)
18) Comando que apresenta o total de cidade para cada sigla de estado
19) Comando que apresenta o total de cidade para cada sigla de estado, desde que o estado
possua mais de 10 cidades
20) Comando que apresenta o total de habitantes cadastrador em cada bairro/ano
21) Comando que apresenta o total de categorias cadastradas em cada bairro/ano
21) Comando que apresenta o total de categorias cadastradas em cada bairro/ano, desde que
este total seja superior a 100
4. Exercícios SQL
Produto(codigo, descrição, preço, estoque, estoquemin, codfor, categoria)
Categoria(codigo, descricao)
Fornecedor(codigo, nome)
Clientes(codigo, nome, endereço)
Notas(numero, codcli, data)
Itens(numnota, codprod, qtd, valor)
1) Crie uma visão chamada vprod que contenha somente o codigo e a descriçao do produto.
2) Mostre todos os registros da visão vprod, desde que o codigo do produto esteja na faixa entre 1 e 300.
3) Crie uma visão chamada vprodfornec que contenha o codigo do produto, o codigo do fornecedor e o nome do
fornecedor.
4) Mostre todos os registros da visão vprodfornec
5) Crie uma visão chamada vnota que contenha o numero da nota, e o nome do cliente.
6) Mostre todos os registros da visão vnota, dos clientes que possuem ana no nome.
7) Crie uma visão chamada vnotageral que contenha o numero da nota, o nome do cliente e o codigo de cada
produto que foi vendido na nota.
8) Mostre todos os registros da visão vnotageral
9) Crie uma visão chamada vnotageral2 que contenha o numero da nota, o nome do cliente e o codigo e a descrição
de cada produto que foi vendido na nota.
10) Crie uma visão chamada vtotal que contenha o numero da nota e o total de produtos vendidos na nota.
11) Crie uma visão chamada vfornec que contenha o codigo do fornecedor e a quantidade de produtos fornecidos.
12) Crie uma visão, chamada vfornqtd, com o nome do fornecedor e a quantidade de produtos fornecidos.
13) Apresente todos os registros dessa visão.
14) Crie uma visão, chamada vfornqtd2 , com o nome do fornecedor e a quantidade de produtos fornecidos, mas
somente para os fornecedores com mais de 50 produtos.
15) Apresente, utilizando visões, o nome do fornecedor e a quantidade de produtos fornecidos, mas somente para os
fornecedores com mais de 10 produtos, sendo esses produtos das categorias cujo intervalo de código esteja
entre 1 e 100.