DCL
- Linguagem de Controle de Dados
- Subconjunto da SQL utilizado para controlar o acesso aos dados, basicamente com dois comandos que permite ou bloqueia o acesso de usuários a dados.
- GRANT: Autoriza um usuário a executar alguma operação.
- Exemplo:
- Dar permissão de consulta na tabela cliente para o usuário carlos)
- GRANT select ON cliente TO carlos;
- Dar permissão de consulta na tabela cliente para o usuário carlos)
- REVOKE: Restringe ou remove a permissão de um usuário executar alguma operação
- Exemplo:
- Não permitir que o usuário carlos crie tabelas no banco de dados
- REVOKE CREATE TABLE FROM carlos;
- Não permitir que o usuário carlos crie tabelas no banco de dados
- SET: Define parâmetros em tempo de execução, como por exemplo, o tipo de codificação do cliente e o estilo de representação de data e hora.
- LOCK: Bloqueia explicitamente uma tabela fazendo o controle de acessos concorrente.
TCL
- Linguagem de Controle de Transações:
- São usadas para controlar mudanças feitas pelos comandos DML, podendo, por exemplo, voltar as instâncias ao modo que eram antes de um comando DML.
- Exemplo de comandos TCL do SQL:
- COMMIT
- SAVEPOINT
- ROLLBACK
Exercício A
- Leia atentamente o enunciado
- Implemente o comando no W3Schools que resolva o problema
- Tendo sucesso, copie o comando para a Wiki, logo abaixo do enunciado
- Para criar a tabulação, antes do comando mantenha o string ::
- Salve
- Caso, seu exercício dependa de um anterior (por exemplo, criar tabela ou inserir dados), copie o comando do colega e execute no seu browser.
Marcelo
- 00 - Bruna
- Desenhar o DER envolvendo todas as tabelas
- 01. Abra seu SGBD
- Postgresql, Oracle ou MySQL?
- Postgresql
- 02. Crie a tabela Climas
- Descreva o comando aqui
- CREATE TABLE climas(
- cod_clima SERIAL,
- temp_max int,
- temp_min int,
- precipitacao int,
- CONSTRAINT climas_pkey PRIMARY KEY(cod_clima)
- );
- 03. Insira dados coletados na Web sobre as seguintes cidades
- Belo Horizonte
- Cuiabá
- Curitiba
- Fortaleza
- Uberlândia
- Descreva os comandos aqui
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(26, 12, 0);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(34, 18, 0);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(34, 18, 0);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(23, 10, 5);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(23, 10, 5);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(31, 24, 22);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(31, 24, 22);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(30, 14, 0);
- INSERT INTO climas(temp_max, temp_min, precipitacao) VALUES(30, 14, 0);
- 04. Crie a tabela Cidades com os seguintes campos:
- Nome(Str) , Habitantes (Int) , NomeEstado (Str), Aniversário (Date) , Area (Km2) (Float)
- Descreva o comando aqui
- CREATE TABLE cidades(
- cod_cidade SERIAL,
- nome varchar(50),
- habitantes int,
- nomeestado varchar(50),
- aniversario date,
- area float,
- cod_clima int references climas(cod_clima),
- CONSTRAINT cidades_pkey PRIMARY KEY(cod_cidade)
- );
- 05. Insira dados na tabela acima
- Descreva o comando aqui
- INSERT INTO cidades(nome, habitantes, nomeestado, aniversario, area, cod_clima) VALUES('Belo Horizonte', 2479175, 'MG', '1897-12-12', 330.95, 1);
- INSERT INTO cidades(nome, habitantes, nomeestado, aniversario, area, cod_clima) VALUES('Cuiabá', 575480 , 'MT', '1719-04-08', 3538.167, 2);
- INSERT INTO cidades(nome, habitantes, nomeestado, aniversario, area, cod_clima) VALUES('Fortaleza', 8166.56 , 'CE', '1726-04-13', 314.930, 3);
- INSERT INTO cidades(nome, habitantes, nomeestado, aniversario, area, cod_clima) VALUES('Uberlândia', 15712 , 'MG', '1888-08-31', 4115822.0, 4);
- INSERT INTO cidades(nome, habitantes, nomeestado, aniversario, area, cod_clima) VALUES('Curitiba', 1864416 , 'PR', '1693-03-29', 435036, 5);
- 06. Crie os índices nome e Aniversário
- Descreva o comando aqui
- 07. Altere o nome do Campo Habitantes para NroHabitantes
- Descreva o comando aqui
Cecília
- 08. Crie a tabela Eventos com os seguintes campos:
- NomeEvento (Str) , Data (Date) , Horário (Int), Local (Str), Preço (Float)
- create table Eventos (NomeEvento char(50), Data date, Horario integer , Local char(50), Preco float);
- 09. Insira dados de eventos quaisquer para as cidades
- insert into Eventos values ('Sarau Literario', '2015-04-03', 1001, 01, 200.00);
- insert into Eventos values ('Arraia', '2014-04-03', 1300, 01, 40.00);
- insert into Eventos values ('Feira de Vinhos', '2015-06-07', 2200, 02, 150.00);
- insert into Eventos values ('Feijoada', '2015-05-05', 1400, 03, 100.00);
- insert into Eventos values ('feira de Vinhos', '2015-05-05', 1400, 03, 100.00);
- insert into Eventos values ('Show', '2015-10-05', 2300, 04, 50.00);
- 10. Gere um relatório mostrando os dados da Cidade
- Descreva o comando aqui
- 11. Gere um relatório mostrando apenas Nome, Estado e Area das Cidades
- Descreva o comando aqui
- 12. Gere um relatório mostrando Nome, NomeEstado e Area das Cidades em ordem alfabética de Nome
- Descreva o comando aqui
- 13. Gere um relatório mostrando Nome, NomeEstado e Area das Cidades em ordem descendente de Nome
- Descreva o comando aqui
Laura
- 14. Gere um relatório com as cidades que possuem eventos (Sem duplicidade)
- Descreva o comando aqui
- 15. Gere uma view com as cidades de Minas Gerais
- Descreva o comando aqui
- 16. Gere uma view com todos os dados de Cidades (Nome e Data Fundação) com seus eventos
- Descreva o comando aqui
- 17. Exclua a cidade de Curitiba
- Descreva o comando aqui
- 18. Recupere a tabela com a cidade de Curitiba
- Descreva o comando aqui
- 19. Inclua a tabela Estados com os seguintes campos:
- UF (Int), NomeEstado (Str), Regiao (Str)
- CREATE TABLE "estados" ("uf" integer primary key, "nomeestado" char(20) not null, "regiao" char(20) not null);
Letícia
- 20. Insira 2 estados da região sudeste na tabela Estados
- INSERT INTO "estados" values(8,'Espirito Santo', 'Sudeste');
- INSERT INTO "estados" values(13,'Minas Gerais', 'Sudeste');
- 21. Gere uma view que mostre os novos dados apenas da Região Sudeste
- CREATE VIEW regiaosudeste AS
- SELECT nomeestado
- FROM estados
- WHERE regiao= 'Sudeste';
- SELECT * FROM "regiaosudeste";
- 22. Inclua os demais estados do Brasil
- INSERT INTO "estados" values(1,'Acre', 'Norte');
- INSERT INTO "estados" values(2,'Alagoas', 'Nordeste');
- INSERT INTO "estados" values(3,'Amapa', 'Norte');
- INSERT INTO "estados" values(4,'Amazonas', 'Norte');
- INSERT INTO "estados" values(5,'Bahia', 'Nordeste');
- INSERT INTO "estados" values(6,'Ceara', 'Nordeste');
- INSERT INTO "estados" values(7,'Distrito Federal', 'Centro Oeste');
- INSERT INTO "estados" values(9,'Goias', 'Centro Oeste');
- INSERT INTO "estados" values(10,'Maranhão', 'Nordeste');
- INSERT INTO "estados" values(11,'Mato Grosso', 'Centro Oeste');
- INSERT INTO "estados" values(12,'Mato Grosso do Sul', 'Centro Oeste');
- INSERT INTO "estados" values(14,'Para', 'Norte');
- INSERT INTO "estados" values(15,'Paraíba', 'Nordeste');
- INSERT INTO "estados" values(16,'Paraná', 'Sul');
- INSERT INTO "estados" values(17,'Pernambuco', 'Nordeste');
- INSERT INTO "estados" values(18,'Piauí', 'Nordeste');
- INSERT INTO "estados" values(19,'Rio de Janeiro', 'Sudeste');
- INSERT INTO "estados" values(20,'Rio Grande do Norte', 'Nordeste');
- INSERT INTO "estados" values(21,'Rio Grande do Sul', 'Sul');
- INSERT INTO "estados" values(22,'Rondonia', 'Norte');
- INSERT INTO "estados" values(23,'Roraima', 'Norte');
- INSERT INTO "estados" values(24,'Santa Catarina', 'Sul');
- INSERT INTO "estados" values(25,'São Paulo', 'Sudeste');
- INSERT INTO "estados" values(26,'Sergipe', 'Nordeste');
- INSERT INTO "estados" values(27,'Tocantins', 'Norte');
- 23. Mostre novamente os dados da view Estados
- SELECT * FROM "estados";
- 24. Inclua na tabela Eventos, registros coletados na Web para:
- Rio de Janeiro
- INSERT INTO eventos values ('Feijoada da Tia Surica', '27/06/2015', 13, 10, 50.00);
- São Paulo
- INSERT INTO eventos values ('26ª ExpoAço', '12/07/2015', 8, 11, 00.00);
- 25. Exclua um evento qualquer colocando data e hora como condição
- DELETE FROM "eventos" WHERE data = '12/07/2015 ' AND horario = '8';
Gabriel
- 26. Aumente o valor de todos os preços de todos os eventos em 10%
- Descreva o comando aqui
- 27. Aumente o valor dos preços de todos os eventos em 5% para São Paulo
- Descreva o comando aqui
- 28. Altere a data de qualquer evento de Uberlândia postergando 3 dias
- Descreva o comando aqui
- 29. Exclua o Estado de Minas Gerais da tabela Estados
- Descreva o comando aqui
- 30. Inclua novamente Minas Gerais
- Descreva o comando aqui
- 31. Mostre os eventos numa faixa de valores
- Descreva o comando aqui
Vitor
- 32. Mostre os eventos e o clima da cidade que sediará os eventos de Dezembro
- Descreva o comando aqui
- 33. Mostre os eventos das seguintes cidades: São Paulo, Rio de Janeiro e Curitiba
- Descreva o comando aqui
- 34. Mostre os eventos agrupados por cidade
- Descreva o comando aqui
- 35. Mostre os eventos agrupados por cidade com preço inferior a R$ 30,00
- Descreva o comando aqui
- 36. Calcule a média de preço de todos os eventos
- Descreva o comando aqui
- 37. Calcule a média de preço dos eventos de São Paulo
- Descreva o comando aqui
- 38. Calcule o evento de menor preço em São Paulo ou Rio de Janeiro
- Descreva o comando aqui
Augusto
- 39. Mostre todos os eventos com o nome da Cidade e Estado
- Descreva o comando aqui
- 40. Mostre todos os eventos ordenados por data com o nome da Cidade e Estado
- Descreva o comando aqui
- 41. Mostre todos os eventos ordenados por data e agrupados por Cidade
- Descreva o comando aqui
- 42. Mostre todos os eventos ordenados por Preço e agrupados por Estado
- Descreva o comando aqui
- 43. Gere e execute uma visão viewEventosMenor35 com os eventos com valores menores a R$ 35,00
- Descreva o comando aqui
- 44. Aumente os valores de todos os eventos em 10%
- Descreva o comando aqui
- 45. Execute a visão viewEventosMenor35
- Descreva o comando aqui
Alessandro
- 46. Mostre o nome, o estado e a região das cidades que começam com a letra C
- SELECT Cidades.Nome, Cidades.NomeEstado, estados.regiao
- FROM Cidades,Estados
- WHERE Cidades.NomeEstado = estados.nomeestado AND Cidades.Nome LIKE 'C%';
- 47. Exclua os eventos de Curitiba
- DELETE
- FROM Eventos
- WHERE Eventos.CodCidade = SELECT cidade.cod_cidade FROM cidades WHERE cidades.nome = 'Curitiba';
- 48. Execute a visão viewEventosMenor35
- Descreva o comando aqui
- 49. Gere e execute uma visão viewEventosBH com o nome do evento, nome da cidade e da região
- Descreva o comando aqui
- 50. Gere e execute um relatório com o nome do evento, nome da cidade e da região para eventos de BH.
- Descreva o comando aqui