A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

MySQL Prof. André Rabelo.

Apresentações semelhantes


Apresentação em tema: "MySQL Prof. André Rabelo."— Transcrição da apresentação:

1 MySQL Prof. André Rabelo

2 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

3 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( de registros)

4 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

5 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 e 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

6 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

7 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

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

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

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

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

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

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

14 MySQL – Base de Testes Utilizaremos para nossos exercícios a base de testes Adventure Works. Disponível no link: ckup.zip/download

15 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. br/library/ms124438(SQL.100).aspx

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

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

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

19 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

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

21 MySQL – Comando SELECT Exemplo 02 – Selecione todos funcionários que recebem mais de $ 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

22 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

23 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

24 MySQL – Comando SELECT EXEMPLO 05 – Liste os nomes e ’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, ADDRESS FROM CONTACT ORDER BY FIRSTNAME ORDER BY FIRSTNAME DESC

25 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:

26 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

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

28 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

29 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

30 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

31 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

32 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

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

34 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

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

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

37 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 (campo Promotion = 0 não deseja, Promotion =1 deseja). Não exiba valores nulos ou diferentes de 0 ou 1. SELECT PROMOTION, COUNT(CONTACTID) FROM CONTACT GROUP BY PROMOTION HAVING PROMOTION IN(0,1)

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

39 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

40 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


Carregar ppt "MySQL Prof. André Rabelo."

Apresentações semelhantes


Anúncios Google