Mysql
 sql >> Database >  >> RDS >> Mysql

Introduzione ai comandi SQL

Nel mondo odierno di maggiore digitalizzazione, big data e cloud computing, la gestione dei dati è tra le competenze più importanti che un ingegnere del software può avere. A tal fine, uno degli strumenti di database più potenti è SQL.

SQL (Structured Query Language) è il linguaggio di programmazione standard utilizzato per manipolare gli oggetti della struttura dei dati. Operano sui dati contenuti in un sistema di gestione di database relazionali (RDBMS). Alcuni noti RDBMS sono MySQL e PostgreSQL.

In questa guida imparerai i sottoinsiemi del linguaggio SQL e come utilizzare alcuni comandi SQL fondamentali, come SELECT , INSERT , UPDATE e DELETE .

Sottoinsiemi di SQL

L'elenco seguente include i diversi sottoinsiemi di lingua di vari comandi SQL. Ogni sottoinsieme ha la propria funzione e scopo.

  • Lingua di definizione dei dati (DDL):consente di creare, eliminare e aggiornare le definizioni dello schema del database (ovvero tabelle e indici), senza manipolare effettivamente i dati all'interno delle tabelle del database.
  • Lingua di query dei dati (DQL):DQL viene utilizzato per recuperare i dati dal database utilizzando il SELECT dichiarazione.
  • Lingua di manipolazione dei dati (DML):questo sottolinguaggio consente la manipolazione dei dati nel database utilizzando il INSERT , UPDATE e DELETE dichiarazioni.

Questa guida utilizza un database di esempio per una scuola per dimostrare ulteriormente i comandi SQL per ogni sottoinsieme sopra elencato. Il database della scuola ha diverse tabelle, per studenti, corsi, voti e così via. La definizione dello Student la tabella contiene colonne per il SSNumber dello studente , Firstname e Lastname e la definizione del CourseTaken la tabella contiene colonne per SSNumber , CourseId , NumericGrade e YearTaken .

L'esempio presuppone che ci siano tre studenti nella scuola, ognuno dei quali ha completato due corsi. I dati di esempio sono mostrati nella tabella seguente:

SSNumero Cognome Nome CourseId Grado numerico YearTaken
111111111 Smith Giovanni CSC101 98 2021
111111111 Smith Giovanni ITA101 95 2022
222222222 Jones Maria CSC101 100 2022
222222222 Jones Maria EEE101 75 2022
333333333 Hansen Robert POL101 92 2021
333333333 Hansen Robert SOC103 84 2022

Crea, altera e rilascia tabelle usando i comandi SQL

Dalla riga di comando, usa CREATE TABLE comando seguito dal nome della tabella e dai dati della tabella. Il comando seguente crea lo Student tabella.

CREATE TABLE Student (
  SSNumber CHAR(9) NOT NULL,
  LastName VARCHAR(30) NOT NULL,
  FirstName VARCHAR(20) NOT NULL
);

La parentesi racchiude i dati della tabella, iniziando con una colonna che etichetta i dati di ogni riga. La colonna successiva indica il tipo di dati che contiene questa riga. CHAR indica un tipo di dati stringa di lunghezza fissa e VARCHAR indica un tipo di dati stringa di lunghezza variabile. Nella colonna finale, il NOT NULL assicura che un record non possa essere aggiunto alla tabella se uno qualsiasi dei NOT NULL le colonne non hanno dati associati.

Nota Il CREATE TABLE l'istruzione è delimitata da un punto e virgola finale (;), sebbene sia possibile che alcuni sistemi di database relazionali commerciali non richiedano tale delimitatore.
Nota Salvo diversa indicazione, tutti i comandi del database illustrati in questa guida funzionano bene su entrambi MySQL e PostgreSQL .

Per creare il CourseTaken tabella, eseguire il comando seguente:

CREATE TABLE CourseTaken (
  SSNumber CHAR(9) NOT NULL,
  CourseId CHAR(6) NOT NULL,
  NumericGrade INT NOT NULL
);

