MariaDB Tutorial

O que รฉ a MariaDB?

MariaDB รฉ um garfo do MySQL Sistema de gerenciamento de banco de dados. Ele รฉ criado por seus desenvolvedores originais. Esta ferramenta DBMS oferece recursos de processamento de dados para tarefas pequenas e empresariais.

MariaDB รฉ uma versรฃo melhorada do MySQL. Ele vem com vรกrios recursos poderosos integrados e muitas melhorias de usabilidade, seguranรงa e desempenho que vocรช nรฃo encontra em MySQL.

Aqui estรฃo as caracterรญsticas do MariaDB:

  • Opera sob licenรงas GPL, BSD ou LGPL.
  • MariaDB oferece suporte a uma linguagem de consulta popular e padrรฃo.
  • Ele vem com muitos mecanismos de armazenamento, incluindo aqueles de alto desempenho que podem ser integrados a outros sistemas de gerenciamento de banco de dados relacional.
  • Ele fornece a tecnologia de cluster Galera.
  • MariaDB suporta PHP, uma linguagem popular para desenvolvimento web.
  • MariaDB pode ser executado em diferentes sistemas operacionais e oferece suporte a inรบmeras linguagens de programaรงรฃo.
  • MariaDB vem com comandos adicionais que nรฃo estรฃo disponรญveis em MySQL. MySQL possui recursos que tรชm um impacto negativo no desempenho do SGBD. Tais recursos foram substituรญdos em MariaDB.

MariaDB vs MySQL

Abaixo estรฃo algumas diferenรงas importantes entre MariaDB vs MySQL

Parรขmetro MariaDB MySQL
Mais opรงรตes para mecanismos de armazenamento MariaDB tem 12 novos mecanismos de armazenamento que vocรช nรฃo encontrarรก em MySQL. Tem menos opรงรตes de armazenamento em comparaรงรฃo com MariaDB.
Melhorias de velocidade MariaDB mostra uma velocidade melhorada quando comparado com MySQL. Ele vem com vรกrios recursos para otimizar a velocidade. Esses recursos incluem visualizaรงรตes/tabelas derivadas, subconsulta, controle de execuรงรฃo, acesso ao disco e controle do otimizador. MySQL apresenta uma velocidade mais lenta quando comparado MariaDB. Ele depende apenas de alguns recursos para otimizaรงรฃo de velocidade, por exemplo, รญndices hash.
Cache/รญndices mais rรกpidos Com o mecanismo de armazenamento de memรณria de MariaDB, uma instruรงรฃo INSERT pode ser concluรญda 24% do que no padrรฃo MySQL. O mecanismo de armazenamento de memรณria de MySQL รฉ mais lento comparado a isso MariaDB.
Pool de conexรตes maior e mais rรกpido MariaDB vem com um pool de threads avanรงado capaz de funcionar mais rรกpido e suportar mais de 200,000 conexรตes. O pool de threads fornecido por MySQL nรฃo pode suportar atรฉ 200,000 conexรตes por vez.
Replicaรงรฃo aprimorada In MariaDB, a replicaรงรฃo pode ser feita de forma mais segura e rรกpida. As atualizaรงรตes tambรฉm podem ser feitas 2x mais rรกpido em comparaรงรฃo com o tradicional MySQL. MySQLA ediรงรฃo da comunidade do permite que um nรบmero estรกtico de threads sejam conectados. MySQLO plano empresarial da empresa vem com recursos de thread.
Novos recursos/extensรตes MariaDB vem com novos recursos e extensรตes, incluindo as instruรงรตes JSON, WITH e KILL. O novo MariaDB recursos nรฃo sรฃo fornecidos em MySQL.
Recursos ausentes MariaDB carece de alguns dos recursos fornecidos pelo MySQL ediรงรฃo empresarial. Para resolver isso, oferece plug-ins alternativos de cรณdigo aberto. Por isso, MariaDB os usuรกrios podem desfrutar das mesmas funcionalidades que MySQL Usuรกrios da ediรงรฃo Enterprise. A ediรงรฃo empresarial do MySQL usa um cรณdigo proprietรกrio. Somente usuรกrios de MySQL Enterprise Edition tem acesso a isso.

Como instalar MariaDB

Instalar como um aplicativo independente

Para utilizar MariaDB, vocรช deve instalรก-lo em seu computador.

A instalaรงรฃo pode ser feita seguindo os passos abaixo:

Passo 1) Abra o URL abaixo
Baixe o arquivo de instalaรงรฃo no link https://downloads.mariadb.org/

Passo 2) Double clique no arquivo para iniciar a instalaรงรฃo
Assim que o download for concluรญdo, abra o arquivo

