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:
Passo 4) Aceite o contrato de licença
Em seguida, clique no botão Avançar:
Passo 5) Escolha MariaDB servidor
Escolha os recursos que serão instalados e clique em Avançar
Passo 6) Digite a senha
Na próxima janela, você será solicitado a alterar a senha do usuário root.
- 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.
- Quando terminar, clique no botão Avançar.
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:
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.
Passo 10) Uma barra de progresso mostrada
Uma barra de progresso mostrando o progresso da instalação será mostrada:
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:
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.
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:
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;
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;
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;
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));
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));
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;
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;
A tabela possui duas colunas. Para ver a estrutura da tabela Preço, você pode executar o seguinte comando:
DESC Price;
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');
Você inseriu um único registro na tabela. Insira um registro na tabela Preço:
INSERT INTO price (id, price) VALUES(1, 200);
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;
Agora, visualize o conteúdo da tabela Preço:
SELECT * from price;
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');
Você pode consultar a tabela para verificar se os registros foram inseridos com sucesso:
SELECT * FROM book;
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);
Vamos confirmar se os registros foram criados com sucesso:
SELECT * FROM price;
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:
Vamos alterar o preço do livro com id 1 de 200 para 250:
UPDATE price SET price = 250 WHERE id = 1;
O comando foi executado com sucesso. Agora você pode consultar a tabela para ver se a alteração ocorreu:
A captura de tela acima mostra que a mudança foi implementada. Considere a tabela Livro com os seguintes registros:
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;
Verifique se a mudança foi implementada:
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:
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;
Agora, consulte a tabela para verificar se a alteração foi feita com sucesso:
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:
Precisamos deletar o último registro da tabela. Tem id 6 e preço 280. Vamos deletar o registro:
DELETE FROM price WHERE id = 6;
O comando foi executado com sucesso. Vamos consultar a tabela para confirmar se a exclusão foi bem-sucedida:
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:
Suponha que precisamos ver os registros cujo preço é inferior a 250. Podemos executar o seguinte comando:
SELECT * FROM price WHERE price < 250;
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;
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;
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:
Precisamos ver todos os registros cujo nome começa com M. Podemos executar o seguinte comando:
SELECT name FROM book WHERE name LIKE 'M%';
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';
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%';
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:
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';
Devolveu o registo em que o preço é 190. Também podemos tentar outro padrão:
SELECT * FROM price WHERE price LIKE '_2_';
É 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:
Vamos encontrar todos os registros onde o preço não começa com 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
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:
Execute o seguinte comando na tabela:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
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;
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;
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:
Quando selecionamos a coluna de preço da tabela, obtemos o seguinte resultado:
SELECT price FROM Price;
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;
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;
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;
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; ;
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();
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; ;
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);
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 ;
Podemos então chamar a função acima da seguinte forma:
select sumFunc(1000);
O comando retornará o seguinte:
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:
A tabela Preço possui os seguintes dados:
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:
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:
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:
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.