Banco de Dados com MySQL

Tamanho: px
Começar a partir da página:

Download "Banco de Dados com MySQL"

Transcrição

1 Banco de Dados com MySQL Cleverson S Carneiro April 13, 2016 Contents 1 Desenvolvimento de Software Engenharia de Software Análise do Sistema Projeto do Sistema Implementação Programação de Computadores Desenvolvimento Web Interfaces Serviços Computação nas Núvens Banco de Dados SGBD - Sistemas Gerenciadores de Bancos de Dados SQL nosql Modelo entidade relacionamento O MySQL Os clientes phpmyadmin Mysql Workbench Terminal Client Implementando o Banco de Dados Mecanismos de Tabelas MyISAM InnoDB

2 3.2 Conjuntos de Caracteres Criando um Banco de Dados Acessando o banco de dados Listando os Banco de Dados do Servidor Excluindo um Banco de Dados Alterando um Banco de Dados Tabelas Criando Tabelas Tipos de Dados Excluir Listar tabelas do banco de dados Exibir a Estrutura da Tabela Exibir o SQL de Criação da Tabela Alterar Renomear Adicionar colunas Remover coluna Alterar coluna Apagando registros Constraint Not NULL UNIQUE Chave Primaria Chave Estrangeira Manipulando Dados Inserindo Atualizando Removendo Consultas Operadores de Comparacao ou Relacionais Funções e Operadores Funções Agregadoras (Group By) Unindo Tabelas Inner Join Left Join

3 5.5.3 Right Join Sub Queries Consultas Atualização Inserção Índices FullText Search IN NATURAL LANGUAGE MODE IN BOOLEAN MODE WITH QUERY EXPANSION Timezone 21 7 Acesso remoto e Permissões Criar usuário Apagar usuário Conectar a um banco remoto Conceder permissão Remover permissão Principais Tipos de Permissão Stored Procedures Chamando uma Store Procedure Parametros Modo IN Modo OUT Modo INOUT Instruções de Controle CASE IF LOOP REPEAT WHILE Percorrer resultado de pesquisa Funções Triggers 32 3

4 11 Tuning Monitorando Consultas Lentas Número máximo de conexões Table Cache Replicação de Dados Configurar Master Criação do usuário Configurar o Slave

5 List of exercises Exercício 1 Meu primeiro banco Exercício 2 Banco de Dados da Empresa Exercício 3 Tabela departamentos Exercício 4 MeuBank Exercício 5 Funções Exercício 6 Extrato de Conta Exercício 7 Transferências Agendadas Exercício 8 Revisão Geral

6 1 Desenvolvimento de Software 1.1 Engenharia de Software Análise do Sistema A análise de sistemas é a atividade que tem como finalidade a realização de estudos de processos a fim de encontrar o melhor caminho racional para que a informação possa ser processada Projeto do Sistema Ao realizar o projeto ou design do sistema, o desenvolvimento analisa os requisitos de hardwares (equipamentos), softwares (programas) e os requisitos trabalhados na fase de análise Implementação É na implementação que construimos o sitema utilizando recursos e tecnologias definidas em tempo de projeto e as definições descritas em tempo de análise. 1.2 Programação de Computadores Programação é o processo de escrita, teste e manutenção de um programa de computador. Diferentes partes de um programa podem ser escritas em diferentes linguagens. Há várias décadas se debate se a programação é mais semelhante a uma arte (Donald Knuth), a uma ciência, à matemática (Edsger Dijkstra), à engenharia (David Parnas), ou se é um campo completamente novo. 1.3 Desenvolvimento Web Interfaces HTML, CSS, JavaScript? Serviços PHP, Java, Python, JavaScript (Node.js), Banco de Dados Computação nas Núvens 6

7 1.4 Banco de Dados Bancos de dados é um conjunto de arquivos organizados e que se relacionam entre si de forma a criar algum sentido e melhorar a eficiência para o acesso aos dados SGBD - Sistemas Gerenciadores de Bancos de Dados É o conjunto de softwares responsáveis pelo gerenciamento de um banco de dados. Seu principal objetivo é retirar da aplicação cliente a responsabilidade de gerenciar o acesso, a manipulação e a organização dos dados. O SGBD disponibiliza uma interface para que seus clientes possam incluir, alterar ou consultar dados previamente armazenados SQL A Linguagem de Consulta Estruturada (Structured Query Language) é utilizada para manipulação de tabelas de dados. É a linguagem universal para manipular bancos de dados relacionais. Grupos de comandos DML Linguagem de Manipulação de Dados (INSERT, DELETE, UPDATE, SELECT...) DDL Linguagem de Definição de Dados (CREATE, DROP, ALTER...) DCL Linguagem de Controle de Dados (GRANT, REVOKE, DROP USER...) nosql Bancos de dados nosql utilizam formas especificas para organizar e acessar seus dados. Exemplos: Redis - Chave e Valor; MongoDB - Documentos; Neo4j - Grafos A melhor vantagem é escalabilidade e performance Modelo entidade relacionamento É um modelo de diagramas que descreve o modelo de dados de um sistema com alto nível de abstração. 7

8 2 O MySQL 2.1 Os clientes Os três principais clientes para acesso ao servidor MySQL são: phpmyadmin Cliente Web Mysql Workbench Cliente Desktop Terminal Client > mysql [OPTIONS] [database] Exemplo: mysql -u root -p 3 Implementando o Banco de Dados 3.1 Mecanismos de Tabelas Os dois principais mecanismos de tabelas do MySQL: MyISAM Este é o mecanismo padrão pois apresenta a melhor performance de consulta. No geral quando a aplicação possui bastante leitura e pouca escrita, este é o melhor mecanismo. Não dá suporte a transações e no momento das alteração dos registros o MyISAM efetua bloqueio de tabela InnoDB InnoDB funciona mais rápido que MyISAM quando há modificações constantes nos dados. Este mecanismo é mais recomendado para estrutura mais complexas por permitir uso de transações e efetuar bloqueios a nível de registros. Referência: Conjuntos de Caracteres Conjunto e subconjunto de caracteres mais utilizados: latin1 (iso ) / latin1 swedish ci 8

