Mysql Curso 2
Mysql Curso 2
Mysql Curso 2
Exemplo:
SHOW DATABASES;
COMANDO USE:
O comando USE instruiu o SGBDR a utilizar o banco de dados especificado para rodar os
comandos.
SINTAXE:
USE nome_banco_de_dados;
Para visualizar o banco de dados selecionado no momento:
SELECT DATABASE();
que no existe.
SQL CONSTRAINTS(RESTRIES)
NOT NULL
- Deste modo, no possvel inserir um registro(Ou atualizar) sem entrar com um valor neste
campo.
UNIQUE
- A restrio UNIQUE identifica de forma nica de cada registro em uma tabela de um banco
de dados.
- Uma constraint PRIMARY KEY automaticamente possui uma restrio UNIQUE definida.
- Voc pode ter vrias constraints UNIQUE em uma tabela, mas apenas uma chave Primria
por tabela.
PRIMARY KEY
- A PRIMARY KEY identificar de forma nica cada registro em uma tabela de banco de dados.
- Cada tabela deve ter uma chave primaria e apenas uma chave primria.
FOREIGN KEY
Uma FOREIGN KEY (Chave estrangeira) em uma tabela um campo que aponta para uma
chave primria em outra tabela.
REFERENCES tbl_autores(ID_Autor)
DEFAULT
- O valor padro ser adicionado a todos os novos registros, caso nenhum outro valor seja
especificado.
AULA 2 CRIAO DE TABELAS CREATE TABLES
Para criar tabelas, usamos o comando CREATE TABLES;
CRIAR TABELAS:
Primeiro certifique-se de que est utilizando o banco de dados correto para isso use o
comando:
CRIANDO TABELAS:
[IF NOT EXISTS] UMA CLUSULA OPCIONAL PARA EVITAR CRIAR TABELAS COM O MESMO
NOME EM UM BANCO DE DADOS, A UTILIAZO OPCIONAL.
SINTAXE:
);
Nome_Autor VARCHAR(50),
Sobrenome_Autor VARCHAR(60)
);
);
- O auto incremento permite que um nmero nico seja gerado quando um novo registro
inserido em uma tabela.
AUTO_INCREMENT = 100;
- S permitido usar uma coluna de auto incremento por tabela, geralmente do tipo inteiro.
SELECIONANDO A TABELA:
Podemos verificar o valor de incremento mais atual armazenado em uma tabela no banco de
dados com o comando a seguir:
SELECT MAX(nome_da_coluna_com_auto_increment)
FROM tbl_tabela;
EXEMPLO:
SELECT MAX(ID_Livro)
FROM tbl_Livro;
Para alterar o valor de incremento do prximo registro a ser armazenado em uma tabela, use o
comando a seguir:
ALTER TABLE tabela AUTO_INCREMENT =valor;
AUTO_INCREMENT =90;
EXEMPLO:
EXEMPLO PRTICO:
DROP PRIMARY KEY; //Nesse caso no precisa especificar o campo da chave primaria dessa
tabela//
ADICIONAR COLUNAS:
Exemplo:
RELACIONAMENTO:
EXEMPLO:
OBERVAO:
Exemplo:
USE db_Biblioteca;
SELECT*FROM tbl_autores;
EXEMPLO:
ESPECIFICANDO COLUNAS:
EXEMPLO:
SELECT*FROM tbl_Livro
ASC = CRESCENTE
DESC = DECRESCENTE
SELECT*FROM tbl_Livro
ORDER BY coluna_a_ordenar;
Exemplo:
(Ordem crescente)
(Ordem decrescente)
SINTAXE
EXEMPLO:
- O operador OR mostra um registro se pelo menos uma das condies for verdadeira.
SINTAXE:
EXEMPLO:
OBSERVAO:
TRUNCATE TABLE
- Remove todas as linhas de uma tabela sem registrar as excluses de linhas individuais.
SINTAXE:
EXEMPLO:
FROM tbl_Livro;
SINTAXE:
funo(ALL | DISCTINCT expresso)
FUNES DE AGREGAO
EXEMPLO:
ATUALIZAR REGISROS
EXEMPLO:
RENAME TABLE Cliente TO Meus_Clientes;
OBSERVAO:
Caso no seja usada a clusula WHERE para filtrar os registros, todos os dados da coluna sero
alterados.
Apenas linhas cujo ID_Livro for igual a 101 tero o valor alterado
UPDATE tbl_autores
SELECT*FROM tbl_autores;
AULA 15 SELEO DE INTERVALOS EM CONSULTAS
SELECT*FROM tbl_Livro
20110517;
FROM tbl_Livro
(Metacaracteres)
USANDO O LIKE
SELECT*FROM Livro
SELECT*FROM Livro
Retornando o valor apenas para livros que possuem a segunda letra como I
SELECT Nome_Livro
FROM Livro
([^a-h];[^aeiou])
^ -- Incio da string
$ -- Fim da string
A |a|c Alterao (a ou b ou c)
METACARACTERES:
SO OS SEGUINTES:
\.*+-{}[]^|():!=
Caractere nico:
Listas de caracteres escritas dentro de colchetes [], servem para corresponder apenas um dos
caracteres listados.
Palavras com essas duas letras individualmente. Ou de [A-Z] de A at Z pois o trao tambm
um metacaractere, localizando tudo o que de A at Z maisculo [A Za z] e assim por diante.
Expresses POSIX:
Equivale a a zA-Z
Ou [[:upper:]] A-Z
[[:lower:]] a - z
[[:digit:]] 0 - 9
[[:alnum:]] 0 -9 zA Z
[[:space:]] espaos
m[^ae]u vai colocar letras que no comecei nem com A e nem com E
[.] OU [\.]
Metacaracteres ncoras
Incio de linha ^
Final de linha: $
Laranjas* Precendente que possua uma letra S 0 ou mais vezes do caractere anterior no
nosso caso a letra S
METACARACTERE \w
EXEMPLOS:
Contato.pablo7@gmail.com
Ou \w+@\w+\.com\.br
EXEMPLO:
R{2} A letra R ser repetida duas vezes em um texto , encontrando o caractere que possui
essas duas letras RR
EXEMPLO:
\w{3}\s
METACARACTERE \S
EXEMPLO:
\s\w{3,5}\s
METACARACTERE: ()
EXEMPLO:
METACARACTERE: ||
EXEMPLO:
casa(do|da) vai encontrar no texto as duas palavras casado e casada sendo os caracteres
do ou da
CRIAR UM PADRO
DEFAULT valor_padrao;
APLICANDO PADRES:
EXEMPLO:
DEFAULT da Silva;
VALUES(6,Joo);
VERIFICANDO O RESULTADO
SELECT*FROM tbl_autores;
EXEMPLOS:
DEFAULT
SELECT*FROM tbl_autores;
*/
Voc pode abrir o arquivo resultante com algum editor de textos no terminal para ver se
contedo.
Feche o MySQL Worbench, abra-o novamente, ao abrir o banco de dados criado, o backup
estar nele.
SINTAXE BSICA:
FROM tabela
GROUP BY colunas
Nome_Vendedor VARCHAR(20),
Quantidade INT,
Produto VARCHAR(20),
Cidade VARCHAR(20)
);
VALUE(10,Jorge,1400,Mouse,So Paulo);
VALUE(12,Tatiana,1220,Teclado,So Paulo);
VALUE(14,Ana,1700,Teclado,Rio de Janeiro);
VALUE(15,Rita,2120,WebCam,Recife);
VALUE(18,Marco,980,Mouse,So Paulo);
VALUE(19,Carla,1120,WebCam,Recife);
VALUE(22,Roberto,3145,Mouse,So Paulo);
--CONSULTA usando agregao para obter total de vendas de Mouse:
FROM Vendas
FROM Vendas
GROUP BY Cidade;
SINTAXE:
FROM tabela
WHERE filtro
GROUP BY colunas
HAVING filtro_agrupamento;
HAVING EXEMPLO 01
--CONSULTA retornando total de vendas das cidades com menos de 2500 produtos vendidos:
SELECT Cidade, SUM(Quantidade) AS Total
FROM Vendas
GROUP BY Cidade
HAVING SUM(Quantidade)<2500;
OU
UTILIZANDO O AS
FROM Vendas
GROUP BY Cidade
HAVING SUM(Total)<2500;
--CONSULTA retornando total de vendas do produto Teclado das cidades com menos de 1500
teclados vendidos:
FROM Vendas
GROUP BY Cidade
- Contem linhas e colunas como uma tabela real, e pode receber comandos como declaraes
JOIN, WHERE e funes como uma tabela normal.
- Mostra sempre resultados de dados atualizados, pois o motor do banco de dados recria os
dados toda vez que um usurio consulta a viso View.
AS SELECT colunas
FROM tabela
WHERE condies;
EXEMPLO:
tbl_autores.Nome_Autor AS Autor
FROM tbl_Livro
ON Livro.ID_Autor = tbl_autores.ID_Autor;
tbl_autores.Nome_Autor AS Autor,
Preco_Livro AS Valor
FROM tbl_Livro
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor;
FROM vw_LivroAutores
ORDER BY Autor;
SELECT*
FROM vw_LivroaAutore
ORDER BY Valor;
/*EXCLUINDO A VIEW*/
A clusula JOIN usada para combinar dados provenientes de duas ou mais tabelas, baseado
em um relacionamento entre colunas destas tabelas.
JOINS CATEGORIAS
INNER JOIN: Retorna linhas quando houver pelo menos uma correspondncia em ambas as
tabelas.
OUTER JOIN: Retorna linhas mesmo quando no houver pelo menos uma correspondncia em
uma das tabelas(ou ambas). OU OUTER JOIN divide-se em LEFT JOIN, RIGHT JOIN e FULL JOIN.
INNER JOIN
SELECT colunas
FROM tabela1
ON tabela1.coluna=tabela2.coluna;
EXEMPLO:
SELECT*FROM tbl_Livro
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor;
OUTROS EXEMPLOS:
FROM tbl_Livro
ON tbl_Livro.ID_Autor = tbl_autores.ID_Autor;
AS Editoras
FROM tbl_Livro AS L
ON L.ID_Editora = E.ID_Editora
FROM tbl_Livro AS L
ON L.ID_Editora = A.ID_Autor
ON L.ID_editora = E.ID_Editora;
RIGHT JOIN: Retorna todas as linhas da tabela direita, mesmo se no houver nenhuma
correspondncia na tabela esquerda.
FULL JOIN: Retorna linhas quando houver uma correspondncia em qualquer uma das
tabelas. uma combinao de LEFT E RIGHT JOINS.
LEFT JOIN
SELECT coluna
FROM tabela_esq
ON tabela_esq.coluna=tabela_dir.coluna;
EXEMPLO:
SELECT*FROM tbl_autores
ON tbl_Livro.ID_Autor =tbl_autores.ID_Autor;
LEFT JOIN
SELECT coluna
FROM tbl_esq
ON tabela_esq.coluna = tabela_dir.coluna
EXEMPLO:
SELECT*FROM tbl_Autores
ON tbl_Livro.ID_Autor = tbl_Autores.ID_Autor
SELECT*FROM tbl_Livro
ON tbl_Livro.ID_Editora = tbl_Editoas.ID_Editora
SINTAXE:
EXEMPLO:
FROM tbl_Livro
Item VARCHAR(20),
Note que no ltimo registro, a ltima coluna que a (Quantidade) o valor est descrito como
NULL ou seja o valor desse coluna tem como resultado o registro NULO. Nulo diferente de
zero, apenas um valor nulo.
FROM Teste_nulos
Porm o valor retornado ser nulo, como tratar o valor nulo neste caso ento?
Funo IFNULL. Essa funo tem como objetivo substituir o valor nulo, analisa uma nica
informao, sendo ela nula, a substituio realizada.
Caso voc tenha diversos valores nulos para efetuar essa concatenao a utilizao de outra
funo deve ser usada, pois como descrito acima a funo IFNULL tem o objetivo de substituir
apenas uma nica informao com o valor nulo, a funo para estabelecer um ponto de
equilbrio na concatenao entre diversas informaes nulas a funo COALESCE. Faz a
anlise de valores nulos e retorna a substituio pelo valor.
SINTAXE:
SELECT CONCAT('A quantidade adquirida ',' ', COALESCE(NULL, Quantidade, NULL, 0)) AS
QUANTIDADE
FROM Teste_Nulos
Nesse caso colocamos dois valores como NULL no inicio e fim do comando acima
(NULL, Quantidade, NULL, 0)) Porm a funo COALESCE vai ignorar os dois valores nulos e
buscar o zero que o valor substitutivo.
EXEMPLOS:
FROM tbl_Autores;
FROM tbl_Livro
WHERE ID_Autor = 2;
FROM Teste_nulos
possvel realizar operaes matemticas simples nos valores de uma coluna e retornar
resultados em uma coluna calculada.
+ SOMA
- SUBTRAO
/DIVISO
*MULTIPLICAO
EXEMPLOS:
SELECT 3*9;
FROM tbl_Livro;
FROM tbl_Livro;
DIZIMA PERIODICA
SELECT 10/3;
SELECT 10 MOD 3;
FUNES MATEMTICAS:
possvel utilizar funes matemticas nos valores de uma coluna e retornar resultados em
uma coluna calculada.
EXEMPLOS:
FROM tbl_Livro;
SELECT PI();
SELECT POW(2,4);
SELECT SQRT(81);
SELECT SIN(PI());
SELECT HEX(1200);
So dois tipos de rotinas armazenadas, parte d especificao SQL. So um pouco similares, mas
com aplicaes diferentes. So invocadas de formas diferentes tambm (CALL x declarao).
Uma funo usada para gerar um valor que pode ser usada em uma expresso.
SINTAXE:
RETURNS tipo_dados
Cdigo_da_funo;
SELECT nome_funo(parmetros);
EXEMPLOS:
CRIANDO FUNO
RETURNS INT
RETURN a*b;
INOVOCANDO A FUNO:
FROM tbl_Livro
Stored Procedures
SINTAXE:
Criao do procedimento:
Declaraes;
Invocando o procedimento:
CALL nome_procedimenrto(parmetros);
EXEMPLO:
CRIANDO A PROCEDURE
FROM tbl_Livro
DELETAR A PROCEDURE.
So Continers usados para delimitar blocos de comandos a serem executados pela funo
ou stored procedure.
EXEMPLO:
DELIMITER $$
BEGIN
END$$
DELIMITER;
INVOCANDO A FUNO
DELIMITER //
FROM tbl_Livro
END//
DELIMITER ;
INVOCANDO A PROCEDURE
CALL verPreco(3);
IN
OUT
INOUT
PARMETRO IN
o modo padro. Quando voc define um parmetro IN em um SP, o programa chamador tem
de passar um argumento ao procedimento armazenado.
Essa passagem de parmetros do tipo da passagem por valor, portanto o valor do parmetro
fora do procedimento armazenado permanece inalterado. So semelhantes aos parmetros de
funes.
PARMETRO OUT
O valor de um parmetro OUT pode ser alterado dentro do procedimento armazenado e seu
novo valor passado de volta ao programa chamador.
O procedimento armazenado no pode acessar o valor inicial do parmetro OUT quando ele
iniciado, e a varivel passada limpa.
Procedimentos OUT so similares aos procedimentos INOUT, com uma diferena significativa:
No parmetro OUT, o valor passado como parmetro, ajustado para NULL no incio da
execuo do procesimento.
PARMETRO INOUT
Trata-se de uma combinao dos parmetros IN e OUT. Isso significa que o programa
chamado deve passar o argumento e o procedimento armazenado pode modificar o
parmetro INOUT e repassar o novo valor de volta ao programa chamador. Portanto, uma
referncia varivel externa passada ao procedimento.
SINTAXE DE UM PARMETRO
EXEMPLO 1 IN:
DELIMITER //
BEGIN
FROM tbl_Livro AS L
ON L.ID_Editora = E.ID_Editora
END//
INVOCANDO O PROCEDIMENTO
CALL editora_Livro('Wiley');
Logo aps isso podemos chamar o procedimento com o commando CALL o nome do
procedimento e entre os parnteses o nome da editora podemos passar como parmetro, pois
seu valor j estar contido nela, que no caso o nome wiley, na qual passamos acima com o
comando SET.
CONCLUSO:
Podemos fazer das duas formas, ou chamando a procedure com co comando CALL o nome da
procedure seguida do valor dela como parmetro, ou criar uma varival com o comando SET e
logo aps quando o procedimento for chamado pelo comando CALL informar o nome do
procedimento e passar essa varivel contendo o valor como argumento, o valor do argumento
editora substitudo pelo valor miley ou pela varivel que armazena este valor se for o caso,
com os dois mtodos de realizar a operao poder ser feito.
SOLUO 1
CALL editora_livro(wiley);
SOLUO 2
CALL editora_livro(@minhaeditora);
EXEMPLO 2 IN:
DELIMITER //
BEGIN
UPDATE tbl_livro
END//
DELIMITER ;
DELIMITER//
BEGIN
SELECT Nome_Livro
FROM tbl_Livro
END//
DELIMITER ;
CALL teste_out(3,@livro)
SELECT @livro;
A varivel livro resgata o nome do livro e com o valor resgatado coloca este nome dentro da
varivel livro, o id entra no cdigo e a consulta descobre qual o nome do livro pertencente
este determinado id, colocando o nome do livro na varivel livro e essa um parmetro de
sada, que retornada para fora do procedimento, a varivel entra com o valor nulo, mas sai
com o valor retornando como procedimento(Passagem por referencia). O valor da varivel
livro acaba sendo alterado
INVOCANDO O PROCEDIMENTO
passado como parmetro o nmero 3 que no caso o ID do livro, sendo assim o nome do
livro descoberto atravs deste mesmo ID gravando o nome na varivel @livro, (OBS: Na hora
de passar esta varivel para o procedimento ser invocando usa-se o @). Agora esta varivel
est na memria contendo o nome do livro de ID 3.
CALL teste_out(3,@livro)
SELECT @livro;
EXEMPLO 4 INOUT:
DELIMITER //
BEGIN
END//
DELIMITER ;
SELECT @valorinicial;
SELECT @valorinicial;
CONCLUSO:
SELECT @valorinicial;
SELECT @valorinicial;
O escopo de uma varivel diz respeito aos locais onde a varivel existe ou seja, onde ela
pode ser acessada.
Nveis de escopo:
Global(acessveis de qualquer local)
Ficam disponveis apenas dentro do bloco onde foram criadas, e em blocos que existam dentro
do bloco onde a varivel foi criada.
SINTAXE:
[DEFAULT valor_padro]
A instruo DECLARE deve vir antes de qualquer outra instruo no bloco BEGIN. Podemos
declarar diversas variveis numa mesma instruo DECLARE, desde que sejam todas do mesmo
tipo de dados e valor-padro. Como atribuir valores s variveis: Podemos usar a instruo SET
ou ainda SELECT..INTO
EXEMPLO:
DELIMITER //
BEGIN
END //
DELIMITER ;
/*1 vamos verificar o valor atual do livro atravs de seu ID*/
2CASE..WHEN..THEN..ELSE..END CASE;
...
[ELSE lista_de_declaraes]
END IF;
CASE valor_Referncia
lista_de_declaraes
Lista_de_declaraes
...
ELSE lista_de_declaraes
END CASE;
EXEMPLO COM BLOCO IF
DELIMITER //
BEGIN
ELSE
END IF;
RETURN valor_imposto;
END//
DELIMITER ;
/*
*/
SELECT calc_imposto(6000.00);
DELIMITER //
CASE
ELSE
END CASE;
RETURN valor_imposto;
END//
DELIMITER ;
/*
*/
SELECT calc_imposto_case(4600.00);
Mysql u root p
COMANDO SHOW:
SHOW CREATE TABLE tbl_Livro = Trs o cdigo inteiro na qual foi responsvel pela criao da
estrutura da tabela tbl_Livro.
SHOW CREATE PROCEDURE ver_preco = Trs o cdigo inteiro na qual foi responsvel pela
criao da estrutura da procedure ver_preco.
SHOW CREATE FUNCTION calcula_desconto = Trs o cdigo inteiro na qual foi responsvel
pela criao da estrutura da funo calcula_desconto.
SHOW COLUMNS FROM tbl_Editora; =Trs todas as colunas da tabela tbl_Editoras e suas
demais informaes, null, smallint, varchar e etc.
Ou
SHOW FULL COLUMNS FROM tbl_Editoras = Serve para trazer informaes das colunas de
uma determinada tabela de uma forma mais completa.
FILTRAGEM
SHOW COLUMNS FROM tbl_Livro; LIKE I%; = Trazendo colunas que comeam apenas com a
letra I
SHOW COLUMNS FROM tbl_Livro WHERE type LIKE VARCHAR%; = Trs qualquer VARCHAR
independente do cumprimeto.
COMANDOS DESCRIBES:
Funciona como um atalho para a consulta de colunas, exemplo: SHOW COLUMNS FROM ao
invs de escrever este comando todo usamos apenas o comando DESCRIBES.
SINTAXE:
DESCRIBE tbl_Livro; = Trs as informaes e tipos de dados de uma tabela com suas
respectivas colunas.
OU DESC tbl_Livro;
COMANDO mysqlshow:
mysql u = nome do usurio p para pedir a senha, o nome do banco de dados, o nome da
tabela e o nome da coluna. Porm essas so informaes opcionais depende do que voc
precisa procurar.
password:
- LOOP
- REPET
- WHILE
[<rtulo>:] LOOP
Declaraes
Em nosso exemplo abaixo temos uma varivel passada como parmetro que se chama limite,
essa varivel ser a varivel de entrada na qual o usurio ir entrar com o valor da estrutura de
repetio.
Logo aps isso declaramos uma varivel contador e outra varivel chamada de soma. Ento
vai iniciar nosso Loop criamos um rotulo para ele de loop_teste, onde logo abaixo ser
efetuada a funo deste lao, atribuindo o incremento do valor um para a nossa varivel
contador nossa varivel soma por sua vez recebe o valor da varivel contador na qual j possui
o incremento de +1 e soma com 1. No final da expresso uma estrutura de deciso com o IF
criada para dizer ao programa que a varivel contador precisa ser menor ou igual ao valor de
entrada do usurio, ou seja a varivel de entrada limite, logo aps finalizamos nossa estrutura
de lao condicional, ou seja o LOOP que a estrutura mais interna da operao, fazemos a
sada desse bloco com o comando LEAVE e seu rtulo loop_teste , ento finalizamos o nosso
bloco condicional de deciso tambm junto com ele. Depois s chamar a procedure com o
comando CALL e o nome da procedure = nome do procedimento armazenado. Porm ao
testar o procedimento com o valor 0 no final apresentado 1 como resultado, o que resulta
em um erro.
EXEMPLO:
DELIMITER //
BEGIN
loop_teste: LOOP
LEAVE loop_teste;
END IF;
SELECT soma;
END//
DELIMITER ;
/*TESTANDO*/
CALL acumulador(0);
[<rtulo>:] REPEAT
Declaraes
UNITIL condies
EXEMPLO:
DELIMITER //
BEGIN
REPEAT
SET contador = contador+1;
END REPEAT;
SELECT soma;
END//
DELIMITER ;
CALL acumula_repita(10);
Neste segundo caso fazemos a validao do zero pela estrutura de deciso primeiro, ou seja
assim o erro ser reportado se o valor for menor que 1, no caso zero.
DELIMITER //
main:BEGIN
LEAVE main;
END IF;
REPEAT
END REPEAT;
SELECT soma;
END//
DELIMITER ;
CALL acumula_repita(10);
Declaraes
O comando WHILE DO faz com que o valor seja executado uma nica vez independente de ser
verdadeiro ou falso ele ir sair do loop em sua condio. O teste ser executado antes das
condies, assim o valor ser menor que limite ou no, ou seja se o valor for declarado como
limite o retorno zero e retorna falso.
EXEMPLO:
DELIMITER //
BEGIN
END WHILE;
SELECT soma;
END//
DELIMITER ;
/*TESTANDO*/
CALL acumula_while(10);
CALL acumula_while(0);
EXEMPLO:
BEGIN
teste: LOOP
ITERATE teste;
END IF;
LEAVE teste;
SELECT soma
END//
DELIMITER ;
/*TESTANDO*/
CALL acumula_iterate(10);
EXEMPLO 2:
Criando uma procedure de nome pares e criando um rtulo para o bloco BEGIN, que identifica
todo o corpo do procedimento, declaramos a varivel contador inicializada com o valor padro
0, e tambm declaramos um loop WHILE com um rtulo meuloop, informando que o contador
deve ser menor que limite que a varivel de parmetro passada na procedure como uma
varivel de entrada, em seguida configuramos a varivel contador para ser incrementada, logo
aps criamos uma estrutura de teste condicional que pega a funo aritmtica MOD, sendo o
resto da diviso, em cima da varivel contador dividindo o valor de contador por 2, ou seja
Pegue o contedo da varivel contador, divida por 2 e me traga o resto da diviso.
Resultados possvel 0 e 1, valor lgico, sendo 0 igual a falso e 1 igual a verdadeiro. isso que o
nosso IF ir fazer. Os comandos so executados fora do bloco, caso seja diferente de par, ou
seja impar, ento o comando ITERATE executado e o loop finalizado END IF,caaso seja um
nmero par o procedimento vai fazer toda a operao acima e fazer uma concatenao com a
string um nmero par e armazenar este valor na varivel contador, assim o loop while
finalizado. Logo Aps isso s chamar o procedimento para testar.
DELIMITER //
main: BEGIN
IF MOD(contador, 2)THEN
ITERATE meuloop;
END IF;
END WHILE;
END//
DELIMITER ;
CALL pares(20);
AULA 38 TRIGGERS DEFINIO, SINTAXE E CRIAO
Triggers
GATILHO
Usos do Trigger:
ON tabela
Declaraes
EXEMPLO:
PRIMEIRO CRIAREMOS UMA TABELA PARA PODER SIMULAR O USO DE UMA TRIGGER
PRIMARY KEY(ID_Produto));
CRIANDO A TRIGGER
ON Produto
SELECT*FROM Produto;
o calculo do preo com desconto antes com o comando BEFORE, quando o usurio
a Trigger pega um novo preo normal que est sendo inserido multiplicado por 0,99 criando
um novo valor