MariaDB Tutorial: impara la sintassi, i comandi con esempi

Che cos'è la MariaDB?

MariaDB è un fork di MySQL sistema di gestione della banca dati. È stato creato dai suoi sviluppatori originali. Questo strumento DBMS offre funzionalità di elaborazione dati sia per attività di piccole dimensioni che per quelle aziendali.

MariaDB è una versione migliorata di MySQL. Viene fornito con numerose potenti funzionalità integrate e molti miglioramenti di usabilità, sicurezza e prestazioni che non puoi trovare MySQL.

Ecco le caratteristiche di MariaDB:

  • Funziona con licenze GPL, BSD o LGPL.
  • MariaDB supporta un linguaggio di interrogazione popolare e standard.
  • Viene fornito con molti motori di archiviazione, compresi quelli ad alte prestazioni che possono essere integrati con altri sistemi di gestione di database relazionali.
  • Fornisce la tecnologia cluster Galera.
  • MariaDB supporta PHP, un linguaggio popolare per lo sviluppo web.
  • MariaDB può essere eseguito su diversi sistemi operativi e supporta numerosi linguaggi di programmazione.
  • MariaDB viene fornito con comandi aggiuntivi che non sono disponibili in MySQL. MySQL ha caratteristiche che hanno un impatto negativo sulle prestazioni del DBMS. Tali funzionalità sono state sostituite in MariaDB.

MariaDB vs. MySQL

Di seguito sono riportate alcune differenze chiave tra MariaDB vs MySQL

Parametro MariaDB MySQL
Più opzioni per i motori di storage MariaDB ha 12 nuovi motori di archiviazione che non troverai MySQL. Ha meno opzioni per l'archiviazione rispetto a MariaDB.
Miglioramenti della velocità MariaDB mostra una velocità migliorata rispetto a MySQL. Viene fornito con numerose funzionalità per ottimizzare la velocità. Tali funzionalità includono viste/tabelle derivate, sottoquery, controllo dell'esecuzione, accesso al disco e controllo dell'ottimizzatore. MySQL mostra una velocità inferiore rispetto a MariaDB. Si basa solo su alcune funzionalità per l'ottimizzazione della velocità, ad esempio gli indici hash.
Cache/indici più veloci Con il motore di archiviazione della memoria di MariaDB, un'istruzione INSERT può essere completata il 24% rispetto allo standard MySQL. Il motore di archiviazione della memoria di MySQL è più lento rispetto a quello MariaDB.
Pool di connessioni più ampio e più veloce MariaDB viene fornito con un pool di thread avanzato in grado di funzionare più velocemente e supportare fino a oltre 200,000 connessioni. Il pool di thread fornito da MySQL non può supportare fino a 200,000 connessioni alla volta.
Replica migliorata In MariaDB, la replica può essere eseguita in modo più sicuro e veloce. Gli aggiornamenti possono anche essere eseguiti 2 volte più velocemente rispetto al tradizionale MySQL. MySQLL'edizione community di consente di connettere un numero statico di thread. MySQLIl piano aziendale di include funzionalità thread.
Nuove funzionalità/estensioni MariaDB viene fornito con nuove funzionalità ed estensioni tra cui le istruzioni JSON, WITH e KILL. La nuova MariaDB le funzionalità non sono fornite in MySQL.
Caratteristiche mancanti MariaDB mancano alcune delle funzionalità fornite da MySQL edizione aziendale. Per risolvere questo problema, offre plugin open source alternativi. Quindi, MariaDB gli utenti possono usufruire delle stesse funzionalità di MySQL Utenti dell'edizione Enterprise. L'edizione Enterprise di MySQL utilizza un codice proprietario. Solo gli utenti di MySQL Enterprise Edition ha accesso a questo.

Come installare MariaDB

Installa come applicazione autonoma

Per poter utilizzare MariaDB, devi installarlo sul tuo computer.

L'installazione può essere eseguita seguendo i passaggi indicati di seguito:

Passo 1) Apri sotto l'URL
Scaricare il file di installazione dal Link https://downloads.mariadb.org/

Passo 2) Double fare clic sul file per avviare l'installazione
Una volta completato il download, apri File

Passo 3) Fai clic sul pulsante Avanti
Nella finestra che si apre, fai clic sul pulsante Avanti:

Installazione di MariaDB

