Apesar do advento dos bancos de dados NoSQL modernos, como MongoDB, Firebase e Redis nos últimos anos, os bancos de dados SQL ainda são muito populares entre os desenvolvedores.
SQL (linguagem de consulta estruturada) é a linguagem usada para interagir com dados em uma ampla variedade de bancos de dados, incluindo os populares como MySQL, PostgreSQL, Oracle e MS SQL Server.
Neste artigo, você aprenderá tudo o que precisa saber para começar a usar o MySQL, um banco de dados de código aberto que alimenta sistemas de gerenciamento de conteúdo como WordPress, plataformas de comércio eletrônico como Shopify e plataformas de mídia social como Twitter.
Você aprenderá como funciona o MySQL, bancos de dados relacionais e alguns de seus principais conceitos, como instalar e interagir com o banco de dados MySQL usando a linha de comando e a sintaxe SQL moderna para criar, ler, atualizar e excluir dados no MySQL.
Noções básicas sobre mapeadores relacionais de objetos (ORMs)
A maioria dos desenvolvedores que usam bancos de dados relacionais não escreve SQL bruto. Mais frequentemente, eles usam bibliotecas que executam mapeamento objeto-relacional ou ORM.
Essas bibliotecas basicamente fazem com que suas tabelas de banco de dados apareçam como objetos no lado do servidor do seu site, para que você possa usar qualquer linguagem de programação orientada a objetos de sua escolha para manipular dados facilmente.
Exemplos de ORMs são Sequelize (JavaScript), Eloquent (Laravel), SQLAlchemy (Python) e Active Record (Ruby on Rails).
Os ORMs dispensam a necessidade de escrever código SQL bruto. Em vez disso, você emprega seu conhecimento de programação orientada a objetos para criar, ler, atualizar e excluir dados no banco de dados SQL. Os ORMs tornam mais fácil e intuitivo o uso de bancos de dados relacionais.
Sistemas de gerenciamento de banco de dados relacional (RDMS)
Em essência, um sistema de gerenciamento de banco de dados relacional é composto de dois componentes principais: o banco de dados e a linguagem de consulta.
O próprio banco de dados é simplesmente uma coleção de tabelas. Em cada tabela, você tem seus dados reais organizados em colunas e linhas, idêntico a uma planilha. As tabelas em um banco de dados relacional podem ser vinculadas — ou relacionadas — com base em dados comuns a cada uma delas.
A linguagem de consulta é usada para manipular e ler dados no banco de dados. Para a maioria dos bancos de dados relacionais, a linguagem de consulta usada para manipular dados é uma variação do SQL.
Alguns conceitos-chave em bancos de dados SQL
Se você quiser aprender a usar o MySQL, vamos ter que passar primeiro por alguns conceitos básicos para explicar os seguintes conceitos de banco de dados SQL de forma visual, vou fazer uso de uma ferramenta de visualização de banco de dados chamada DrawSQLName. Primeiro, veremos esquemas e tipos de dados.
Esquemas e tipos de dados
Você pode pensar em um esquema como um projeto que define a estrutura geral de uma tabela e seu relacionamento com outras tabelas.
Considere o seguinte esquema usuários tabela por exemplo:
Na imagem da tabela acima, você notará que cada linha é um dicionário, onde a chave representa uma coluna no banco de dados e o valor representa o tipo de dado que pode ser armazenado ali.
Existem muitos tipos de dados no MySQL, e os tipos de dados variam em diferentes bancos de dados SQL.
Você também notará que o id
key, que aceita valores inteiros, também tem uma chave na frente dela. Isso indica que id
é definido com um restrição de chave primária.
Portanto, o valor de id
em cada coluna não pode ser nulo e deve ser exclusivo. Como resultado, dois ou mais usuários nunca podem compartilhar a mesma chave primária e cada linha pode ser identificada por sua chave primária.
Juntas, essas regras constituem o esquema para o usuários tabela.
Vamos nos aprofundar nas restrições em bancos de dados MySQL.
Restrições
Anteriormente, vimos a restrição de chave primária, que garante que o valor de uma chave especificada seja exclusivo para cada coluna da tabela.
No MySQL, as restrições são regras que permitem ou restringem quais valores serão armazenados na tabela. Eles ajudam a limitar o tipo de dados que serão inseridos na tabela, garantindo a precisão e integridade dos dados dentro da tabela.
As seguintes restrições são comumente usadas no MySQL:
-
NOT NULL
: garante que uma coluna não pode ter um valor NULL -
UNIQUE
: garante que todos os valores em uma coluna sejam diferentes uns dos outros -
PRIMARY KEY
: uma combinação de NOT NULL e UNIQUE – identifica exclusivamente cada linha em uma tabela -
FOREIGN KEY
: usado para ligar duas tabelas juntas -
CREATE INDEX
: usado para criar e recuperar dados do banco de dados muito rapidamente -
CHECK
: garante que os valores em uma coluna satisfaçam uma condição especificada -
DEFAULT
: define um valor padrão para uma coluna se nenhum valor for especificado
Normalização do banco de dados
Para adicionar mais contexto, vamos supor que o usuários tabela serve para armazenar os usuários cadastrados em um site de compras online.
Normalmente, no banco de dados de um site de compras on-line, deve haver um produtos mesa e uma carrinhos tabela. produtos conterá todos os produtos disponíveis para o usuário, e carrinhos conterá os itens específicos que um determinado usuário pretende comprar, juntamente com a quantidade de cada item.
Todas as tabelas criadas até agora são as seguintes:
Todas essas tabelas são entidades exclusivas. Isso significa que o carrinhos tabela, por exemplo, não precisa armazenar nenhuma informação sobre o usuário.
Tecnicamente, nada nos impede de mesclar os dados dos carrinhos no usuários tabela. Afinal, ambos os conjuntos de informações estão relacionados entre si (um usuário possui um carrinho). No entanto, essa abordagem acabará levando a tabelas congestionadas que podem ser bastante difíceis de gerenciar.
Em vez disso, adotamos uma abordagem mais sustentável, criando um carrinhos para armazenar todos os dados relacionados ao carrinho. Em seguida, criamos uma referência para as outras tabelas colocando as chaves estrangeiras user_id
e product_id
no carrinhos tabela.
Dessa forma, os carrinhos podem acessar qualquer informação do usuário proprietário do carrinho e dos produtos presentes no carrinho, apesar de não ter nenhuma dessas informações armazenadas fisicamente nele.
Instalando e aprendendo a usar o MySQL
Agora que sabemos um pouco sobre o MySQL e os servidores MySQL em um nível superior, vamos colocar a mão na massa instalando o MySQL em nosso sistema.
Para instalar o MySQL em seu sistema, vá para a página MySQL Community Downloads e baixe o instalador para MySQL.
Após a conclusão do download, execute o instalador e conclua o assistente de configuração para instalar o MySQL.
Ao escolher um tipo de configuração, certifique-se de incluir o produto do servidor MySQL. Eu recomendo ir com o Padrão do desenvolvedor opção.
Durante o processo de configuração para começar a usar o MySQL, você será solicitado a criar um nome de usuário e uma senha. Lembre-se disso porque você precisará deles mais tarde para se conectar ao banco de dados.
Na instalação bem-sucedida, você deve ter acesso aos comandos do servidor MySQL na linha de comando.
Para usar o MySQL a partir da linha de comando, no entanto, primeiro você precisará se autenticar. Execute o seguinte comando e preencha seu nome de usuário no espaço reservado:
mysql -u-p
Você será solicitado a inserir sua senha de administrador e, se ambos os detalhes estiverem corretos, você receberá permissão para acessar o MySQL a partir da linha de comando.
Lembre-se de que o nome de usuário padrão do MySQL é raize a senha está vazia por padrão.
Como o MySQL funciona com operações SQL comuns?
Criando um servidor e banco de dados MySQL
Para criar um banco de dados no MySQL, usamos o CREATE DATABASE
declaração seguida pelo nome do banco de dados:
CREATE DATABASE shopping_site;
Uma declaração é um código que diz ao sistema para fazer algo. As instruções SQL sempre terminam com um ponto e vírgula. As palavras em maiúsculas são palavras-chave SQL reservadas que o SQL interpretará para fazer algo.
A execução do comando acima criará um banco de dados vazio chamado shopping_site em MySQL.
Para visualizar todos os bancos de dados presentes em sua instância MySQL, execute SHOW DATABASE
.
Criando uma tabela em um banco de dados
Para criar uma tabela em seu novo banco de dados, use o CREATE TABLE
declaração seguida do nome da tabela e um parêntese contendo a lista de colunas que queremos incluir nesta tabela:
CREATE TABLE users( id INT PRIMARY KEY AUTO_INCREMENT, first_name VARCHAR(255), last_name VARCHAR(255), email VARCHAR(255) UNIQUE NOT NULL, password VARCHAR(255), created_at TIMESTAMP, updated_at TIMESTAMP );
Para cada coluna em usuários, especificamos o tipo de dados para a coluna. Também adicionamos várias restrições ao Eu iria e o email colunas.
A execução do comando criará uma tabela vazia, mas estruturada, chamada usuários em seu banco de dados.
Criando Novos Registros em uma Tabela
Para criar um novo registro em sua tabela, use o INSERT INTO
instrução seguida pela tabela na qual você deseja inserir os valores:
INSERT INTO users(first_name, last_name, email, password) VALUES( 'Kingsley', 'Ubah', '[email protected]', '12345678' );
No primeiro parêntese, especificamos as colunas nas quais desejamos inserir valores. Em seguida, no segundo parêntese, especificamos os valores que queremos inserir, seguindo a ordem correta.
A execução do comando inserirá esses valores nas colunas especificadas no usuários tabela.
Porque nós definimos o Eu iria campo como de incremento automático, o valor será adicionado automaticamente. Além disso, timestamps são gerados automaticamente pelo MySQL, então não precisamos especificar um nós mesmos.
Lendo da mesa
Para consultar dados de seu banco de dados, use o SELECT
declaração.
Por exemplo, se quisermos selecionar tudo do nosso usuários tabela, usamos a seguinte declaração:
SELECT * FROM users;
O asterisco (*
) representa tudo em nosso banco de dados. Esta instrução retornará a tabela inteira junto com cada coluna.
Se quisermos apenas um subconjunto de colunas, digamos Eu iria e o emailespecificamos as colunas no lugar do asterisco:
SELECT id, email FROM users;
Quando se trata de selecionar dados, não há limite para o que podemos fazer.
Derrubando uma Mesa
Para excluir completamente uma tabela do MySQL, use o DROP
declaração seguida pelo nome da tabela:
DROP TABLE users;
Agora, você precisa ter cuidado ao usar este comando! Ele excluirá permanentemente todos os dados no usuários tabela. Além disso, não confunda com o DROP DATABASE
declaração, que exclui todo o seu banco de dados.
É isso! Agora você sabe como usar o MySQL!
O MySQL é um sistema de gerenciamento de banco de dados relacional de código aberto que alimenta uma parte significativa da web até hoje. A linguagem de consulta estruturada ou SQL é usada para manipular e armazenar dados em um banco de dados MySQL.
Nesta postagem, examinamos alguns conceitos-chave do SQL, incluindo ORMs, esquemas, restrições e normalização de banco de dados. Também examinamos o processo de instalação e configuração do MySQL.
Por fim, abordamos algumas das instruções SQL responsáveis pela manipulação de dados no MySQL.