Passo 3) Clique no botรฃo Next
Na janela que aparece, clique no botรฃo Avanรงar:

Instalaรงรฃo de MariaDB

Passo 4) Aceite o contrato de licenรงa
Em seguida, clique no botรฃo Avanรงar:

Instalaรงรฃo de MariaDB

Passo 5) Escolha MariaDB servidor
Escolha os recursos que serรฃo instalados e clique em Avanรงar

Instalaรงรฃo de MariaDB

Passo 6) Digite a senha
Na prรณxima janela, vocรช serรก solicitado a alterar a senha do usuรกrio root.

  1. Digite a senha e confirme digitando novamente a mesma senha. Se desejar permitir o acesso de mรกquinas remotas, ative a caixa de seleรงรฃo necessรกria.
  2. Quando terminar, clique no botรฃo Avanรงar.

Instalaรงรฃo de MariaDB

Passo 7) Digite o nome e escolha o nรบmero da porta
Na prรณxima janela, digite um nome para a instรขncia, escolha o nรบmero da porta e defina o tamanho necessรกrio. Clique no botรฃo Avanรงar:

Instalaรงรฃo de MariaDB

Passo 8) Clique em Avanรงar
Na prรณxima janela, basta clicar no botรฃo Avanรงar.

Passo 9) Clique em Instalar
Inicie a instalaรงรฃo clicando no botรฃo Instalar.

Instalaรงรฃo de MariaDB

Passo 10) Uma barra de progresso mostrada
Uma barra de progresso mostrando o progresso da instalaรงรฃo serรก mostrada:

Instalaรงรฃo de MariaDB

Passo 11) Clique no botรฃo Concluir
Assim que a instalaรงรฃo for concluรญda, vocรช verรก o botรฃo Concluir. Clique no botรฃo para fechar a janela:

Instalaรงรฃo de MariaDB

Passo 12) Parabรฉns!
Vocรช agora tem MariaDB instalado no seu computador.

Trabalhando com prompt de comando

Agora que vocรช tem MariaDB instalado no seu computador, รฉ hora de iniciรก-lo e comeรงar a usรก-lo. Isto pode ser feito atravรฉs do MariaDB prompt de comando.

Siga os passos abaixo:

Passo 1) Clique em Iniciar, escolha Todos os Programas e clique em MariaDB...

Passo 2) Escolher MariaDB Prompt de comando.

MariaDB Prompt de comando

Passo 3) O processo de MariaDB prompt de comando serรก iniciado. Agora รฉ hora de fazer login. Vocรช deve fazer login como usuรกrio root e a senha que vocรช definiu durante a instalaรงรฃo do MariaDB. Digite o seguinte comando no prompt de comando:

MySQL -u root -p

Passo 4) Digite a senha e pressione a tecla Enter. Vocรช deverรก estar logado, conforme mostrado abaixo:

MariaDB Prompt de comando

Agora vocรช estรก logado MariaDB.

Tipos de dados

MariaDB suporta os seguintes tipos de dados:

  • Tipos de dados de sequรชncia
  • Tipos de dados numรฉricos
  • Tipos de dados de data/hora
  • Tipos de dados de objetos grandes

Tipos de dados de sequรชncia

Estes incluem o seguinte:

Tipo de dados String Descriรงรฃo
caractere (tamanho) O tamanho indica o nรบmero de caracteres a serem armazenados. Ele armazena no mรกximo 255 caracteres. Strings de comprimento fixo.
varchar(tamanho) O tamanho indica o nรบmero de caracteres a serem armazenados. Ele armazena no mรกximo 255 caracteres. Strings de comprimento variรกvel.
Tamanho do texto) O tamanho indica o nรบmero de caracteres a serem armazenados. Ele armazena no mรกximo 255 caracteres. Strings de comprimento fixo.
binรกrio (tamanho) O tamanho indica o nรบmero de caracteres a serem armazenados. Ele armazena no mรกximo 255 caracteres. Strings de tamanho fixo.

Tipos de dados numรฉricos

Eles incluem o seguinte:

Tipos de dados numรฉricos Descriรงรฃo
bocado Um valor inteiro muito pequeno equivalente a tinyint(1). Os valores assinados variam entre -128 e 127. Os valores nรฃo assinados variam entre 0 e 255.
interno(m) Um valor inteiro padrรฃo. Os valores assinados variam entre -2147483648 e 2147483647. Os valores nรฃo assinados variam entre 0 e 4294967295.
flutuar (m, d) Um nรบmero de ponto flutuante com precisรฃo รบnica.
duplo (m, d) Um nรบmero de ponto flutuante com dupla precisรฃo.
flutuar (p) Um nรบmero de ponto flutuante.

Tipos de dados de data/hora

Estes incluem o seguinte:

Tipo de dados de data/hora Descriรงรฃo
Data Exibido no formato 'aaaa-mm-dd'. Os valores variam entre '1000-01-01' e '9999-12-31'.
Data hora Exibido no formato 'aaaa-mm-dd hh:mm:ss'. Os valores variam entre '1000-01-01 00:00:00' e '9999-12-31 23:59:59'.
carimbo de data/hora (m) Exibido no formato 'aaaa-mm-dd hh:mm:ss'. Os valores variam entre '1970-01-01 00:00:01' utc e '2038-01-19 03:14:07' utc.
Tempo Exibido no formato 'hh:mm:ss'. Os valores variam entre '-838:59:59' e '838:59:59'.

Tipos de dados de objetos grandes (LOB)

Eles incluem o seguinte:

Tipo de dados de objeto grande Descriรงรฃo
minรบsculoblob Seu tamanho mรกximo รฉ 255 bytes.
bolha (tamanho) Leva 65,535 bytes como tamanho mรกximo.
bolha mรฉdia Seu tamanho mรกximo รฉ 16,777,215 bytes.
texto longo Leva 4 GB como tamanho mรกximo.

Crie um banco de dados e tabelas

Para criar um novo banco de dados em MariaDB, vocรช deverรก ter privilรฉgios especiais que sรฃo concedidos apenas ao usuรกrio root e aos administradores.

Para criar um novo banco de dados, vocรช deve usar o comando CREATE DATABASE que assume a seguinte sintaxe:

CREATE DATABASE DatabaseName;

Neste caso, vocรช precisa criar um banco de dados e dar-lhe o nome de Demo.

Comece o MariaDB prompt de comando e faรงa login como usuรกrio root digitando o seguinte comando:

mysql -u root -p

Digite a senha root e pressione a tecla Enter. Vocรช estarรก logado.

Agora, execute o seguinte comando:

CREATE DATABASE Demo;

Crie um banco de dados e tabelas em MariaDB

Vocรช entรฃo criou um banco de dados chamado Demo. Serรก bom vocรช confirmar se o banco de dados foi criado com sucesso ou nรฃo. Basta mostrar a lista dos bancos de dados disponรญveis executando o seguinte comando:

SHOW DATABASES;

Crie um banco de dados e tabelas em MariaDB

A saรญda acima mostra que o banco de dados Demo faz parte da lista, portanto, o banco de dados foi criado com sucesso.

MariaDB Selecione Banco de Dados

Para poder usar ou trabalhar em um determinado banco de dados, vocรช deve selecionรก-lo na lista de bancos de dados disponรญveis. Depois de selecionar um banco de dados, vocรช pode executar tarefas como criar tabelas no banco de dados.

Para selecionar um banco de dados, vocรช deve usar o comando USE. Leva a sintaxe fornecida abaixo:

USE database_name;

Vocรช precisa usar o banco de dados Demo. Vocรช pode selecionรก-lo executando o seguinte comando:

USE Demo;

Crie um banco de dados e tabelas em MariaDB

A imagem acima mostra que o MariaDB prompt de comando mudou de nenhum para o nome do banco de dados que foi selecionado.

Agora vocรช pode prosseguir e criar tabelas no banco de dados Demo.

MariaDB - Criar a tabela

Para poder criar uma tabela, vocรช deve ter selecionado um banco de dados. A tabela pode ser criada usando a instruรงรฃo CREATE TABLE. Aqui estรก a sintaxe do comando:

CREATE TABLE tableName (columnName columnType);

Vocรช pode definir uma das colunas como a chave primรกria. Esta coluna nรฃo deve permitir valores nulos.

Criaremos duas tabelas no banco de dados Demo, tabelas Livro e Preรงo. Cada tabela terรก duas colunas.

Vamos comeรงar criando a tabela Book com duas colunas, id e name. Execute o seguinte comando:

CREATE TABLE Book(  
id INT NOT NULL AUTO_INCREMENT,  
name VARCHAR(100) NOT NULL,  
PRIMARY KEY (id));  

Crie um banco de dados e tabelas em MariaDB

A restriรงรฃo PRIMARY KEY foi usada para definir a coluna id como a chave primรกria da tabela. A propriedade AUTO_INCREMENT incrementarรก os valores da coluna id em 1 automaticamente para cada novo registro inserido na tabela. Todas as colunas nรฃo permitirรฃo valores nulos.

Agora, crie a segunda tabela, a tabela Price:

CREATE TABLE Price(  
id INT NOT NULL AUTO_INCREMENT,  
price float NOT NULL,  
PRIMARY KEY (id));  

Crie um banco de dados e tabelas em MariaDB

A coluna id foi definida como a chave primรกria da tabela.

Mostrando tabelas

