PplWare Mobile

Vamos aprender um pouco de MySQL…

                                    
                                

Este artigo tem mais de um ano


Autor: Pedro Pinto


  1. Paulo Ricardo Gonçalves Cunha says:

    Bom dia.

    Sim:

    UPDATE – UPDATE COLABORADORES SET NOME = ‘Paulo Cunha’ WHERE ID = ’10’
    DELETE – DELETE FROM COLABORADORES WHERE + CONDIÇÃO;
    SELECT – SELECT * FROM COLABORADORES

    , etc. etc.

    Bom posto!

  2. PedroT says:

    Gosto do facto de neste momento estar a fazer um projecto de SQL e de repente aparecer este post xD
    Embora saiba tudo o que já está aqui é uma boa sugestão para quem está a pensar entrar neste campo de base de dados.
    Força com isto! 😉

    PS: Expliquem um pouco o que é que consiste algumas keywords que foram postas.
    Por ex:
    primary key – serve para definir uma chave primária que identifica inequivocamente a tabela que se está a criar.
    not null – diz que aquele campo nunca pode ter valores nulos, ou seja, tem que ter sempre um valor.

    • Rui Costa says:

      PedroT

      A primary Key não serve para identificar inequivocamente a tabela que se está a criar.

      Irá garantir que determinado valor ou conjunto de valores não se irá repetir num ou mais campos da tabela.

      • lmx says:

        boas…
        …. AUTO_INCREMENT ,

        cmps

      • Luís Nabais says:

        Rui Costa, isso não é bem assim.
        O que referes é o parâmetro UNIQUE. Esse sim garante que não há repetições nos valores da coluna.
        Primary Key é isso e muito mais, pois, como foi dito acima correctamente pelo PedroT, identifica a inequivocamente a tabela.

        Com uma Primary Key podes fazer Foreign keys, por exemplo. Para quem não sabe, Foreign Keys são campos em tabelas que apontam para uma coluna que seja Primary key noutra tabela. Serve para fazer relações entre os elementos das tabelas.

        • Xuma says:

          Penso que é uma questão de Português. O que o Rui Costa diz é que a Primary key não identifica inequivocamente a TABELA. Primary key serve como identificação de cada registo, único (como uma constraint UNIQUE) e “melhora” a pesquisa na tabela sobre essa coluna (indices) … e outras coisas que não vamos entrar em pormenores.

        • lmx says:

          boas..
          defacto o unique garante isso, podes usar também o auto_increment(no caso que idealizei, inteiros sem nenhuma restrição), pois com ele também PODES garantir que estas a colocar tuplos com ids diferentes, dependendo da query de insert que fizeres…
          …no entanto, penso que possa ser perigoso, pois se na altura do insert inserires dados na coluna idColaborador…podes duplicar ids…acho eu?!
          sendo que o auto_increment o que faz é imediatamente antes de inserir incrementa o valor…se a seguir introduzires um numero na coluna que já exista fica duplicado…

          cmps

    • Pedro Pinto says:

      O Pplware não dorme 🙂

    • pixar says:

      Se me permites a correcção,
      “primary key – serve para definir uma chave primária que identifica inequivocamente a tabela que se está a criar.”

      não identifica inequivocamente a tabela, mas um registo na tabela.

  3. Rui Costa says:

    Pessoalmente não gosto da linha de comandos e trabalho em ambiente Windows utilizo um editor de Mysql (www.heidisql.com)

    È free, leve (3.3MB) e fácil de utilizar.

  4. Alex17 says:

    aí fica uma lista extensa de comandos mysql 🙂

    http://www.pantz.org/software/mysql/mysqlcommands.html

  5. Corvus says:

    Uma dica que fica para quem vai utilizar queries em software em vez de estar a trabalhar directamente no mysql: quando se faz um insert, usar os nomes dos campos. Não é obrigatório (como se pode ver no exemplo do artigo) mas assim a query irá funcionar sempre, mesmo que se altere a ordem dos campos da tabela ou se insira algum campo novo no meio dos já existentes. Usando o exemplo acima, seria assim:

    INSERT INTO COLABORADORES (idColaborador, NOME, MORADA) VALUES (10, ‘Pedro Pinto’, ‘Porto’);

    Por outro lado é possível usar apenas um INSERT para inserir vários registos:

    INSERT INTO COLABORADORES (idColaborador, NOME, MORADA) VALUES (10, ‘Pedro Pinto’, ‘Porto’), (20, ‘Marisa Pinto’, ‘Mealhada’), (30, ‘Vitor Martins’, ‘Coimbra’);

    • lmx says:

      penso que seria melhor não colocares valores na chave primaria e coloca-la como auto_increment…acho mais seguro visto que não existe unique…

      cmps

  6. Liquidz says:

    essencialmente utilizo uma ferramenta gráfica para fácil de administração do meu servidor mysql.

    https://www.mysql.com/products/workbench/

    outra solução é ter um servidor web activo também e instalar o phpmyadmin.

  7. Alex17 says:

    Status e show status dão sempre jeito também, nem que seja para ver se a base de dados “caiu” alguma vez, atraves do uptime

  8. Bom dia,

    Tenho algumas informações sobre MySQL neste blog abaixo:
    http://pessoalex.wordpress.com/mysql/

    Acredito que vão ter informações bem uteis sobre este SGBD.

  9. Henrique says:

    Tornou-se logo desinteressante quando abriste a linha de comandos.

    Isto e chover no molhado basta um pouco de pesquisa na net. E que tal um truques e dicas ou coisas novas e importantes, quem quer aprender mysql de certeza que nao vai ser no pplware.

  10. J.C.Lopes says:

    Estava mesmo a precisar era de um ferramente de administração free do PostgreSQL, e já agora de umas dicas esse SGBD.

    Já dei por lá umas bicadas mas não pesco nada daquilo.
    Estou habituado ao Microsoft SQLServer e Postgre é totalmente diferente.

    Já agora, malta Pro em SGBDs.
    Qual acham que é melhor, o MySQL ou o PostgreSQL?

    • Pedro Pinto says:

      Tenho ideia que é o PostgreSQL…mas bom bom é Oracle 🙂

      • José Maria Oliveira Simões says:

        Tem que se ter em atenção que existem varias versões do MySql.

        MySQL Community Edition
        MySQL Standard Edition
        MySQL Enterprise Edition
        MySQL Cluster Carrier Grade Edition
        MySQL Embedded (OEM/ISV)

        Contudo, a Oracle foi a minha escolha.

        Tem procedimentos e funções guardadas na base de dados, tem transacções, tem queryes com sub selects, primary Keys, foreign keys, check constraints, triggers, cursors, etc

    • lmx says:

      são conceitos diferentes…acho eu, que não conheço, mas por aquilo que me dizem, Postgresql é mais tolerante a falhas, mas é mais lenta que mysql…

      cmps

      • lmx says:

        no entanto se estiveres a fazer log das querys todas para o binlog, e se uma tabela crashar podes reparar a tabela em mysql….partindo do principio que estas a fazer log das querys…caso contrario fica-se a ver navios como é obvio…

        MariaDB é mais a frente pois permite usar motores xtradb
        que são baseados em innodb, mas que escalam melhor que innodb, ficando entre innodb e myisam…o que é muito bom visto poderes ter os benefícios de innodb, com a performance do myisam…mais ou menos nem é carne nem peixe, mas escala melhor.

        cmps

    • pixar says:

      A ideia que tenho é que para pequenos/médios volumes de dados, o Mysql é um pouco mais rápido.
      Para BD com maior volume de dados (10TB por ex.), o POSTGRE dá-se melhor.

      • lmx says:

        pois talvez…não uso de momento db’s maiores que ~17GB e nunca usei Postgre, mas a ideia que tenho é de que se a tua info for extremamente importante e a velocidade não é tudo, então use Postgre caso contrario Mysql.
        Da experiência que tenho posso dizer que podes aplicar mysql a qualquer caso, pois mesmo com as diversas tentativas de rebentar com a coisa feitas pelos developers…até hoje nunca fiquei na mão :), tenho redundância, e ja aconteceu pegar fogo a um Rack e limpar-me alguns 6 servidores dos quais 2-3 eram de bds e como estão distribuidas por diversos racks, só mesmo se queima-se o datacenter lol…

        cmps

        • pixar says:

          O que falei, foi do que li e não de experiência pessoal. Também nunca usei PostgreSQL e apenas o MySQL.
          Quase todas as BD que usei eram bem pequenas o que não deu para testar a veracidade da afirmação que fiz anteriormente. A ser verdade o que disse acima, isso significa que o MySQL serve em 99% das situações.

          • lmx says:

            boas…
            a minha percepção sobre Postgre também é baseada naquilo que li e ouvi.
            Não tenho nenhum termo de comparação a nível de recuperação em caso de catástrofe, por erro humano, ou por acidente…ou que seja… 😉
            Em relação ao mysql, acho-o seguro, é evidente que as boas praticas exigem redundância, além de replicação para outros servidores, e por esses motivos acho que podemos considerar que mysql pode ser usado em qualquer lado 😉

            cmps

  11. Xuma says:

    A primeira “dica” tem obviamente o texto errado. O comando deve ser : mysql -u root -p.

    Deviam corrigir, para os leigos.

  12. Raclima23 says:

    Gosto muito das vossas tutorias:

    linux para tótós
    Dicas do Microsoft Excel é ao Domingo…
    Asp.net
    PHP é a Quinta-Feira

    força pplware estou convosco todos os santos dias 🙂

  13. M.Manuelito says:

    Criar bases de dados MySql por linha de comandos não é coisa para mim 😉 No entanto trabalho bastante com Mysql, integrado no MS Access com uma performance bastante interessante!

    • lmx says:

      boas…
      É igual criar via cliente gráfico ou via consola…os comandos são os mesmos, é a mesma coisa, no entanto na consola obtens(se quiseres ) muito mais informação e controlo sobre a base de dados, no entanto para developers uma aplicação gráfica é o mais usado, os sysadmins é que como teem um controlo absoluto sobre os sistemas usam a consola pois precisam de mais controlo…
      Acho que é muito gratificante usar a consola 😉

      cmps

      • GM says:

        Gratificante, é, mas o tempo que perdes a escrever num bloco de notas ou mesmo directamente na linha, podes aproveitar para outras coisas no ambiente gráfico 🙂

        • pixar says:

          Perde-se tempo, mas se guardarmos os comandos em ficheiros, basta executá-los como se fosse um .bat do windows. Ou seja, apenas se perde tempo uma vez. Depois é só ajustar parâmetros, mas isso também teria de ser feito em ambiente gráfico.
          Penso que o trabalho em linhas de comandos, se bem organizado, é uma falsa questão.
          Por outro lado, para quem desenvolve aplicações web, não tem outro remédio senão escrever todos os comandos.

  14. Hugo says:

    Para quem quiser testar MySQL ou outro sistema de Base de Dados Online: http://sqlfiddle.com/.
    Alguns comandos interessantes:
    CREATE TABLE LIKE – Cria uma tabela exactamente igual a uma já existente.
    EXPLAIN – Quando usado antes de uma query SQL, mostra o passos para a execução da query. Muito útil para identificar problemas de performance, e indexs a serem usados.
    SHOW CREATE [TABLE|PROCEDURE|FUNCTION|TRIGGER|VIEW] – Mostra o SQL necessário para criar uma tabela, stored procedure, função, trigger ou view existente.

  15. André Flores says:

    Mas como chegar até aqui?
    Não falta um tutorial antes? Ou foi minha culpa :).
    É que realmente ando aqui a bulha com uma instalação do mysql :).

    Thanks

  16. Francisco says:

    nao é por nada mas isto é para aprender? é que em primeiro lugar:
    o codigo acima escrito nao funciona, nao sei se é por ter ja outras tabelas na db, mas quando faço o segundo codigo recebo a seguinte msg…
    ERROR 1046 (3D000): No database selected

    em segundo lugar, se isto é para iniciantes, que raio tao vcs todos prai a falar? xines? as msgs que aqui vejo é tudo xines, pois eu considero me um iniciante e nao percebi patavina das msgs…
    limitem se a dizer, se esta correto ou nao o codigo, quanto a novos comandos simplesmente comentem nos post s corretos e nao no primeiro post que supostamente é para iniciantes, ou ainda confundem mais o people…
    just saying…

Deixe um comentário

O seu endereço de email não será publicado.

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

Aviso: Todo e qualquer texto publicado na internet através deste sistema não reflete, necessariamente, a opinião deste site ou do(s) seu(s) autor(es). Os comentários publicados através deste sistema são de exclusiva e integral responsabilidade e autoria dos leitores que dele fizerem uso. A administração deste site reserva-se, desde já, no direito de excluir comentários e textos que julgar ofensivos, difamatórios, caluniosos, preconceituosos ou de alguma forma prejudiciais a terceiros. Textos de caráter promocional ou inseridos no sistema sem a devida identificação do seu autor (nome completo e endereço válido de email) também poderão ser excluídos.