Passo 4) Accetta il contratto di licenza
Quindi fare clic sul pulsante Avanti:

Installazione di MariaDB

Passo 5) Scegli MariaDB server
Scegli le funzionalità che devono essere installate e fai clic su Avanti

Installazione di MariaDB

Passo 6) Inserire la password
Nella finestra successiva, ti verrà richiesto di modificare la password per l'utente root.

  1. Inserisci la password e confermala digitando nuovamente la stessa password. Se vuoi consentire l'accesso da macchine remote, attiva la casella di controllo necessaria.
  2. Una volta terminato, fare clic sul pulsante Avanti.

Installazione di MariaDB

Passo 7) Inserisci il nome e scegli il numero di porta
Nella finestra successiva, digita un nome per l'istanza, scegli il numero di porta e imposta la dimensione necessaria. Fare clic sul pulsante Avanti:

Installazione di MariaDB

Passo 8) Fare clic su Avanti
Nella finestra successiva, fai semplicemente clic sul pulsante Avanti.

Passo 9) Clicca su Installa
Avviare l'installazione facendo clic sul pulsante Installa.

Installazione di MariaDB

Passo 10) Viene mostrata una barra di avanzamento
Verrà mostrata una barra di avanzamento che mostra l'avanzamento dell'installazione:

Installazione di MariaDB

Passo 11) Fare clic sul pulsante Fine
Una volta completata l'installazione, vedrai il pulsante Fine. Fare clic sul pulsante per chiudere la finestra:

Installazione di MariaDB

Passo 12) Congratulazioni!
Ora hai MariaDB installato sul tuo computer.

Lavorare con il prompt dei comandi

Ora che hai MariaDB installato sul tuo computer, è ora di avviarlo e iniziare a usarlo. Questo può essere fatto tramite il MariaDB prompt dei comandi.

Segui i passaggi indicati di seguito:

Passo 1) Fare clic su Start, selezionare Tutti i programmi quindi fare clic su MariaDB...

Passo 2) Scegli un MariaDB Prompt dei comandi.

MariaDB Prompt dei comandi

Passo 3) Il MariaDB verrà avviato il prompt dei comandi. È ora di effettuare il login. Dovresti accedere come utente root e la password che hai impostato durante l'installazione di MariaDBDigitare il seguente comando nel prompt dei comandi:

MySQL -u root -p

Passo 4) Inserisci la password e premi il tasto Invio. Dovresti aver effettuato l'accesso, come mostrato di seguito:

MariaDB Prompt dei comandi

Ora hai effettuato l'accesso MariaDB.

Tipi di dati

MariaDB supporta i seguenti tipi di dati:

  • Tipi di dati stringa
  • Tipi di dati numerici
  • Tipi di dati di data/ora
  • Tipi di dati di oggetti di grandi dimensioni

Tipi di dati stringa

Questi includono i seguenti:

Tipo di dati stringa Descrizione
carattere(dimensione) La dimensione indica il numero di caratteri da memorizzare. Memorizza un massimo di 255 caratteri. Corde di lunghezza fissa.
varchar(dimensione) La dimensione indica il numero di caratteri da memorizzare. Memorizza un massimo di 255 caratteri. Stringhe di lunghezza variabile.
dimensione del testo) La dimensione indica il numero di caratteri da memorizzare. Memorizza un massimo di 255 caratteri. Corde di lunghezza fissa.
binario(dimensione) La dimensione indica il numero di caratteri da memorizzare. Memorizza un massimo di 255 caratteri. Corde di dimensione fissa.

Tipi di dati numerici

Includono quanto segue:

Tipi di dati numerici Descrizione
bit Un valore intero molto piccolo equivalente a tinyint(1). I valori con segno sono compresi tra -128 e 127. I valori senza segno sono compresi tra 0 e 255.
int(m) Un valore intero standard. I valori con segno sono compresi tra -2147483648 e 2147483647. I valori senza segno sono compresi tra 0 e 4294967295.
float(m, d) Un numero a virgola mobile con precisione singola.
doppio(m,d) Un numero in virgola mobile con doppia precisione.
galleggiante(p) Un numero in virgola mobile.

Tipi di dati data/ora

Questi includono i seguenti:

