Skip to content

Compartilhando e documentando meus aprendizados sobre MySQL por aqui! Repositório inspirado pela Jornada JavaScript.

License

Notifications You must be signed in to change notification settings

nan505/Jornada-MySQL

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 

Repository files navigation

Jornada MySQL mysql logo


Sobre mim e a Jornada MySQL:

Prazer, podem me chamar de Nan! Atualmente estou cursando T.I. e decidi compartilhar e "documentar" meus aprendizados sobre MySQL por meio desse repositório! Esse projeto foi fortemente inspirado pela Jornada JavaScript, do meu extremamente talentoso amigo e colega de curso: João Gomes!

A Jornada MySQL está ativamente recebendo novas atualizações, modificações e correções ao longo do tempo para garantir que todos os conteúdos apresentados sejam fáceis e simples de se entender, mas eficientes e práticos para serem consultados.

Important

  • Ao longo da jornada, estarei utilizando o realce de sintaxe do SQL nos blocos de código para facilitar a visualização de certos comandos, declarações, tabelas, etc.
  • A "Jornada MySQL" foi criada para auxiliar e documentar apenas o meu aprendizado pessoal sobre o sistema, e não deve ser vista como uma substituição e/ou alternativa das documentações oficiais. Consulte a documentação oficial do MySQL por aqui.

Tabela de conteúdos (Clique para mostrar)

Introdução

XAMPP

Esse repositório foi inicialmente criado e planejado com a utilização da compilação de softwares livres XAMPP como base, então resultados e algumas instruções podem possivelmente variar.

Iniciando o MySQL

  • Abra o XAMPP Control Panel, procure pelo módulo "MySQL" e clique em "Start". Após isso, clique no botão "Shell" para abrir o CMD;
  • Na recém aberta janela do CMD, insira o seguinte código:
mysql -h localhost -u root -p

Note

  • Ao inserir esse comando, o CMD solicitará uma senha (Enter password: );
  • Por padrão, basta apenas apertar a tecla "ENTER" para ter acesso ao MySQL (MariaDB).

Sintaxe Básica e Boas Práticas

Sintaxe básica:

  • Todos os comandos precisam ser finalizados com ponto e vírgula (;);

  • Ao inserir uma linha de comando incompleta, o CMD exibirá uma setinha (->):
    Ela serve para inserir o restante do código, sem a necessidade de reescrevê-lo;

  • Ao finalizar uma linha de código com erro(s), uma mensagem de erro será exibida no CMD:
    Caso um ou vários erros sejam exibidos, será necessário reescrever todo o código novamente, de forma correta;

  • Caracteres especiais não são reconhecidos por padrão e serão exibidos como "?", mas podem ser habilitados!

Boas práticas:

  • Comandos do MySQL sempre em letras maiúsculas (UPPERCASE);
  • Nomes atribuídos ao banco de dados, tabelas, tipos de dados, etc. sempre em letras minúsculas (lowercase).

Ferramentas Recomendadas

DB Designer e dbdiagram.io (Sites)

Para criar diagramas entidade-relacionamento (DER) do banco de dados MySQL, estarei inicialmente utilizando o site DB Designer por sua intuitividade, mas o dbdiagram.io é a opção mais recomendada.

MySQL (Extensão do VS Code)

Facilitando o gerenciamento do banco de dados por meio de uma extensão para o Visual Studio Code distribuída pela Database Client, o MySQL é uma ferramenta prática e conveniente, mas necessita de alguns passos e configurações para o seu funcionamento adequado:

  • Após instalar a extensão, certifique-se de que o banco de dados MySQL está inicializado por meio do XAMPP Control Panel;
  • Dois novos ícones devem aparecer na barra lateral do VS Code, clique no ícone de cilindro "Database";
  • Na seção Database, clique em "Create Connection" e copie as seguintes configurações:

    • Server Type: MySQL
    • Host: localhost
    • Port: 3306
    • Username: root

  • Agora, clique em "Connect" e a extensão deve estar pronta para gerenciar o banco de dados!

Warning

A documentação da Jornada MySQL não foi pensada e/ou adaptada para a extensão "MySQL", do Visual Studio Code. Todos os comandos ainda podem ser realizados por meio da extensão, mas por sua conta e risco.

Visualizando, criando e utilizando um banco de dados

PS: Estarei utilizando o nome "db_github" como exemplo, mas pode ser qualquer nome!

Comando para visualizar os bancos de dados já criados:

SHOW DATABASES;

Comando para criar um novo banco de dados:

CREATE DATABASE db_github;

Comando para utilizar o banco de dados desejado:

USE db_github;

Tipos de dados

Até o momento, utilizei os seguintes tipos de dados:

Numéricos (Numerics):

  • INTEGER() ou INT()
  • Utilizado para valores exatos e inteiros, declarado em conjunto de um limite máximo de casas numéricas dentro do parênteses;
    Exemplo: INT(2) - Limita a quantidade de casas numéricas para 2, então 99 seria aceito, mas 100 não.

  • DECIMAL()
  • Utilizado para valores quebrados (números com vírgula), declarado em conjunto de um limite máximo de casas numéricas dentro dos parênteses. O primeiro valor declarado dentro do parênteses será o limite de casas númericas antes e após a vírgula, e o segundo será o limite de casas depois da vírgula;
    Exemplo: DECIMAL(4,2) - Limita a quantidade de casas numéricas antes e após a vírgula para 4, enquanto as casas após a vírgula serão limitadas para 2.

Note

Ao inserir valores do tipo númerico, não os colocar dentro de aspas.

Cadeia de caracteres (String):

  • VARCHAR()
  • Utilizado para armazenar uma sequência de caracteres com tamanhos variados, declarado em conjunto de um limite de caracteres dentro do parênteses;
    Exemplo: VARCHAR(50) - Limita a quantidade máxima de caracteres para 50;

Note

Ao inserir valores do tipo string, sempre os coloque dentro de aspas ("").

Temporais (Date and Time):

  • DATE
  • Um tipo de dado para valores de datas no formato internacional (YYYY-MM-DD);
    Ao inserir valores do tipo DATE, sempre os coloque dentro de aspas (""), ou serão exibidos como 0000-00-00.

Visualizando, criando e descrevendo uma tabela

PS: Estarei simplificando a descrição de cada comando para não precisar repetir a palavra "comando" toda hora!

PPS: Estarei utilizando o nome "tb_pessoas" como exemplo, mas pode ser qualquer nome!

Visualizar as tabelas já criadas no banco de dados:

SHOW TABLES;

Criar uma nova tabela:

Important

  • Ao criar uma nova tabela, ao menos uma coluna também precisa ser criada;
  • Os nomes e tipos de dados das colunas devem ser todos declarados dentro de parênteses ();
  • Para criar várias colunas no mesmo comando, separe-as com vírgulas (,).
CREATE TABLE tb_pessoas(exemplo_nome VARCHAR(50), exemplo_idade INT(3));

Descrever as informações da tabela (+ Exemplo visual):

DESC tb_pessoas;
+---------------+-------------+------+-----+---------+-------+
| Field         | Type        | Null | Key | Default | Extra |
+---------------+-------------+------+-----+---------+-------+
| exemplo_nome  | varchar(50) | YES  |     | NULL    |       |
| exemplo_idade | int(3)      | YES  |     | NULL    |       |
+---------------+-------------+------+-----+---------+-------+

Warning

A tabela acima não deve ser copiada, e serve apenas para visualizar como seria o resultado do comando "DESC"!

Inserindo e selecionando valores de uma tabela

Inserir novos valores em uma tabela:

Important

  • Para inserir um novo valor (linha) em uma tabela, é necessário atribuí-lo a pelo menos uma coluna;
  • Exemplo: Valores que representam uma pessoa seriam atribuídos às colunas "nome" e "idade";
  • Os valores devem ser separados por vírgula e colocados em ordem, como no exemplo abaixo:
INSERT INTO tb_pessoas (exemplo_nome, exemplo_idade) VALUE ("Nan", 19);
  • Para inserirmos mais de um valor em uma tabela no mesmo comando, utilizamos a declaração "VALUES", como no exemplo abaixo:
INSERT INTO tb_pessoas (exemplo_nome, exemplo_idade) VALUES ("Nan", 19), ("Nana", 20);

Selecionando valores de uma tabela:

Tip

  • O comando "SELECT" serve para visualizar os valores de uma tabela;
  • Pode ser usado para visualizar todos os valores inseridos, ou valores específicos;

Selecionar todos os valores da tabela:

SELECT * FROM tb_pessoas;

Selecionar valores específicos de uma tabela pelas colunas:

  • Selecionar todos os valores da tabela "tb_pessoas" que foram atribuídos na coluna "exemplo_nome":
SELECT exemplo_nome FROM tb_pessoas;

Selecionar valores específicos de uma tabela pelas suas atribuições:

  • Selecionar todos os valores da tabela que possuem a coluna "exemplo_nome" atribuída como "Nan":
SELECT * FROM tb_pessoas WHERE exemplo_nome = “Nan”;

Selecionar valores de uma tabela de forma ordenada:

Para selecionarmos os valores de uma tabela e os visualizarmos de forma ordenada, utilizamos a condição "ORDER BY" em conjunto das palavras-chaves "ASC" (Padrão ao executar o "ORDER BY", ordem crescente) e "DESC" (Ordem decrescente) da seguinte forma:

  • Selecionar todos os valores da tabela e organizá-los por ordem alfabética crescente das atribuições na coluna "exemplo_nome":
SELECT * FROM tb_pessoas ORDER BY exemplo_nome ASC;
  • Selecionar todos os valores da tabela e organizá-los por ordem numérica decrescente das atribuições na coluna "exemplo_idade":
SELECT * FROM tb_pessoas ORDER BY exemplo_idade DESC;

Incremento Automático (AUTO_INCREMENT)

Introdução:

O incremento automático possui a função de atribuir valores únicos, em ordem crescente, a uma determinada coluna de forma automática, sem a necessidade preenchê-la manualmente. É normalmente utilizado na criação de IDs únicos em uma tabela, assim diferenciando seus valores de forma exata e precisa.

Requerimentos:

Para a declaração do incremento automático, primeiro precisamos cumprir os seguintes requerimentos:

Não Nulo (NOT NULL):

  • Por padrão, todos os tipos de dados declarados podem armazenar valores nulos, ou seja, sem um valor especificado;
  • Ao declarar um tipo de dado (coluna) como "NOT NULL", todos os valores inseridos na tabela precisam de um valor definido na coluna especificada.

Chave Primária (PRIMARY KEY):

  • A chave primária é declarada em uma coluna de importância vital para a tabela;
  • Sua função é otimizar e melhorar a performance da coluna, geralmente a de IDs únicos.

Criando uma tabela com coluna de incremento automático:

Todos os comandos apresentados nessa seção serão utilizados em conjunto do "AUTO_INCREMENT" para declararmos uma coluna, ou seja:

  • Uma coluna que não poderá armazenar valores nulos (NOT NULL);
  • Estabelecida como chave primária (PRIMARY KEY).

Note

  • Não é necessário criar uma nova tabela para definir uma coluna com essas características;
  • Esse é apenas um exemplo, e a forma que eu inicialmente aprendi!

Criar uma tabela com coluna de incremento automático:

CREATE TABLE tb_exemplo(id_unico INT(4) NOT NULL PRIMARY KEY AUTO_INCREMENT);

Important

Todos os comandos são separados apenas por espaço, sem o uso de vírgula (,).

Alterar Tabela (ALTER TABLE)

Introdução:

A declaração "ALTER TABLE" possui a função de modificar a estrutura de uma tabela para diversas finalidades. Nos exemplos a seguir, estaremos a utilizando para a adicionarmos e removermos colunas de uma tabela!

Adicionar nova coluna em uma tabela:

  • Alterar a tabela "tb_exemplo" para adicionar a coluna "exemplo_sobrenome":
ALTER TABLE tb_exemplo ADD exemplo_sobrenome VARCHAR(50);

Deletar coluna existente de uma tabela:

  • Alterar a tabela "tb_exemplo" para remover a coluna "exemplo_sobrenome":
ALTER TABLE tb_exemplo DROP COLUMN exemplo_sobrenome;

Mudando o nome e tipo de uma coluna na tabela:

  • Alterar a tabela "tb_exemplo" para modificar a coluna "coluna_antiga", mudando seu nome para "coluna_nova" e adicionando o tipo de dado "VARCHAR":
ALTER TABLE tb_exemplo CHANGE coluna_antiga coluna_nova VARCHAR(50);

Tip

  • A condição "CHANGE" é extremamente útil para alterar o limite de caracteres ou casas numéricas de uma coluna;
  • Exemplo: Modificar o tipo de dado e limite de caracteres "VARCHAR(20)" de uma coluna para "VARCHAR(50)".

Atualizando as informações de uma tabela (UPDATE)

A declaração "UPDATE" possui a finalidade de atualizar as informações de uma tabela, podendo ser utilizada tanto para modificar informações já existentes em colunas, quanto para adicionar novas informações nas colunas da tabela. Para utilizarmos o "UPDATE", é recomendado que a tabela possua uma coluna de IDs únicos para diferenciar os valores que serão modificados.

Condições:

O "UPDATE" possui algumas condições para ser executado corretamente, e é recomendado que as seguintes condições sejam cumpridas:

Definir (SET):

  • A condição "SET" define a coluna que será alterada, e qual será a nova informação adicionada;
  • Até onde eu sei, é uma condição obrigatória.

Onde (WHERE):

  • A condição "WHERE" indica as condições que as linhas precisam cumprir para serem selecionadas;
  • Ela indica os requerimentos que as linhas precisam possuir para serem atualizadas;
  • O requerimento geralmente será o valor do ID único da linha desejada;

Important

O "WHERE" não é uma condição obrigatória, mas de extrema importância para a utilização segura do "UPDATE".

Atualizar as informações de uma tabela:

  • Atualizar a tabela "tb_exemplo", definindo a informação presente na coluna "exemplo_nomes" como "Nan" onde o "id_unico" da linha que será afetada possui o valor "123":
UPDATE tb_exemplo SET exemplo_nome = "Nan" WHERE id_unico = 123;

About

Compartilhando e documentando meus aprendizados sobre MySQL por aqui! Repositório inspirado pela Jornada JavaScript.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published