9 utf8 / utf8 general ci Criando um Banco de Dados CREATE DATABASE <nome> [CHARACTER SET <conjunto>] [COLLATE <subconjunto>] Exemplos: CREATE DATABASE meudb; CREATE DATABASE meudb CHARACTER SET latin1 COLLATE latin1$\ $swedish$\ $ci; CREATE DATABASE meudb CHARACTER SET utf8 COLLATE utf8$\ $general$\ $ci; Mais detalhes: Acessando o banco de dados Após conectar no servidor MySQL é possível acessar os dados do banco de dados colocando o nome do banco nas consultas. Exemplo: SELECT FROM <nomedobanco>.<nomedatabela> Ou primeiramente ativando o banco de dados para não precisar informar o banco a cada novo SQL. Exemplo: USE <nomedobanco> SELECT FROM <nomedotabela>; 3.5 Listando os Banco de Dados do Servidor Para listar os banco de dados no servidor, utilize o comando: SHOW DATABASES; 3.6 Excluindo um Banco de Dados DROP <banco de dados> 9

10 3.7 Alterando um Banco de Dados Um banco de dados pode apenas ter a definição de conjunto de caracteres alterado. renomear o banco de dados. Não é possível ALTER DATABASE <nome> [CHARACTER SET <conjunto>] [COLLATE <subconjunto>] Visualizando banco de dados 10

11 4 Tabelas 4.1 Criando Tabelas CREATE TABLE <nome da tabela> (<nome da coluna> <tipo da coluna>,...) Referência: Tipos de Dados Table 1: Tipos Textos Tipo Número de Bytes Limite CHAR(M) M M < 255 VARCHAR(M) M M < 255 TINYTEXT M+1 < 255 TEXT M+2 < MEDIUMTEXT M+3 < LONGTEXT M+4 < ENUM até 2 1 a valores SET até 8 1 a 64 valores Table 2: Tipos numéricos Tipo Número de Bytes Limite TINYINT[(M)] a a 255 (UNSIGNED) SMALLINT[(M)] a a (UNSIGNED) MEDIUMINT[(M)] a A (UNSIGNED) INT[(M)] a A (UNSIGNED) BIGINT[(M)] a a (UNSIGNED) FLOAT[(M, D)] 4 DOUBLE[(M, D)] / REAL[(M, D)] 8 DECIMAL[(M[, D])] / NUMERIC[(M[, D])] Varia e+38 a e e-38 a e+38 (UNSIGNED) e+308 a e E-308 A E+308 (UNSIGNED) e+308 a e E-308 a E+308 (UNSIGNED) 11

12 Table 3: Data e Hora Tipo Número de Bytes Formato DATE 3 YYYY-MM-DD TIME 3 hh:mm:ss DATETIME 8 YYYY-MM-DD hh:mm:ss TIMESTAMP 4 YYYYMMDDHHMMSS YEAR[(2 ou 4)] 1 YY ou YYYY Table 4: Tipos Binários Tipo Número de Bytes Limite BIT[(M)] (M + 7)/8 0 ou 1 TINYBLOB M+1 0 a 255 BLOB M+1 0 a MEDIUMBLOB M+3 0 a LONGBLOB M+4 0 a Excluir DROP TABLE contato; 4.3 Listar tabelas do banco de dados SHOW TABLES; 4.4 Exibir a Estrutura da Tabela Para visualizar a definição/descrição da sua tabela, utilize o comando: DESC <nome da tabela>; 4.5 Exibir o SQL de Criação da Tabela SHOW CREATE TABLE <nome da tabela>; 12

13 4.6 Alterar ALTER TABLE <nome da tabela> <opcoes> 4.7 Renomear ALTER TABLE <nome da tabela> RENAME TO <novo nome> Adicionar colunas ALTER TABLE <nome da tabela> ADD <nome da coluna> <tipo de dado> [NULL NOT NULL] [DEFAULT <valor>] Remover coluna ALTER TABLE <nome da tabela> DROP <nome da coluna> Alterar coluna ALTER TABLE <nome da tabela> CHANGE <nome da coluna> <novo nome da coluna> <tipo de dado> [NULL NOT NULL] [DEFAULT <valor>] Apagando registros TRUCANTE <nome da tabela> Exercício 1 Meu primeiro banco Criar um banco de dados com o nome Agenda 1. Crie tabelas de forma a armazenar os seguintes dados: Nome, Data de Nascimento, Telefone Residencial, Telefone Comercial, , Endereço Residencial e Comerical (Rua, Número, Bairro, CEP, Cidade, Estado) 13

14 4.8 Constraint Regras que restringem os valores que os campos das tabelas podem assumir Not NULL ALTER TABLE <nome da tabela> MODIFY nome VARCHAR(50) NOT NULL; UNIQUE ALTER TABLE <nome da tabela> ADD UNIQUE (nome); Chave Primaria ALTER TABLE <nome da tabela> ADD PRIMARY KEY (id); Chave Estrangeira ALTER TABLE <nome da tabela> ADD CONSTRAINT funcionarios cargos FOREIGN KEY ( cargo ) REFERENCES <nome da tabela de referencia> ( cargo ); 14

15 5 Manipulando Dados 5.1 Inserindo INSERT INTO contatos (nome, , telefone, data criacao) VALUES ( Cleverson, cleverson. [email protected], , now()); 5.2 Atualizando UPDATE contatos SET nome = Cleverson Carneiro WHERE id = 1; 5.3 Removendo DELETE FROM contatos WHERE id = 1; 5.4 Consultas SELECT FROM contatos; SELECT FROM contatos WHERE id = 1; SELECT FROM contatos WHERE id in (1,2); SELECT FROM contatos ORDER BY nome; SELECT FROM contatos ORDER BY data criacao desc; SELECT FROM contatos LIMIT 2; A instrução LIKE é utilizada para realizar buscas em partes do conteúdo. SELECT FROM contatos WHERE nome LIKE C% SELECT FROM contatos WHERE nome LIKE %de% SELECT FROM contatos WHERE nome LIKE %s 15

16 5.4.1 Operadores de Comparacao ou Relacionais Operador Descrição > Maior do que < Menor do que = Igual a <> ou!= Diferente de >= Maior ou igual a <= Menor ou igual a <=> Igual para Null Funções e Operadores Funções Agregadoras (Group By) Nome AVG() BIT AND() BIT OR() BIT XOR() COUNT(DISTINCT) COUNT() GROUP CONCAT() MAX() MIN() STD() STDDEV POP() STDDEV SAMP() STDDEV() SUM() VAR POP() VAR SAMP() VARIANCE() Descrição Valor médio do argumento Operação AND bit a bit Operação OR bit a bit Operação XOR bit a bit Contagem de número de diferentes valores Contagem do número de linhas retornadas Retorna uma string concatenada Valor máximo Valor mínimo Desvio padrão da população Desvio padrão da população Desvio padrão da amostra Desvio padrão da população Soma Variância padrão da população Variação da amostra Variância padrão da população 16