Tipo di dati data/ora Descrizione
Data Visualizzato nel formato "aaaa-mm-gg". I valori sono compresi tra '1000-01-01' e '9999-12-31'.
Appuntamento Visualizzato nel formato "aaaa-mm-gg hh:mm:ss". I valori sono compresi tra '1000-01-01 00:00:00' e '9999-12-31 23:59:59'.
timestamp(m) Visualizzato nel formato "aaaa-mm-gg hh:mm:ss". I valori sono compresi tra '1970-01-01 00:00:01' utc e '2038-01-19 03:14:07' utc.
Ora Visualizzato nel formato 'hh:mm:ss'. I valori sono compresi tra '-838:59:59' e '838:59:59'.

Tipi di dati di oggetti di grandi dimensioni (LOB)

Includono quanto segue:

Tipo di dati oggetto di grandi dimensioni Descrizione
tinyblob La sua dimensione massima è 255 byte.
macchia (dimensione) Richiede 65,535 byte come dimensione massima.
mediumblob La sua dimensione massima è 16,777,215 byte.
longtext La dimensione massima è di 4 GB.

Creare un database e tabelle

Per creare un nuovo database in MariaDB, dovresti avere privilegi speciali concessi solo all'utente root e agli amministratori.

Per creare un nuovo database è necessario utilizzare il comando CREATE DATABASE che accetta la seguente sintassi:

CREATE DATABASE DatabaseName;

In questo caso è necessario creare un database e dargli il nome Demo.

Avvia la MariaDB prompt dei comandi ed effettuare il login come utente root digitando il seguente comando:

mysql -u root -p

Digita la password di root e premi il tasto Invio. Verrai loggato.

Ora, esegui il seguente comando:

CREATE DATABASE Demo;

Crea un database e tabelle in MariaDB

Hai quindi creato un database denominato Demo. Sarà utile per te confermare se il database è stato creato correttamente o meno. Devi solo mostrare l'elenco dei database disponibili eseguendo il seguente comando:

SHOW DATABASES;

Crea un database e tabelle in MariaDB

L'output precedente mostra che il database Demo fa parte dell'elenco, quindi il database è stato creato correttamente.

MariaDB Seleziona Database

Per poter utilizzare o lavorare su un particolare database, è necessario selezionarlo dall'elenco dei database disponibili. Dopo aver selezionato un database, è possibile eseguire attività come la creazione di tabelle all'interno del database.

Per selezionare un database, è necessario utilizzare il comando USE. Richiede la sintassi indicata di seguito:

USE database_name;

È necessario utilizzare il database Demo. Puoi selezionarlo eseguendo il seguente comando:

USE Demo;

Crea un database e tabelle in MariaDB

L'immagine sopra mostra che il MariaDB il prompt dei comandi è cambiato da nessuno al nome del database selezionato.

Ora puoi andare avanti e creare tabelle all'interno del database Demo.

MariaDB - Crea tabella

Per poter creare una tabella, è necessario aver selezionato un database. La tabella può essere creata utilizzando l'istruzione CREATE TABLE. Ecco la sintassi del comando:

CREATE TABLE tableName (columnName columnType);

È possibile impostare una delle colonne come chiave primaria. Questa colonna non deve consentire valori null.

Creeremo due tabelle all'interno del database Demo, delle tabelle Libro e Prezzo. Ogni tabella avrà due colonne.

Iniziamo creando la tabella Book con due colonne, id e name. Esegui il seguente comando:

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

Crea un database e tabelle in MariaDB

Il vincolo PRIMARY KEY è stato utilizzato per impostare la colonna id come chiave primaria per la tabella. La proprietà AUTO_INCREMENT incrementerà automaticamente i valori della colonna id di 1 per ogni nuovo record inserito nella tabella. Tutte le colonne non consentiranno valori nulli.

Ora crea la seconda tabella, la tabella dei prezzi:

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

Crea un database e tabelle in MariaDB

La colonna id è stata impostata come chiave primaria per la tabella.

Mostra tabelle

Ora che hai creato le due tabelle, sarà opportuno verificare se le tabelle sono state create correttamente o meno. È possibile visualizzare l'elenco delle tabelle contenute in un database eseguendo il seguente comando:

SHOW TABLES;

Crea un database e tabelle in MariaDB

Lo screenshot sopra mostra che le due tabelle sono state create correttamente all'interno del database Demo.

Mostra la struttura della tabella