Agora que vocรช criou as duas tabelas, serรก bom verificar se as tabelas foram criadas com sucesso ou nรฃo. Vocรช pode mostrar a lista de tabelas contidas em um banco de dados executando o seguinte comando:

SHOW TABLES;

Crie um banco de dados e tabelas em MariaDB

A captura de tela acima mostra que as duas tabelas foram criadas com sucesso no banco de dados Demo.

Mostrando a estrutura da tabela

Para ver a estrutura de qualquer tabela especรญfica, vocรช pode usar o comando DESCRIBE, comumente abreviado como DESC. ร‰ necessรกria a seguinte sintaxe:

DESC TableName;

Por exemplo, para ver a estrutura da tabela chamada Livro, vocรช pode executar o seguinte comando;

DESC Book;

Crie um banco de dados e tabelas em MariaDB

A tabela possui duas colunas. Para ver a estrutura da tabela Preรงo, vocรช pode executar o seguinte comando:

DESC Price;

Crie um banco de dados e tabelas em MariaDB

CRUD e clรกusulas

INSIRA

Para inserir dados em um MariaDB tabela, vocรช deve usar a instruรงรฃo INSERT INTO. Este comando segue a sintaxe fornecida abaixo:

INSERT INTO tableName
(column_1, column_2, ... )  
VALUES  
(value1, value2, ... ),  
(value1, value2, ... ),  
...;   

A sintaxe acima mostra que vocรช deve especificar as colunas da tabela nas quais deseja inserir os dados, bem como os dados que precisa inserir.

Vamos inserir um registro na tabela Book:

INSERT INTO book  
(id, name)  
VALUES(1, 'MariaDB Book');  

CRUD e Clรกusulas-INSERT

Vocรช inseriu um รบnico registro na tabela. Insira um registro na tabela Preรงo:

INSERT INTO price
(id, price)  
VALUES(1, 200);  

CRUD e Clรกusulas-INSERT

O registro foi criado.

SELECIONE

A instruรงรฃo SELECT nos ajuda a visualizar ou ver o conteรบdo de uma tabela de banco de dados. Para ver o conteรบdo da tabela Book, por exemplo, รฉ necessรกrio executar o seguinte comando:

SELECT * from book;

CRUD e Clรกusulas-INSERT

Agora, visualize o conteรบdo da tabela Preรงo:

SELECT * from price;

CRUD e Clรกusulas-INSERT

Inserindo Vรกrios Registros

ร‰ possรญvel inserir vรกrios registros em um MariaDB tabela de uma vez. Para demonstrar isso, execute o seguinte exemplo:

INSERT INTO book
(id, name)  
VALUES  
(2,'MariaDB Book2'),  
(3,'MariaDB Book3'),  
(4,'MariaDB Book4'),  
(5,'MariaDB Book5');

Inserindo Vรกrios Registros

Vocรช pode consultar a tabela para verificar se os registros foram inseridos com sucesso:

SELECT * FROM book;

Inserindo Vรกrios Registros

Os registros foram inseridos com sucesso. Insira vรกrios registros na tabela Price executando este exemplo:

INSERT INTO price 
(id, price)  
VALUES  
(2, 250),  
(3, 220),  
(4, 190),  
(5, 300); 

Inserindo Vรกrios Registros

Vamos confirmar se os registros foram criados com sucesso:

SELECT * FROM price;

Inserindo Vรกrios Registros

ATUALIZAร‡รƒO

O comando UPDATE nos ajuda a alterar ou modificar os registros que jรก foram inseridos em uma tabela. Vocรช pode combinรก-lo com a clรกusula WHERE para especificar o registro que serรก atualizado. Aqui estรก a sintaxe:

UPDATE tableName SET field=newValue, field2=newValue2,...  
[WHERE ...]  

O comando UPDATE tambรฉm pode ser combinado com clรกusulas como SET, WHERE, LIMIT e ORDER BY. Vocรช verรก isso em breve:

Considere a tabela denominada Preรงo com os seguintes registros:

CRUD e Clรกusulas-ATUALIZAร‡รƒO

Vamos alterar o preรงo do livro com id 1 de 200 para 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD e Clรกusulas-ATUALIZAร‡รƒO

O comando foi executado com sucesso. Agora vocรช pode consultar a tabela para ver se a alteraรงรฃo ocorreu:

CRUD e Clรกusulas-ATUALIZAร‡รƒO

A captura de tela acima mostra que a mudanรงa foi implementada. Considere a tabela Livro com os seguintes registros:

CRUD e Clรกusulas-ATUALIZAร‡รƒO

Vamos mudar o nome do livro chamado Book para MariaDB Livro1. Observe que o livro tem um id 1. Aqui estรก o comando para isso:

UPDATE book
SET name = โ€œMariaDB Book1โ€
WHERE id = 1;

CRUD e Clรกusulas-ATUALIZAร‡รƒO

Verifique se a mudanรงa foi implementada:

CRUD e Clรกusulas-ATUALIZAร‡รƒO

A captura de tela acima mostra que a mudanรงa foi implementada com sucesso.

Nos exemplos acima, alteramos apenas uma coluna por vez. No entanto, รฉ possรญvel alterar vรกrias colunas de uma sรณ vez. Vamos demonstrar isso usando um exemplo.

Vamos utilizar a tabela Price com os seguintes dados:

CRUD e Clรกusulas-ATUALIZAร‡รƒO

Vamos alterar o id e o preรงo do livro com um id 5. Vamos mudar o seu id para 6 e o โ€‹โ€‹preรงo para 6. Execute o seguinte comando:

UPDATE price
SET id = 6,
price = 280
WHERE id = 5;

  CRUD e Clรกusulas-ATUALIZAร‡รƒO

Agora, consulte a tabela para verificar se a alteraรงรฃo foi feita com sucesso:

CRUD e Clรกusulas-ATUALIZAร‡รƒO

A alteraรงรฃo foi feita com sucesso.

Apagar

Usamos o comando DELETE quando precisamos excluir um ou vรกrios registros de uma tabela. Aqui estรก a sintaxe do comando:

DELETE FROM tableName  
[WHERE condition(s)]  
[ORDER BY exp [ ASC | DESC ]]  
[LIMIT numberRows];   

Considere a tabela Price com os seguintes registros:

CRUD e Clรกusulas-DELETE

Precisamos deletar o รบltimo registro da tabela. Tem id 6 e preรงo 280. Vamos deletar o registro:

DELETE FROM price
WHERE id = 6;   

CRUD e Clรกusulas-DELETE

O comando foi executado com sucesso. Vamos consultar a tabela para confirmar se a exclusรฃo foi bem-sucedida:

CRUD e Clรกusulas-DELETE

A saรญda mostra que o registro foi excluรญdo com sucesso.

Onde

A clรกusula WHERE nos ajuda a especificar o local exato onde precisamos fazer uma alteraรงรฃo. ร‰ usado junto com instruรงรตes como INSERT, SELECT, UPDATE e DELETE. Considere a tabela Price com os seguintes dados:

CRUD e clรกusulas-onde

Suponha que precisamos ver os registros cujo preรงo รฉ inferior a 250. Podemos executar o seguinte comando:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD e clรกusulas-onde

Todos os registros em que o preรงo estรก abaixo de 250 foram retornados.

A clรกusula WHERE pode ser combinada com a instruรงรฃo AND. Suponha que precisamos ver todos os registros na tabela Price onde o preรงo estรก abaixo de 250 e o id estรก acima de 3. Podemos executar o seguinte comando:

SELECT *  
FROM price  
WHERE id > 3  
AND price < 250;   

CRUD e clรกusulas-onde

Apenas um registro foi retornado. A razรฃo รฉ que deve atender a todas as condiรงรตes que foram especificadas, ou seja, id acima de 3 e preรงo abaixo de 250. Se alguma dessas condiรงรตes for violada, o registro nรฃo serรก devolvido.

A clรกusula tambรฉm pode ser combinada com o comando OR. Vamos substituir AND em nosso comando anterior por OR e ver o tipo de saรญda que recebemos:

SELECT *  
FROM price 
WHERE id > 3  
OR price < 250;   

CRUD e clรกusulas-onde

Agora obtemos 2 recordes em vez de 1. Isto porque, para um recorde de qualificaรงรฃo, sรณ tem de cumprir uma das condiรงรตes especificadas.

Como

Esta clรกusula รฉ usada para especificar o padrรฃo de dados ao acessar dados da tabela em que รฉ necessรกria uma correspondรชncia exata. Pode ser combinado com as instruรงรตes INSERT, UPDATE, SELECT e DELETE.

Vocรช deve passar o padrรฃo de dados que estรก procurando para a clรกusula e ela retornarรก verdadeiro ou falso. Aqui estรฃo os caracteres curinga que podem ser usados โ€‹โ€‹junto com a clรกusula:

  • %: para combinar 0 ou mais caracteres.
  • _: para combinar um รบnico caractere.

Aqui estรก a sintaxe da clรกusula LIKE:

SELECT field_1, field_2,... FROM tableName1, tableName2,...  
WHERE fieldName LIKE condition;

Vamos demonstrar como usar a clรกusula com o caractere curinga %. Vamos usar a tabela Book com os seguintes registros:

CRUD e clรกusulas-onde