17 5.5 Unindo Tabelas Inner Join Retorna dados apenas quando as duas tabelas tem chaves Left Join Retorna todos os dados da tabela a esquera e apenas os registros que possuem chaves da tabela a direita Right Join Retorna todos os dados da tabela a direita e apenas os registros que possuem chaves da tabela a esquerda. Exercício 2 Banco de Dados da Empresa 1. Criar um banco de dados chamado MinhaEmpresa 2. Criar as tabelas e seus relacionamentos conforme diagrama ER da Figura 1 da Página Inserir os registros contidos no arquivo sql 4. Altere a tabela funcionarios e não permita que exita CPF iguais 5. Altere a tabela funcionarios e defina que o salário default será Inserir um novo funcionario sem salário 7. Inserir despesas para 2 funcionarios. É possível lançar despesas para um setor diferente ao qual o funcionario foi cadastrado? 8. Faça uma consulta que mostre apenas os campos nome e sexo de todos funcionarios. 9. Faça uma consulta que mostre todos os campos dos funcionários e que o resultado seja exibido na ordem decrescente de salário. 10. Atualize o cargo Vendedor para Agente de Vendas. 11. Faça uma consulta que mostre quantos funcionarios existem por sexo. 12. Faça uma consulta que mostre a soma dos salários dos funcionarios do setor Em uma só consulta mostre o nome e cargo de todos os funcionarios. 14. Em uma só consulta mostre o nome, setor e cargo de todos os funcionarios cujo orçamento do setor seja maior que

