Nome: _____________________n.º __ WEB – Série 2B / 2C / 2D / 2E Barueri, 22 / 08 / 2009 3ª Postagem Disciplina: Gerenciamento e Estrutura de Banco de Dados Professor Marcio Usando Operadores Relacionais (continuação) Até agora nós utilizamos o operador igual ( = ), no exemplo seguinte, utilizaremos os operadores maior ( > ) e menor (< ), para selecionar os funcionários que possuem salários maior do que mil reais: SELECT NOME_EMP, CARGO, SALARIO FROM FUNCIONARIOS WHERE SALARIO > 1000 Repare na imagem acima, o ambiente MySQL Query Browser permitindo o desenvolvimento da consulta, e o resultado demonstra três funcionários com salários acima de mil reais. Um outro exemplo é selecionar todos os funcionários que não moram no estado de São Paulo SELECT NOME_EMP FROM FUNCIONARIOS WHERE UF_EMP <> "SP" Repare que o valor SP na cláusula WHERE está entre áspas devido ao campo UF_EMP ser do tipo texto/string Outros Operadores Relacionais Além dos convencionais, que já conhecemos (maior, menor, maior ou igual a, menor ou igual a, igual e diferente de), na linguagem SQL, especificamente no SGBD MySQL, há outros operadores relacionais: Operador Significado BETWEEN Entre dois valores (inclusive eles) IN(lista) Vincula qualquer um de uma lista de valores LIKE Vincula um padrão de caractere IS NULL É um valor nulo Um exemplo de consulta utilizando o operador BETWEEN: selecionar o nome e endereço de todos os funcionários que ganham entre mil a dois mil e quinhentos reais SELECT NOME_EMP, ENDERECO_EMP FROM FUNCIONARIOS WHERE SALARIO BETWEEN 1000 AND 2500; Repare na imagem acima que somente Roberto é o funcionário que possui o salário entre mil a dois mil e quinhentos reais. Um exemplo de consulta utilizando o operador IN: selecionar o nome e email de todos os funcionários que trabalham nos departamentos 1, 2 e 3. SELECT NOME_EMP, EMAIL_EMP FROM FUNCIONARIOS WHERE COD_DEPTO IN(1,2,3) O operador IN pode ser usado com qualquer tipo de dados. O exemplo anterior mostra o uso do operador IN com um campo do tipo de dado numérico O exemplo seguinte mostra o uso do operador IN com um campo do tipo de dado texto, onde é realizado a consulta dos nomes de todos os vendedores e gerentes da empresa SELECT NOME_EMP, EMAIL_EMP FROM FUNCIONARIOS WHERE CARGO IN("Vendedor", "Gerente") O operador LIKE é utilizado quando não se tem a precisão exata do valor a ser consultado Um exemplo de consulta utilizando o operador LIKE: Consultar os nomes de todos os funcionários cuja a primeira letra é R . SELECT NOME_EMP FROM FUNCIONARIOS WHERE NOME_EMP LIKE 'R%' Observe no resultado, onde Roberto é o único funcionário que satisfaz a consulta . O operador IS NULL testa valores que são nulos. Um valor nulo significa um valor indecifrável / desconhecido . Assim sendo, não é possível testar com o operador relacional igual (=) . Um exemplo de consulta utilizando o operador IS NULL: Consultar os nomes de todos os funcionários que não possui comissão. SELECT NOME_EMP FROM FUNCIONARIOS WHERE COMISSAO IS NULL; Exercícios Em relação a tabela FUNCIONARIOS, cuja estrutura foi criada no MySQL Monitor, faça as seguintes consultas utilizando a linguagem SQL . 1. Selecionar nome, cargo e salário de todos os funcionários que ganham a partir de mil e quinhentos reais . 2. Selecionar os nomes de todos os funcionários que não são vendedores. 3. Selecionar os nomes de todos os funcionários cujo a última letra do nome é a letra ‘ a ‘ . 4. Selecionar nomes e cargos de todos os funcionários que ganham entre mil e dois mil reais