Il linguaggio di query strutturato viene utilizzato per gestire i dati strutturati. I dati che vengono memorizzati sotto forma di tabelle sono dati strutturati. Questi comandi SQL memorizzano record o dati nella tabella e vengono utilizzati anche per recuperare i record dalle tabelle archiviate. Esistono quattro tipi di comandi del linguaggio di query strutturato:
- Comandi del linguaggio di definizione dei dati.
- Comandi del linguaggio di manipolazione dei dati.
- Comandi del linguaggio di controllo dei dati.
- Comandi del linguaggio di controllo delle transazioni.
Comandi del linguaggio di definizione dei dati
DDL è l'abbreviazione di Data Definition Language. I comandi del linguaggio di definizione dei dati vengono utilizzati per gestire la struttura, ovvero la tabella o la relazione in cui sono archiviati i nostri record o dati. I comandi del linguaggio di definizione dei dati vengono utilizzati per creare, eliminare e modificare la tabella. I comandi del linguaggio di definizione dei dati sono:
- Comando CREA.
- Comando ALTER.
- Comando DROP.
- Comando TRUNCATE.
CREA comandi: In Structured Query Language, memorizziamo i dati nella tabella e, per creare una nuova tabella o database, utilizziamo il comando CREATE dei comandi del linguaggio di definizione dei dati. Di seguito è riportata la sintassi per creare un database:
CREATE DATABASE DATABASE_NAME;
Ad esempio,
- Scrivi una query per creare un nuovo database seguito dal nome del database Società.
CREATE DATABASE COMPANY;
Per verificare se è stata creata una società di database, utilizzeremo la seguente query:
SHOW DATABASES;
Banca dati |
azienda |
dipendente |
schema_informativo |
mysql |
schema_prestazioni |
phpmyadmin |
Il risultato di cui sopra dice che abbiamo creato con successo la Azienda Banca dati.
- Scrivi una query per creare una nuova tabella:
Creeremo una nuova tabella di Dipendenti all'interno della Azienda Banca dati. Dobbiamo selezionare Database aziendale.
CREATE TABLE TABLE_NAME(COLUMN_NAME1 DATATYPE(COLUMN SIZE), COLUMN_NAME2 DATATYPE (COLUMN SIZE),COLUMN_NAME3 DATATYPE (COLUMN SIZE));
Per selezionare il database aziendale, utilizzeremo la seguente query:
USE COMPANY;
Ora selezioniamo l'Azienda come Database; eseguiremo la query CREATE TABLE per creare una tabella:
CREATE TABLE EMPLOYEES (EMPLOYEE INT PRIMARY KEY, FIRST_NAME VARCHAR (20), LAST_NAME VARCHAR (20), SALARY INT, CITY VARCHAR (20) );
Abbiamo creato il nome della tabella Impiegati utilizzando la query CREATE TABLE.
Per verificare se la tabella Impiegati è stata creata, utilizzeremo la seguente query:
SHOW TABLES;
Tables_in_company |
dipendenti |
Il risultato sopra indica che abbiamo creato con successo la tabella "Dipendenti".
Creeremo un'altra tabella usando CREATE TABLE.
CREATE TABLE DEPARTMENT (DEPARTMENT INT PRIMARY KEY, DEPARTMENT_NAME VARCHAR (20));
Abbiamo creato il nome della tabella "Dipartimento" utilizzando la query CREATE TABLE.
Per verificare se la tabella Reparto è stata creata, utilizzeremo la seguente query:
SHOW TABLES;
Tables_in_company |
impiegati di reparto |
Il risultato sopra indica che abbiamo creato con successo la tabella "Dipendenti".
Comando ALTER: Nel Structured Query Language, ogni volta che vogliamo modificare lo schema o la struttura della tabella, utilizzeremo il comando ALTER del comando Data Definition Language. Il comando ALTER viene utilizzato per modificare lo schema della tabella aggiungendo una nuova colonna, eliminando una colonna esistente dalla tabella, ecc. Di seguito è riportata la sintassi del comando ALTER per aggiungere una nuova colonna:
ALTER TABLE TABLE_NAME ADD COLUMN_NAME DATATYPE (COLUMN SIZE);
Sintassi di ALTER Comando per rimuovere una colonna esistente:
ALTER TABLE TABLE-NAME DROP COLUMN COLUMN_NAME;
Sintassi di ALTER Comando per rinominare la colonna della tabella esistente:
ALTER TABLE TABLE_NAME RENAME COLUMN OLD_COLUMN-NAME TO NEW_COLUMN_NAME;
Ad esempio,
- Scrivi una query per aggiungere una nuova colonna nella tabella Dipendenti:
ALTER TABLE EMPLOYEES ADD DEPARTMENT VARCHAR (20);
Qui, abbiamo eseguito il comando ALTER TABLE sulla tabella Employees seguito dalla parola chiave ADD, che significa aggiungere una colonna con il nome della colonna Department, il tipo di dati VARCHAR e la dimensione della colonna 20. La query precedente dice che abbiamo aggiunto una nuova colonna denominata ' Department' con il tipo di dati VARCHAR e la dimensione della colonna è 20.
Per verificare se è stata aggiunta una nuova colonna alla tabella Impiegati, utilizzeremo il comando DESC sulla tabella del dipendente.
DESC EMPLOYEES;
Campo | Tipo | Null | Chiave | Predefinito | Extra |
ID DIPENDENTE | int(11) | NO | PRI | NULLO | |
FIRST_NAME | varchar(20) | SI | NULLO | ||
COGNOME | varchar(20) | SI | NULLO | ||
STIPENDIO | int(11) | SI | NULLO | ||
CITTÀ | varchar(20) | SI | NULLO | ||
REPARTO | varchar(20) | SI | NULLO |
Il risultato precedente verifica che una nuova colonna sia stata aggiunta correttamente alla tabella del dipendente.
Comando DROP: Il comando DROP nel linguaggio di query strutturato viene utilizzato per eliminare la tabella e lo schema della tabella dal database. Ecco la sintassi del comando DROP;
DROP TABLE TABLE_NAME;
Scrivi una query per eliminare la tabella Reparto dal database dei dipendenti.
DROP TABLE DEPARTMENT;
Qui abbiamo eseguito la query DROP TABLE sulla tabella Department.
Per verificare se la tabella Reparto è stata eliminata, utilizzeremo la seguente query:
SHOW TABLES;
Tables_in_company |
Dipendenti |
Il risultato sopra indica che abbiamo eliminato con successo la tabella Reparto dal database aziendale.
Comando TRUNCATE: Il comando TRUNCATE nel linguaggio di query strutturato rimuove tutti i dati dalla tabella senza disturbare lo schema della tabella nel database. Di seguito è riportata la sintassi del comando TRUNCATE:
TRUNCATE TABLE TABLE_NAME
Scrivi una query per eliminare tutti i record dalla tabella Dipendenti.
Utilizzeremo la query SELECT per recuperare prima i dati della tabella Employees e quindi eseguire la query TRUNCATE.
SELECT * FROM EMPLOYEES;
ID DIPENDENTE | FIRST_NAME | COGNOME | STIPENDIO | CITTÀ | REPARTO |
1 | Vaibhav | Sharma | 65000 | Noida | Oracolo |
2 | Sweta | Sharma | 55000 | Jaipur | Oracolo |
3 | Sonali | Mali | 60000 | Nashik | FM |
TRUNCATE TABLE EMPLOYEES;
Qui, abbiamo rimosso con successo tutti i dati dalla tabella Impiegati. Ora utilizzeremo la query SELECT nella tabella Impiegati.
TRUNCATE TABLE EMPLOYEES;
Dopo aver eseguito una query SELECT sulla tabella Employees, il risultato visualizzerà un set vuoto. Ciò significa che abbiamo rimosso con successo l'intera tabella.
Comando del linguaggio di manipolazione dei dati
DML sta per Data Manipulation Language. I comandi del linguaggio di manipolazione dei dati nel linguaggio di query strutturato manipolano i dati nel database. I comandi del linguaggio di manipolazione dei dati vengono utilizzati per recuperare dati, archiviare dati, modificare i dati ed eliminare i dati dalla tabella esistente.
I comandi del linguaggio di manipolazione dei dati nel linguaggio di query strutturato sono i seguenti:
- Comando SELEZIONA.
- Comando INSERIRE.
- Comando AGGIORNA.
- Comando DELETE.
Per prima cosa, esamineremo i comandi INSERT del linguaggio di manipolazione dei dati nel linguaggio di query strutturato. Dopo INSERT, ci sposteremo verso il comando SELECT.
Comando INSERT: Il comando INSERT memorizza dati o record nella tabella del database. Il comando INSERT è l'importante comando del linguaggio di manipolazione dei dati nel linguaggio di query strutturato.
Sintassi del comando INSERT Data Manipulation Language:
INSERT INTO TABLE_NAME VALUES (VALUE1, VALUE2, VALUE3, VALUE);
Questa sintassi consente tutti i campi della tabella. Nel caso in cui desideri inserire valori per i campi selezionati, utilizza la seguente sintassi:
INSERT INTO TABLE_NAME (COLUMN_NAME1, COLUMN_NAME2) VALUES (VALUE1, VALUE2);
La sintassi precedente viene utilizzata per memorizzare i valori per i campi selezionati della tabella.
Ad esempio,
In questo esempio, inseriremo un record per tutti i campi della tabella.
Prendiamo la tabella Impiegati, che è vuota. INSERTIAMO i record nella tabella stud.
Ora memorizzeremo i nuovi record nella tabella Impiegati. Per memorizzare i record nella tabella, eseguiremo il seguente comando INSERT del linguaggio di manipolazione dei dati:
INSERT INTO EMPLOYEES VALUES (1001, 'VAIBHAVI', 'MISHRA', 65000, 'PUNE', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (1002, 'VAIBHAV', 'SHARMA', 60000, 'NOIDA', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (1003, 'NIKHIL', 'VANI', 50000, 'JAIPUR', 'FMW');
INSERT INTO EMPLOYEES VALUES (1004, 'ANUJA', 'WANRE', 55000, 'DELHI', 'FMW');
INSERT INTO EMPLOYEES VALUES (2001, 'PRACHI', 'SHARMA', 55500, 'CHANDIGARH', 'ORACLE');
INSERT INTO EMPLOYEES VALUES (2002, 'BHAVESH', 'JAIN', 65500, 'PUNE', 'ORACLE');
Abbiamo inserito sei record nella tabella dei dipendenti.
Comando SELEZIONA: Il comando più importante del linguaggio di manipolazione dei dati nell'SQL è il comando SELECT. Il comando SELECT viene utilizzato per recuperare i dati della tabella specificata e il comando SELECT viene utilizzato anche per recuperare i campi selezionati della tabella utilizzando la clausola WHERE nella query.
Sintassi del comando SELECT del linguaggio di manipolazione dei dati
SELECT * FROM TABLE_NAME;
La sintassi precedente viene utilizzata per recuperare l'intera tabella.
SELECT COLUMN_NAME1, COLUMN_NAME2, COLUMN_NAMEN FROM TABLE_NAME;
La sintassi precedente consiste nel recuperare tutti i record della colonna selezionata.
SELECT * FROM TABLE_NAME WHERE COLUMN_NAME;
La sintassi precedente viene utilizzata per recuperare i singoli record utilizzando la clausola WHERE specificata dal nome della colonna.
Ad esempio, supponiamo di voler recuperare tutti i dati di ciascuna colonna dalla tabella:
SELECT * FROM EMPLOYEES;
Questo linguaggio di query strutturato mostra i seguenti dati della tabella EMPLOYEES:
- Recupera una singola riga di tutti i dati utilizzando la clausola WHERE specificata dal nome della colonna dalla tabella:
SELECT * FROM EMPLOYEES WHERE SALARY > 55000;
La query di cui sopra recupererà tutti i record dei dipendenti il cui stipendio è superiore a 55000.
Questo linguaggio di query strutturato mostra i seguenti dati della tabella EMPLOYEES:
Comando AGGIORNA: UPDATE Command è un altro prezioso comando del linguaggio di manipolazione dei dati in SQL. I comandi UPDATE vengono utilizzati per modificare i record in una tabella del database.
Sintassi del comando UPDATE del linguaggio di manipolazione dei dati
UPDATE TABLE_NAME SET COLUMN_NAME1 = VALUES, COLUMN_NAME2 = VALUES WHERE CONDITION;
AGGIORNA, IMPOSTA E DOVE sono le parole chiave del linguaggio di query strutturate.
Ad esempio,
- Questo esempio descrive come modificare il valore.
Consideriamo la tabella EMPLOYEES:
ID DIPENDENTE | FIRST_NAME | COGNOME | STIPENDIO | CITTÀ | REPARTO |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE |
1003 | NICHIL | VANI | 50000 | JAIPUR | FM |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FM |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | PROVA |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | DOVE | 50500 | JAIPUR | FM |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA |
4001 | RAJESH | GOUD | 60500 | MUMBAI | PROVA |
- Scrivi una query per modificare un record il cui cognome è "Jain" e imposta il valore del Dipartimento come "FMW".
UPDATE TABLE_NAME SET COLUMN_NAME1 = VALUES, COLUMN_NAME2 = VALUES WHERE CONDITION;
Utilizzeremo la query SELECT nella tabella Employees in cui il cognome è Jain per verificare se il valore è stato modificato o meno.
SELECT * FROM EMPLOYEES WHERE LAST_NAME = ‘JAIN’;
Questo linguaggio di query strutturato mostra i seguenti dati della tabella EMPLOYEES:
Comando DELETE: DELETE è un comando del linguaggio di manipolazione dei dati utilizzato per eliminare i record dalla tabella. Eliminiamo i record dalla tabella utilizzando la clausola WHERE nella query.
Sintassi del comando UPDATE del linguaggio di manipolazione dei dati
DELETE FROM TABLE_NAME WHERE CONDITION;
Ad esempio, consideriamo la tabella EMPLOYEES:
ID DIPENDENTE | FIRST_NAME | COGNOME | STIPENDIO | CITTÀ | REPARTO |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE |
1003 | NICHIL | VANI | 50000 | JAIPUR | FM |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FM |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | PROVA |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | DOVE | 50500 | JAIPUR | FM |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA |
4001 | RAJESH | GOUD | 60500 | MUMBAI | PROVA |
- Scrivi una query per eliminare i dati il cui nome di città è "Mumbai";
DELETE FROM EMPLOYEES WHERE CITY = ‘MUMBAI’;
Utilizzeremo la query SELECT sulla tabella Employees per verificare se il valore è stato modificato o meno.
SELECT * FROM EMPLOYEES;
Questo linguaggio di query strutturato mostra i seguenti dati della tabella EMPLOYEES:
ID DIPENDENTE | FIRST_NAME | COGNOME | STIPENDIO | CITTÀ | REPARTO |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE |
1003 | NICHIL | VANI | 50000 | JAIPUR | FM |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FM |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | DOVE | 50500 | JAIPUR | FM |
Il risultato precedente mostra che il record con City Mumbai è stato eliminato correttamente.
Comandi del linguaggio di controllo dei dati
DCL è l'abbreviazione di Data Control Language. Utilizziamo i comandi del linguaggio di controllo dei dati per controllare i privilegi di accesso ai record all'interno delle tabelle del linguaggio di query strutturato. Utilizzando i comandi di Data Control Language, possiamo concedere privilegi agli utenti autorizzati solo per accedere ai dati inseriti nelle tabelle o nei database.
L'utente dispone di alcuni privilegi di accesso predefiniti per accedere ai dati inseriti nelle tabelle solo per un determinato utente. Utilizzando i comandi del linguaggio di controllo dei dati, possiamo assegnare privilegi agli utenti sul linguaggio di query strutturato o sul database o riprendere (revocare) i privilegi dagli utenti. Sono disponibili due comandi del linguaggio di controllo dei dati:
- CONCESSIONE: I comandi di concessione vengono utilizzati per assegnare privilegi di accesso agli utenti per i database o le tabelle.
- REVOCA: Se possiamo CONCEDERE i privilegi di accesso agli utenti. In tal caso, vogliamo riprendere i privilegi assegnati dall'utente per i database. Possiamo usare il comando REVOKE per revocare tutti i privilegi assegnati all'utente.
Lingua di controllo delle transazioni
In Structured Query Language, abbiamo i comandi Data Definition Language (DDL) e Data Manipulation Language (DML) allo stesso modo in cui abbiamo i comandi Transaction Control Language (TCL) nel Structured Query Language. I comandi del linguaggio di controllo delle transazioni nel linguaggio di query strutturato sono Commit e Ripristino .
Qualunque comando abbiamo eseguito racchiuso in un'unità di lavoro nota come transazione. Supponiamo di aver eseguito un'operazione di aggiornamento o eliminazione su una tabella eseguita in una transazione. Tutte le operazioni o i comandi di DDL o DML vengono archiviati o eseguiti in una transazione. Per salvare tale DDL o DML eseguito, dobbiamo eseguire il comando di commit di un Transaction Control Language. Commit viene utilizzato per salvare tutte le operazioni eseguite su una tabella. Tutta l'operazione viene salvata. Tutto questo riguarda l'impegno.
Ora, pensa, e se volessimo annullare le operazioni che abbiamo salvato usando i comandi di commit? Quindi possiamo annullare l'operazione nel linguaggio di query strutturato? Sì, possiamo annullare le operazioni impegnate. Useremo un altro comando di Transaction Control Language per annullare le operazioni e quel comando è Rollback. Useremo il comando Rollback per annullare l'operazione di commit nel linguaggio di query strutturato. I comandi in Transaction Control Language sono:
- Impegnati
- Ripristino
Considera le tabelle dei dipendenti esistenti che hanno i seguenti record:
ID DIPENDENTE | FIRST_NAME | COGNOME | STIPENDIO | CITTÀ | REPARTO |
1001 | VAIBHAVI | MISHRA | 65000 | PUNE | ORACLE |
1002 | VAIBHAV | SHARMA | 60000 | NOIDA | ORACLE |
1003 | NICHIL | VANI | 50000 | JAIPUR | FM |
2001 | PRACHI | SHARMA | 55500 | CHANDIGARH | ORACLE |
2002 | BHAVESH | JAIN | 65500 | PUNE | FM |
2003 | RUCHIKA | JAIN | 50000 | MUMBAI | PROVA |
3001 | PRANOTI | SHENDE | 55500 | PUNE | JAVA |
3002 | ANUJA | DOVE | 50500 | JAIPUR | FM |
3003 | DEEPAM | JAUHARI | 58500 | MUMBAI | JAVA |
4001 | RAJESH | GOUD | 60500 | MUMBAI | PROVA |
Possiamo utilizzare il comando commit e rollback senza avviare le transazioni, ma inizieremo la nostra transazione utilizzando Avvia transazione Comando per buone pratiche.
Iniziamo e vediamo ogni esempio di operazione uno per uno.
Innanzitutto, disattiveremo il commit automatico assegnando un valore di commit automatico a 0
SET AUTOCOMMIT = 0;
- Inserisci nuovi valori nei dipendenti della tabella esistenti, quindi utilizzeremo il comando Commit:
INSERT INTO EMPLOYEES VALUES (2003, ‘RUCHIKA’, ‘JAIN’, 50000, ‘MUMBAI’, ‘TESTING’);
Utilizzeremo la query SELECT per verificare che i dati siano inseriti o meno in una tabella:
SELECT * FROM EMPLOYEES WHERE EMPLOYEE = 2003;
Ora, per salvare questa transazione, useremo il comando commit.
COMMIT;
I dettagli dell'ID dipendente 2001 sono stati salvati ora. Non sarà Rollback a meno che non lo eliminiamo utilizzando il comando Elimina.
- Cancelleremo tutte le informazioni dell'ID dipendente 2003, quindi eseguiremo il rollback del comando di eliminazione utilizzando Rollback.
DELETE FROM EMPLOYEES WHERE EMPLOYEE ID = 2003;
Utilizzeremo la query SELECT per verificare che i dati siano stati eliminati da una tabella o meno:
SELECT * FROM EMPLOYEES;
L'ID dipendente 2003 viene eliminato dalla tabella. Ora useremo il comando Rollback per annullare l'operazione di eliminazione.
ROLLBACK;
Dopo aver eseguito il comando di rollback, utilizzeremo nuovamente la query SELECT per verificare che l'operazione di eliminazione sia Rollback o meno.
SELECT * FROM EMPLOYEES WHERE EMPLOYEE ID = 2003;