05/05/2017 Stored Procedures e Functions no MySQL com PhpMyAdmin
|
|
|
- Juan de Oliveira Prada
- 7 Há anos
- Visualizações:
Transcrição
1 [versão para impressão] Link original: Stored Procedures e Functions no MyS QL com PhpMyAdmin Veja neste artigo como utilizar Stored Procedures e Functions no MySQL usando PhpMyAdmin Neste artigo veremos como criar e utilizar Procedimentos e Funções no MySQL com auxílio da ferramenta PhpMyAdmin. Antes de começarmos a criação destas rotinas armazenadas precisamos entender o que são Procedimentos (Procedures) e Funções (Functions) no MySql e porque optamos por usar o PhpMyAdmin. Procedures e Functions são rotinas armazenadas no banco de dados que executam um conjunto definido de passos sequenciais. O conceito é análogo a criação de um método em uma linguagem de programação, onde você pode chamar este método diversas vezes sem necessidade de reescrever código. Vamos pensar na real necessidade de tais recursos disponíveis em um Sistema Gerenciador de Banco de Dados, em específico no MySQL. Imagine a seguinte situação: Por algum motivo um determinado registro pode ser inserido de forma errada no banco de dados, por erro de digitação do usuário que está operando um Sistema X. Você não tem acesso ao código fonte do sistema e não tem como tratar esse erro na sua fonte e evitar com que ele ocorra, mas você tem total domínio sobre o banco de dados. Sabendo que este erro ocorre com frequência e você precisa realizar um procedimento de limpeza pelo menos uma vez por semana, o mais fácil será você criar uma rotina que realiza essa limpeza. Vejamos a solução errada na Listagem 1. Listagem 1. Solução errada UPDATE tabela_x SET registro_1 = (registro_1 + 3) WHERE registro_2 > 10; DELETE FROM tabela_x WHERE registro_1 < 5; UPDATE tabela_y SET registro_1 = (SELECT MAX(registro_1) FROM tabela_x); 1/12
2 A Listagem 1 demonstra uma solução genérica e errada para um problema qualquer. Suponha que seja o problema de registro errado que apresentamos logo acima. Toda vez que for necessário fazer a limpeza, o DBA (Database Administrator) deverá executar todos esses comandos (imagine se ele esquecer de algum desses, a consequência pode ser catastrófica). No momento pode parecer fácil, mas lembre se que isto é apenas um exemplo e na vida real este tipo de correções podem requerer 100, 200 ou mais linhas dependendo da complexidade de tal correção. Pensando em termos de rotinas poderíamos fazer como no código da Listagem 2. Listagem 2. Usando rotina genérica para solucionar a Listagem 1 rotina_1 { UPDATE tabela_x SET registro_1 = (registro_1 + 3) WHERE registro_2 > 10; DELETE FROM tabela_x WHERE registro_1 < 5; UPDATE tabela_y SET registro_1 = (SELECT MAX(registro_1) FROM tabela_x); } Executando a rotina_1 CALL rotina_1; É óbvio que a Listagem 2 é apenas um exemplo sem muitos detalhes técnicos e de sintaxe da linguagem, mas vale para mostrar que encapsulamos todos os códigos da Listagem 1 na nossa rotina_1 apresentada na Listagem 2. Agora o DBA apenas precisará chamar a rotina_1 sempre que precisar realizar aquela tal limpeza, ou melhor, como já está tudo pronto, outra pessoa, que não seja o DBA, também poderá executar a rotina_1 tendo certeza que tudo será feito como previsto. Voltando ao nosso assunto principal, qual a real diferença entre Procedures e Functions? Procedimentos só podem ser chamamos usando a palavra reservada CALL e não retornam nada, enquanto Funções podem ser chamadas dentro de um SELECT, por exemplo, e podem retornar um valor. Vamos ver nas próximas seções mais detalhes. Stored Procedures Primeiro vamos ver um procedimento bem simples e explicar o mesmo com detalhes para só então vermos outros mais complexos. Acompanhe a Listagem 3. Listagem 3. Exemplo Simples de Procedure #Criando Procedure DELIMITER $ CREATE PROCEDURE proc() BEGIN SELECT "hello from proc"; END $ #Chamando a Procedure CALL proc(); #Resultado hello from proc 2/12
3 A palavra chave DELIMITER define um caractere delimitador que é responsável por dizer onde começa e onde termina a nossa função. Em nosso caso definimos o $$ como delimitador, mas poderia ser um outro caractere de sua escolha. Depois temos a assinatura da nossa função em CREATE PROCEDURE proc() que, em nosso caso, não tem nenhum parâmetro e é bem simples. Os delimitadores do corpo da nossa rotina são o BEGIN e o END e dentro destes colocaremos o que nossa rotina deve fazer. Em nosso caso, ela apenas emite uma mensagem hello from proc. No segundo bloco temos a chamada ao procedimento com o CALL proc();, fazendo assim com que o SGBD execute a função que criamos anteriormente resultando na mensagem hello from proc. Functions Acompanhe um exemplo de function na Listagem 4. Listagem 4. Exemplo Simples de Function #Criando FUNCTION DELIMITER $ CREATE FUNCTION func() RETURNS CHAR(100) BEGIN RETURN "hello from func"; END $ #Chamando func() SELECT func(); Assim como na Listagem 3,ainda usamos o DELIMITER com o mesmo objetivo, porém, agora mudamos a palavra chave de PROCEDURE para FUNCTION e adicionamos RETURNS CHAR(100), ou seja, nossa função deverá retornar um CHAR com tamanho máximo de 100 caracteres. Em geral, tanto a rotina da Listagem 3 quanto da Listagem 4 possuem o mesmo objetivo: mostrar no console uma frase qualquer. Porém na função temos a vantagem de poder utilizá la dentro de um SELECT, como mostrado na Listagem 4. Caso Real com PhpMyAdmin -Criando nosso Banco de Dados Para todos os exemplos mostrados, daqui em diante usaremos a ferramenta PhpMyAdmin que geralmente pode ser acessada através do endereço Mas nada impede que você use outra ferramenta ou até mesmo o próprio terminal do MySQL, fique a vontade. Nosso Cenário: Para ilustrar um exemplo real trabalharemos com a necessidade de criar um banco de dados para armazenar o cadastro e notas dos alunos de uma escola chamada ABC. O banco de dados terá que prover um Cadastro de Provas, Alunos e Notas. Cada Aluno pode ter nenhuma ou várias notas e uma nota só pode ser de uma prova, ou seja, o Aluno João tem a nota 8.0 na prova 0010 que foi realizada em 20/06/ /12
4 Primeiramente vamos criar nossa modelagem para posteriormente iniciar a criação dos scripts necessários para definição e população do nosso banco de dados. Observe a Figura 1. Figura 1. Modelagem do Banco Dada a modelagem acima, podemos criar nosso banco de dados. No PhpMyAdmin, logo que você o acessa, clique na aba SQL e você terá um console para digitar os comandos que necessitar. Crie o banco de dados como na Listagem 5 através deste console e não se esqueça de clicar em executar para que o comando tenha efeito, conforme ilustra a Figura 2. Listagem 5. Criando Banco de dados CREATE DATABASE escola_abc CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci' Figura 2. Console para Criação do Banco de dados no PhpMyAdmin Criado nosso banco de dados vamos as definições da sua estrutura. Antes de digitar os comandos da Listagem 6, certifique se que o banco de dados escola_abc está selecionado. No Topo do PhpMyAdmin você deverá ver algo como: localhost escola_abc. Se estiver escrito apenas localhost significa que o banco de dados não foi selecionado. Com o banco de dados selecionado corretamente, selecione novamente a aba SQL, pois agora executaremos comandos dentro do banco escola_abc, apenas (Figura 3). Listagem 6. Criação da Estrutura DDL Table aluno CREATE TABLE IF NOT EXISTS aluno ( 4/12
5 id INT NOT NULL, nome VARCHAR(100) NOT NULL, matricula VARCHAR(45) NOT NULL, data_nascimento DATE NULL, data_matricula DATE NOT NULL, PRIMARY KEY ( id ), UNIQUE INDEX matricula_unique ( matricula ASC) ) ENGINE = InnoDB; Table prova CREATE TABLE IF NOT EXISTS prova ( id INT NOT NULL, data_realizacao DATE NOT NULL, descricao VARCHAR(255) NOT NULL, PRIMARY KEY ( id ) ) ENGINE = InnoDB; Table nota CREATE TABLE IF NOT EXISTS nota ( aluno_id INT NOT NULL, prova_id INT NOT NULL, valor_nota DECIMAL(15,2) NULL, PRIMARY KEY ( aluno_id, prova_id ), INDEX fk_aluno_has_prova_prova1 ( prova_id ASC), INDEX fk_aluno_has_prova_aluno1 ( aluno_id ASC), CONSTRAINT fk_aluno_has_prova_aluno1 FOREIGN KEY ( aluno_id ) REFERENCES aluno ( id ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_aluno_has_prova_prova1 FOREIGN KEY ( prova_id ) REFERENCES prova ( id ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; 5/12
6 Figura 3. Console SQL com banco de dados escola_abc selecionado Para finalizar a estruturação do nosso banco e finalmente iniciar a criação das nossas rotinas, precisamos popular o banco de dados com alguns dados (Listagem 7), utilizando a mesma aba SQL com o banco de dados selecionado, e não esquecendo de clicar em executar para que o comando tenha efeito. Listagem 7. Populando o banco de dados INSERINDO ALUNOS INSERT INTO aluno (id, nome, matricula, data_nascimento, data_matricula) VALUES (1,'MICHAEL JONH', '123A', STR_TO_DATE('23/08/1993', '%d/%m/%y'), CURRENT_DATE()), (2,'WILLIANS JUNIOR', '400B', STR_TO_DATE('10/04/1993', '%d/%m/%y'), CURRENT_DATE()), (3,'JOHN BILLBOARD', '420B', STR_TO_DATE('30/07/1993', '%d/%m/%y'), CURRENT_DATE()), (4,'JENNY KILLY', '010A', NULL, STR_TO_DATE('25/01/2014', '%d/%m/%y')) INSERINDO PROVAS INSERT INTO prova(id, data_realizacao, descricao) VALUES (1, STR_TO_DATE('30/03/2014', '%d/%m/%y'), 'Prova A1'), (2, STR_TO_DATE('30/04/2014', '%d/%m/%y'), 'Prova B1'), (3, STR_TO_DATE('30/05/2014', '%d/%m/%y'), 'Prova C1'), (4, STR_TO_DATE('30/07/2014', '%d/%m/%y'), 'Prova A2'), (5, STR_TO_DATE('30/08/2014', '%d/%m/%y'), 'Prova B2'), (6, STR_TO_DATE('30/09/2014', '%d/%m/%y'), 'Prova C2') INSERT INTO nota (aluno_id, prova_id, valor_nota) VALUES #ALUNO 1 (1, 1, 10), (1, 2, 9.8), (1, 3, 8), (1, 4, 10), (1, 5, 10), (1, 6, 9), #ALUNO 2 (2, 1, 7), 6/12
7 (2, 2, 7.5), (2, 3, 6), (2, 4, 8), (2, 5, 8.5), (2, 6, 9), #ALUNO 3 (3, 1, 9), (3, 2, 9), (3, 3, 9), (3, 4, 10), (3, 5, 10), (3, 6, 9.8), #ALUNO 4 (4, 1, 3), (4, 2, 6), (4, 3, 7), (4, 4, 8), (4, 5, 7), (4, 6, 7) De nindo nossas rotinas Baseado na nossa estrutura criada cima e os dados que foram populados, nós iremos definir algumas funções que ajudarão você a entender melhor o funcionamento na prática de funções e procedimentos no MySQL. A criação de funções e procedimentos no PhpMyAdmin pode ser feita no mesmo console que usamos para população dos dados na Listagem 7, ou seja, você deve estar com o banco de dados escola_abc selecionado e clicar na aba SQL (apenas relembrando o processo). Função para mostrar nota baseada em peso Suponha que a nota da prova de um determinado aluno deva ser calculada por um fator P (chamado de peso) para só então definir a nota final de determinada prova, sendo assim, criaremos uma função que receba como parâmetro a nota e retorne o valor calculado da nota. Observe a Listagem 8. Listagem 8. calcula_nota() DELIMITER $ CREATE FUNCTION calc_nota(nota NUMERIC(15,2)) RETURNS NUMERIC(15,2) BEGIN DECLARE peso INT; #Se a nota do aluno for maior que 9.5 então sua nota terá um peso maior IF nota > 9.5 THEN SET peso = 2; ELSE SET peso = 1; END IF; RETURN (nota*peso) / 20; END 7/12
8 array7 nbsp; Temos acima um script que recalcula a nota de um aluno baseado em um peso que pode ter o valor de 1 ou 2. Vamos ver na Listagem 9 como utilizá lo. Listagem 9. Usando o calcula_nota() SELECT a.nome, p.descricao, calcula_nota(n.valor_nota) AS nota_calculada, n.valor_nota AS nota_original FROM aluno a INNER JOIN nota n ON a.id = n.aluno_id INNER JOIN prova p ON n.prova_id = p.id ORDER BY a.id, nota_calculada DESC No SELECT acima nós listamos todos os alunos com suas notas calculadas e as notas originais, ordenando o mesmo por id e valor da nota calculada. Vamos usar a mesma função para ordenar agora por nota média maior, ou seja, a soma de todas as notas calculadas. Observe a Listagem 10. Listagem 10. Nota calculada média SELECT a.nome, (SUM(calcula_nota(n.valor_nota))/6) AS nota_calculada_media FROM aluno a INNER JOIN nota n ON a.id = n.aluno_id INNER JOIN prova p ON n.prova_id = p.id GROUP BY a.nome ORDER BY nota_calculada_media DESC; Procedimento para arredondar nota de alunos Vimos acima como usar uma função no MySQL e agora veremos como usar um procedimento. Iremos criar um procedimento que irá varrer todas as notas dos alunos e depois arredondar para mais ou para menos conforme necessidade. Nosso critério de arredondamento será o seguinte: caso a diferença entre a nota e o próximo inteiro seja menor ou igual a 0.2, então arredondamos para este. Caso contrário, a nota continuará intacta. Observe o código da Listagem 11. Listagem 11. arredonda_nota() DELIMITER $ CREATE PROCEDURE arredondamento_nota() BEGIN #O DECLARE serve para declarar uma variável que será utilizada durante o programa DECLARE nota_atual NUMERIC(15,2); DECLARE id_aluno, id_prova INT; #Criamos um CURSOR que irá guardar o resultado do SELECT DECLARE cur CURSOR FOR SELECT valor_nota, aluno_id, prova_id FROM nota; #Abrimos o CURSOR para utilizá lo dentro do LOOP OPEN cur; #Inicamos o LOOP dando um nome ao mesmo para que este possa ser referenciado caso #necessário myloop: 8/12
9 LOOP #Atribuímos o valor das colunas do cursor as variáveis que criamos anteriormente FETCH cur INTO nota_atual, id_aluno, id_prova; #Lógica principal da nossa rotina. #Caso o próximo inteiro tenha um diferença de 0.2 ou menos da nota atual # então a nota atual será arredondada para este inteiro. IF (CEIL(nota_atual) nota_atual) <= 0.2 THEN UPDATE nota SET valor_nota = CEIL(nota_atual) WHERE aluno_id = id_aluno AND prova_id = id_prova; END IF; END LOOP; END #Fechamos o cursor CLOSE cur; array10 nbsp; No script acima realizamos toda a tarefa necessária sem necessidade de nenhum retorno, por isso, optamos por usar um Procedimento em vez de uma função. Para utilizá lo, basta executar da mesma forma que a apresentada na Listagem 12. Listagem 12. Executando o procedimento arredonda_nota() CALL arredondamento_nota(); Você também pode excluir tanto o procedimento como a função usando os seguintes comandos da Listagem 13. Listagem 13. Excluindo procedimentos e funções #EXCLUINDO FUNÇÃO calcula_nota DROP FUNCTION calcula_nota; #EXCLUINDO PROCEDIMENTO arredonda_nota DROP PROCEDURE arredonda_nota; Finalizando nosso artigo na Listagem 14 temos a lista do script completo que pode ser executado a fim de criar toda estrutura, população, funções e procedimentos mostrados durante todo o artigo. Listagem 14. Script final #Criação da Base CREATE DATABASE escola_abc CHARACTER SET = 'utf8' COLLATE = 'utf8_general_ci' #Criação das tabelas Table aluno CREATE TABLE IF NOT EXISTS aluno ( id INT NOT NULL, 9/12
10 nome VARCHAR(100) NOT NULL, matricula VARCHAR(45) NOT NULL, data_nascimento DATE NULL, data_matricula DATE NOT NULL, PRIMARY KEY ( id ), UNIQUE INDEX matricula_unique ( matricula ASC) ) ENGINE = InnoDB; Table prova CREATE TABLE IF NOT EXISTS prova ( id INT NOT NULL, data_realizacao DATE NOT NULL, descricao VARCHAR(255) NOT NULL, PRIMARY KEY ( id ) ) ENGINE = InnoDB; Table nota CREATE TABLE IF NOT EXISTS nota ( aluno_id INT NOT NULL, prova_id INT NOT NULL, valor_nota DECIMAL(15,2) NULL, PRIMARY KEY ( aluno_id, prova_id ), INDEX fk_aluno_has_prova_prova1 ( prova_id ASC), INDEX fk_aluno_has_prova_aluno1 ( aluno_id ASC), CONSTRAINT fk_aluno_has_prova_aluno1 FOREIGN KEY ( aluno_id ) REFERENCES aluno ( id ) ON DELETE NO ACTION ON UPDATE NO ACTION, CONSTRAINT fk_aluno_has_prova_prova1 FOREIGN KEY ( prova_id ) REFERENCES prova ( id ) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE = InnoDB; #População das tabelas INSERINDO ALUNOS INSERT INTO aluno (id, nome, matricula, data_nascimento, data_matricula) VALUES (1,'MICHAEL JONH', '123A', STR_TO_DATE('23/08/1993', '%d/%m/%y'), CURRENT_DATE()), (2,'WILLIANS JUNIOR', '400B', STR_TO_DATE('10/04/1993', '%d/%m/%y'), CURRENT_DATE()), (3,'JOHN BILLBOARD', '420B', STR_TO_DATE('30/07/1993', '%d/%m/%y'), CURRENT_DATE()), (4,'JENNY KILLY', '010A', NULL, STR_TO_DATE('25/01/2014', '%d/%m/%y')) INSERINDO PROVAS INSERT INTO prova(id, data_realizacao, descricao) VALUES (1, STR_TO_DATE('30/03/2014', '%d/%m/%y'), 'Prova A1'), (2, STR_TO_DATE('30/04/2014', '%d/%m/%y'), 'Prova B1'), (3, STR_TO_DATE('30/05/2014', '%d/%m/%y'), 'Prova C1'), (4, STR_TO_DATE('30/07/2014', '%d/%m/%y'), 'Prova A2'), (5, STR_TO_DATE('30/08/2014', '%d/%m/%y'), 'Prova B2'), (6, STR_TO_DATE('30/09/2014', '%d/%m/%y'), 'Prova C2') INSERT INTO nota (aluno_id, prova_id, valor_nota) VALUES 10/12
11 #ALUNO 1 (1, 1, 10), (1, 2, 9.8), (1, 3, 8), (1, 4, 10), (1, 5, 10), (1, 6, 9), #ALUNO 2 (2, 1, 7), (2, 2, 7.5), (2, 3, 6), (2, 4, 8), (2, 5, 8.5), (2, 6, 9), #ALUNO 3 (3, 1, 9), (3, 2, 9), (3, 3, 9), (3, 4, 10), (3, 5, 10), (3, 6, 9.8), #ALUNO 4 (4, 1, 3), (4, 2, 6), (4, 3, 7), (4, 4, 8), (4, 5, 7), (4, 6, 7) #Criação da função calcula_nota() DELIMITER $ CREATE FUNCTION calc_nota(nota NUMERIC(15,2)) RETURNS NUMERIC(15,2) BEGIN DECLARE peso INT; #Se a nota do aluno for maior que 9.5 então sua nota terá um peso maior IF nota > 9.5 THEN SET peso = 2; ELSE SET peso = 1; END IF; RETURN (nota*peso) / 20; END $ #Criação do procedimento arredonda_nota DELIMITER $ CREATE PROCEDURE arredondamento_nota() BEGIN #O DECLARE serve para declarar uma variável que será utilizada durante o programa DECLARE nota_atual NUMERIC(15,2); DECLARE id_aluno, id_prova INT; #Criamos um CURSOR que irá guardar o resultado do SELECT DECLARE cur CURSOR FOR SELECT valor_nota, aluno_id, prova_id FROM nota; 11/12
12 #Abrimos o CURSOR para utilizá lo dentro do LOOP OPEN cur; #Inicamos o LOOP dando um nome ao mesmo para que este possa ser referenciado caso #necessário myloop: LOOP #Atribuímos o valor das colunas do cursor as variáveis que criamos anteriormente FETCH cur INTO nota_atual, id_aluno, id_prova; #Lógica principal da nossa rotina. #Caso o próximo inteiro tenha um diferença de 0.2 ou menos da nota atual # então a nota atual será arredondada para este inteiro. IF (CEIL(nota_atual) nota_atual) <= 0.2 THEN UPDATE nota SET valor_nota = CEIL(nota_atual) WHERE aluno_id = id_aluno AND prova_id = id_prova; END IF; END LOOP; END #Fechamos o cursor CLOSE cur; array13 nbsp; O objetivo deste artigo não foi apenas apresentar teorias e conceitos que podem ser encontrados no próprio manual do MySQL a respeito de funções e procedimentos. Mostramos como aplicar estes na prática com um cenário real, criando toda a estrutura do banco até a população do mesmo. Usamos como ferramenta o PhpMyAdmin apenas para dar uma melhor noção para aqueles que estão começando agora, mas nada impede que sejam utilizadas outras ferramentas como, por exemplo, o MySQL Workbench, que é uma poderosa ferramenta para realizar até a modelagem do banco de dados e fazer engenharia reserva do modelo para o script. por Ronaldo Lanhellas Programador apaixonado 12/12
BD II (SI 587) Procedimentos Armazenados
BD II (SI 587) Procedimentos Armazenados Josenildo Silva [email protected] MOTIVAÇÃO Contexto: Sistemas em 2 camadas Contexto: Sistemas em 3 camadas Problema 1: Alto volume de dados na rede Como reduzir
Banco de Dados I Introdução SQL
Banco de Dados I Introdução SQL Frederico Queiroga [email protected] https://sites.google.com/site/fredericoqueiroga/ Linguagem SQL Aspectos Gerais: Independência do fabricante: Está incorporada
Funções Definidas pelo Usuário
BD II (SI 587) Funções Definidas pelo Usuário Prof. Josenildo Silva [email protected] Funções definidas pelo usuário Funções precisam obrigatoriamente retornar um valor Somente aceitam parâmetros do
Banco de Dados. Professora: Luciana Faria
Banco de Dados Professora: Luciana Faria Introdução ao linguagem é a SQL (Structured Query Language) Linguagem de Consulta Estruturada Para se utilizar, administrar, e trabalhar com um banco de dados é
Banco de Dados. -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para: -Conectar no banco de dados -Criar, alterar, excluir e consultar estruturas de tabelas O que é banco de dados? São conjuntos de registros dispostos
f. Exemplo: verificar condição de aprovação de alunos
Tecnologia em Análise e Desenvolvimento de Sistemas Disciplina: B1SGB - Sistemas Gerenciadores de Banco de Dados Memória de aula Semana 17 1) Expressões CASE a. Tem a mesma finalidade que nas linguagens
Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I
Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I Considere o diagrama relacional da Figura 1 e escreva os comandos SQL para executar os exercícios abaixo. Figure 1 Diagrama relacional.
Marcos Alexandruk Marcos Alexandruk
Marcos Alexandruk [email protected] Apresentação disponível em: www.dba.net.br/mysql.pdf Parte I: Download e Instalação MySQL - Download www.mysql.com/downloads MySQL - Download MySQL - Download MySQL
MySql. Introdução a MySQL. Andréa Garcia Trindade
MySql Introdução a MySQL Andréa Garcia Trindade Introdução O que é Banco de Dados SGBD MYSQL Tipos de Tabelas Tipos de Dados Linguagem SQL Comandos SQL O que é um Banco de Dados? Conjuntos de dados Grupo
Tarefa Orientada 17 Scripts
Tarefa Orientada 17 Scripts Objectivos: Declaração de variáveis escalares Declaração de variáveis do tipo tabela Tabelas temporárias Estruturas Condicionais Estruturas de Repetição Tratamento de erros
Banco de dados. Conteúdo: DDL Prof. Patrícia Lucas
Banco de dados Conteúdo: DDL Prof. Patrícia Lucas O mysql MySQL Workbench é uma ferramenta de design de banco de dados visual que integra o desenvolvimento SQL, administração, design de banco de dados,
Rápida revisão do Modelo Relacional
Rápida revisão do Modelo Relacional Conceito de relação Tuplas e atributos Rápida revisão do Modelo Relacional Regras de integridade Entidade: Deve existir uma chave primária com valor único e não-nulo.
Múltiplas Tabelas. Disciplina de Banco de Dados
Múltiplas Tabelas Uma das grandes características de um sistema de banco de dados relacional é a capacidade de interagir com múltiplas tabelas relacionadas. Precisamos lembrar que para relacionar tabelas
Linguagem SQL Restrições, Triggers e Views
FACULDADE INGÁ Unidade de Ensino Superior Ingá Ltda Ciência da Computação Linguagem SQL Restrições, Triggers e Views Prof. Erinaldo Sanches Nascimento Objetivos Especificar restrições mais gerais sobre
MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS. create database [if not exists] <nome>
1. Manuseio do banco de dados MYSQL - PRIMEIROS COMANDOS CRIAÇÃCO DO BD E DAS TABELAS, INSERÇÃO E CONSULTA DE REGISTROS As seguintes instruções manuseiam o banco de dados: cria o banco mostra os bancos
DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR
SQL Structured Query Language, ou Linguagem de Consulta Estruturada, foi desenvolvida pela IBM nos anos 70 para demonstrar a viabilidade do modelo relacional para bancos de dados. No final dos anos 80
BANCO DE DADOS PARA WEB
BANCO DE DADOS PARA WEB PROF. FABIANO TAGUCHI http://fabianotaguchi.wordpress.com [email protected] BANCO DE DADOS O banco de dados será de fundamental importância para a criação de páginas dinâmicas,
Fundamentos de Banco de Dados Postgre com Sql
Fundamentos de Banco de Dados Postgre com Sql Prof. Luiz Claudio Ferreira de Souza Prof. Luiz Claudio F. de Souza 1 Obtenha os Slids no endereço www.luizclaudiofs.blogspot.com Prof. Luiz Claudio F. de
Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013
Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação Criar um banco de dados denominado Escola ; Criar a tabela, como especificado abaixo: # RA Numeric(8) Nome Serie Turma
Como criar um banco de dados usando o mysql
Como criar um banco de dados usando o mysql 1º Passo: Tenha instalado em seu computador o software XAMPP. Clique aqui para fazer o download. 2º Passo: O XAMPP faz a instalação normal, apenas clicando next,
Triggers(Gatilhos) Tiago Alves de Oliveira
Triggers(Gatilhos) Tiago Alves de Oliveira [email protected] Triggers (Gatilhos) Um TRIGGER ou gatilho associado a uma tabela, definido para ser disparado, respondendo a um evento em particular; Comandos
#nao fazer #Só pode fazer para testar... drop database if exists modelo4; create database modelo4; use modelo4; #Auto_relacionamento #Pessoa = Conjuge = filho #Observar para Criticar #O que achou? # Deixando
Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018
Linguagem de Manipulação de Dados (DML) Estudo Dirigido A Linguagem SQL Preparação criar tabela Criar um novo arquivo de banco de dados chamado Escola Criar a tabela, como especificado abaixo: Create table
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL Docente: Éberton da Silva Marinho e-mail: [email protected] 02/06/2016 SUMÁRIO SQL DDL DML SQL (STRUCTURED
A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A
BANCO DE DADOS GERENCIAL 1 A U L A 3 S U B G R U P O S D M L E D Q L : I N S E R I N D O E P E S Q U I S A N D O D A D O S E M U M A T A B E L A CONCEITOS LINGUAGEM DE MANIPULAÇÃO DE DADOS (DML) A linguagem
BANCO DE DADOS GERENCIAL 1 A U L A 2
BANCO DE DADOS GERENCIAL 1 A U L A 2 N Í V E I S D E V I S Ã O, S U B G R U P O D D L : C R I A N D O B A N C O D E D A D O S, C R I A N D O T A B E L A S, E S T R U T U R A D A T A B E L A CONCEITOS :
26/04/2017 Triggers no SQL Server: teoria e prática aplicada em uma situação real
www.devmedia.com.br [versão para impressão] Link original: http://www.devmedia.com.br/articles/viewcomp.asp?comp=28194 Triggers no SQL Server: teoria e prática aplicada em uma situaçã o real Veja neste
O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source.
Introdução ao JasperReports O JasperReports Studio é uma ferramenta de software que oferece um ambiente visual para criar relatórios para a plataforma Java. É open source. Para efetuar o seu download acesse
AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS
AULA 8 CRIANDO UMA CLASSE EM PHP INTERAGINDO COM BANCO DE DADOS - COM RELACIONAMENTO ENTRE TABELAS Na grande maioria dos sistemas, faz-se necessário utilizar informações que estão armazenadas em uma determinada
Logado no OracleXE vamos acessar a opção:
Tutorial PL/SQL O PL/SQL é uma linguagem procedural que roda diretamente no núcleo do SGBD Oracle. O objetivo deste tutorial é mostrar a criação de funções e procedimentos em PL/SQL, interagindo com comandos
Oracle Database 10g: Fundamentos de SQL e PL/SQL
Oracle University Contact Us: 0-800-167225 Oracle Database 10g: Fundamentos de SQL e PL/SQL Duration: 5 Dias O que é que gostaria de aprender Conheça os fundamentos de SQL e PL/SQL usando o SQL Developer
RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS
RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS No Instituto Federal do Paraná tounou-se necessário o armazenamento de certas informações para controle de pessoal. Para armazenar tais dados é necessário saber que:
Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka
Aula de SQL Comandos DDL André Luiz de Oliveira Eduardo Raul Hruschka E-mail: [email protected] [email protected] Agenda Instalação do MySQL e Workbench Comandos DDL Data Definition Language Criação
Disciplina: Banco de Dados Tema: SQL Parte 2
Disciplina: Banco de Dados Tema: SQL Parte 2 PROFESSOR: DANILO MONTEIRO EMAIL: [email protected] O que foi visto na aula passada? create database Drop database Create table Drop table [email protected]
Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi
Programando em SQL Triggers, Stored Procedures e funções Objetivo Descrever as funcionalidades de triggers, store procedures e funções; Apresentar vantagens e benefícios; Criação e Gerenciamento de Store
SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.
LINGUAGEM SQL SQL CREATE DATABASE MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL. SQL CREATE TABLE SQL NOT NULL O valor NOT NULL obriga que o campo contenha sempre
Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.
Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva. Seja então o conjunto de entidades pessoa, com os atributos bi_pessoa, nome_pessoa e morada_pessoa,
Stored Procedures e Triggers
e Triggers Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Rotinas Armazenadas Stored Procedures Exemplos Triggers Exemplos Exercícios 2 Rotinas Armazendas Rotinas Armazenadas são um conjunto de comandos
Projeto de Banco de Dados: Empresa X
Projeto de Banco de Dados: Empresa X Modelo de negócio: Empresa X Competências: Analisar e aplicar o resultado da modelagem de dados; Habilidades: Implementar as estruturas modeladas usando banco de dados;
TECNOLOGIA EM SISTEMAS PARA INTERNET PROJETO DE BANCO DE DADOS
Exemplos de Scripts SQL (PostgreSQL) Pizzaria 1 2 Criação de BANCO DE DADOS CREATE DATABASE nome_do_banco; CREATE DATABASE pizzaria; Criação de TABELAS SOMENTE COM CHAVE PRIMÁRIA CREATE TABLE nome_da_tabela
'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?
MODELAGEM FÍSICA Capítulo 3! " # $ $!%%%& '$! $% $$%"%' ) ' *'!%'!$ $ $ $% +, %#!!" '$*'#%! $ $$%" % '$%!!% $% * % $ *-! %$% $!* '% $!$$.!'% & $%!% $ $ ' %/!$ 0 $*' $% *0 )#%!$0% 1&$$$%+#!*22,"$% )'%$$%%&
Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte
Banco de Dados Diego Silveira Costa Nascimento Instituto Federal do Rio Grande do Norte [email protected] 20 de março de 2015 Ementa do Curso 1 Introdução 2 Abordagem Entidade-relacionamento
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA. Módulo de Programação Prof. Bruno Maciel
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Bruno Maciel Competências a serem trabalhadas nessa aula Conectar PHP com MySQL Comandos PHP para acesso ao MySQL Utilizando comandos no
BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>
BANCO DE DADOS 1. Scripts de criação de banco de dados Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE Onde:
Utilizando o Postgres - comandos SQL para a manipulação de dados
Utilizando o Postgres - comandos SQL para a manipulação de dados SELECT A declaração SELECT é utilizada para selecionar os dados de um banco de dados. SELECT nome FROM clientes WHERE A cláusula WHERE é
Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios!
(Apresentação SQL Manager Lite for InterBase and Firebird) Benvindo ao Curso de Introdução ao Firebird com Ferramenta de Relatórios! Ferramenta de alta performance para a otimização da administração de
Banco de dados. Linguagens de Banco de Dados II. Wedson Quintanilha da Silva - www.assembla.com/spaces/objetivobd/documents
Banco de dados Linguagens de Banco de Dados II 1 Linguagem de Definição de Dados - DDL Comandos utilizados para criação do esquema de dados; Um DDL permite ao utilizador definir tabelas novas e elementos
Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova
Ciência da Computação GBC043 Sistemas de Banco de Dados Programando com SQL s Avisos Vista da segunda prova Data: 03/06 das 13:40 às 15:00h Local: sala 1B137 Profa. Maria Camila Nardini Barioni [email protected]
Introdução em Banco de Dados
Introdução em Banco de Dados Aula07 ComandosSQLeMySQL Prof: Franciel MySQL é um banco de dados cliente servidor gratuito É simples, tem alto desempenho, é disponível para várias plataformas e é robusto
PostgreSQL Desenvolvedor
CONTEÚDO PROGRAMÁTICO PostgreSQL Desenvolvedor Carga horária: 32 horas TreinaWeb Tecnologia LTDA CNPJ: 06.156.637/0001-58 Av. Paulista, 1765 - Conj 71 e 72 São Paulo - SP CONTEÚDO PROGRAMÁTICO Ementa do
A U L A 9 F U N Ç Õ E S A G R E G A D A S E C Á L C U L O S
BANCO DE DADOS GERENCIAL 1 A U L A 9 F U N Ç Õ E S A G R E G A D A S E C Á L C U L O S Funções Agregadas São funções aquelas que tomam uma coleção (um conjunto ou subconjunto) de valores como entrada,
Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes
Escola Secundária de Albufeira Comandos MySQL (Páginas Web Dinâmicas: PHP e MySQL) ([email protected]) 2009/2010 Criar Base de Dados CREATE DATABASE basededados; Apagar Base de Dados DROP DATABASE basededados;
LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea
BANCO DE DADOS Prof. Fabiano Taguchi http://fabianotaguchi.wordpress.com [email protected] SQL A Structed Query Language foi desenvolvida em 1974 nos laboratório da IBM em San José na Califórnia,
A linguagem SQL
SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão
SQL. Prof. Roger Cristhian Gomes
SQL Prof. Roger Cristhian Gomes SQL SQL - Structured Query Language Linguagem de acesso e manipulação de sistemas de base de dados computacionais que segue o padrão ANSI Existem diferenças entre as versões
UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO
UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados I Professor: Prof. Me. Everton
Linguagem SQL. Comandos Básicos
Linguagem SQL Comandos Básicos Caetano Traina Júnior Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos [email protected] Comando
Para criarmos um banco de dados no MySql, utilizamos à instrução:
Databases Os objetos que fazem parte de um sistema de banco de dados são criados dentro de um database, uma estrutura lógica responsável por manter a estrutura de tabelas com seus dados. Para criarmos
Sistema para Gerenciamento de Lanchonete(hamburgueria)
Curso Técnico Integrado de Informática 3 Ano Projeto Integrador Formação Profissional Sistema para Gerenciamento de Lanchonete(hamburgueria) ' João Victor Silva 1460021 Sumário 1.Introdução...3 1.1 Objetivos...3
Programação em Banco de dados
Programação em Banco de dados CREATE DATABASE A03; GO USE A03; GO -- Cria a tabela para armazenar PRODUTO CREATE TABLE PRODUTO( CDPRODUTO INT NOT NULL, NOMEPRODUTO VARCHAR(255), CONSTRAINT PK_PRODUTO PRIMARY
TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS BANCO DE DADOS I PROFA. CLEIANE GONÇALVES OLIVEIRA ATIVIDADE 15
TECNÓLOGO EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS BANCO DE DADOS I PROFA. CLEIANE GONÇALVES OLIVEIRA ATIVIDADE 15 Observe o modelo conceitual BANCOJANUARIA abaixo que trata de um sistema que cadastra
Monitoria GDI. Aula Prática. OR (Aula 1)
Monitoria GDI Aula Prática OR (Aula 1) Roteiro Tipos Tabela de Objetos Herança Métodos Referências 2 Tipos e Tabelas de Objetos Tipos de Objetos oobjetos são abstrações de entidades do mundo real, como
PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki
PROGRAMA 3.SQL Básico 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação 1 3.SQL Básico A linguagem SQL foi desenvolvida para o ambiente relacional, podendo ser adaptada a ambientes
O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de
Introdução O modelo relacional encontra-se padronizado pela indústria de informática. Ele é chamado de padrão SQL (Structured Query Language). O padrão SQL define precisamente uma interface SQL para a
SQL Básica DDL. Prof. Marcos A. Schreiner. 21 de outubro de Curso de Licenciatura em Computação
SQL Básica DDL Prof. Marcos A. Schreiner Curso de Licenciatura em Computação 21 de outubro de 2015 Prof. Marcos A. Schreiner (UFPR) 21 de outubro de 2015 1 / 28 1 Introdução 2 SQL DDL CREATE Criar Banco
Revisão de Bancos de Dados
Revisão de Bancos de Dados Conceitos Básicos 1. Defina o que é um banco de dados e o que é um sistema gerenciador de bancos de dados (SGBD). 2. Defina as arquiteturas de software em duas camadas (cliente/servidor)
Banco de Dados II. PL/SQL - Procedures -Cursor - Funções. Segurança: Introdução; Controle de Acesso; Criptografia; Recursos de SQL.
Banco de Dados II PL/SQL - Procedures -Cursor - Funções Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha [email protected] Ementa
SISTEMAS DE INFORMAÇÃO
Prof. Rhyan Ximenes SISTEMAS DE INFORMAÇÃO Disciplina: Banco de Dados II E x c e l ê n c i a n o s e u f u t u r o fluci anofei j ao.com. br Semest r e: º Turma: 02 Turno: Noite Dat a: 21/06/13 Not a:
Introdução ao PostgreSQL
Introdução ao PostgreSQL Fontes Karine Reis Ferreira [email protected] Gilberto Câmara [email protected] Gilberto Ribeiro de Queiroz [email protected] Marcos André Gonçalves - UFMG Parte 3 Aula
BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho [email protected] www.diemesleno.com.br
BANCO DE DADOS info 3º ano Prof. Diemesleno Souza Carvalho [email protected] www.diemesleno.com.br Na última aula estudamos Unidade 4 - Projeto Lógico Normalização; Dicionário de Dados. Arquitetura
Material Teórico. Procedures, Functions, Exceptions e Triggers. Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque
Banco de Dados Material Teórico Procedures, Functions, Exceptions e Triggers Responsável pelo Conteúdo: Prof. Ms. Alexander Gobbato Albuquerque Revisão Textual: Prof. Ms. Claudio Brites Procedures, Functions,
Exercício Aula Passada. SQL Linguagem de Manipulação de Dados. Exercício Aula Passada. Exercício Aula Passada. Exercício Aula Passada
Ciência da Computação GBC043 Sistemas de Banco de Dados SQL Linguagem de Manipulação de Dados Profa. Maria Camila Nardini Barioni [email protected] Bloco B - sala 1B137 1 semestre de 2018 2 Escreva
Importar e Exportar Dados
Importar e Exportar Dados Administração de Base de Dados OBJECTIVOS: Definir comandos e formatos Definir restrições (constraints) DEFINIÇÃO DO ESQUEMA DA BASE DE DADOS O esquema da BD e composto pelas
BCD29008 Banco de dados
BCD29008 Banco de dados Linguagem SQL Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/bcd 21 de agosto de 2017
A linguagem SQL
SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão recebeu o nome de
Banco de Dados. Aula 03. Prof. Diemesleno Souza Carvalho
Banco de Dados Aula 03 Prof. Diemesleno Souza Carvalho [email protected] http://www.diemesleno.com.br Na aula passada vimos... Na aula passada vimos... Unidade II - O Modelo Entidade-Relacionamento;
