MySQL: do download e instalação até sua primeira tabela
Introdução: MySQL — do download e instalação até sua primeira tabela
Neste tutorial, você aprenderá passo a passo como instalar o MySQL na plataforma Windows usando o Instalador do MySQL. Após o tutorial, você terá um servidor MySQL e suas ferramentas em funcionamento no seu computador para aprender e praticar.
O MySQL é sem dúvida um dos sistemas de gestão de banco de dados de código aberto mais popular e mais utilizado do mundo. Ele é simples de configurar e utilizar. Ele é reconhecido como um dos mais rápidos mecanismos de banco de dados, a maioria dos hosts da web Linux (e muitos baseados no Windows) oferecem MySQL.
O MySQL está intimamente integrado ao PHP, o que o torna um candidato ideal para muitas aplicações web.
Download do MySQL
Se você deseja instalar o MySQL no ambiente Windows, o instalador do MySQL é a maneira mais fácil. O instalador do MySQL fornece um assistente fácil de usar que ajuda você a instalar o MySQL com os seguintes componentes:
- MySQL Server
- All Available Connectors
- MySQL Workbench with Sample Data Models
- MySQL Notifier
- Tools for Excel and Microsoft Visual Studio
- MySQL Sample Databases
- MySQL Documentation
O MySQL installer pode ser adquirido nesse link.
Se você estiver conectando à Internet durante a instalação do MySQL, poderá escolher a versão de instalação online mysql-installer-web-community-<version>.exe
.
Caso desejar instalar o MySQL offline, você pode baixar o arquivo mysql-installer-community-<version>.exe
.
Instalando o MySQL via o instalador do MySQL
Para instalar o MySQL usando o instalador do MySQL, clique duas vezes no arquivo do instalador do MySQL e siga as etapas abaixo:
O Windows está configurando o instalador do MySQLUma tela de boas-vindas fornece várias opções. Escolha a primeira opção: Install MySQL Products
Faça o download dos mais recentes produtos MySQL: O instalador do MySQL verifica e baixa os mais recentes produtos MySQL, incluindo servidor MySQL, MySQL Workbench, etc.
Clique no botão Next para continuar
Escolha um tipo de instalação: existem vários tipos de configuração disponíveis. Escolha a opção Full para instalar todos os produtos e recursos do MySQL.
Verificando os requisitos
![](https://i.ibb.co/RyVccf1/Philemon-mysql-step-7.png)Progresso da instalação: O instalador do MySQL baixa todos os produtos selecionados. Isso poderá demorar um pouco, dependendo dos produtos selecionados e da velocidade da sua conexão à Internet.
Download de produtos em andamentoDownload completo. Clique no botão Next para continuar
Visão geral da configuração. Clique no botão Next para configurar o MySQL Database Server
Configuração do servidor MySQL: escolha Tipo de configuração e porta MySQL (3306 por padrão) e clique no botão Next para continuar.
Escolha uma senha para a conta root. Anote a senha e mantenha-a em segurança se estiver instalando o servidor de banco de dados MySQL em um servidor de produção. Se você deseja adicionar mais um usuário MySQL, pode fazê-lo nesta etapa.
Escolha os detalhes do serviço do Windows, incluindo o Nome do serviço do Windows e o tipo de conta, depois clique no botão Next para continuar.
O Instalador do MySQL está configurando o servidor de banco de dados MySQL. Aguarde até terminar e clique no botão Next para continuar.
Feito. Clique no botão **Next** para continuar.O Instalador do MySQL instala bancos de dados e modelos de amostra.
A instalação está concluída. Clique no botão Finish para fechar o assistente de instalação e iniciar o MySQL Workbench.
Criando Tabelas no MySQL
Agora vamos ver como criar tabelas no MySQL.
A instrução CREATE TABLE permite criar uma nova tabela em um banco de dados.
A seguir, ilustramos a sintaxe básica da instrução CREATE TABLE:
CREATE TABLE [IF NOT EXISTS] table_name(
column_1_definition,
column_2_definition,
...,
table_constraints
) ENGINE=storage_engine;
Primeiro, você deve especificar o nome da tabela que deseja criar após as palavras-chave CREATE TABLE. O nome da tabela deve ser exclusivo dentro de um banco de dados. O IF NOT EXISTS é opcional. Ele permite que você verifique se a tabela que você cria já existe no banco de dados. Se for esse o caso, o MySQL ignorará toda a instrução e não criará nenhuma nova tabela.
Segundo, você deve especificar uma lista de colunas da tabela na seção column_list, as colunas são separadas por vírgulas.
Terceiro, você pode opcionalmente especificar o mecanismo de armazenamento para a tabela na cláusula ENGINE. Você pode usar qualquer mecanismo de armazenamento como InnoDB e MyISAM. Se você não declarar explicitamente um mecanismo de armazenamento, o MySQL usará o InnoDB por padrão.
O InnoDB se tornou o mecanismo de armazenamento padrão desde o MySQL versão 5.5. O mecanismo de armazenamento InnoDB traz muitos benefícios de um sistema de gerenciamento de banco de dados relacional, como transações ACID, integridade referencial e recuperação de falhas. Nas versões anteriores, o MySQL usava o MyISAM como o mecanismo de armazenamento padrão.
A seguir, é mostrada a sintaxe da definição de uma coluna:
column_name data_type(length) [NOT NULL] [DEFAULT value] [AUTO_INCREMENT] column_constraint;
Aqui estão os detalhes:
- O nome da coluna especifica o nome da coluna. Cada coluna tem um tipo de dados específico e tamanho opcional, por exemplo, VARCHAR (255)
- A restrição NOT NULL garante que a coluna não contenha NULL. Além da restrição NOT NULL, uma coluna pode ter restrições adicionais, como CHECK e UNIQUE.
- O padrão especifica um valor padrão para a coluna.
- O AUTO_INCREMENT indica que o valor da coluna é incrementado por um automaticamente sempre que uma nova linha é inserida na tabela. Cada tabela possui no máximo uma coluna AUTO_INCREMENT.
Após a lista de colunas, você pode definir restrições de tabela como UNIQUE, CHECK, PRIMARY KEY e FOREIGN KEY.
Por exemplo, se você deseja definir uma coluna ou um grupo de colunas como a chave principal, use a seguinte sintaxe:
PRIMARY KEY (col1,col2,...)
Exemplos de instruções MySQL CREATE TABLE
Vamos ver alguns exemplos de criação de novas tabelas. A instrução a seguir cria uma nova tabela chamada tasks
:
CREATE TABLE IF NOT EXISTS tasks (
task_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
start_date DATE,
due_date DATE,
status TINYINT NOT NULL,
priority TINYINT NOT NULL,
description TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=INNODB;
A tabela de tarefas possui as seguintes colunas:
- O
tasks_id
é uma coluna de incremento automático. Se você usar a instrução INSERT para inserir uma nova linha na tabela sem especificar um valor para a colunatasks_id
, o MySQL gerará automaticamente um número inteiro seqüencial para otasks_id
a partir de 1. - A coluna
title
é uma coluna de cadeia de caracteres variável cujo comprimento máximo é 255. Isso significa que você não pode inserir uma cadeia cujo comprimento seja maior que 255 nessa coluna. A restrição NOT NULL indica que a coluna não aceitaNULL
. Em outras palavras, você deve fornecer um valor não NULL ao inserir ou atualizar esta coluna. - O
start_date
edue_date
são colunas DATE. Como essas colunas não têm a restriçãoNOT NULL
, elas podem armazenarNULL
. A coluna start_date possui um valor padrão da data atual. Em outras palavras, se você não fornecer um valor para a coluna start_date ao inserir uma nova linha, a coluna start_date terá a data atual do servidor de banco de dados. - O
status
e apriority
são as colunas TINYINT que não permitemNULL
. A colunadescription
é uma coluna de TEXT que aceitaNULL
. - O
created_at
é uma coluna TIMESTAMP que aceita o horário atual como o valor padrão.
O tasks_id
é a coluna da chave primária da coluna da tabela tasks
. Isso significa que os valores na coluna tasks_id
identificarão exclusivamente as linhas na tabela.
Depois de executar a instrução CREATE TABLE
para criar a tabela taks
, é possível visualizar sua estrutura usando a instrução DESCRIBE
:
DESCRIBE tasks;
Esta imagem mostra o diagrama do banco de dados da tabela taks
:
MySQL CREATE TABLE
com um exemplo de chave primária de chave estrangeira.
Suponha que cada tarefa tenha uma lista de verificação ou lista de tarefas. Para armazenar listas de verificação de tarefas, você pode criar uma nova tabela denominada checklists
da seguinte maneira:
CREATE TABLE IF NOT EXISTS checklists (
todo_id INT AUTO_INCREMENT,
task_id INT,
todo VARCHAR(255) NOT NULL,
is_completed BOOLEAN NOT NULL DEFAULT FALSE,
PRIMARY KEY (todo_id , task_id),
FOREIGN KEY (task_id)
REFERENCES tasks (task_id)
ON UPDATE RESTRICT ON DELETE CASCADE
);
A tabela checklists
possui uma chave primária que consiste em duas colunas. Portanto, usamos uma restrição de tabela para definir a primary key:
PRIMARY KEY (todo_id , task_id)
Além disso, o task_id
é a coluna de chave estrangeira que faz referência à coluna task_id
da tabela tasks
, usamos uma restrição de chave estrangeira para estabelecer esse relacionamento:
FOREIGN KEY (task_id)
REFERENCES tasks (task_id)
ON UPDATE RESTRICT
ON DELETE CASCADE
Esta imagem ilustra a tabela checklists
e seu relacionamento com a tabela de tasks
:
Alguns Comandos Úteis do MySQL
show tables; Para ver todas as tabelas da base de dados.
show databases; Listar todas as bases de dados no servidor SQL.
create database [databasename]; Para criar uma base de dados em um servidor SQL.
use [db name]; Mudar de base de dados.
describe [table name]; Para ver os formatos dos campos.
drop database [database name]; Para apagar uma base de dados.
drop table [table name]; Para apagar uma tabela.
*SELECT FROM [table name];** Para ver toda a informação de uma tabela.
show columns from [table name]; Retornar a informação das colunas e as respectivas colunas da tabela especificada.
*SELECT FROM [table name] WHERE [field name] = “valor dado”;** Ver campos específicos com o valor “valor dado”.
*SELECT FROM [table name] WHERE name = “Fulano” AND phone_number = ‘8585858′;** Ver todas as entradas que contenham o nome “Fulano” e o Numero de telefone ‘8585858′.
*SELECT FROM [table name] WHERE name != “Abracadabra” AND phone_number = ‘6777777′ order by phone_number;** Ver todas as entradas que contenham o nome “Abracadabra” e o número de telefone ‘6777777′ ordenadas pelo campo do telefone.
*SELECT FROM [table name] WHERE name like “Delva%” AND phone_number = ‘6220980′;** Ver todas as entradas que comecem pelas letras ‘joão’ e pelo telefone ‘6220980′.
SELECT DISTINCT [column name] FROM [table name]; Mostrar entradas únicas.
SELECT [col1],[col2] FROM [table name] ORDER BY [col2] DESC; Mostrar entradas seleccionadas por ordem ascendente (asc) ou descentente (desc).
*SELECT COUNT() FROM [table name];** Retornar o número de colunas.
*SELECT SUM() FROM [table name];** Somar as colunas.
INSERT INTO [table name] (Host,User,Password) VALUES(’%’,’user’,PASSWORD(’password’)); Mudar para a mysql db. Criar um novo utilizador.
SET PASSWORD FOR ‘user’@’hostname’ = PASSWORD(’passwordhere’); Mudar uma password de um utilizador.(da linha de comandos MySQL).
DELETE from [table name] where [field name] = ‘whatever’; Apagar linhas de uma tabela.
FLUSH PRIVILEGES; Atualizar permissões e previlégios de uma base de dados.
alter table [table name] drop column [column name]; Apagar uma Coluna.
alter table [table name] add column [new column name] varchar (20); Adicionar uma coluna a uma Base de Dados.
alter table [table name] change [old column name] [new column name] varchar (50); Mudar o nome de uma tabela.
alter table [table name] add unique ([column name]); Criar uma única coluna.
alter table [table name] modify [column name] VARCHAR(3); Criar uma coluna maior.
alter table [table name] drop index [colmn name]; Apagar unica de uma tabela.
[mysql dir]/bin/mysqldump -u root -ppassword –opt >/tmp/alldatabases.sql: Fazer um backup de todas as bases de dados.
[mysql dir]/bin/mysqldump -u username -ppassword –databases databasename >/tmp/databasename.sql: Fazer um backup de apenas uma base de dados.
[mysql dir]/bin/mysqldump -c -u username -ppassword databasename tablename > /tmp/databasename.tablename.sql : Fazer o backup de uma tabela de uma base de dados.
[mysql dir]/bin/mysql -u username -ppassword databasename < /tmp/databasename.sql: Restaurar uma base de dados (ou tabela) de um backup.
UPDATE NOME_DA_TABELA SET campo1 = valor1, campo2 = valor2. O comando update possui a sintaxe muito similar ao do INSERT, mas é utilizada para atualizar registros do banco de dados.
Neste tutorial, você aprendeu como usar a instrução MySQL CREATE TABLE para criar uma tabela no banco de dados. E você também aprendeu como é feita a instalação do MySQL via o instalador, e por fim alguns comandos uteis do MySQL.