Per vedere la struttura di una particolare tabella, puoi utilizzare il comando DESCRIBE, comunemente abbreviato in DESC. Richiede la seguente sintassi:

DESC TableName;

Ad esempio, per vedere la struttura della tabella denominata Book, è possibile eseguire il comando seguente;

DESC Book;

Crea un database e tabelle in MariaDB

La tabella ha due colonne. Per vedere la struttura della tabella Prezzi, puoi eseguire il seguente comando:

DESC Price;

Crea un database e tabelle in MariaDB

CRUD e clausole

INSERT

Per inserire dati in a MariaDB tabella, è necessario utilizzare l'istruzione INSERT INTO. Questo comando accetta la sintassi indicata di seguito:

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

La sintassi sopra mostra che devi specificare le colonne della tabella in cui vuoi inserire i dati così come i dati che devi inserire.

Inseriamo un record nella tabella Libro:

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

CRUD e clausole-INSERT

Hai inserito un singolo record nella tabella. Inserisci un record nella tabella Prezzi:

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

CRUD e clausole-INSERT

Il record è stato creato.

SELEZIONA

L'istruzione SELECT ci aiuta a visualizzare o vedere il contenuto di una tabella di database. Per vedere il contenuto della tabella Book, ad esempio, è necessario eseguire il seguente comando:

SELECT * from book;

CRUD e clausole-INSERT

Ora, visualizza il contenuto della tabella Prezzi:

SELECT * from price;

CRUD e clausole-INSERT

Inserimento di più record

È possibile inserire più record in un file MariaDB tavolo alla volta. Per dimostrarlo, esegui il seguente esempio:

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

Inserimento di più record

Puoi interrogare la tabella per verificare se i record sono stati inseriti correttamente:

SELECT * FROM book;

Inserimento di più record

I record sono stati inseriti correttamente. Inserisci più record nella tabella Prezzo eseguendo questo esempio:

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

Inserimento di più record

Confermiamo se i record sono stati creati correttamente:

SELECT * FROM price;

Inserimento di più record

AGGIORNAMENTO

Il comando UPDATE ci aiuta a cambiare o modificare i record che sono già stati inseriti in una tabella. Puoi combinarlo con la clausola WHERE per specificare il record da aggiornare. Ecco la sintassi:

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

Il comando UPDATE può anche essere combinato con clausole come SET, WHERE, LIMIT e ORDER BY. Lo vedrai a breve:

Considera la tabella denominata Prezzo con i seguenti record:

CRUD e clausole-AGGIORNAMENTO

Cambiamo il prezzo del libro con ID 1 da 200 a 250:

UPDATE price 
SET price = 250
WHERE id = 1;

CRUD e clausole-AGGIORNAMENTO

Il comando è stato eseguito correttamente. Ora puoi interrogare la tabella per vedere se la modifica è avvenuta:

CRUD e clausole-AGGIORNAMENTO

Lo screenshot sopra mostra che la modifica è stata implementata. Consideriamo la tabella Libro con i seguenti record:

CRUD e clausole-AGGIORNAMENTO

Cambiamo il nome del libro denominato Libro in MariaDB Libro1. Nota che il libro ha un ID pari a 1. Ecco il comando per questo:

UPDATE book
SET name = “MariaDB Book1”
WHERE id = 1;

CRUD e clausole-AGGIORNAMENTO

Controlla se la modifica è stata implementata:

CRUD e clausole-AGGIORNAMENTO

Lo screenshot sopra mostra che la modifica è stata implementata con successo.

Negli esempi precedenti, abbiamo modificato solo una colonna alla volta. Tuttavia, è possibile modificare più colonne contemporaneamente. Dimostriamolo utilizzando un esempio.

Usiamo la tabella dei prezzi con i seguenti dati:

CRUD e clausole-AGGIORNAMENTO

Cambiamo sia l'id che il prezzo del libro con un id 5. Cambiamo il suo id in 6 e il prezzo in 6. Eseguiamo il seguente comando:

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

CRUD e clausole-AGGIORNAMENTO

Ora interroga la tabella per verificare se la modifica è stata apportata correttamente:

CRUD e clausole-AGGIORNAMENTO

La modifica è stata apportata con successo.

Elimina

Usiamo il comando DELETE quando dobbiamo eliminare uno o più record da una tabella. Ecco la sintassi del comando:

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

Consideriamo la tabella dei prezzi con i seguenti record:

CRUD e clausole-DELETE

Dobbiamo eliminare l'ultimo record dalla tabella. Ha un ID pari a 6 e un prezzo pari a 280. Eliminiamo il record:

DELETE FROM price
WHERE id = 6;   

CRUD e clausole-DELETE

Il comando è stato eseguito correttamente. Interroghiamo la tabella per verificare se la cancellazione è avvenuta con successo:

CRUD e clausole-DELETE

L'output mostra che il record è stato eliminato correttamente.

Dove

La clausola WHERE ci aiuta a specificare il luogo esatto in cui dobbiamo apportare una modifica. Viene utilizzato insieme a istruzioni come INSERT, SELECT, UPDATE e DELETE. Considera la tabella dei prezzi con i seguenti dati:

CRUD e clausole-dove

Supponiamo di dover vedere i record in cui il prezzo è inferiore a 250. Possiamo eseguire il seguente comando:

SELECT *   
FROM price 
WHERE price < 250;  

CRUD e clausole-dove

Sono stati restituiti tutti i record in cui il prezzo è inferiore a 250.

La clausola WHERE può essere combinata con l'istruzione AND. Supponiamo di dover vedere tutti i record nella tabella Prezzo in cui il prezzo è inferiore a 250 e l'id è superiore a 3. Possiamo eseguire il seguente comando:

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

CRUD e clausole-dove

È stato restituito un solo record. Il motivo è che deve soddisfare tutte le condizioni specificate, ovvero ID superiore a 3 e prezzo inferiore a 250. Se una qualsiasi di queste condizioni viene violata, il record non verrà restituito.

La clausola può anche essere combinata con il comando OR. Sostituiamo AND nel nostro comando precedente con OR e vediamo il tipo di output che riceviamo:

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

CRUD e clausole-dove

Ora otteniamo 2 record anziché 1. Questo perché, per un record di qualificazione, deve soddisfare solo una delle condizioni specificate.

Come

Questa clausola viene utilizzata per specificare il modello di dati quando si accede ai dati della tabella in cui è necessaria una corrispondenza esatta. Può essere combinato con le istruzioni INSERT, UPDATE, SELECT e DELETE.

Dovresti passare il modello di dati che stai cercando alla clausola e restituirà vero o falso. Ecco i caratteri jolly che possono essere utilizzati insieme alla clausola:

  • %: per la corrispondenza di 0 o più caratteri.
  • _: per la corrispondenza di un singolo carattere.

Ecco la sintassi per la clausola LIKE:

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

Dimostriamo come utilizzare la clausola con il carattere jolly %. Usiamo la tabella Libro con i seguenti record:

CRUD e clausole-dove

Dobbiamo vedere tutti i record in cui il nome inizia con M. Possiamo eseguire il seguente comando:

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

CRUD e clausole-dove

Tutti i record sono stati restituiti perché i loro nomi iniziano con la lettera M. Per vedere tutti i nomi che terminano con 4, puoi eseguire il comando seguente:

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

CRUD e clausole-dove

È stato restituito un solo nome perché è l'unico che soddisfa la condizione.

Possiamo anche circondare il modello di ricerca con il carattere jolly:

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

CRUD e clausole-dove

Oltre al carattere jolly %, la clausola LIKE può essere utilizzata insieme al carattere jolly _. Questo è il carattere jolly di sottolineatura e cercherà solo un singolo carattere.

Lavoriamo con la tabella Prezzi con i seguenti record:

CRUD e clausole-dove

Controlliamo il record in cui il prezzo è come 1_0. Eseguiamo il seguente comando:

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

CRUD e clausole-dove

Ha restituito il record in cui il prezzo è 190. Possiamo anche provare un altro modello:

SELECT *  
FROM price 
WHERE price LIKE '_2_';  

CRUD e clausole-dove

È possibile per noi utilizzare la clausola LIKE insieme all'operatore NOT. Verranno restituiti tutti i record che non soddisfano il modello specificato. Per esempio:

Usiamo la tabella Prezzi con i seguenti record:

CRUD e clausole-dove

Troviamo tutti i record in cui il prezzo non inizia con 2:

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

CRUD e clausole-dove

Solo un record non soddisfa il modello specificato.

Ordina per

Questa clausola ci aiuta a ordinare i nostri record in ordine ascendente o discendente. Lo usiamo con l'istruzione SELECT, come mostrato di seguito:

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

È possibile utilizzare questa clausola senza aggiungere la parte ASC o DESC. Per esempio:

Utilizzeremo la tabella Prezzi con i seguenti record:

CRUD e clausole-dove

Esegui il comando seguente sulla tabella:

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

CRUD e clausole-dove

Nel comando precedente, abbiamo ordinato in base al prezzo. I record sono stati ordinati con i prezzi in ordine crescente. Ciò significa che quando non specifichiamo l'ordine, per impostazione predefinita l'ordinamento viene eseguito in ordine crescente.

Eseguiamo la clausola con l'opzione DESC:

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

CRUD e clausole-dove

I record sono stati ordinati con il prezzo in ordine decrescente come da noi specificato.

Usiamo la clausola ORDER BY insieme all'attributo ASC:

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

CRUD e clausole-dove

I dischi sono stati ordinati ma con i prezzi in ordine crescente. Questo è simile a quando utilizziamo la clausola ORDER BY senza attributi ASC o DESC.

DISTINCT

Questa clausola ci aiuta a eliminare i duplicati quando si selezionano i record da una tabella. Ciò significa che ci aiuta a ottenere record unici. La sua sintassi è riportata di seguito:

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

Per dimostrarlo, utilizzeremo la tabella dei prezzi con i seguenti dati:

CRUD e clausole DISTINTE

Quando selezioniamo la colonna del prezzo dalla tabella, otteniamo il seguente risultato:

SELECT price FROM Price;

CRUD e clausole DISTINTE

Abbiamo due record con un prezzo pari a 250, creando un duplicato. Dobbiamo avere solo record univoci. Possiamo filtrarli utilizzando la clausola DISTINCT come mostrato di seguito:

SELECT DISTINCT price FROM Price;

CRUD e clausole DISTINTE

Ora non abbiamo duplicati nell'output sopra.

Da

La clausola FROM utilizzata per recuperare i dati da una tabella di database. Può anche essere utile quando si uniscono le tabelle. Ecco la sintassi del comando:

SELECT columnNames FROM tableName; 

Per visualizzare il contenuto della tabella book, esegui il comando seguente:

SELECT * FROM price;

CRUD e clausole da

La clausola può aiutarti a recuperare solo una singola colonna da una tabella di database. Per esempio:

SELECT price FROM Price;

CRUD e clausole da

Compiti avanzati

Procedura memorizzata

Una procedura è a MariaDB programma a cui è possibile passare i parametri. Una procedura non restituisce valori. Per creare una procedura utilizziamo il comando CREATE PROCEDURE.

Per dimostrare come creare e chiamare una procedura, creeremo una procedura denominata myProcedure() che ci aiuta a selezionare la colonna name dalla tabella book. Ecco la procedura:

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

Procedura memorizzata per le attività avanzate

La procedura è stata creata. Abbiamo semplicemente racchiuso l'istruzione SELECT all'interno delle clausole BEGIN ed END della procedura.

Ora possiamo chiamare la procedura con il suo nome come mostrato di seguito:

CALL myProcedure();

Procedura memorizzata per le attività avanzate

La procedura restituisce la colonna del nome della tabella book quando viene chiamata.

Possiamo creare una procedura che accetta un parametro. Ad esempio, dobbiamo selezionare il nome del libro e filtrare utilizzando l'ID del libro. Possiamo creare la seguente procedura per questo:

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

Procedura memorizzata per le attività avanzate

Sopra, abbiamo creato una procedura denominata myProcedure2(). Questa procedura accetta un parametro intero denominato book_id che è l'id del libro di cui dobbiamo vedere il nome. Per vedere il nome del libro con id 3, possiamo chiamare la procedura come segue:

CALL myProcedure2(3);

Procedura memorizzata per le attività avanzate

Funzione

A differenza delle procedure, dobbiamo passare parametri alle funzioni e una funzione deve restituire un valore. Per creare una funzione in MariaDB, utilizziamo l'istruzione CREATE FUNCTION. L'istruzione ha la seguente sintassi:

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;

I parametri di cui sopra sono descritti di seguito:

Parametro Descrizione
Clausola DEFINITORE Questo parametro è facoltativo. Se non lo specifichi, il definitore diventerà l'utente che ha creato la funzione. Se è necessario specificare un definitore diverso, includere la clausola DEFINER in cui nome_utente sarà il definitore della funzione.
nome_funzione Il nome da assegnare a questa funzione nel file MariaDB.
parametro I parametri passati alla funzione. Durante la creazione della funzione, tutti i parametri vengono trattati come IN parametri (piuttosto che parametri OUT/INOUT).
return_datatype Il tipo di dati del valore restituito dalla funzione.
LINGUASQL Influisce sulla portabilità ma non sulla funzionalità.
DETERMINISTICO La funzione restituirà un risultato solo quando viene fornito un numero di parametri.
NON DETERMINISTICO È possibile che la funzione restituisca un risultato diverso quando viene fornito un numero di parametri.
CONTIENE SQL informa MariaDB che questa funzione contiene SQL. Il database non verificherà se ciò è vero.
NON SQL Questa clausola non viene utilizzata e non ha alcun impatto sulla funzione.
LEGGE I DATI SQL Tells MariaDB che questa funzione utilizzerà le istruzioni SELECT per leggere i dati, ma non modificherà i dati.
MODIFICA I DATI SQL Tells MariaDB che questa funzione utilizzerà INSERT, DELETE, UPDATE e altro DDL istruzioni per modificare i dati SQL.
sezione dichiarazioni Qui è dove dovrebbero essere dichiarate le variabili locali.
sezione eseguibile Il codice funzione dovrebbe essere aggiunto qui.

Qui trovi un esempio MariaDB funzione:

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 ;

Funzione dentro MariaDB

Possiamo quindi chiamare la funzione di cui sopra nel modo seguente:

select sumFunc(1000);

Il comando restituirà quanto segue:

Funzione dentro MariaDB

Una volta terminata una funzione, sarà opportuno eliminarla. Questo è semplice poiché devi solo chiamare l'istruzione DROP FUNCTION che accetta la seguente sintassi:

DROP FUNCTION function_name;

Ad esempio, per eliminare la funzione denominata myFunc, possiamo eseguire il seguente comando:

DROP FUNCTION myFunc;

ISCRIVITI

Quando è necessario recuperare dati da più tabelle contemporaneamente, utilizzare MariaDB SI UNISCE. Ciò significa che a ISCRIVITI funziona su due o più tabelle. I seguenti tre tipi di JOIN sono supportati in MariaDB:

  • JOIN INTERNO/SEMPLICE
  • JOIN ESTERNO SINISTRO/JUN SINISTRO
  • GIUNZIONE ESTERNA DESTRA/GIUNTA DESTRA

Discutiamoli uno per uno:

INNER JOIN

L'inner join restituisce tutte le righe delle tabelle in cui la condizione di join è vera. La sua sintassi è la seguente:

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

Per esempio:

Useremo i nostri due tavoli, libri e libro.

La tabella dei libri contiene i seguenti dati:

INNER JOIN

La tabella dei prezzi contiene i seguenti dati:

INNER JOIN

L'obiettivo è unire la colonna del nome della tabella Libro e la colonna del prezzo della tabella Prezzo in un'unica tabella. Ciò è possibile con un inner join, come dimostrato di seguito:

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

Il comando restituisce quanto segue:

INNER JOIN

UNIONE ESTERNO SINISTRO

Questo join restituisce tutte le righe della tabella a sinistra e solo le righe dell'altra tabella in cui la condizione di join è vera. La sua sintassi è la seguente:

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

La parola chiave OUTER è stata inserita tra parentesi quadre perché è facoltativa.

Per esempio:

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

Il comando restituisce quanto segue:

UNIONE ESTERNO SINISTRO

L'ultimo record nella tabella sopra non ha alcun valore corrispondente a sinistra. Ecco perché è stato sostituito con NULL.

GIUNZIONE ESTERNA DESTRA

Questo join restituisce tutte le righe della tabella a destra e solo le righe dell'altra tabella in cui la condizione di join è vera. La sua sintassi è la seguente:

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

La parola chiave OUTER è stata inserita tra parentesi quadre perché è facoltativa.

Per esempio:

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

Il comando restituisce quanto segue:

GIUNZIONE ESTERNA DESTRA

Il motivo è che tutte le righe della tabella a destra corrispondevano a quelle dell'altra tabella. Se alcune righe non corrispondessero, avremmo NULL nella prima colonna.