Pessoal,

No treinamento nessa última sexta-feira, fizemos uma dinâmica para discutir, testar e avaliar funções.

Abaixo vou colocar o script gerado conforme fizemos, executamos tudo pelo Workbench 5.2.38 CE.

create table str_teste(string1 varchar(100));

#ESCAPE
insert into str_teste values ('Fernando');
update str_teste
set string1 = 'Fernando barriga d''agua';

select * from str_teste;

#duas formas de usar o ESCAPE;
update str_teste
set string1 = 'Fernando barriga d'agua d''sila';

#end ESCAPE

#LIKE UPPER LOWER
select *
from str_teste
where string1 LIKE '%fernando%';

select *, upper(string1)
from str_teste
where upper(string1) LIKE upper('%fernando%');

select * , lower(string1), upper(string1)
from str_teste
where lower(string1) LIKE lower('%fernando%');

#CONCAT - CONTETNA str1, str2 ... strn
#UPPER maiusculas
#LOWER minusculas
#LENGTH tamanho
#UCASE - upper
#LCASE - lower
select UPPER(CONCAT('Intrutor: ',string1)) Instrutor_Nome,
LENGTH(UPPER(CONCAT('Intrutor: ',string1))) Qtd_Caracteres
from str_teste;

insert into str_teste
values
(UPPER('TESte para Admir'));

#LOCATE busca string dentro campo sempre a primeira ocorrencia
#retorna a POSICAO que INICIA
select LOCATE('agua',string1)
from str_teste;

select LOCATE('''',string1)
from str_teste;

select * from str_teste;

#INSTR igual o LOCATE mas inverte a busca, primeiro campo depois str
select INSTR(string1,'agua')
from str_teste;

insert into str_teste
values
(UPPER('TESte para Admir'));

select * from str_teste;

select soundex('thiago')
union all
select soundex('tiago');

select soundex('ferreira')
union all
select soundex('pereira');

select soundex('gelir')
union all
select soundex('genir');

#Primeira posicao .. quantidade de caracter
select SUBSTRING(string1,1,8)
from str_teste;

#Segundo substring inicia na posicao
select SUBSTRING(string1,1,8), SUBSTRING(string1,9),
SUBSTRING(string1 FROM 9)
from str_teste;

insert into str_teste values (' oi ');
insert into str_teste values (' tiauuu!!! ');
insert into str_teste values (' dez onze ');

select * from str_teste;

#TRIM
select trim(string1) from str_teste;

#LTRIM
select ltrim(string1) from str_teste;

#RTRIM
select rtrim(string1) from str_teste;

update str_teste
set string1 = trim(string1);

select * from str_teste;

rollback;

select * from str_teste;

#DATAS
select now(), current_date, curdate(),
current_time, current_timestamp

#formatacao data
select now(), date_format(now(),'%H') as HORA,
date_format(now(),'%M') MES,
date_format(now(),'%b') mes,
date_format(now(),'%Y') YYYY,
date_format(now(),'%y') yy,
dayname(now());

#CASE
select
case dayname(now())
when 'Friday'
then 'SEXTA HUHU!!'
end as a;

select md5('capin');
select sha1('capin');
select password('capin');

OBS.: BUG do Workbench: A consulta abaixo para funcionar precisa que seja selecionado e executado, caso não seja feito dessa forma, e seja utilizado somente a execução da linha (ou CTRL + ENTER) dará erro!

#formatacao data
select now(), date_format(now(),'%H') as HORA,
date_format(now(),'%M') MES,
date_format(now(),'%b') mes,
date_format(now(),'%Y') YYYY,
date_format(now(),'%y') yy,
dayname(now());

Para mostrar mais informações sobre funções do MySQL podem acessar a documentação oficial.
Funções e Operadores;
Funções para String;
Funções Numéricas e Operadores;
Funções para Data e Hora;

Espero ter colaborado.
Att,
capin