Vamos aprender um pouco de MySQL…

54 Comentários

Como sabemos, as bases de dados são normalmente o repositório de toda a informação de muitas aplicações e sites. O MySQL é provavelmente o motor de base de dados mais usada em todo o  mundo, dando suporte aos mais diversos serviços. Tudo o que é plataformas open source como é o caso do wordpress, Joomla ou Drupal, recorrem ao MySQL como base de dados. Hoje deixamos aqui algumas dicas para quem se quiser iniciar no mundo do MySQL via linha de comandos.

mysql

O MySQL é multiplataforma, estando disponível para os principais sistemas operativos. Durante a instalação, o utilizador poderá definir uma password para acesso ao MySQL. Vamos então considerar que vamos criar a base de base com o nome Pplware e que servirá apenas para registar o nome e morada dos colaboradores.

Dica 1 – Aceder ao MySQL

Para aceder ao MySQL, devem usar via linha de comandos/terminal e inserir o seguinte comando (Nota: será solicitado a password de acesso ao MySQL uma vez que temos o argumento p:

mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 13761 
Server version: 5.0.77 Source distribution
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>

Dica 2 – Criar uma base de dados com o nome dbPplware

mysql> CREATE DATABASE dbPplware; 
Query OK, 1 row affected (0.00 sec)

Dica 3 – Criação da estrutura da base de dados

Como referido, vamos criar apenas uma tabela para registar o idColaborador, NOME e MORADA

|idColaborador|NOME|Morada

create table COLABORADORES
(
idColaborador int NOT NULL,
NOME varchar(15) NOT NULL,
MORADA varchar(100) NOT NULL,
primary key (idColaborador )
);

Dica 4 – Ver estrutura da tabela criada (tabela Colaboradores)

mysql> desc  COLABORADORES;

desc

Dica 5 – Carregar dados usando a instrução INSERT

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

Dica 6 – Ver dados inseridos na tabela COLABORADORES

table

Dica 7 – Eliminar a base de dados dbPplware

mysql> drop database dbPplware; 
Query OK, 1 row affected (0.00 sec)

Estas são algumas dicas básicas para quem se inicia no MySQL. De referir que algumas destas dicas são importantíssimas , por exemplo, para quem pretende instalar plataformas OpenSource onde necessita inicialmente de criar pelo menos uma base de dados.

Conhecem outros comandos que possam ser interessante e uteis?

 

Partilhar:
Tags:

Comentários

54

Deixe um comentário

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

  1. Avatar de Paulo Ricardo Gonçalves Cunha
    Paulo Ricardo Gonçalves Cunha

    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. Avatar de PedroT
    PedroT

    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.

    1. Avatar de Rui Costa

      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.

      1. Avatar de lmx
        lmx

        boas…
        …. AUTO_INCREMENT ,

        cmps

      2. Avatar de Luís Nabais

        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.

        1. Avatar de Xuma
          Xuma

          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.

        2. Avatar de lmx
          lmx

          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

    2. Avatar de Pedro Pinto

      O Pplware não dorme 🙂

    3. Avatar de pixar
      pixar

      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. Avatar de Rui Costa

    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.

    1. Avatar de João Campos
      João Campos

      Uso-o para aceder ao MS SQL Server. Grande ferramenta.

    2. Avatar de jaime sousa

      Um ambiente muito bom para trabalhar com mysql é o MYSQL Workbench

  4. Avatar de Alex17
    Alex17

    aí fica uma lista extensa de comandos mysql 🙂

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

    1. Avatar de Francisco
      Francisco

      era mesmo o que estava a procura, afinal de contas la aparece no meio disto tudo uma msg em condiçoes 😉
      obrigado pelo link, ai ja da para começar a aprender kk coisinha 😉

  5. Avatar de Corvus
    Corvus

    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’);

    1. Avatar de lmx
      lmx

      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. Avatar de Liquidz
    Liquidz

    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.

    1. Avatar de Corvus
      Corvus

      O MySql Workbench é uma maravilha, só aconselho é a se ir gravando sempre os projectos em cada alteração pois tem tendencia a encravar ou estourar de vez em quando 😉

      1. Avatar de António

        Não considero que seja assim tão grande maravilha, para mim tem um se não…resoluções inferiores a 800×600, deixas de ver o quer que seja.

    2. Avatar de Alex17
      Alex17

      também uso esse e também tens o MySQLAdministrator

      1. Avatar de Liquidz
        Liquidz

        esse penso que vai ser descontinuado. Mas também da jeito sometimes 😉

    3. Avatar de lmx
      lmx

      boas…
      nada melhor que a consola…
      mysql -u root -pxpto
      show databases;
      🙂

      cmps

      1. Avatar de Liquidz
        Liquidz

        sim a consola resolve se estiveres a interagir com servidores sem ambiente gráfico 😉

  7. Avatar de Alex17
    Alex17

    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. Avatar de Emerson S. Gaudencio

    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. Avatar de Henrique
    Henrique

    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.

    1. Avatar de Pedro Pinto

      Boas Henrique,
      Se ja sabes, deixo os outros aprenderem…já agora queres escrever um artigo sobre computação quântica?

      1. Avatar de pixar
    2. Avatar de lmx
      lmx

      boas…
      desinteressante porquê?
      se ja sabes deixa os outros aprenderem…o melhor partido de uma bd tira-se na consola e não em aplicações graficas 😉

      cmps

    3. Avatar de Alexandre Pinto
      Alexandre Pinto

      Mysql é por linha de comandos.
      Se vais usar um interface qualquer em que só precisas de carregar em botões, estás a aprender a usar um interface e nao mysql 🙂

      1. Avatar de lmx
        lmx

        completamente, e a noção que tens sobre o controlo da bd é pouco ou nenhum.

        cmps

  10. Avatar de J.C.Lopes
    J.C.Lopes

    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?

    1. Avatar de Pedro Pinto

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

      1. Avatar de José Maria Oliveira Simões
        José Maria Oliveira Simões

        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

        1. Avatar de pixar
          pixar

          O MySQL tem tudo isso também…

    2. Avatar de lmx
      lmx

      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

      1. Avatar de lmx
        lmx

        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

    3. Avatar de pixar
      pixar

      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.

      1. Avatar de lmx
        lmx

        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

        1. Avatar de pixar
          pixar

          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.

          1. Avatar de lmx
            lmx

            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. Avatar de Xuma
    Xuma

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

    Deviam corrigir, para os leigos.

  12. Avatar de Raclima23
    Raclima23

    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. Avatar de M.Manuelito
    M.Manuelito

    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!

    1. Avatar de lmx
      lmx

      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

      1. Avatar de GM
        GM

        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 🙂

        1. Avatar de pixar
          pixar

          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. Avatar de Hugo

    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. Avatar de André Flores
    André Flores

    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. Avatar de Francisco
    Francisco

    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…