Il YearTaken la colonna non è intenzionalmente inclusa nel CourseTaken tabella per dimostrare l'utilizzo di ALTER TABLE comando. Per aggiungere il YearTaken colonna nel CourseTaken tabella, non è necessario eliminare il CourseTaken tavolo interamente. Invece, puoi usare il DDL ALTER TABLE comando. Il comando seguente altera il CourseTaken tabella aggiungendo la colonna mancante alla tabella.

ALTER TABLE CourseTaken
  ADD (YearTaken INT NOT NULL);

Il comando sopra segue una sintassi simile a prima. Richiede il nome della tabella e tre argomenti:nome riga, tipo di dati riga e NOT NULL attributo. Se vuoi eliminare il CourseTaken tabella completamente, emettere il DDL DROP TABLE comando seguito dal nome della tabella.

DROP TABLE CourseTaken;
Attenzione L'eliminazione di una tabella elimina tutti i dati nella tabella.

Come inserire dati in una tabella in SQL

Per inserire i dati nella tabella, utilizzare l'SQL INSERT INTO dichiarazione. Per chiamare questo comando, fornisci il nome della tabella e l'elenco dei nomi di riga (tra parentesi) in cui vuoi inserire i dati. Questo è seguito da VALUES parola chiave e i valori effettivi (tra parentesi) che si desidera inserire. I valori vengono inseriti nelle righe nell'ordine in cui vengono chiamati.

Nota
  • I comandi SQL possono essere suddivisi su più righe. La fine del comando SQL è delimitata da un punto e virgola (; ).
  • I dati del carattere sono delimitati da un apostrofo di apertura e chiusura ( ), mentre i dati numerici non lo sono.

Il seguente INSERT i comandi inseriscono tre righe nello Student tavolo. Questi comandi utilizzano più INSERT dichiarazioni.

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('111111111', 'Smith', 'John');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('222222222', 'Jones', 'Mary');

INSERT INTO Student (SSNumber, LastName, FirstName) VALUES
('333333333', 'Hansen', 'Robert');

Allo stesso modo, puoi anche inserire più righe nella tabella in una singola query SQL come mostrato di seguito:

INSERT INTO CourseTaken
(SSNumber, CourseId, NumericGrade, YearTaken)
VALUES
('111111111', 'CSC101', 98, 2021),
('111111111', 'ENG101', 95, 2022),
('222222222', 'CSC101', 100, 2022);
Nota

Puoi usare il INSERT INTO comando in modo simile in PostgreSQL per aggiungere righe alla tabella. Assicurati che i valori corrispondano all'ordine delle colonne nella definizione della tabella.

INSERT INTO student VALUES ('111111111', 'Smith', 'John');

Elimina dati da una tabella

Per eliminare i dati da una tabella, utilizzare l'SQL DELETE FROM dichiarazione. Usa il WHERE clausola per specificare la condizione e, se è presente più di una condizione, utilizzare AND clausola insieme a WHERE .

Ad esempio, il comando seguente elimina un record da CourseTaken tabella con SSNumero 333333333 e ID corso POL101 .

Attenzione Se ometti il ​​WHERE clausola, tutti i record nella tabella vengono eliminati.
DELETE FROM CourseTaken WHERE SSNumber = '333333333' AND CourseId = 'POL101';

Comando SQL per aggiornare i dati in una tabella

Per aggiornare il record esistente in una tabella, utilizzare l'SQL UPDATE comando. Il SET La clausola viene utilizzata per impostare (aggiornare) un nuovo valore in una particolare colonna e il WHERE viene utilizzata per aggiornare le righe selezionate.

Ad esempio, il comando seguente aggiorna NumericGrade colonna del CourseTaken tabella per i record con SSNumber 222222222 e ID corso EEE101 .

UPDATE CourseTaken
SET NumericGrade = 95
WHERE SSNumber = '222222222' AND CourseId = 'EEE101';

Comando SQL per recuperare i dati da una tabella

Il vero potere dei sistemi di database relazionali sta nella sua capacità di recuperare informazioni in uno schema multi-tabella, tramite l'SQL SELECT comando e la possibilità di unire tabelle tramite chiavi comuni. Sebbene questa guida introduttiva non esamini la creazione di chiavi e indici utilizzando tali chiavi, utilizza il SSNumber colonna di ogni tabella come veicolo (chiave) per mettere in relazione (o unire) le tabelle per generare informazioni. Gli esempi seguenti forniscono diversi casi d'uso dell'utilizzo di SQL SELECT comando dalla riga di comando.

Esempio 1: Per recuperare l'elenco di tutti gli studenti della scuola.

SELECT * from Student;

Risultato:

+-----------+----------+-----------+
| SSNumber  | LastName | FirstName |
+-----------+----------+-----------+
| 111111111 | Smith    | John      |
| 222222222 | Jones    | Mary      |
| 333333333 | Hansen   | Robert    |
+-----------+----------+-----------+

Esempio 2: Per recuperare l'elenco di tutti gli studenti e dei corsi che hanno frequentato.

SELECT Student.SSNumber, Student.LastName,
       Student.FirstName, CourseTaken.CourseId
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber;

Risultato:

+-----------+----------+-----------+----------+
| SSNumber  | LastName | FirstName | CourseId |
+-----------+----------+-----------+----------+
| 111111111 | Smith    | John      | CSC101   |
| 111111111 | Smith    | John      | ENG101   |
| 222222222 | Jones    | Mary      | CSC101   |
+-----------+----------+-----------+----------+
Nota Nel comando sopra, le due tabelle, Student e CourseTaken si uniscono per recuperare le informazioni richieste. I nomi delle colonne in SELECT e WHERE le clausole sono precedute dai nomi delle tabelle per chiarezza. Tuttavia, nel caso del SSNumber colonna, è necessario specificare i prefissi dei nomi di tabella appropriati, poiché entrambe le tabelle condividono lo stesso nome di colonna. Il FROM La clausola indica le tabelle utilizzate in questa query.

Esempio 3: Recupera l'elenco degli studenti con CourseId CSC101 e l'anno in cui hanno frequentato questo corso.

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.YearTaken
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.CourseId = 'CSC101';

Risultato:

+----------+-----------+----------+-----------+
| LastName | FirstName | CourseId | YearTaken |
+----------+-----------+----------+-----------+
| Smith    | John      | CSC101   |      2021 |
| Jones    | Mary      | CSC101   |      2022 |
+----------+-----------+----------+-----------+

Esempio 4: Recupera l'elenco dei nomi degli studenti, dei corsi seguiti e dei voti ricevuti, per quelli con voti del corso superiori a 90 .

SELECT Student.LastName, Student.FirstName,
       CourseTaken.CourseId, CourseTaken.NumericGrade
FROM Student, CourseTaken
WHERE Student.SSNumber = CourseTaken.SSNumber
AND CourseTaken.NumericGrade > 90;

Risultato:

+----------+-----------+----------+--------------+
| LastName | FirstName | CourseId | NumericGrade |
+----------+-----------+----------+--------------+
| Smith    | John      | ENG101   |           95 |
| Smith    | John      | CSC101   |           98 |
| Jones    | Mary      | CSC101   |          100 |
+----------+-----------+----------+--------------+

Nota Il AND La clausola nel comando sopra ti consente di filtrare i risultati mediante un test con punteggio condizionale.

Conclusione

Questa guida sui comandi SQL è una guida introduttiva su come creare schemi di database e manipolare i dati all'interno di tali database. Sebbene i concetti qui introdotti si limitino a scalfire la superficie per quanto riguarda l'utilizzo dei sistemi di database relazionali, è un buon punto di partenza per comandi e concetti di base ed essenziali.