Precisamos ver todos os registros cujo nome comeรงa com M. Podemos executar o seguinte comando:

SELECT name  
FROM book  
WHERE name LIKE 'M%';  

 CRUD e clรกusulas-onde

Todos os registros foram retornados porque seus nomes comeรงam com a letra M. Para ver todos os nomes que terminam com 4, vocรช pode executar o seguinte comando:

SELECT name  
FROM book  
WHERE name LIKE '%4';  

CRUD e clรกusulas-onde

Apenas um nome foi retornado porque รฉ o รบnico que atende ร  condiรงรฃo.

Tambรฉm podemos cercar o padrรฃo de pesquisa pelo curinga:

SELECT name  
FROM book  
WHERE name LIKE '%DB%';  

CRUD e clรกusulas-onde

Alรฉm do curinga %, a clรกusula LIKE pode ser usada junto com o curinga _. Este รฉ o curinga de sublinhado e procurarรก apenas um รบnico caractere.

Vamos trabalhar com a tabela Price com os seguintes registros:

CRUD e clรกusulas-onde

Vamos verificar o registro em que o preรงo รฉ semelhante a 1_0. Executamos o seguinte comando:

SELECT *  
FROM price
WHERE price LIKE '1_0';  

CRUD e clรกusulas-onde

Devolveu o registo em que o preรงo รฉ 190. Tambรฉm podemos tentar outro padrรฃo:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD e clรกusulas-onde

ร‰ possรญvel usarmos a clรกusula LIKE junto com o operador NOT. Isso retornarรก todos os registros que nรฃo atendem ao padrรฃo especificado. Por exemplo:

Vamos utilizar a tabela Price com os seguintes registros:

CRUD e clรกusulas-onde

Vamos encontrar todos os registros onde o preรงo nรฃo comeรงa com 2:

SELECT *  
FROM price  
WHERE price NOT LIKE '2%';  

CRUD e clรกusulas-onde

Apenas um registro nรฃo atende ao padrรฃo especificado.

Por fim

Esta clรกusula nos ajuda a classificar nossos registros em ordem crescente ou decrescente. Nรณs o usamos com a instruรงรฃo SELECT, conforme mostrado abaixo:

SELECT expression(s)  
FROM tables  
[WHERE condition(s)]  
ORDER BY exp [ ASC | DESC ];   

ร‰ possรญvel usarmos esta clรกusula sem adicionar a parte ASC ou DESC. Por exemplo:

Utilizaremos a tabela Price com os seguintes registros:

CRUD e clรกusulas-onde

Execute o seguinte comando na tabela:

SELECT * FROM price 
WHERE price LIKE '2%.'
ORDER BY price;   

CRUD e clรกusulas-onde

No comando acima, ordenamos pelo preรงo. Os registros foram ordenados com os preรงos em ordem crescente. Isso significa que quando nรฃo especificamos a ordem, a classificaรงรฃo รฉ feita em ordem crescente por padrรฃo.

Vamos executar a clรกusula com a opรงรฃo DESC:

SELECT * FROM price
WHERE price LIKE '2%'  
ORDER BY price DESC;   

 CRUD e clรกusulas-onde

Os registros foram classificados com o preรงo em ordem decrescente conforme especificamos.

Vamos usar a clรกusula ORDER BY junto com o atributo ASC:

SELECT * FROM price 
WHERE price LIKE '2%.'  
ORDER BY price ASC;   

 CRUD e clรกusulas-onde

Os discos foram ordenados mas com os preรงos em ordem crescente. Isso รฉ semelhante a quando usamos a clรกusula ORDER BY sem os atributos ASC ou DESC.

DISTINCT

Esta clรกusula nos ajuda a eliminar duplicatas ao selecionar registros de uma tabela. Isso significa que nos ajuda a obter registros รบnicos. Sua sintaxe รฉ fornecida abaixo:

SELECT DISTINCT expression(s)  
FROM tableName  
[WHERE condition(s)];   

Para demonstrar isso, utilizaremos a tabela Price com os seguintes dados:

CRUD e Clรกusulas-DISTINCT

Quando selecionamos a coluna de preรงo da tabela, obtemos o seguinte resultado:

SELECT price FROM Price;

CRUD e Clรกusulas-DISTINCT

Temos dois registros com preรงo de 250, criando uma duplicata. Precisamos ter apenas registros รบnicos. Podemos filtrรก-los usando a clรกusula DISTINCT conforme mostrado abaixo:

SELECT DISTINCT price FROM Price;

CRUD e Clรกusulas-DISTINCT

Agora nรฃo temos duplicatas na saรญda acima.

Desde

A clรกusula FROM usada para buscar dados de uma tabela de banco de dados. Tambรฉm pode ajudar na junรงรฃo de tabelas. Aqui estรก a sintaxe do comando:

SELECT columnNames FROM tableName; 

Para ver o conteรบdo da tabela book, execute o seguinte comando:

SELECT * FROM price;

CRUD e clรกusulas de

A clรกusula pode ajudรก-lo a buscar apenas uma รบnica coluna de uma tabela de banco de dados. Por exemplo:

SELECT price FROM Price;

CRUD e clรกusulas de

Tarefas Avanรงadas

Procedimento armazenado

Um procedimento รฉ um MariaDB programa para o qual vocรช pode passar parรขmetros. Um procedimento nรฃo retorna valores. Para criar um procedimento, usamos o comando CREATE PROCEDURE.

Para demonstrar como criar e chamar um procedimento, criaremos um procedimento chamado myProcedure() que nos ajuda a selecionar a coluna de nome na tabela book. Aqui estรก o procedimento:

DELIMITER $
    CREATE PROCEDURE myProcedure()
        BEGIN
            SELECT name FROM book;
        END;
;

Procedimento armazenado de tarefas avanรงadas

O procedimento foi criado. Simplesmente incluรญmos a instruรงรฃo SELECT nas clรกusulas BEGIN e END do procedimento.

Agora, podemos chamar o procedimento pelo seu nome, conforme mostrado abaixo:

CALL myProcedure();

Procedimento armazenado de tarefas avanรงadas

O procedimento retorna a coluna de nome da tabela book quando chamado.

Podemos criar um procedimento que receba um parรขmetro. Por exemplo, precisamos selecionar o nome do livro e filtrar usando o id do livro. Podemos criar o seguinte procedimento para isso:

DELIMITER $
    CREATE PROCEDURE myProcedure2(book_id int)
        BEGIN
            SELECT name FROM book WHERE id = book_id;
        END;
;

Procedimento armazenado de tarefas avanรงadas

Acima, criamos um procedimento chamado myProcedure2(). Este procedimento usa um parรขmetro inteiro chamado book_id que รฉ o id do livro cujo nome precisamos ver. Para ver o nome do livro com id 3, podemos chamar o procedimento da seguinte forma:

CALL myProcedure2(3);

Procedimento armazenado de tarefas avanรงadas

funรงรฃo

Ao contrรกrio dos procedimentos, devemos passar parรขmetros para funรงรตes e uma funรงรฃo deve retornar um valor. Para criar uma funรงรฃo em MariaDB, usamos a declaraรงรฃo CREATE FUNCTION. A declaraรงรฃo tem a seguinte sintaxe:

CREATE 
[ DEFINER = { CURRENT-USER | username } ] 
FUNCTION function-name [(parameter datatype [, parameter datatype]) ]
RETURNS datatype [LANGUAGE SQL
                        | DETERMINISTIC
                        | NOT DETERMINISTIC
                        | {CONTAINS SQL 
                          | NO SQL
                          | READS SQL DATA
                          | MODIFIES SQL DATA}
                        | SQL SECURITY {DEFINER | INVOKER}
                        | COMMENT 'comment'

BEGIN

   declaration-section

   executable-section

END;

Os parรขmetros acima sรฃo descritos abaixo:

Parรขmetro Descriรงรฃo
Clรกusula DEFINER Este parรขmetro รฉ opcional. Se vocรช nรฃo especificar, o definidor se tornarรก o usuรกrio que criou a funรงรฃo. Caso haja necessidade de especificar um definidor diferente, inclua a clรกusula DEFINER na qual o nome_do_usuรกrio serรก o definidor da funรงรฃo.
nome_funรงรฃo O nome que serรก atribuรญdo a esta funรงรฃo no MariaDB.
parรขmetro Os parรขmetros passados โ€‹โ€‹para a funรงรฃo. Durante a criaรงรฃo da funรงรฃo, todos os parรขmetros sรฃo tratados como Parรขmetros IN (em vez dos parรขmetros OUT/INOUT).
return_datatype O tipo de dados do valor de retorno da funรงรฃo.
IDIOMA SQL Afeta a portabilidade, mas nรฃo a funรงรฃo.
DETERMINISTICO A funรงรฃo retornarรก um resultado apenas quando receber vรกrios parรขmetros.
NรƒO DETERMINISTA ร‰ possรญvel que a funรงรฃo retorne um resultado diferente quando recebe vรกrios parรขmetros.
CONTร‰M SQL Informa MariaDB que esta funรงรฃo contรฉm SQL. O banco de dados nรฃo verificarรก se isso รฉ verdade.
SEM SQL Esta clรกusula nรฃo รฉ usada e nรฃo tem impacto na sua funรงรฃo.
LรŠ DADOS SQL Diz MariaDB que esta funรงรฃo usarรก instruรงรตes SELECT para ler dados, mas nรฃo modificarรก os dados.
MODIFICA DADOS SQL Diz MariaDB que esta funรงรฃo usarรก INSERT, DELETE, UPDATE e outros DDL instruรงรตes para modificar dados SQL.
seรงรฃo de declaraรงรฃo ร‰ aqui que as variรกveis โ€‹โ€‹locais devem ser declaradas.
seรงรฃo executรกvel O cรณdigo da funรงรฃo deve ser adicionado aqui.

Veja um exemplo MariaDB funรงรฃo:

DELIMITER //

CREATE FUNCTION sumFunc (x INT )
RETURNS INT DETERMINISTIC

BEGIN

   DECLARE sum INT;
   SET sum = 0;
   label1: WHILE sum <= 3000 DO
   SET sum = sum + x;
   END WHILE label1;
   RETURN sum;
END; //
DELIMITER ;

Funรงรฃo em MariaDB

Podemos entรฃo chamar a funรงรฃo acima da seguinte forma:

select sumFunc(1000);

O comando retornarรก o seguinte:

Funรงรฃo em MariaDB

Depois de concluir uma funรงรฃo, serรก bom excluรญ-la. Isso รฉ fรกcil, pois vocรช sรณ precisa chamar a instruรงรฃo DROP FUNCTION que usa a seguinte sintaxe:

DROP FUNCTION function_name;

Por exemplo, para eliminar a funรงรฃo chamada myFunc, podemos executar o seguinte comando:

DROP FUNCTION myFunc;

Cadastre-se

Quando vocรช precisar recuperar dados de mais de uma tabela de uma sรณ vez, use MariaDB JUNTE-SE. Isto significa que um Cadastre-se funciona em duas ou mais tabelas. Os trรชs tipos de JOINS a seguir sรฃo suportados em MariaDB:

  • JUNร‡รƒO INTERNA/SIMPLES
  • LEFT OUTER JOIN/LEFT JOIN
  • RIGHT OUTER JOIN/RIGHT JOIN

Vamos discuti-los um por um:

INNER JOIN

A junรงรฃo interna retorna todas as linhas das tabelas nas quais a condiรงรฃo de junรงรฃo รฉ verdadeira. Sua sintaxe รฉ a seguinte:

SELECT columns  
FROM table-1   
INNER JOIN table-2  
ON table-1.column = table-2.column;  

Por exemplo:

Usaremos nossas duas tabelas, livros e livro.

A tabela do livro possui os seguintes dados:

INNER JOIN

A tabela Preรงo possui os seguintes dados:

INNER JOIN

O objetivo รฉ unir a coluna nome da tabela Livro e a coluna preรงo da tabela Preรงo em uma รบnica tabela. Isso รฉ possรญvel com uma junรงรฃo interna, conforme demonstrado abaixo:

SELECT book.name, price.price 
FROM book   
INNER JOIN price 
ON book.id = price.id;   

O comando retorna o seguinte:

INNER JOIN

JUNร‡รƒO EXTERNA ESQUERDA

Esta junรงรฃo retorna todas as linhas da tabela ร  esquerda e apenas as linhas nas quais a condiรงรฃo de junรงรฃo รฉ verdadeira da outra tabela. Sua sintaxe รฉ a seguinte:

SELECT columns  
FROM table-1  
LEFT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

A palavra-chave OUTER foi colocada entre colchetes porque รฉ opcional.

Por exemplo:

SELECT book.name, price.price 
FROM book   
LEFT JOIN price 
ON book.id = price.id;   

O comando retorna o seguinte:

JUNร‡รƒO EXTERNA ESQUERDA

O รบltimo registro na tabela acima nรฃo possui valor correspondente ร  esquerda. ร‰ por isso que foi substituรญdo por NULL.

DIREITO OUTER JOIN

Esta junรงรฃo retorna todas as linhas da tabela ร  direita e apenas as linhas nas quais a condiรงรฃo de junรงรฃo รฉ verdadeira da outra tabela. Sua sintaxe รฉ a seguinte:

SELECT columns  
FROM table-1  
RIGHT [OUTER] JOIN table-2  
ON table-1.column = table-2.column;  

A palavra-chave OUTER foi colocada entre colchetes porque รฉ opcional.

Por exemplo:

SELECT book.name, price.price 
FROM book   
RIGHT JOIN price
ON book.id = price.id;   

O comando retorna o seguinte:

DIREITO OUTER JOIN

A razรฃo รฉ que todas as linhas da tabela ร  direita foram correspondidas com as da outra tabela. Se algumas das linhas nรฃo correspondessem, terรญamos NULLs na primeira coluna.

Resuma esta postagem com: