Vamos dar uns toques de SQL? X

9 Comentários

Por Pedro Gaspar para o PPLWARE

Ao longo de 10 semana temos apresentado alguns conceitos e funções sobre a linguagem SQL (ver artigos relacionados). A discussão do tema por parte dos nossos leitores tem sido fantástica e a partilha de conhecimento e experiência de cada um tem contribuído para um melhor uso de determinadas funções.

Esta semana vamos aprofundar um pouco mais a manipulação de strings em SQL.sql_00

Para apresentar os exemplos vamos utilizar a nossa habitual tabela tbl_pplware com os seguintes dados:

sql_01

Por vezes é-nos útil manipular as strigs que queremos obter, seja separar os espaços, remover um determinado caracter que nos seja inútil, ou outra situação qualquer. A linguagem SQL tem algumas funções interessantes para manipulação de strings.

Função SUBSTRING_INDEX

Neste exemplo vamos utilizar a função SUBSTRING_INDEX
Esta função permite-nos dividir uma string em varias e selecionar apenas a parte que nos interessa.

Como usar?

SELECT SUBSTRING_INDEX(‘www.pplware.com’, ‘.’, -2)

Resultado

sql_02

Objectivo: Seleccionar o primeiro e ultimo nome de todas as pessoas

Query

SELECT SUBSTRING_INDEX( nome, ' ', 1 ) AS pnome, SUBSTRING_INDEX( nome, ' ', -1 ) AS unome FROM `tbl_pplware`

Resultado:

sql_03

Como podem verificar o Vítor tem o mesmo resultado tanto no pnome como no unome, isto deve-se ao facto de ele não ter ultimo nome, ou seja, o delimitador que neste caso é ‘ ’ (um espaço) não existe.

Função REPLACE

Imaginemos que necessitamos de substituir um carácter ou uma substring dentro de uma string, nesse caso vamos utilizar a função REPLACE

Sintaxe

SELECT REPLACE(‘string princial’, ‘string a procurar’, ‘string que ira substituir’)

Objectivo: Remover o espaço entre no nome das pessoas

Query

SELECT REPLACE( nome, ' ', '' )
FROM tbl_pplware

Resultado

sql_04

Função LOWER e UPPER

Por vezes necessitamos de obter os nossos resultados em letra pequena ou letra grande, nesse caso utilizamos as funções LOWER para converter a nossa string toda para letra pequena, ou a função UPPER para convertermos a string toda para letra grande

Objectivo: Converter o nome das pessoas todo para letra grande

Query:

SELECT UPPER( nome )
FROM `tbl_pplware`

Resultado

sql_05

Função CONCAT

E se necessitar-mos de unir strings ? Nesse caso utilizamos a função CONCAT.

Sintaxe

SELECT CONCAT(string1’, ‘string2, ‘string3)

Objectivo: Criar um email para as pessoas, sendo que no nome não poderão existir espaços e os mesmos serão substituídos por pontos, o nome será todo escrito em letra pequena e no fim sera adicionado a string @pplware.com

Query

SELECT CONCAT( REPLACE( LOWER( nome ) , ' ', '.' ) , '@pplware.com' ) AS email
FROM tbl_pplware

Resultado:

sql_06

Esta semana ficamos por aqui. Esperamos que tenham gostado do tema do artigo de hoje e no caso de conhecerem mais funções não se esqueçam de partilhar connosco. Bom fim de semana!

Partilhar:
Tags:

Comentários

9

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Fontes
    Fontes

    Boas :p

    Tenho uma duvida: nao ha uma funçao do genero contains?

    Seria algo bastante pratico a nivel de tratamento de string para fazer pesquisas.

    1. Avatar de NoSila
      NoSila

      Para tal utilizas o LIKE no WHERE. O LIKE tem os wildcards % para strings e _ para apenas um caracter.

      ex:

      Listagem de informação dos utilizadores que tenham ‘Pedro’ no seu primeiro nome.

      SELECT *
      FROM tbl_pplware
      WHERE Nome LIKE ‘Pedro%’;

      Para uma melhor explicação sugiro que dês uma vista de olhos nos tutoriais da W3.

      http://www.w3schools.com/sql/sql_like.asp

      1. Avatar de Fontes
        Fontes

        Obrigado :p

  2. Avatar de Jefferson Licá
    Jefferson Licá

    Como sempre o Pplware se destaca com mais este Vamos dar uns toques de SQL?
    se estivesse vindo antes, eu teria economizado alguns trocados com meu curso de SQL, pois este está se saindo mais proveitoso que o proprio curso.
    Abraço a todos!!!

  3. Avatar de Nazgul
    Nazgul

    Muito bom o artigo! 🙂
    Apanhei um erro: “SELECT REPLACE(‘string princial’, ‘string a procurar’, ‘string que ira substituir’)”

    Não será Principal?

  4. Avatar de Trambulhao
    Trambulhao

    Mais um bom artigo sobre SQL..

  5. Avatar de Gabriel Queiroz

    boas explicaçoes exemplos muito uteis, quem sabe ais pra frente podia esplicar criaççao de triggers q se faz muito util, para não precisar executar tudo na aplicação cliente, deixando o maior processamento no servidor

  6. Avatar de jedi
    jedi

    isto é mysql ou sql para sqlserver(da microsoft)?

  7. Avatar de Jorge
    Jorge

    (MSSql)
    Só porque tive alguns problemas quando comparava strings entre duas bases de dados com collations diferentes. É útil e talvez um pouco de mais para o âmbito destes artigos mas aqui vai

    SELECT *
    FROM Tabela1 INNER JOIN Tabela2
    WHERE Tabela1.Campo COLLATE DATABASE_DEFAULT = Tabela2.Campo COLLATE DATABASE_DEFAULT

    Agradecimentos a
    http://blog.sqlauthority.com/