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:
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 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:
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.
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;
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.






































































