MariaDB Tutorial
Cosa รจ 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:
Passo 4) Accetta il contratto di licenza
Quindi fare clic sul pulsante Avanti:
Passo 5) Scegli MariaDB server
Scegli le funzionalitร che devono essere installate e fai clic su Avanti
Passo 6) Inserire la password
Nella finestra successiva, ti verrร richiesto di modificare la password per l'utente root.
- Inserisci la password e confermala digitando nuovamente la stessa password. Se vuoi consentire l'accesso da macchine remote, attiva la casella di controllo necessaria.
- Una volta terminato, fare clic sul pulsante Avanti.
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:
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.
Passo 10) Viene mostrata una barra di avanzamento
Verrร mostrata una barra di avanzamento che mostra l'avanzamento dell'installazione:
Passo 11) Fare clic sul pulsante Fine
Una volta completata l'installazione, vedrai il pulsante Fine. Fare clic sul pulsante per chiudere la finestra:
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.
Passo 3) Migliori 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:
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;
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;
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;
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));
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));
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;
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;
La tabella ha due colonne. Per vedere la struttura della tabella Prezzi, puoi eseguire il seguente comando:
DESC Price;
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');
Hai inserito un singolo record nella tabella. Inserisci un record nella tabella Prezzi:
INSERT INTO price (id, price) VALUES(1, 200);
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;
Ora, visualizza il contenuto della tabella Prezzi:
SELECT * from price;
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');
Puoi interrogare la tabella per verificare se i record sono stati inseriti correttamente:
SELECT * FROM book;
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);
Confermiamo se i record sono stati creati correttamente:
SELECT * FROM price;
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:
Cambiamo il prezzo del libro con ID 1 da 200 a 250:
UPDATE price SET price = 250 WHERE id = 1;
Il comando รจ stato eseguito correttamente. Ora puoi interrogare la tabella per vedere se la modifica รจ avvenuta:
Lo screenshot sopra mostra che la modifica รจ stata implementata. Consideriamo la tabella Libro con i seguenti record:
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;
Controlla se la modifica รจ stata implementata:
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:
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;
Ora interroga la tabella per verificare se la modifica รจ stata apportata correttamente:
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:
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;
Il comando รจ stato eseguito correttamente. Interroghiamo la tabella per verificare se la cancellazione รจ avvenuta con successo:
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:
Supponiamo di dover vedere i record in cui il prezzo รจ inferiore a 250. Possiamo eseguire il seguente comando:
SELECT * FROM price WHERE price < 250;
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;
ร 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;
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:
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%';
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';
ร 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%';
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:
Controlliamo il record in cui il prezzo รจ come 1_0. Eseguiamo il seguente comando:
SELECT * FROM price WHERE price LIKE '1_0';
Ha restituito il record in cui il prezzo รจ 190. Possiamo anche provare un altro modello:
SELECT * FROM price WHERE price LIKE '_2_';
ร 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:
Troviamo tutti i record in cui il prezzo non inizia con 2:
SELECT * FROM price WHERE price NOT LIKE '2%';
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:
Esegui il comando seguente sulla tabella:
SELECT * FROM price WHERE price LIKE '2%.' ORDER BY price;
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;
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;
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:
Quando selezioniamo la colonna del prezzo dalla tabella, otteniamo il seguente risultato:
SELECT price FROM Price;
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;
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;
La clausola puรฒ aiutarti a recuperare solo una singola colonna da una tabella di database. Per esempio:
SELECT price FROM Price;
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;
;
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();
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;
;
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);
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 ;
Possiamo quindi chiamare la funzione di cui sopra nel modo seguente:
select sumFunc(1000);
Il comando restituirร quanto segue:
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:
La tabella dei prezzi contiene i seguenti dati:
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:
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:
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:
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.






































































