Pular para o conteúdo principal

Exercícios resolvidos em Linguagem Python - para iniciantes

Esta lista de exercícios resolvidos é um manual para ajudar todo aluno iniciante e não só, a adquirir e aprimorar as habilidades necessárias para se trabalhar com Python, de forma rápida e consistente. Estude e desfrute do conteúdo. 1º Exercício      Faça um programa que informe a versão do Python que você está utilizando Solução import sys print ( "Versão do Python" ) print (sys.version) print ( "Informação da versão instalada" ) print (sys.version_info) Atenção :     -  O módulo sys fornece funções e variáveis usadas para manipular diferentes partes do ambiente de tempo de execução do Python;     - Pra quem ainda não está familiarizado com a linguagem, um módulo  é um arquivo contendo definições e comandos em Python para serem usados em outros programas. 2º Exercício      Faça um programa em linguagem Python que converta metros para centímetros. Solução print ( ' \t ----Conversão de medida---- ' ) metros = int ( input ( 'Informe o valor em metros: 

TRIGGER MySQL

     TRIGGER OU GATILHO é um escutador, ou seja, escuta se teve um insert, update ou delete em uma tabela em que está associado. Em poucas palavras, triggers são executados (ou disparados) implicitamente quando uma tabela é modificada, um objeto é criado ou quando ocorrem algumas ações de usuário ou de sistema de banco de dados. Outro fator importante é que uma Trigger só serve para a tabela em que está amarrada. Portanto, se não acontecer um evento(insert, update ou delete) ela não dispara.

ATENÇÃO: quando a Trigger tem um erro de lógica , ela não monitora a coluna. 

RESTRIÇÕES EM RELAÇÃO À TRIGGERS

    Pois bem, assim como o ser humano possui liberdades e essas liberdades tem um teto( restrições impostas pela lei para limitar certas ações dos indivíduos), isso também ocorre com as triggers. Acredite! Ao implementar este maravilhoso recurso, você vai se deparar com várias restrições, não se assuste, é muito não, atrás de não. Okay? então tá combinado. Aqui, vamos destacar as principais, veja a seguir:


  • Não é permitido iniciar ou finalizar transações em meio à TRIGGERS(Start transaction, commit ou Roolback); A intrução Rollback to savepoint é permitido porque ele não termina uma transação. 

  • Não se pode criar TRIGGERS para uma tabela temporária – TEMPORARY TABLE;

  • Não se pode chamar diretamente um TRIGGER com CALL, como se faz com um Stored Procedure;

  • TRIGGERS ainda não podem ser implementadas com a intenção de devolver para o usuário ou para uma aplicação mensagens de erros.

  • Para cada tabela de um banco de dados, podemos ter no máximo 6 TRIGGERS

POR QUE USAR TRIGGERS?

    TRIGGERS são um grande aliado para melhorar a segurança e performance dentro do banco de dados e por isso, sua implementação é muito recomendada. Abaixo, temos os mais diversos motivos para usá-la :
  • Triggers garantem uma segurança maior no nosso banco, ela tem como tarefa restringir o acesso as tabelas, impedir transações inválidas e controlar as atualizações;
  • A partir das Triggers podemos criar controles mais complexos para os relacionamento das tabelas.
  • Através do trigger, podemos gerar alguns valores de coluna derivados automaticamente;
  • Triggers são excelentes para criar uma política de replicação síncrona de uma tabela para outra.

OLD E NEW  - os operadores que fazem a mágica acontecer


OLD: operador para ser utilizado no interior da TRIGGER para recuperar o valor anterior à um UPDATE, ou DELETE; 


NEW: operador para ser utilizado no interior da TRIGGER para recuperar dados atuais a partir de comandos INSERT, e UPDATE.


Lembre-se - o Trigger no MySQL é um objeto de banco de dados que pode ser chamado antes ou depois de um evento e, quando associado a uma tabela, ele será ativado assim que você executar uma das seguintes instruções do MySQL na tabela: INSERT, UPDATE e DELETE.


EXERCÍCIO DE ESTUDO


Imagine a seguinte situação:  um mercado, ao realizar vendas, precisa que o estoque dos produtos seja automaticamente reduzido.  A devolução do estoque deve também ser automática no caso de remoção de produtos da venda.


Utlilizando o ambiente de desenvolvimento integrado MySQL Workbench, faça o seguinte:

CREATE DATABASE BDD4; #para criar o banco de dados com o nome BDD4

USE BDD4; #para usar o banco de dados e criar as tabelas


CREATE TABLE produtos (

id_produto INT(3) PRIMARY KEY,

descricao VARCHAR(50) UNIQUE,

estoque INT NOT NULL

);

#INSERINDO VALORES NA TABELA PRODUTOS

INSERT INTO produtos (id_produto,descricao,estoque) VALUES (1, 'Arroz', 21);

INSERT INTO produtos (id_produto,descricao,estoque) VALUES (2, 'Feijão', 13);

INSERT INTO produtos (id_produto,descricao,estoque) VALUES (3, 'Tomate', 9);


Vamos fazer um select * from produtos; para visualizar os dados inseridos na tabela produtos






CREATE TABLE itensvenda ( 

id_venda INT, cod_produto INT(3), quantidade INT

);


Ao inserir e remover registro da tabela itensvenda, o estoque do produto deve ser alterado na tabela produtos. Para isso, serão criados dois triggers: um AFTER INSERT para dar baixa no estoque e um AFTER DELETE para fazer a devolução da quantidade do produto.
DELIMITER // CREATE TRIGGER tgr_itensvenda_insert AFTER INSERT ON itensvenda
FOR EACH ROW BEGIN UPDATE produtos SET estoque = estoque - NEW.quantidade WHERE id_produto = NEW.cod_produto; END; //

DELIMITER // CREATE TRIGGER tgr_itensvenda_delete AFTER DELETE ON itensvenda FOR EACH ROW BEGIN UPDATE produtos SET estoque = estoque + OLD.quantidade WHERE id_produto = OLD.cod_produto; END;//
#INSERINDO VALORES NA TABELA ITENSVENDA
INSERT INTO itensvenda(id_venda,cod_produto,

quantidade) VALUES (1,1,3);

INSERT INTO itensvenda(id_venda,cod_produto,

quantidade) VALUES (1, 2,1);


Vamos fazer um select * from itensvenda; para visualizar os dados inseridos na tabela itensvenda









Vamos fazer um select * from produtos; para visualizar se os dados inseridos na tabela itensvenda afetaram a tabela produto.


Verifique que o estoque dos produtos foi corretamente reduzido, de acordo com as quantidades "vendidas". Agora, para testar o trigger da exclusão, será removido o produto 1 dos itens vendidos. Com isso, o seu estoque deve ser alterado para o valor inicial, ou seja, 21.


DELETE FROM itensvenda WHERE id_venda=1 and cod_produto=1 ;


ATENÇÃO: Desta forma, a gente tá excluindo o registro que contém o id_venda igual 1 e cod_produto igual 1.


Vamos fazer um select na tabela itensvenda pra verificar se o registro com  id_venda igual a 1 e cod_produto igual 1  foi deletado: select * from itensvenda; 


Agora, vamos fazer um select na tabela produtos para verificar se o item deletado na tabela  itensvenda foi retornado com sucesso no estoque. Resumindo: tinha 21 unidades no estoque, vendemos 3 unidades e ficou 18. O cliente liga e fala que não quer mais aquele produto, então, o produto é deletado do pedido. Com isso, o nosso estoque passa a ter 21 unidades daquele produto novamente.


select * from produtos;


Fonte: https://dev.mysql.com/doc/refman/8.0/en/trigger-syntax.html



Comentários

Postagens mais visitadas deste blog

Exercícios resolvidos em Linguagem Python - para iniciantes

Esta lista de exercícios resolvidos é um manual para ajudar todo aluno iniciante e não só, a adquirir e aprimorar as habilidades necessárias para se trabalhar com Python, de forma rápida e consistente. Estude e desfrute do conteúdo. 1º Exercício      Faça um programa que informe a versão do Python que você está utilizando Solução import sys print ( "Versão do Python" ) print (sys.version) print ( "Informação da versão instalada" ) print (sys.version_info) Atenção :     -  O módulo sys fornece funções e variáveis usadas para manipular diferentes partes do ambiente de tempo de execução do Python;     - Pra quem ainda não está familiarizado com a linguagem, um módulo  é um arquivo contendo definições e comandos em Python para serem usados em outros programas. 2º Exercício      Faça um programa em linguagem Python que converta metros para centímetros. Solução print ( ' \t ----Conversão de medida---- ' ) metros = int ( input ( 'Informe o valor em metros: 

Como abrir uma página da web utilizando Python?

Simples, você pode abrir páginas da Web de forma rápida, segura e fácil. Veja só, durante os estudos das bibliotecas padrão do Python descobri que para abrir um navegador web a partir de um script, devo importar o módulo webbrowser. Em seguida, usar webbrowser.open () que vai receber o link que quero abrir como argumento e executar o serviço, ou seja, basta inserir um endereço do youtube nele, na verdade pode ser qualquer link que você desejar. Exemplo webbrowser.open( "https://www.huicode.com.br/p/exercicios-resolvidos-de-linguagem-c.html" ) Para funcionar temos que importar o módulo webbrowser, que vai ser a maneira de dizer ao python que queremos usar webbrowser e todas as suas funcionalidades no programa. import webbrowser webbrowser.open( "https://www.huicode.com.br/p/exercicios-resolvidos-de-linguagem-c.html" ) Funcionooou, uhuhu. Nem parece, mas o módulo webbrowser é um módulo muito empregado em projetos de sites de filmes. Tem muitas utilidades, acredite.

CÁLCULO DA ÁREA DE UM TRIÂNGULO - LINGUAGEM C

Escreva um programa para calcular a área de um triângulo, sendo dados a sua base e a  sua altura. A = (B*H)/2 Solução #include <stdio.h> int main() {   // Variáveis  float area,base,altura;  // Entrada de Dados  printf( "\n Informe a base do triângulo: " );  scanf( "%f" ,&base);  printf( "\n Informe a altura do triângulo: " );  scanf( "%f" ,&altura);   // Processamento dos dados  area=(base*altura)/2;  // Exibição do resultado  printf( "\n Area do triângulo=%.1f\n" ,area);   return 0; }