18 Figure 1: Esquema do Banco de Dados MinhaEmpresa 5.6 Sub Queries Consultas SELECT FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2); SELECT s1 FROM t1 WHERE s1 <> ANY (SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 <> SOME (SELECT s1 FROM t2); SELECT s1 FROM t1 WHERE s1 > ALL (SELECT s1 FROM t2); SELECT FROM t1 WHERE id IN (SELECT id FROM t2); SELECT FROM t1 WHERE id NOT IN (SELECT id FROM t2); SELECT FROM t1 WHERE (col1,col2) = (SELECT col3, col4 FROM t2 WHERE id = 10); Atualização UPDATE <nome da tabela> SET <nome da coluna> = ( SELECT <nome da coluna> FROM < nome da outra tabela> b WHERE <nome da tabela>.name = <nome da outra tabela>.name ) Inserção INSERT INTO qa costpriceslog (item code, invoice code, item costprice) SELECT 1 AS item code, 18

19 2 AS invoice code, item costprice FROM qa items WHERE item code = 1; Ver mais: Índices Criando junto com a tabela: CREATE TABLE CLIENTES ( Codigo INT, Nome VARCHAR(50), INDEX (Codigo) ); Criando indice após criação da tabela: CREATE INDEX idx CLIENTES CODIGO ON CLIENTES(Codigo); 5.8 FullText Search FULLTEXT SEARCH é um mecanismo de busca que permite procurar termos em meio a grande volume de textos. Ao criar um indice Fulltext para uma coluna, faz com que seja criado uma entrada no indice para cada palavra colocada na coluna. Até a versão 5.5 do Mysql, os indices Fulltext são permitidos apenas para tabelas MyISAM. A partir da 5.6, também são permitidas na InnoDB. Realizar busca com a instrução LIKE Exemplo: SELECT FROM contas WHERE nome LIKE Cl% ; SELECT FROM contas WHERE nome LIKE %on ; SELECT FROM contas WHERE nome LIKE %de% ; Para criar um index fulltext index utilize: CREATE FULLTEXT index ON contas(nome); Realizar buscas Fulltext envolve os operadores MATCH e AGAINST: SELECT FROM contas WHERE MATCH(nome) AGAINST ( Cleverson ); 19

20 Os valore são retornados por relevância. A relevância é calculada com base no número de palavras na linha, com o número de palavras únicas nessa linha, o número total de palavras nos registros, o número de documentos (linhas) que contenham uma determinada palavra. Existem três tipos de buscas fulltext: IN NATURAL LANGUAGE MODE Utilizado por default, realiza uma busca em linguagem natural (ignorando por exemplo acentos e maiúscula/minúscula) IN BOOLEAN MODE Utiliza as palavras da busca com operadores lógicos. Operadores: Sinal Sinal Sinal + Sinal < Sinal > Sinal Sinal Entre aspas Entre parenteses ( ) Descrição Indica que a palavra não deve estar no resultado Indica que a palavra deve estar no resultado Palavra tem menos relevância Palavra tem mais relevância Indica que a palavra deve tem relevância negativa na busca Utilizado com curinga mas apenas no final da palavra Retorna busca que possuem exatamente este texto Agrupa palavras e subexpressões WITH QUERY EXPANSION Expande a busca para palavras não digitadas. Por exemplo, ao buscar por MySQL, Oracle, Postgres ele poderá expandir a busca para banco de dados Exercício 3 Tabela departamentos 1. Crie uma tabela departamentos com os campos id e nome do departamento. Faça os seguintes inserts: INSERT INTO departamentos (id, nome) VALUES (1, TI ); INSERT INTO departamentos (id, nome) VALUES (2, Marketing ); INSERT INTO departamentos (id, nome) VALUES (3, Financeiro ); Realize o JOIN entre as tabelas cargos e departamentos Criando Visualizações CREATE VIEW nome da view AS sql 20

21 6 Timezone 7 Acesso remoto e Permissões É possível gerenciar as permissões em quatro níveis: Servidor: Garante o acesso a este usuário a todos os BDs de forma irrestrita em um determinado servidor. As informações ficam armazenados na tabela mysql.user. Banco de dados: Garante o acesso a este usuário a todas as tabelas de um determinado BD. As informações ficam armazenados na tabela mysql.db e mysql.host. Tabelas: Garante o acesso apenas a uma determinada tabela. As informações dos privilégios deste nível ficam armazenados na tabela mysql.tables p riv. Colunas: Garante o acesso a este usuário apenas a uma determinada coluna de uma tabela de um BD. As informações ficam na tabela mysql.columns p riv. 7.1 Criar usuário CREATE USER localhost IDENTIFIED BY password ; 7.2 Apagar usuário DROP USER demo@localhost; 7.3 Conectar a um banco remoto mysql -u [nome do usuário]-p [-h ip] 7.4 Conceder permissão GRANT [tipo de permisso] [colunas] ON [nome da base de dados].[nome da tabela] TO [nome do localhost; Exemplos: GRANT ALL PRIVILEGES ON. TO usuariol@localhost IDENTIFIED BY abc123 ; Cria o usuário1 no servidor localhost, com senha de acesso definida como abc123, com todos os privilégios (ALL PRIVILEGES) a todos os BDs e tabelas. 21

22 GRANT ALL PRIVILEGES ON. TO IDENTIFIED BY abcl23 WITH GRANT OPTION; Idem, com a possibilidade de conceder seus privilégios a outros usuários. GRANT ALL PRIVILEGES ON. TO usuario2@ \% IDENTIFIED BY abc123 WITH GRANT OPTION; Cria o usuario2 no servidor localhost com senha de acesso = abc123 com todos os privilégios. Neste exemplo é omitido o nome do host e em seu lugar é usado o símbolo % (percentagem), um curinga que indica a criação do usuário específico em qualquer máquina do domínio host. GRANT SELECT (NOME, SALRIO) ON virtual.cadfun TO usuario3@localhost IDENTIFIED BY abcl23 ; Cria o usuario3 no servidor localhost com senha de acesso = abc123 e informa que esse usuário pode apenas acessar as colunas NOME e SALÁRIO da tabela cadfun do BD virtual. GRANT UPDATE, INSERT ON virtual. TO usuario4@localhost IDENTIFIED BY abcl23 ; Cria o usuario4 no servidor localhost com senha de acesso = abc123 e informa que esse usuário pode executar os comandos UPDATE e INSERT em qualquer tabela do BD virtual. Para verificar as tabelas do MySql que controlam estes direitos (user, db, host, tables priv e columns priv), vamos olhar o conteúdo do bd de controle do MySql. Digite: SHOW DATABASES; USE mysql; SHOW TABLES; DESCRIBE user; SELECT FROM user; DESCRIBE host; SELECT FROM host; DESCRIBE db; SELECT FROM db; DESCRIBE tables priv; SELECT FROM tables priv; DESCRIBE columns priv; SELECT FROM columns priv; 22

23 FLUSH PRIVILEGES; 7.5 Remover permissão REVOKE [tipo de permisso] [colunas] ON [nome da base de dados].[nome da tabela] FROM [nome do 7.6 Principais Tipos de Permissão Tipo ALL [PRIVILEGES] ALTER ALTER ROUTINE CREATE CREATE ROUTINE CREATE USER CREATE VIEW DELETE DROP EVENT EXECUTE GRANT OPTION INDEX INSERT LOCK TABLES REFERENCES SELECT SHOW DATABASES SHOW VIEW TRIGGER UPDATE Descrição Todos os privilégios menos GRANT OPTION Permite ALTER TABLE para database, table. Permite alterar ou apagar stored routines Permite criar database ou tables Permite criar stored routine Permite criar, remover, renomear usuários Permite criar views Permite apagar registros Permite remover databases, tables, e views Permite use de Event Scheduler Permite executar stored routines Permite alterar regras de permissão Permite criar ou apagar indexs Permite insert Permite Lock em tabelas Permite criação de foreign key Permite visualizar dados (database, table e coluna) Permite exibir databases Permite exibir Views Permite utilizar trigger Permite efetuar update (database, table e column) 23

24 8 Stored Procedures É o nome dado ao recurso que permite armazenar no banco de dados um conjunto/bloco de instruções que podem receber parametros, executar operações em diversas tabelas e retornar valores. Vantagens: Centralização Segurança Velocidade Transacional Estrutura: DELIMITER $$ CREATE PROCEDURE <nome> ( <parametros> ) BEGIN <corpo> END $$ DELIMITER ; Exemplo: CREATE PROCEDURE mostrarnumeroaleatorio () BEGIN SELECT RAND(); END $$ DELIMITER ; 8.1 Chamando uma Store Procedure Como chamar a Store Procedure: Exemplo: CALL mostrarnumeroaleatorio(); 8.2 Parametros (MODO nome TIPO, MODO nome TIPO,... ) 24

25 8.2.1 Modo IN Indica que o parâmetro é apenas para entrada. CREATE PROCEDURE mostrarnumeroaleatorionointervalo (IN de INT, IN ate INT) BEGIN SELECT FLOOR( ( RAND() (de ate + 1) ) + ate); END $$ DELIMITER ; CALL mostrarnumeroaleatorioentre(3, 8); Modo OUT Indica que o parâmetro é apenas de saída. DELIMITER $$ CREATE PROCEDURE quantidadefuncionarios (OUT quantidade INT) BEGIN SELECT COUNT( ) INTO quantidade FROM funcionarios; END $$ DELIMITER ; CALL quantidadefuncionarios(@total); DELIMITER $$ CREATE PROCEDURE elevaraoquadrado (OUT numero INT) BEGIN SET numero = numero numero; END $$ DELIMITER ; = 5; CALL elevaraoquadrado(@valor); Modo INOUT Indica que o parâmetro é de entrada e saída. 25

26 8.3 Instruções de Controle CASE CASE case value WHEN when value THEN statement list [WHEN when value THEN statement list]... [ELSE statement list] END CASE Exemplo: DELIMITER $$ CREATE PROCEDURE p() BEGIN DECLARE v INT DEFAULT 1; CASE v WHEN 2 THEN SELECT v; WHEN 3 THEN SELECT 0; ELSE BEGIN END; END CASE; END $$ DELIMITER ; IF IF search condition THEN statement list [ELSEIF search condition THEN statement list]... [ELSE statement list] END IF Exemplo: DELIMITER $$ CREATE PROCEDURE inserecargo(p nome VARCHAR(50), p id departamento int) BEGIN IF (p nome!= ) THEN INSERT INTO cargos (cargo, id departamento) VALUES (p nome, p id departamento); 26

27 ELSE SELECT Nome deve ser fornecido! AS Msg; END IF; END $$ DELIMITER ; Exemplo: DELIMITER $$ CREATE PROCEDURE inserefuncionario(in p id INT, IN p nome VARCHAR(50), IN p cargo varchar(50)) BEGIN DECLARE excessao SMALLINT DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET excessao = 1; START TRANSACTION; IF (p id > 0 AND p nome <> AND p cargo <> ) THEN INSERT INTO funcionarios (id, nome, cargo) VALUES (p id, p nome, p cargo); IF excessao = 1 THEN SELECT Erro ao inserir funcionario AS Msg; ROLLBACK; ELSE SELECT Cadastro efetuado com sucesso AS Msg; COMMIT; END IF; ELSE SELECT \ $Parametros invlidos\ AS Msg; END IF; END $$ DELIMITER ; LOOP 27

28 [begin label:] LOOP statement list END LOOP [end label] Exemplo: DELIMITER $$ CREATE PROCEDURE doiterate(p1 INT) BEGIN label1: LOOP SET p1 = p1 + 1; IF p1 < 10 THEN ITERATE label1; END IF; LEAVE label1; END LOOP label1; = p1; END $$ DELIMITER ; REPEAT [begin label:] REPEAT statement list UNTIL search condition END REPEAT [end label] Exemplo: DELIMITER $$ CREATE PROCEDURE dorepeat(p1 INT) BEGIN = 0; REPEAT + 1; > p1 END REPEAT; END $$ DELIMITER ; 28

29 8.3.5 WHILE [begin label:] WHILE search condition DO statement list END WHILE [end label] Exemplo: DELIMITER $$ CREATE PROCEDURE dowhile() BEGIN DECLARE v1 INT DEFAULT 5; WHILE v1 > 0 DO... SET v1 = v1 1; END WHILE; END $$ DELIMITER ; 8.4 Percorrer resultado de pesquisa 29

30 Exercício 4 MeuBank Criar um mini sistema bancário 1. Crie um banco de dados chamado MeuBanco com o CHARACTER utf8 e COLLATE utf8 general ci 2. No novo banco de dados, crie a tabela abaixo: CREATE TABLE contas ( id INT NOT NULL, agencia INT, saldo NUMERIC(10,2), PRIMARY KEY (id) ) ENGINE = InnoDB; 3. Criar uma procedure que gere valores aleatórios para a tabela contas. (Dica: Execute a query SELECT floor( ( rand() * ( ) ) + 3); e analise o resultado ) 4. Crie duas VIEWs: View que exiba a soma de saldos de todos os clientes (Dica: Utilizar a função SUM) View que exiba a soma de saldos por agência (Dica: Utilizar a instrução GROUP BY) 5. Crie uma tabela chamada transferencia (Do tipo InnoDB) com as colunas: id (com auto increment) id conta origem id conta destino valor 6. Na tabela transferencia, defina as colunas id c onta o rigemeid c onta d estinocomof OREINGKEY databelacontascolun 7. A assinatura da store procedure deverá ser executartransferencia (valor, contaorigem, contadestino) Os passos para transferir a conta são: 1. Diminuir saldo conta origem 2. Aumentar saldo conta destino 3. Registrar transferencia na tabela transferencia Caso ocorra algum erro em qualquer uma das 3 queries, a procedure deverá realizar Rollback; 30

31 9 Funções Embora a declaração de funções seja muito parecida com as de Store Procedures, sua utilização é apenas para pequenas operações como calculo e manipulação de strings. DELIMITER $$ CREATE FUNCTION ola(nome VARCHAR(20)) RETURNS VARCHAR(50) BEGIN RETURN CONCAT( Ola, nome,!!! ); END $$ DELIMITER ; Exercício 5 Funções Criar funções 1. Criar uma função gerarnumero(de, ate) que gere um numero aleatorio entre os parametros de e até Dica: SELECT floor( ( rand() * (de - ate + 1) ) + ate); 2. Criar uma função gerarnome que gere um nome aleatorio Dica: SELECT substring( abcdefghijklmnopqrstuvwxyz, rand()*26+1, 1); 3. Alterar a procudere que gera contas aleatorias e inserir o nome do cliente alter table contas add column nome varchar(128); Dica: gerarnome(gerarnumero(5,12)); 31

32 10 Triggers CREATE TRIGGER <nome> { BEFORE AFTER } { INSERT UPDATE DELETE } ON < nome da table> FOR EACH ROW <comandos> Exemplo: delimiter $$ CREATE TRIGGER saldo positivo BEFORE UPDATE ON contas FOR EACH ROW BEGIN IF NEW.saldo < 0 THEN SET NEW.saldo = 0; END; $$ delimiter ; Exercício 6 Extrato de Conta Criar funções 1. Crie uma tabela Extrato com as colunas (id auto increment, id conta, data, valor). 2. Crie uma trigger que para cada INSERT na tabela transferencia gere um insert na tabela extrato. Sendo que se a conta for a origem da transferencia o campo valor deve entrar como negativo e se a conta for destino na transferência o valor deve entrar como positivo. Eventos Habilitar eventos: SET GLOBAL event s cheduler = ON; CREATE EVENT <nome> ON SCHEDULE schedule AT { timestamp EVERY interval [YEAR QUARTER MONTH DAY HOUR MINUTE WEEK SECOND YEAR MONTH DAY HOUR DAY MINUTE DAY SECOND HOUR MINUTE HOUR SECOND MINUTE SECOND] } DO <comandos>; Exemplo: CREATE TABLE mensagens (data TIMESTAMP DEFAULT CURRENT TIMESTAMP, msg varchar(200)); CREATE EVENT ola ON SCHEDULE EVERY 30 SECOND DO INSERT INTO mensagens (msg) VALUES ( ola ); 32

33 Exercício 7 Transferências Agendadas 1. Crie uma tabela transferencia agendada com as colunas: (id auto increment, id conta origem, id conta destino, data hora agendamento, valor). 2. Crie um evento que a cada 1 minuto consulta a tabela transferencia agendada e verifica se possui uma transferência vencida que deve ser realizada. 11 Tuning 11.1 Monitorando Consultas Lentas Para analisar possíveis gargalos no seu banco de dados, é possível monitorar as consultas lentas. arquivo my.cnf [mysqld]... long q uery time = 1log slow queries = /var/log/mysql slow.log No 11.2 Número máximo de conexões Determina o número máximo de conexões simultâneas. Deve ser aumentado de acordo com a necessidade. No arquivo my.cnf [mysqld]... max connections = 200 Para verificar as conexões atuais: mysql show processlist 11.3 Table Cache Toda vez que o MySQL abre uma tabela, ele coloca os dados em cache. A variável table cache define quantas tabelas poderão estar em cache simultaneamente. [mysqld]... table cache = max c onnections n 33

34 12 Replicação de Dados Vantagens: Equilíbrio de carga Distribuição de dados Backup Alta disponibilidade Primeiramente deve-se criar uma conta de usuário com permissão de replicação para os servidores tanto no master quanto no slave Configurar Master SHOW GLOBAL VARIABLES WHERE Variable name = log bin ; Ativar o log binário e especificar um ID do servidor log-bin = mysql-bin server-id = 1 SHOW MASTER STATUS 12.2 Criação do usuário CREATE USER replicador IDENTIFIED BY replica; GRANT replication slave, replication client on. to replicador$\@$ $\%$ identified by replica ; 12.3 Configurar o Slave CHANGE MASTER TO MASTER HOST= , MASTER USER= replicador, MASTER PASSWORD= replica, MASTER LOG FILE= mysql bin , MASTER LOG POS =0; log-bin = mysql-bin server-id = 2 START SLAVE; SHOW SLAVE STATUS; 34

35 Exercício 8 Revisão Geral 1. Criar um banco de dados dbempresa, com a estrutura de tabelas conforme o diagrama de Entidade e Relacionamento (Diagrama) 2. Criar as chaves estrangeiras entre as tabelas: a) Na tabela despesas, criar as FKs despesa setor e despesa funcionario. b) Na tabela funcionarios, criar as FKs funcionario setor e funcionario cargo. 3. Realizar pelo menos 3 inserts em cada tabela. 4. Consultas a) Criar uma consulta na tabela setores ordenando pelos setores com menor orçamento b) Criar uma consulta na tabela despesas filtrando despesas com data Maior e Menor que uma determinada data. c) Criar uma consulta na tabela funcionarios agrupando por código do cargo. d) Criar uma consulta na tabela funcionarios exibindo o nome do setor e do cargo. e) Criar uma consulta na tabela cargos exibindo o cargo e a soma das despesas dos funcionarios daquele cargo. 5. Segurança a) Criar um usuário chamado auxfinanceiro que podera apenas realizar select na tabela despesas. b) Criar um usuário chamado rh que poderá fazer SELECT, UPDATE e INSERT nas tabelas funcionarios e cargos, porém não poderá apagar nenhum registro destas tabelas 6. Criar uma procedure chamada registrardespesa que recebe uma valor decimal e o código do funcionario: a) A procedure deve inserir um novo registro na tabela despesa. b) A procedure deve diminuir 10% do valor da despesa no salário do funcionario 35

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

O que são Bancos de Dados?

O que são Bancos de Dados? SQL Básico Liojes de Oliveira Carneiro [email protected] www.professor-liojes.blogspot.com O que são Bancos de Dados? É o software que armazena, organiza, controla, trata e distribui os dados

Leia mais

Administração de Usuários e Privilégios no Banco de Dados

Administração de Usuários e Privilégios no Banco de Dados Administração de Usuários e Privilégios no Banco de Dados Todo agrupamento de bancos de dados possui um conjunto de usuários de banco de dados. Estes usuários são distintos dos usuários gerenciados pelo

Leia mais

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 diemesleno@iftm.edu.br 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

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira [email protected] Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

Introdução à Engenharia da Computação. Banco de Dados Professor Machado Introdução à Engenharia da Computação Banco de Dados Professor Machado 1 Sistemas isolados Produção Vendas Compras Banco de Dados Produtos... Banco de Dados Produtos... Banco de Dados Produtos... Desvantagens:

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL)

ROTEIRO. A Linguagem SQL (I parte) CEFET.PHB - PI Prof. Jefferson Silva. As partes da linguagem SQL. A Linguagem de Definição de Dados (SQL-DDL) CEFET.PHB - PI Prof. Jefferson Silva SQL (MySql) ROTEIRO I PARTE - INTRODUÇÃO AO SQL COMANDOS E SUAS PARTES DA LINGUAGEM SQL II PARTE ADMINSTRAÇÃO DE BANCO DE DADOS UTILIZANDO MYSQL PRINCIPAIS INSTRUÇÕES

Leia mais

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL Prof. Ms. Luiz Alberto Contato: [email protected] Linguagem de Programação de Banco de Dados Triggers em PostgreSQL Todos os bancos de dados comerciais possuem uma linguagem procedural auxiliar para a

Leia mais

Programação WEB II. PHP e Banco de Dados. [email protected]. Thiago Miranda dos Santos Souza

Programação WEB II. PHP e Banco de Dados. progweb2@thiagomiranda.net. Thiago Miranda dos Santos Souza PHP e Banco de Dados [email protected] Conteúdos Os materiais de aula, apostilas e outras informações estarão disponíveis em: www.thiagomiranda.net PHP e Banco de Dados É praticamente impossível

Leia mais

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre

BANCO DE DADOS BANCO DE DADOS. Prof. Patrícia Lucas 3º Trimestre BANCO DE DADOS BANCO DE DADOS Prof. Patrícia Lucas 3º Trimestre ROTEIRO PARA O 3º TRIMESTRE 1. O MySQL DDL SQL 1. Como funciona o MySQL 2. Como criar um banco de dados no MySQL 3. Como criar tabelas: comandos

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Structured Query Language (SQL) Aula Prática

Structured Query Language (SQL) Aula Prática Structured Query Language (SQL) Aula Prática Linguagens de SGBD Durante o desenvolvimento do sistema R, pesquisadores da IBM desenvolveram a linguagem SEQUEL, primeira linguagem de acesso para Sistemas

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

Minicurso3 Introdução ao Banco de Dados MySQL

Minicurso3 Introdução ao Banco de Dados MySQL I Workshop de Informática INFO-BAIANO 12 a 13 de nov. de 2011 Minicurso3 Introdução ao Banco de Dados MySQL Prof. Pablo Freire Matos Informática - Instituto Federal Baiano (IFBAIANO) [email protected]

Leia mais

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. 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

Leia mais

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas;

Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de informações relacionadas entre si; Armazenamento organizado facilitando SCRUD; Agiliza processo de desenvolvimento de sistemas; Conjunto de Tabelas onde cada linha é um vetor de dados específico;

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix Ingress SQL

Leia mais

Curso PHP Aula 08. Bruno Falcão [email protected]

Curso PHP Aula 08. Bruno Falcão brunogfalcao@gmail.com + Curso PHP Aula 08 Bruno Falcão [email protected] + Roteiro Conectividade com BD SQL + SQL Structured Query Language. Padrão para interagir com banco de dados relacionais. + Banco de dados Um banco

Leia mais

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 11-1. INTRODUÇÃO TRIGGERS (GATILHOS OU AUTOMATISMOS) Desenvolver uma aplicação para gerenciar os dados significa criar uma aplicação que faça o controle sobre todo ambiente desde a interface, passando

Leia mais

2008.1. A linguagem SQL

2008.1. 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

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Modelo Cliente/Servidor Por HIARLY ALVES

Modelo Cliente/Servidor Por HIARLY ALVES UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor. Modelo Cliente/Servidor Por HIARLY ALVES Fortaleza - CE CONCEITOS Cliente x Servidor. Cliente É um programa (software) executado

Leia mais

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: [email protected]

MYSQL: TIPOS DE DADOS. Gilvan Vieira Moura E-mail: gilvansistema@hotmail.com MYSQL: TIPOS DE DADOS Gilvan Vieira Moura E-mail: [email protected] TIPOS DE DADOS Bancos de dados, como falamos anteriormente, armazenam dados dentro de tabelas, na forma de linhas e colunas.

Leia mais

CIÊNCIA E TECNOLOGIA DO RIO

CIÊNCIA E TECNOLOGIA DO RIO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected] Curso de Tecnologia

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

Leia mais

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL 1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)

Leia mais

RECUPERAÇÃO DE CONTEÚDO BANCO DE DADOS

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:

Leia mais

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

Leia mais

1. Domínio dos Atributos

1. Domínio dos Atributos Structure Query Language SQL Guilherme Pontes lf.pontes.sites.uol.com.br 1. Domínio dos Atributos Por domínio, ou tipo, pode-se entender como a maneira como determinado atributo (ou campo, se tratando

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

DESENVOLVIMENTO DE SOFTWARE

DESENVOLVIMENTO DE SOFTWARE VARIAÁ VEL Antes de iniciarmos os comandos referentes a Banco de Dados, precisamos de uma breve descrição técnica sobre Variáveis que serão uma constante em programação seja qual for sua forma de leitura.

Leia mais

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010

BANCO DE DADOS: SQL. Edson Anibal de Macedo Reis Batista. 27 de janeiro de 2010 BANCO DE DADOS: SQL UERN - Universidade do Estado do Rio Grande do Norte. Departamento de Ciências da Computação. 27 de janeiro de 2010 índice 1 Introdução 2 3 Introdução SQL - Structured Query Language

Leia mais

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas

Banco de Dados II. Triggers e Functions. Prof. Moser Fagundes. Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Banco de Dados II Triggers e Functions Prof. Moser Fagundes Curso TSI Instituto Federal Sul-Rio-Grandense (IFSul) Campus Charqueadas Sumário da aula Functions (funções) Triggers (gatilhos) Atividades Functions

Leia mais

SQL. Hélder Antero Amaral Nunes

SQL. Hélder Antero Amaral Nunes SQL Hélder Antero Amaral Nunes 2 Introdução Desenvolvida pelo departamento de pesquisa da IBM na década de 1970 (System R); Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

Treinamento em PHP. Aula 7. Ari Stopassola Junior [email protected]

Treinamento em PHP. Aula 7. Ari Stopassola Junior stopassola@acimainteractive.com Treinamento em PHP Aula 7 Ari Stopassola Junior [email protected] Banco de Dados Robustes no armazenamento Segurança, velocidade e facilidade na manipulação dos dados Controle e escalabilidade

Leia mais

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

Leia mais

Banco de Dados Oracle 10g: Introdução à Linguagem SQL

Banco de Dados Oracle 10g: Introdução à Linguagem SQL Oracle University Entre em contato: 0800 891 6502 Banco de Dados Oracle 10g: Introdução à Linguagem SQL Duração: 5 Dias Objetivos do Curso Esta classe se aplica aos usuários do Banco de Dados Oracle8i,

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Stored Procedure e Trigger A tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos:

Notas sobre o MySQL: Resumo dos comandos no MySQL linha de comandos: EDUCAÇÃO E FORMAÇÃO DE ADULTOS Curso EFA SEC Turma C - 2012 / 2013 Notas sobre o MySQL: 1) A indicação mysql> é o prompt do sistema. 2) Uma instrução, no prompt do MySQL, deve terminar sempre com ponto

Leia mais

Fábio Borges de Oliveira. MySQL

Fábio Borges de Oliveira. MySQL Fábio Borges de Oliveira MySQL Incremento automático CREATE TABLE alunos ( registro MEDIUMINT NOT NULL AUTO_INCREMENT, nome CHAR(30) NOT NULL, PRIMARY KEY (registro) ); INSERT INTO alunos (nome) VALUES

Leia mais

Introdução ao SQL. O que é SQL?

Introdução ao SQL. O que é SQL? Introdução ao SQL 1 O que é SQL? Inicialmente chamada de Sequel, SQL (Structured Query Language), é a linguagem padrão utilizada para comunicar-se com um banco de dados relacional. A versão original foi

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

Modelagem de banco de dados com MySQL Workbench

Modelagem de banco de dados com MySQL Workbench Modelagem de banco de dados com MySQL Workbench Após o término desse curso, você estará apto à: Teoria: Reconhecer os principais tipos de dados suportados pelo MySQL 5.0 Otimizar espaço pela escolha certo

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Transações Seguras em Bancos de Dados (MySQL)

Transações Seguras em Bancos de Dados (MySQL) Transações Seguras em Bancos de Dados (MySQL) Índice Entendendo os storage engines do MySQL 5 1 As ferramentas 1 Mais algumas coisas que você deve saber 1 Com a mão na massa 2 Mais ferramentas Usando o

Leia mais

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas

Leia mais

2008.1 SQL. Autor: Renata Viegas

2008.1 SQL. Autor: Renata Viegas SQL Autor: Renata Viegas 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

Leia mais

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

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

Leia mais

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de

Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de BD Esta aula tem o objetivo de nos orientar durante este período em nossas aulas de Banco de Dados, não tem a pretensão de ser a única fonte de informação para nosso êxito no curso. A intenção de elaborar

Leia mais

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql

Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com. Preparando o ambiente do Banco de dados Mysql Criar database: Sensor de temperatura Parte 5 Cleiton Bueno www.cleitonbueno.wordpress.com Preparando o ambiente do Banco de dados Mysql CREATE DATABASE `tempuino` DEFAULT CHARACTER SET utf8 COLLATE utf8_bin

Leia mais

Linguagem SQL. Comandos Básicos

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

Leia mais

MySQL. Prof. César Melo. com a ajuda de vários

MySQL. Prof. César Melo. com a ajuda de vários MySQL Prof. César Melo com a ajuda de vários Banco de dados e Sistema de gerenciamento; Um banco de dados é uma coleção de dados. Em um banco de dados relacional, os dados são organizados em tabelas. matricula

Leia mais

Principais Comandos SQL Usados no MySql

Principais Comandos SQL Usados no MySql Principais Comandos SQL Usados no MySql O que é um SGBD? Um Sistema Gerenciador de Banco de Dados (como no Brasil) ou Sistema Gestor de Base de Dados (SGBD) é o conjunto de programas de computador (softwares)

Leia mais

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127

Descrição Tinyint[(M)] Inteiro pequeno. Varia de 128 até +127 Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

Leia mais

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) )

CREATE TABLE AUTOR ( cod_autor int not null primary key, nome_autor varchar (60) ) TADS Exercício Laboratório I Analise o modelo de banco de dados abaixo: MUSICA FAIXA Codigo_Musica: INTEGER Nome_Musica: VARCHAR(60) Duracao: NUMERIC(6,2) Codigo_Musica: INTEGER (FK) Codigo_CD: INTEGER

Leia mais

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS Fábio Roberto Octaviano Conceitos da arquitetura Oracle e da Linguagem SQL Recuperar dados por meio de SELECT Criar relatórios de dados classificados

Leia mais

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua [email protected] Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

Leia mais

Disciplina: Unidade V: Prof.: E-mail: Período:

Disciplina: Unidade V: Prof.: E-mail: Período: Encontro 17 Disciplina: Sistemas de Banco de Dados Unidade V: Introdução à Linguagem SQL Prof.: Mario Filho E-mail: [email protected] Período: 5º. SIG - ADM 13. Introdução à Linguagem SQL Introdução

Leia mais

Operação de União JOIN

Operação de União JOIN Operação de União JOIN Professor Victor Sotero SGD 1 JOIN O join é uma operação de multi-tabelas Select: o nome da coluna deve ser precedido pelo nome da tabela, se mais de uma coluna na tabela especificada

Leia mais

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) 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;

Leia mais

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04

BD Oracle. Licenciatura em Engenharia Informática e Computação. Bases de Dados 2003/04 BD Oracle SGBD Oracle Licenciatura em Engenharia Informática e Computação Bases de Dados 2003/04 BD Oracle Introdução aos SGBD Base de Dados Colecção de dados que descrevem alguma realidade Sistema de

Leia mais

Projeto de Banco de Dados: Empresa X

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;

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL (86); SQL-2 (92); SQL-3 (99) e SQL:2003 não é apenas uma linguagem de consulta! como o nome sugere...

Leia mais

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33

Escrito por Sex, 14 de Outubro de 2011 23:12 - Última atualização Seg, 26 de Março de 2012 03:33 Preço R$ 129.00 Compre aqui SUPER PACOTÃO 3 EM 1: 186 Vídeoaulas - 3 dvd's - 10.5 Gybabyte. 1) SQL 2) Banco de Dados (Oracle 10g, SQL Server 2005, PostgreSQL 8.2, Firebird 2.0, MySQL5.0) 3) Análise e Modelagem

Leia mais

Sistemas de Banco de Dados

Sistemas de Banco de Dados Sistemas de Banco de Dados Everson Santos Araujo [email protected] Conceitos Dado - Um fato que pode ser armazenado Banco de dados (BD) - Coleção de dados interrelacionados Sistema Gerenciador de Banco

Leia mais

Linguagem de Consulta - SQL

Linguagem de Consulta - SQL SQL Structured Query Language Linguagem de Consulta Estruturada; Originou-se da linguagem SEQUEL (1974); Revisada e chamada de SQL em 1976/77; Em 1986, padronizada pelo ANSI/ISO - chamada SQL-86; Em 1987

Leia mais

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger

PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger PROGRAMAÇÃO EM BANCO DADOS Store Procedure e Trigger a tecnologia de banco de dados permite persistir dados de forma a compartilha-los com varias aplicações. Aplicação 1 aplicação 2 aplicação 3 SGDB Banco

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL- (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Linguagem SQL (Parte I)

Linguagem SQL (Parte I) Universidade Federal de Sergipe Departamento de Sistemas de Informação Itatech Group Jr Softwares Itabaiana Site: www.itatechjr.com.br E-mail: [email protected] Linguagem SQL (Parte I) Introdução

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) SQL (Structured Query Language) Linguagem comercial para BD relacional padrão ISO desde a década de 80 SQL-1 (86); SQL- (9); SQL- (99) não é apenas uma linguagem de consulta! como o nome sugere... Base

Leia mais

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você

Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você Auditoria de sistemas Deixe que seu banco de dados faça o trabalho por você por Cristóferson Guimarães Magalhães Bueno e Odilon Corrêa da Silva 1 O objetivo deste artigo é demonstrar como criar um sistema

Leia mais

Apostila Delphi V 1.0

Apostila Delphi V 1.0 Preço: R$ 5,00 Link de download: setup.exe Tipo da licença: demonstração Limitações: perrmite visualizar até a página 12. Exige cadastro on-line para solicitar chave de registro. 1 / 7 Apostila completa

Leia mais

INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP

INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP INTRODUÇÃO BANCO DE DADOS(MYSQL) E PHP Prof. Msc. Hélio Esperidião BANCO DE DADOS Podemos entender por banco de dados qualquer sistema que reúna e mantenha organizada uma série de informações relacionadas

Leia mais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais

LINGUAGEM SQL. SQL Server 2008 Comandos iniciais 1 LINGUAGEM SQL SQL Server 2008 Comandos iniciais SQL - STRUCTURED QUERY LANGUAGE Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação.

Leia mais

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos

Introdução às funções e procedimentos. SQL suporta funções e procedimentos úteis com tipos de dados específicos Bases de Dados Stored procedures e triggers Introdução às funções e procedimentos SQL suporta funções e procedimentos úteis com tipos de dados específicos p.ex. objectos geométricos, imagens intersecção

Leia mais

Gerência de Banco de Dados

Gerência de Banco de Dados exatasfepi.com.br Gerência de Banco de Dados Prof. Msc. André Luís Duarte Banco de Dados Os bancos de dados são coleções de informações que se relacionam para criar um significado dentro de um contexto

Leia mais

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos.

Banco de Dados. Um momento crucial na organização dos dados é a forma com que cadastramos estes dados, a estrutura de armazenamento que criamos. Banco de Dados O que é um Banco de Dados? Este assunto é muito vasto, tentaremos resumi-lo para atender as questões encontradas em concursos públicos. Já conhecemos o conceito de dado, ou seja, uma informação

Leia mais

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

Leia mais

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP [email protected]

PostgreSQL. www.postgresql.org. André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP alf@cirp.usp.br PostgreSQL www.postgresql.org André Luiz Fortunato da Silva Analista de Sistemas CIRP / USP [email protected] Características Licença BSD (aberto, permite uso comercial) Multi-plataforma (Unix, GNU/Linux,

Leia mais

trigger insert, delete, update

trigger insert, delete, update 1 Um trigger é um conjunto de instruções SQL armazenadas no catalogo da BD Pertence a um grupo de stored programs do MySQL Executado quando um evento associado com uma tabela acontece: insert, delete,

Leia mais

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Uma expressão básica em SQL consiste em três cláusulas: select, from e where. Introdução a Banco de Dados O.K. Takai; I.C.Italiano; J.E. Ferreira. 67 8 A Linguagem SQL A linguagem SQL é um padrão de linguagem de consulta comercial que usa uma combinação de construtores em Álgebra

Leia mais

SQL (Structured Query Language)

SQL (Structured Query Language) (Structured Query Language) I DDL (Definição de Esquemas Relacionais)... 2 I.2 Domínios... 2 I.3 Criação de Tabelas... 2 I.4 Triggers... 4 II DML Linguagem para manipulação de dados... 5 II.2 Comando SELECT...

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais