Funções IN e NOT IN
Descrição: Esta função permite enquadrar determinado campo dentro de um conjunto especifico de valores caso função IN pois a função NOT IN vai excluir os campos que estão presentes nesse conjunto de valores.
Exemplo:
(Uso com Strings)
SELECT sigla, nome, população
FROM cidades
WHERE
Sigla IN(‘LISBOA’, ‘PORTO’, ‘LEIRIA’);
//NOT IN
Sigla NOT IN(‘LISBOA’, ‘PORTO’, ‘LEIRIA’);
(Uso com numeros)
SELECT nome, email, idade
FROM curriculos
WHERE
idade IN (18, 19, 20)
//NOT IN
idade NOT IN (15, 16, 17)
Função IF
Descrição: Funções habitual da programação e expressa condição.
IF(condição, caso verdadeiro, caso contrário)
SELECT nome, email, IF(sexo =”M”, “Masculino”, “Feminino”)
FROM currículos
Função CASE WHEN:
Descrição: Tal como a anterior
CASE campo
WHEN “valor1” THEN “Novo valor”
Controle de fluxo
SELECT nome, setor
CASE mes_nascimento
WHEN 01 THEN “Janeiro”
WHEN 02 THEN “Fevereiro”
WHEN 03 THEN “Março”
WHEN 04 THEN “Abril”
WHEN 05 THEN “Maio”
WHEN 06 THEN “Junho”
WHEN 07 THEN “Julho”
WHEN 08 THEN “Agosto”
WHEN 09 THEN “Setembro”
WHEN 10 THEN “Outubro”
WHEN 11 THEN “Novembro”
ELSE “Dezembro” END AS mes_nascimento
FROM funcionários
OU
SELECT
CASE
WHEN continente = “América” THEN “Continente americano”
WHEN pais = “Brasil” THEN “Continente sul americano”
WHEN continente = “Mexico” THEN “Continente norte americano”
…....
Funções matemáticas
Trigonometria
pi() = 3.14.15.93
radians(180) = 3.1415926535898
sin(radians(60)) = 0.866025
sqrt(3)/2 = 0.86602540
degrees(asin(sqrt(3)/2)) = 60
Logarítimo e potência
log(2) = 0.693147
exp(1) = 2.718282
power(2,5) = 32.000000
log10(100) = 2.000000
mod(13,7) = 6
13%7 = 6
abs(-42) = 42
sign(0) = 0
Arredondamento
ceiling(2.5) = 3 - Arredonda para cima ;
floor(2.5) = 2 - Arredonda para baixo ;
round(2.5) = 2 - Arredonda para o inteiro mais próximo;
round(2.51) = 3
truncate(2.5,0) = 2 - Elimina as casas decimais ;
Funções de string
SELECT CONCAT('My', 'S', 'QL'); – junta 1 ou mais strings;
substring – pega partes de uma string baseado na posição
substring_index – pega partes da string baseado nos delimitadores
instr – encontra numa string uma sub-string e devolve a posição onde começa essa sub-string.
replace – Substitui caracteres numa string.
length – calcula o tamanho da string
substring_index(“diegohellas@hotmail.com”, “@”, 1) = diegohellas
substring_index(“orders.mysql.com”, “.”, -2) = mysql.com
reverse(“orders.mysql.com”) = moc.lqsym.sredro
upper(“mysql”) = MYSQL
lower(“MySQL”) = mysql
rpad(“Diego”, 10, “.”) = diego…..
char(77,121,83,81,76) = MySQL
left(“Diego Felipe Hellas”, 3) = Die
mid(“Diego Felipe Hellas Moreira Alves”, 13,6) = Hellas
rught(‘Diego Hellas“, 6) = Hellas
trim(“Q”, from “QQQQMySQL ABQQQ”) = MySQL AB
Funções de tempo e de data
NOW() e intervalos
SELECT NOW() – irá retornar a data e hora actual do servidor MySQL no formato
aaaa-mm-dd hh:mm:ss
SELECT NOW() + INTERVAL 2DAY – irá retornar a data e hora do servidor, só que com uma diferença de 2 dias para frente(ex: hoje é 2008-10-06 ele irá retornar 2008-10-08), essa diferença pode ser negativa também, e o intervalo pode ser horas, minutos, segundos, dias, semanas, meses, anos, etc;
Formatando datas com o DATE_FORMAT()
Sintaxe:
DATE_FORMAT(campo, ‘formato desejado’)
Especificador Descrição
%M Nome do mês (January..December)
%W Nome do dia da semana (Sunday..Saturday)
%D Dia do mês com o sufixo em Inglês (1st, 2nd, 3rd, etc.)
%Y Ano, numérico, com 4 dígitos
%y Ano, numérico, com 2 dígitos
%a Nome do dia da semana abreviado (Sun..Sat)
%d Dia do mês, numérico (00..31)
%e Dia do mês, numérico (0..31)
%m Mês, numérico (01..12)
%c Mês, numérico (1..12)
%b Nome do mês, abreviado (Jan..Dec)
%j Dia do ano (001..366)
%H Hora (00..23)
%k Hora (0..23)
%h Hora (01..12)
%I Hora (01..12)
%l Hora (1..12)
%i Minutos, numérico (00..59)
%r Horário, 12 horas (hh:mm:ss [AP]M)
%T Horário, 24 horas (hh:mm:ss)
%S Segundos (00..59)
%s Segundos (00..59)
%p AM ou PM
%w Dia da semana (0=Domingo..6=Sábado)
%U Semana (00..53), onde Domingo é o primeiro dia da semana
%u Semana (00..53), onde Segunda é o primeiro dia da semana
%% Caracter `%'.
Exemplos de uso:
O MySQL armazena as datas no formato aaaa-mm-dd
Para seleccionar a data no formato que queremos:
SELECT nome, DATE_FORMAT(data_nascimento, ‘%d/%m/%Y’) AS data
FROM funcionários
Desta forma podemos seleccionar a data no formato que pretendemos e se quisemos comparar a data já não temos de a converter de dd/mm/aaaa para aaaa-mm-dd;
SELECT nome, departamento
FROM funcionários
WHERE
DATE_FORMAT(data_nascimento, ‘%d/%m/%Y’) = ‘22/11/1986’
Função DATEDIFF
Calcula a diferença em dias entre duas datas
SELECT DATEDIFF('2006-12-31', '2006-01-01') = 364
Referencias
- http://www.php5.com.br/?php=_artigos/mostra&id_cat=40 (Artigo Original)
- http://dev.mysql.com/doc/refman/5.0/en/functions.html (Manual MySql)
Sem comentários:
Enviar um comentário