MariaDB Tutorial: Aprenda sintaxe, comandos com exemplos

O que é o 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 ESB ( 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.

De

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.