MySQL Prof. André Rabelo.

Slides:



Advertisements
Apresentações semelhantes
Tópicos em Banco de Dados
Advertisements

O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Banco de Dados Prof. Antonio.
Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
SQL Renata Viegas.
SQL Avançado Continuação
SQL Structured Query Language (continuação)
Prof.: Bruno Rafael de Oliveira Rodrigues
Banco de Dados Bruno Rafael de Oliveira Rodrigues.
Visões Marilde Santos.
Maurício Edgar Stivanello
SGBD.
Sistema Gerenciador de Banco de Dados SGBD
SQL – Consultas Básicas
SQL – Noções Gerais Por Márcia Jacyntha N. Rodrigues Lucena
SQL – DML Consulta a dados de uma tabela
Ordenação de Resultados
Operadores Especiais da SQL
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Banco de dados Profª Kelly Medeiros.
SQL Álvaro Vinícius de Souza Coêlho
Cronograma Formato do Comando SELECT – 1ª Seção Uso de Funções (DATE_FORMAT, DAY, MONTH, NOW, CONCAT, FORMAT, COUNT, AVG, MAX, MIN e FORMAT) AS DISTINCT.
Design Patterns / Acesso ao banco de dados (java.sql)
Banco de Dados Aplicado ao Desenvolvimento de Software
SEGUNDA FASE / S2B MIC PERNAMBUCO SEGUNDA FASE / S2B MIC PERNAMBUCO
Desenvolvendo um script SQL
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Treinamento sobre SQL.
Banco de dados.
Linguagem de Definição de Dados
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros waelson.com.br “Está conosco o Senhor dos Exércitos”
Baseado no material do Professor Raul Paradeda
REVISÃO Comandos SQL - DML SELECT * FROM ?.
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
SGBD – Sistemas de Gerenciadores de Banco de Dados
Banco de dados O que é MySQL Criar bando de dados
Treinamento SQL Server
AULA DE DÚVIDAS 9 de Abril de Especialização  Simplifica-se quando:  especialização é disjunta e  especialização é total e  não há relações.
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Banco de Dados I I Comandos SQL
NOTA DE AULA SQL.
Linguagem SQL Prof. Juliano.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
DELETE, UPDATE, COMMIT, ROLLBACK
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
1 Introdução à Manipulação de Dados SQL – Structured Query Language  Tabela = Relação  DDL – Data Definition Language  Sub-conjunto do SQL que suporta.
Daniel Paulo Constantes ou Literais Caracteres – deve ser utilizado aspas simples ‘Marco Antonio da Silva’ Para utilizar o caractere.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Daniel Paulo SQL Módulo I Daniel Paulo
Recuperação de Dados Banco de Dados Carina Farias
Banco de Dados Maria Augusta (Magu).
Prof. Renato de Oliveira Bastos
VBA – Visual Basic para Aplicativos
UCSal – Bacharelado em Informática
Linguagem de definição de dados - SQL
SELECT Professor: Virgílio Fries Müller www. vfm.com.br
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

MySQL Prof. André Rabelo

MySQL MySQL é um SGDB multiusuário que utiliza a linguagem de banco de dados SQL. É uma implementação cliente-servidor. Entre suas vantagens podemos destacar: VELOCIDADE ROBUSTEZ USABILIDADE

MySQL - Características Manipula número ilimitado de usuários simultâneos; Alta velocidade de execução; Possui APP’s C, C++, JAVA, PERL, PHP entre outros. Portabilidade Disponibiliza vários tipos de dados Suporte completo a operadores SQL e suas funções Sistemas de privilégios simples Suporte a ODBC Disponibiliza registros de tamanhos fixos e variados Manipula COMPROVADAMENTE grandes bancos de dados(50.000.000 de registros)

MySQL - Estrutura O conceito da estrutura que mantém os blocos de informações é conhecido como TABELA. Estes registros por sua vez são constituídos de objetos menores conhecidos como tipo de dados. Os tipos de dados juntos podem ser chamados de registro BANCO DE DADOS> TABELAS> REGISTRO> TIPODE DADOS

MySQL - Estrutura Tipos de dados MySQL: CHAR(M) – strings de tamanho fixo (1 a 255) VARCHAR(M) – strings de tamanho flexível(1 a 255) INT(M) – inteiro entre -2147483648 e 2147483647 FLOAT[(M,D)] – números decimais com D casas DATE – armazenamento de datas no formato”YYYY-MM-DD” TEXT/BLOB – strings entre 255 e 65535

MySQL - Estrutura Tipos de dados MySQL – ATRIBUTOS: PRIMARY KEY(chave primária) – Usado para diferenciar os registros de uma tabela. Impedindo chaves repetidas; Auto_increment – incrementa automaticamente um registro quando este é inserido(auto-numeração) NOT NULL – bloqueia valores nulos

MySQL - Estrutura Privilégios Pela atribuição de um conjunto de privilégios um usuário em um determinado host tem permissão para executar comandos sobre a base de dados. O sistema de privilégios MySQL se baseia em três funções principais: Host User DB

MySQL – O Ambiente Realizar instalação do SGBD MySQL.

MySQL – O Ambiente Acesso: Mostrando bases disponíveis mysql –u root –p Mostrando bases disponíveis show databases; Criando base de dados create database projeto; Selecionando base de dados use projeto;

MySQL – O Ambiente Criando Tabela: create table Aluno ( ID int not null auto_increment primary key, Nome varchar(40), Email varchar(30), DataNasc date, Matricula char(9) ); Mostrar tabelas do banco selecionado show table; Mostrar estrutura de uma tabela desc table;

MySQL – O Ambiente Inserindo campo em tabela: alter table aluno add endereco varchar(100) after nome Apagando campo em tabela: alter table aluno drop email; Apagando tabela: drop table aluno; Apagando banco de dados: drop database projeto;

MySQL – Consultas SQL Inserindo registros: insert into alunos(null, ‘André’, ‘Rua Bambui’,’510’,’1977-06-21’,’1234567’); Selecionando Registros: select * from aluno; Apagando Registro: delete from aluno where id =2;

MySQL – Consultas SQL Atualizando Registros update aluno set nome = ‘André Rabelo’ where id = 1

MySQL – Base de Testes Utilizaremos para nossos exercícios a base de testes Adventure Works. Disponível no link: http://sourceforge.net/projects/awmysql/files/AWBa ckup.zip/download

Informações sobre a Base de Testes A AdventureWorks é uma base de dados de testes liberada gratuitamente pela MICROSOFT e migrada para o MySQL No link abaixo podemos encontrar especificações sobre todas as tabelas do AW. http://technet.microsoft.com/pt- br/library/ms124438(SQL.100).aspx

Importando a AW para o seu computador Para executarmos arquivos com dados SQL no MySQL utilizamos o comando source: source [caminho]

MySQL – Comando SELECT Deve-se ressaltar que a linguagem SQL é utilizada tanto por profissionais responsáveis pelos dados, onde é ressaltada principalmente pela figura do DBA, quanto por desenvolvedores. Estes últimos estão preocupados em “transformar dados em informações”. Portanto, para os desenvolvedores costuma-se dizer que conhecer o SELECT já basta, devido a importância deste comando.

MySQL – Comando SELECT Utilizaremos a base de testes AW para executar comandos básicos através de exemplos. Exemplo 01 – Selecione todos campos(ou colunas) da tabela CONTACT(contém uma lista de nomes e informações relativas a todos clientes, funcionários e fornecedores). SELECT * FROM CONTACT O exemplo acima utiliza o coringa “*” para selecionar todos campos de maneira como foram criados. A instrução SELECT, seleciona um grupo de registros de uma ou mais tabelas. A instrução FROM nos indica a necessidade de pesquisarmos tais dados na tabela CONTACT.

MySQL – Comando SELECT Cláusula WHERE: O WHERE corresponde ao operador “restrição” da álgebra relacional. Contém a condição que os registros devem obedecer a fim de serem listados. Pode comparar valores em colunas, literais, expressões aritméticas ou funções. Podemos utilizar os seguintes operadores lógicos: Operador Significado = Igual a > Maior que < Menor que >= Maior OU igual a <= Menor OU igual a

MySQL – Comando SELECT Utilização de Select com cláusula where: SELECT * FROM CONTACT WHERE contactid = 234 WHERE FIRSTNAME = ‘Gustavo’ //em textos o conjunto de caracteres devem estar //em apóstrofos OU aspas na cláusula where.

MySQL – Comando SELECT Exemplo 02 – Selecione todos funcionários que recebem mais de $ 50.00 a hora. Apresente o código do funcionário e o seu salário mensal(salHora * 8 * 30): RESPOSTA: Neste problema precisamos de uma expressão, que é a combinação de um ou mais valores, operadores ou funções que resultarão em um valor. Esta expressão poderá conter nomes de colunas, valores numéricos, constantes e operadores aritméticos. //a tabela EMPLOYEEPAYHISTORY contém //informações sobre pagamentos de funcionários. SELECT EmployeeID, Rate * 8 * 30 FROM EMPLOYEEPAYHISTORY WHERE Rate > 50

MySQL – Comando SELECT Exemplo 03 – Apresente a instrução anterior porém no lugar dos nomes “feios” employeeID, rate*8*30, apresente os títulos CÓD FUNCIONÁRIO e SAL MENSAL. Resposta: Neste exemplo deveremos denominar colunas por apelidos. Os nomes mostrados, são os nomes dados as colunas das tabelas. Utilizamos os apelidos para apresentarmos nomes mais sugestivos a usuários, não acostumados ao nosso “informatiquês”. SELECT employeeID "CÓDIGO FUNC", rate*8*30 "SAL MENSAL" FROM EMPLOYEEPAYHISTORY WHERE rate > 50

MySQL – Comando SELECT Exemplo 04 – Exiba todos os salários existentes na empresa porém omita eventuais duplicidades. RESPOSTA: A cláusula DISTINCT elimina duplicidades, significando que somente relações distintas serão apresentadas como resultado de uma pesquisa. SELECT DISTINCT RATE FROM EMPLOYEEPAYHISTORY

MySQL – Comando SELECT EXEMPLO 05 – Liste os nomes e email’s de cada contato (TABELA CONTACTS), porém classificadso em ordem crescente. Faça o mesmo em ordem decrescente. RESPOSTA: Para ordenarmos a ordem de apresentação dos registros utilizamos a cláusula ORDER BY. A cláusula DESC coloca os registros em ordem decrescente: SELECT FIRSTNAME,EMAILADDRESS FROM CONTACT ORDER BY FIRSTNAME ORDER BY FIRSTNAME DESC

MySQL – Comando SELECT EXEMPLO 06 – Selecione todos contatos que tem o sobrenome “Adams” Resposta: SELECT * FROM CONTACT WHERE LASTNAME = "Adams“ O exemplo exigiu uma restrição pelo sobrenome “Adams” e assim foi necessário utilizarmos a cláusula where. Podemos utilizar outros operadores nesta cláusula, exemplos abaixo:

MySQL – Comando SELECT Operador Significado BETWEEN .... AND .... Entre dois valores(inclusive) In(...) Lista de valores LIKE Com um padrão de caracteres IS NULL É um valor nulo

MySQL – Comando SELECT Exemplos: //funcionarios com salário/hora entre 20 e 50 SELECT EMPLOYEEID,RATE FROM EMPLOYEEPAYHISTORY WHERE RATE BETWEEN 20 AND 50 //funcionários que tenham salário/hora iguais a //25,24,13.45,9.5 WHERE RATE IN (25,24,13.45,9.5)

MySQL – Comando SELECT //contatos com nomes que iniciam com a letra “F” SELECT * FROM CONTACT WHERE FIRSTNAME LIKE “F%” //O símbolo % pode ser usado para construir //pesquisas (% = qualquer sequencia de nenhum ou //vários caracteres. //contatos que não foram cadastrados apresentações WHERE TITLE IS NULL

MySQL – Comando SELECT Operadores Negativos Operadore Descrição <> Diferente NOT NOME_COLUNA = Diferente da coluna NOT NOME_COLUNA > Não maior que NOT BETWEEN Não está entre os valores NOT IN Não existe em uma lista de valores dada NOT LIKE Diferente do padrão de caracteres dado IS NOT NULL Não é um valor nulo

MySQL – Comando SELECT Exemplo 07 – Selecione os empregados que o salário/hora sejam menores de 20 e maiores que 50. RESPOSTA – Necessitamos aqui de operadores negativos: SELECT EMPLOYEEID,RATE FROM EMPLOYEEPAYHISTORY WHERE RATE NOT BETWEEN 20 AND 50

MySQL – Comando SELECT Exemplo 08 – Selecione todos os funcionários com salário/hora NÃO estejam entre 20 e 50 E que recebam quinzenalmente(coluna PayFrequency quando = 1 salário mensal quando = 2 salário quinzenal) RESPOSTA: necessitaremos de consultas com condições múltiplas. Operadores AND(E) e OR(OU). SELECT EMPLOYEEID,RATE FROM EMPLOYEEPAYHISTORY WHERE RATE NOT BETWEEN 20 AND 50 AND PAYFREQUENCY = 2

MySQL – Comando SELECT Funções de Caracteres Função Resultado Lower Força caracteres maiusculos a aparecerem minusculos Upper Força caractere minúsculos a aparecerem maiúsculos Concat(x,y) Concatena a string X com a string Y Substring(str,x,y) Extrai uma substring de str, começada em X e terminada em Y

MySQL – Comando SELECT //Nome de todos os contatos com letra //minúscula SELECT LOWER(FIRSTNAME) FROM CONTACT //as 3 primeiras letras dos nomes de todos os //contatos SELECT SUBSTRING(FIRSTNAME,1,3) //exiba todos os nomes dos contatos no seguinte formato: “Mr. Gustavo” SELECT CONCAT(TITLE," ",FIRSTNAME)

MySQL – Comando SELECT Funções Agregadas(ou de agrupamento) Função Retorno Avg(n) Média do valor n, ignorando nulos Count(expr) Vezes que o número da expr avalia para algo não nulo Max(expr) Maior valor da expr Min(expr) Menor valor da expr Sum(n) Soma os valores de n, ignorando nulos

MySQL – Comando SELECT Exemplo 9 – Apresente a média, o maior, o menor e também a somatória dos valores/hora dos salários pagos a funcionários: RESPOSTA: SELECT AVG(RATE) FROM EMPLOYEEPAYHISTORY; SELECT MAX(RATE) FROM EMPLOYEEPAYHISTORY ; SELECT MIN(RATE) FROM EMPLOYEEPAYHISTORY ; SELECT SUM(RATE) FROM EMPLOYEEPAYHISTORY ;

MySQL – Comando SELECT AGRUPAMENTOS As funções de grupo operam sobre grupos de registros (linhas). Retornam resultados baseados em grupos em vez de resultados por registro individual. Utilizamos a cláusula GROUP BY é usada para dividir a consulta em grupos. Exemplo 10 – Apresente a média dos salários pagos quinzenalmente e mensalmente: SELECT PAYFREQUENCY,AVG(RATE) FROM EMPLOYEEPAYHISTORY GROUP BY PAYFREQUENCY ATENÇÃO: QUALQUER COLUNA OU EXPRESSÃO QUE NÃO SEJA UMA FUNÇÃO AGREGADA DEVERÁ CONSTAR NA CLÁUSULA GROUP BY. NÃO PODEMOS ASSIM TENTAR IMPOR UMA “RESTRIÇÃO” DO TIPO AGREGADA A CLÁUSULA WHERE.

MySQL – Comando SELECT Cláusula HAVING: Pode ser utilizada para especificar quais grupos serão exibidos, portanto restringindo-os. Exemplo 11 - Apresente o número de contatos que querem receber promoções da empresa via email(campo EmailPromotion = 0 não deseja, EmailPromotion =1 deseja). Não exiba valores nulos ou diferentes de 0 ou 1. SELECT EMAILPROMOTION, COUNT(CONTACTID) FROM CONTACT GROUP BY EMAILPROMOTION HAVING EMAILPROMOTION IN(0,1)

MySQL – Comando SELECT Seqüência do comando SELECT: SELECT COLUNA(S) FROM TABELA(S) WHERE CONDIÇÃO(ÕES) DO(S) REGISTRO(S) GROUP BY CONDIÇÃO(ÕES) DO(S) REGISTRO(S) HAVING CONDIÇÃO(ÕES) DO(S) REGISTRO(S) ORDER BY COLUNA(S) A seguinte avaliação será feita: WERE – para estabelecer linhas individuais(não pode conter funções de grupo; GROUP BY – para fixar grupos; HAVING – para selecionar grupos de exibição.

MySQL – Comando SELECT Junções por igualdade O relacionamento existente entre tabelas devem possuir colunas interligadas com valores iguais. A junção é realizada em sua maioria entre chaves primárias e estrangeiras. Exemplo 12 – Listar todos os nomes e datas de nascimento todos os empregados(tabelas employee e contact) RESPOSTA – Observamos que o nome do empregado se encontra na tabela CONTATO(FIRSTNAME) e a data de nascimento se encontra na tabela EMPLOYEE(BirthDate), vemos também que o relacionamento entre as duas se dá pelo campo CONTACT ID. Então: SELECT FIRSTNAME,BIRTHDATE FROM EMPLOYEE,CONTACT WHERE EMPLOYEE.ContactID = CONTACT.ContactID

MySQL – Comando SELECT Exemplo 13 – Liste todos os nomes dos funcionários e seus salários. RESPOSTA: Repare que o campo FirstName está na tabela Contact enquanto o campo Rate se encontra na tabela EmployeePayHistory. O relacionamento entre estas tabelas existe somente por intermédio da tabela Employee. Portanto: SELECT FIRSTNAME,RATE FROM EMPLOYEE E,CONTACT C, EMPLOYEEPAYHISTORY EH WHERE E.CONTACTID = C.CONTACTID AND E.EMPLOYEEID = EH.EMPLOYEEID