{"id":152,"date":"2008-10-08T09:02:00","date_gmt":"2008-10-08T12:02:00","guid":{"rendered":"http:\/\/helbertt.16mb.com\/site\/index.php\/2008\/10\/08\/usando-o-mysql-para-facilitar-sua-vida\/"},"modified":"2008-10-08T09:02:00","modified_gmt":"2008-10-08T12:02:00","slug":"usando-o-mysql-para-facilitar-sua-vida","status":"publish","type":"post","link":"https:\/\/helbertt.xyz\/site\/usando-o-mysql-para-facilitar-sua-vida\/","title":{"rendered":"Usando o Mysql para facilitar sua vida!"},"content":{"rendered":"<p><img decoding=\"async\" id=\"BLOGGER_PHOTO_ID_5254752703821042946\" style=\"DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center\" alt=\"\" src=\"http:\/\/3.bp.blogspot.com\/_ANIcCpo9ex0\/SOyhvkXG1QI\/AAAAAAAAAK4\/Bm87wZtlgho\/s400\/mysqlnetworkdt4.jpg\" border=\"0\" \/><br \/>Este artigo foi publicado no site na comunidade php5,<\/p>\n<p>Visa ajudar aos desenvolvedores a fazer as suas tarefas mais facilmente e ajudar a diminuir o tempo de desenvolvimento.<\/p>\n<p>A fun\u00e7\u00e3o IN e NOT IN<\/p>\n<p>Usamos IN para fazer consultas quando precisamos que seja retornado todos os registros onde em um determinado campos contenha um dos valores que ser\u00e3o passados no IN.<\/p>\n<p>Usamos NOT IN quando queremos retornar tudo menos os resultados passados no NOT IN<\/p>\n<p>Uso em String:<\/p>\n<p>SELECT sigla, nome, popula\u00e7\u00e3o<br \/>FROM cidades<br \/>WHERE<br \/>Sigla IN(\u2018PR\u2019, \u2018SP\u2019, \u2018MG\u2019);<br \/>\/\/NOT IN<br \/>Sigla NOT IN(\u2018PR\u2019, \u2018SP\u2019, \u2018MG\u2019);<\/p>\n<p>Uso num\u00e9rico:<\/p>\n<p>SELECT nome, email, idade<br \/>FROM curriculos<br \/>WHERE<br \/>idade IN (18, 19, 20)<br \/>\/\/NOT IN<br \/>idade NOT IN (15, 16, 17)<\/p>\n<p>As fun\u00e7\u00f5es IF e CASE WHEN<\/p>\n<p>Usamos a fun\u00e7\u00e3o IF no MySQL com a mesma finalidade do que qualquer linguagem de programa\u00e7\u00e3o, s\u00f3 que na maioria das vezes \u00e9 mais f\u00e1cil jogar essa verifica\u00e7\u00e3o para o banco de dados do que para a linguagem de programa\u00e7\u00e3o.<\/p>\n<p>Sintaxe:<\/p>\n<p>IF(condi\u00e7\u00e3o, caso verdadeiro, caso contr\u00e1rio)<\/p>\n<p>SELECT nome, email, IF(sexo =\u201dM\u201d, \u201cMasculino\u201d, \u201cFeminino\u201d)<br \/>FROM curr\u00edculos<\/p>\n<p>A fun\u00e7\u00e3o CASE WHEN:<\/p>\n<p>Usamos a fun\u00e7\u00e3o CASE WHEN no MySQL com a mesma finalidade do que usamos em qualquer \u00e7inguagem de programa\u00e7\u00e3o, so que na maioria da vezes \u00e9 mais f\u00e1cil jogar essa verifica\u00e7\u00e3o para o banco de dados do que para a linguagem de programa\u00e7\u00e3o.<\/p>\n<p>Sintaxe:<br \/>CASE campo<br \/>WHEN \u201cvalor1\u201d THEN \u201cNovo valor\u201d<\/p>\n<p>Controle de fluxo<\/p>\n<p>SELECT nome, setor<br \/>CASE mes_nascimento<br \/>WHEN 01 THEN \u201cJaneiro\u201d<br \/>WHEN 02 THEN \u201cFevereiro\u201d<br \/>WHEN 03 THEN \u201cMar\u00e7o\u201d<br \/>WHEN 04 THEN \u201cAbril\u201d<br \/>WHEN 05 THEN \u201cMaio\u201d<br \/>WHEN 06 THEN \u201cJunho\u201d<br \/>WHEN 07 THEN \u201cJulho\u201d<br \/>WHEN 08 THEN \u201cAgosto\u201d<br \/>WHEN 09 THEN \u201cSetembro\u201d<br \/>WHEN 10 THEN \u201cOutubro\u201d<br \/>WHEN 11 THEN \u201cNovembro\u201d<br \/>ELSE \u201cDezembro\u201d END AS mes_nascimento<br \/>FROM funcion\u00e1rios<\/p>\n<p>Condi\u00e7\u00f5es livres<\/p>\n<p>SELECT<br \/>CASE<br \/>WHEN continente = \u201cAm\u00e9rica\u201d THEN \u201cContinente americano\u201d<br \/>WHEN pais = \u201cBrasil\u201d THEN \u201cContinente sul americano\u201d<br \/>WHEN continente = \u201cMexico\u201d THEN \u201cContinente norte americano\u201d<br \/>WHEN estado = \u201cParan\u00e1\u201d THEN \u201cRegi\u00e3o Sul\u201d<br \/>WHEN estado = \u201cS\u00e3o Paulo\u201d THEN \u201cRegi\u00e3o Sudeste\u201d<\/p>\n<p>Fun\u00e7\u00f5es matem\u00e1ticas<\/p>\n<p>Trigonometria<br \/>pi() = 3.14.15.93<br \/>radians(180) = 3.1415926535898<br \/>sin(radians(60)) = 0.866025<br \/>sqrt(3)\/2 = 0.86602540<br \/>degrees(asin(sqrt(3)\/2)) = 60<\/p>\n<p>Logar\u00edtimo e pot\u00eancia<\/p>\n<p>log(2) = 0.693147<br \/>exp(1) = 2.718282<br \/>power(2,5) = 32.000000<br \/>log10(100) = 2.000000<br \/>mod(13,7) = 6<br \/>13%7 = 6<br \/>abs(-42) = 42<br \/>sign(0) = 0<\/p>\n<p>Arredondamento<\/p>\n<p>ceiling(2.5) = 3<br \/>floor(2.5) = 2<br \/>round(2.5) = 2<br \/>round(2.51) = 3<br \/>truncate(2.5,0) = 2<\/p>\n<p>celing para cima<br \/>floor para baixo<br \/>round para o inteiro mais pr\u00f3ximo<br \/>truncate elimina casas decimais<\/p>\n<p>Obs: todas as fun\u00e7\u00f5es de arredondamento tamb\u00e9m funcionam para n\u00fameros negativos<\/p>\n<p>Fun\u00e7\u00f5es de string<\/p>\n<p>concat \u2013 concatema strings; pode receber 1-n par\u00e2metros<br \/>substring \u2013 pega partes de uma string baseado na posi\u00e7\u00e3o<br \/>substring_index \u2013 pega partes da string baseado nos delimitadores<br \/>instr \u2013 encontra strings em outras strigns<br \/>replace \u2013 modifica strings em outras strings<br \/>length \u2013 calcula o tamanho da string<br \/>like \u2013 compara strings utilizando wildcards<\/p>\n<p>substring_index(\u201cdiegohellas@hotmail.com\u201d, \u201c@\u201d, 1) = diegohellas<br \/>substring_index(\u201corders.mysql.com\u201d, \u201c.\u201d, -2) = mysql.com<br \/>reverse(\u201corders.mysql.com\u201d) = moc.lqsym.sredro<br \/>upper(\u201cmysql\u201d) = MYSQL<br \/>lower(\u201cMySQL\u201d) = mysql<br \/>rpad(\u201cDiego\u201d, 10, \u201c.\u201d) = diego\u2026..<br \/>char(77,121,83,81,76) = MySQL<br \/>left(\u201cDiego Felipe Hellas\u201d, 3) = Die<br \/>mid(\u201cDiego Felipe Hellas Moreira Alves\u201d, 13,6) = Hellas<br \/>rught(\u2018Diego Hellas\u201c, 6) = Hellas<br \/>trim(\u201cQ\u201d, from \u201cQQQQMySQL ABQQQ\u201d) = MySQL AB<\/p>\n<p>Fun\u00e7\u00f5es de tempo e de data<\/p>\n<p>NOW() e intervalos<\/p>\n<p>SELECT NOW() \u2013 ir\u00e1 retornar a data e hora atual do servidor MySQL no formato<br \/>aaaa-mm-dd hh:mm:ss<\/p>\n<p>SELECT NOW() + INTERVAL 2DAY \u2013 ir\u00e1 retornar a data e hoira do servidor, s\u00f3 que com uma diferen\u00e7a de 2 dias para frente(ex: hoje \u00e9 2006-10-07 ele ir\u00e1 retornar 2006-10-09), essa diferen\u00e7a pode ser negativa tamb\u00e9m, e o intervalo pode ser horas, minutos, segundos, dias, semanas, meses, anos, etc;<\/p>\n<p>Formatando datas com o DATE_FORMAT()<\/p>\n<p>Sintaxe:<br \/>DATE_FORMAT(campo, \u2018formato desejado\u2019)<\/p>\n<p>Especificador Descri\u00e7\u00e3o<br \/>%M Nome do m\u00eas (January..December)<br \/>%W Nome do dia da semana (Sunday..Saturday)<br \/>%D Dia do m\u00eas com o sufixo em Ingl\u00eas (1st, 2nd, 3rd, etc.)<br \/>%Y Ano, num\u00e9rico, com 4 d\u00edgitos<br \/>%y Ano, num\u00e9rico, com 2 d\u00edgitos<br \/>%a Nome do dia da semana abreviado (Sun..Sat)<br \/>%d Dia do m\u00eas, num\u00e9rico (00..31)<br \/>%e Dia do m\u00eas, num\u00e9rico (0..31)<br \/>%m M\u00eas, num\u00e9rico (01..12)<br \/>%c M\u00eas, num\u00e9rico (1..12)<br \/>%b Nome do m\u00eas, abreviado (Jan..Dec)<br \/>%j Dia do ano (001..366)<br \/>%H Hora (00..23)<br \/>%k Hora (0..23)<br \/>%h Hora (01..12)<br \/>%I Hora (01..12)<br \/>%l Hora (1..12)<br \/>%i Minutos, num\u00e9rico (00..59)<br \/>%r Hor\u00e1rio, 12 horas (hh:mm:ss [AP]M)<br \/>%T Hor\u00e1rio, 24 horas (hh:mm:ss)<br \/>%S Segundos (00..59)<br \/>%s Segundos (00..59)<br \/>%p AM ou PM<br \/>%w Dia da semana (0=Domingo..6=S\u00e1bado)<br \/>%U Semana (00..53), onde Domingo \u00e9 o primeiro dia da semana<br \/>%u Semana (00..53), onde Segunda \u00e9 o primeiro dia da semana<br \/>%% Caractere `%\u2019.<\/p>\n<p>Exemplos de uso:<\/p>\n<p>Lembrando sempre que o MySQL armazena as datas no formato aaaa-mm-dd<\/p>\n<p>Para selecionar a data no formato que usamos, ou de nossa necessidade:<\/p>\n<p>SELECT nome, DATE_FORMAT(data_nascimento, \u2018%d\/%m\/%Y\u2019) AS data<br \/>FROM funcionarios<br \/>Esse exemplo agora \u00e9 muio \u00fatil, eu sempre uso quando eu tenho um formul\u00e1rio que tem um campo de data e essa data temque ser pesquisada no MySQL, com ela eu evito de ficar transformando a data de dd\/mm\/aaaa para aaaa-mm-dd<\/p>\n<p>SELECT nome, departamento FROM funcion\u00e1rios<br \/>WHERE DATE_FORMAT(data_nascimento, \u2018%d\/%m\/%Y\u2019) = \u201822\/11\/1986\u2019<br \/>Fun\u00e7\u00e3o DATEDIFF<\/p>\n<p>Ela calcula a diferen\u00e7a em dias entre duas datas<\/p>\n<p>SELECT DATEDIFF(\u20192006-12-31\u2032, \u20182006-01-01\u2032) = 364<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Este artigo foi publicado no site na comunidade php5, Visa ajudar aos desenvolvedores a fazer as suas tarefas mais facilmente<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"colormag_page_container_layout":"default_layout","colormag_page_sidebar_layout":"default_layout"},"categories":[70,31],"tags":[],"_links":{"self":[{"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/posts\/152"}],"collection":[{"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/comments?post=152"}],"version-history":[{"count":0,"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/posts\/152\/revisions"}],"wp:attachment":[{"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/media?parent=152"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/categories?post=152"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helbertt.xyz\/site\/wp-json\/wp\/v2\/tags?post=152"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}