Nel mercato di oggi, dove ogni giorno viene generata un'enorme quantità di dati, è molto importante capire come gestire i dati. SQL Server è un ambiente integrato sviluppato da Microsoft per gestire i dati.In questo articolo sul tutorial di SQL Server imparerai tutte le operazioni ei comandi necessari per esplorare i tuoi database.
Per una tua migliore comprensione, ho suddiviso il blog nelle seguenti categorie:
Comandi | Descrizione |
Questo insieme di comandi viene utilizzato per definire un database. | |
Comandi Data Manipulation Language (DML) | I comandi di manipolazione vengono utilizzati per manipolare i dati presenti nel database. |
Questa serie di comandi si occupa delle autorizzazioni, dei diritti e di altri controlli dei sistemi di database. | |
Questi comandi sono utilizzati per occuparsi della transazione del database. |
Oltre ai comandi, in questo articolo vengono trattati i seguenti argomenti:
- Cos'è SQL Server?
- Installa SQL Server
- Connettiti a SQL Server utilizzando SSMS
- Accedi al motore di database
- Architettura di SQL Server
- Commenti in SQL
- Tipi di dati di SQL Server
- Chiavi nel database
- Vincoli nel database
- Operatori
- Funzioni aggregate
- Funzioni definite dall'utente
- Query annidate
- Si unisce
- Loop
- Procedura di archiviazione
- La gestione delle eccezioni
***NOTA*** In questo tutorial di SQL Server, considererò il database seguente comeun esempio, per mostrarti come imparare e scriverecomandi.
StudentID | Nome dello studente | Nome del genitore | Numero di telefono | Indirizzo | Città | Nazione |
uno | io odio | Akriti mehra | 9955339966 | Brigade Road Block 9 | Hyderabad | India |
2 | Manasa | Shourya Sharma | 9234568762 | Mayo Road 15 | Calcutta | India |
3 | Anay | Soumya Mishra | 9876914261 | Casa Marathalli n. 101 | Bengaluru | India |
4 | Preeti | Rohan Sinha | 9765432234 | Queens Road 40 | Delhi | India |
5 | Shanaya | Abhinay agarwal | 9878969068 | Oberoi Street 21 | Mumbai | India |
Prima di iniziare a comprendere i diversi comandi utilizzati in SQL Server, comprendiamo cos'è SQL Server, la sua architettura e come installarlo.
Cos'è SQL Server?
Microsoft SQL Server è un relazionale sistema di gestione database . Supporta il Structured Query Language e viene fornito con la propria implementazione del linguaggio SQL che è il Transact-SQL (T-SQL) . Ha un ambiente integrato per gestire i database SQL, che è il .
I componenti chiave di SQL Server sono i seguenti:
- Motore di database: Questo componente gestisce l'archiviazione, l'elaborazione rapida delle transazioni e la protezione dei dati.
- Server SQL - Questo servizio viene utilizzato per avviare, arrestare, sospendere e continuare l'istanza di MS SQL Server.
- Agente SQL Server - Il servizio Server Agent svolge il ruolo di task scheduler e viene attivato da qualsiasi evento o secondo il requisito.
- Browser SQL Server - Questo servizio viene utilizzato per connettere la richiesta in arrivo all'istanza di SQL Server desiderata.
- Ricerca full-text di SQL Server - Utilizzato per consentire all'utente di eseguire query full-text sui dati dei caratteri nelle tabelle SQL.
- Writer VSS di SQL Server - Consente il backup e il ripristino dei file di dati quando SQL Server non è in esecuzione.
- SQL Server Analysis Services (SSAS) - Questo servizio viene utilizzato per fornire analisi dei dati, data mining e capacità. SQL Server è anche integrato con e R per analisi dati avanzate.
- SQL Server Reporting Services (SSRS) - Come suggerisce il nome, questo servizio viene utilizzato per fornire funzionalità e capacità decisionali inclusa l'integrazione con .
- SQL Server Integration Services (SSIS) - Questo servizio viene utilizzato per eseguire le operazioni ETL per diversi tipi di dati da più origini di dati.
Ora che sai cos'è MS SQL Server, andiamo avanti in questo articolo sul tutorial di SQL Server e comprendiamo come installare e configurare SQL Server.
Installa SQL Server
Seguire i passaggi seguenti per installare SQL Server:
Passo 1: Vai alla pagina ufficiale di Download di Microsoft SQL Server , dove troverai l'opzione per installare SQL Server in locale o nel cloud.
Passo 2: Ora scorri verso il basso e vedrai due opzioni: Edizione Developer ed Enterprise . Qui, scaricherò il file Edizione per sviluppatori . Per scaricare, devi solo fare clic sul file Scarica ora opzione. Fare riferimento di seguito.
Passaggio 3: Una volta scaricata l'applicazione, fai doppio clic sul file e vedrai la seguente finestra.
Passaggio 4: Ora puoi scegliere una delle 3 opzioni per configurare SQL Server. Qui, sceglierò solo il file Opzione di base . Selezionando l'opzione del tipo di installazione, la schermata successiva sarebbe quella di accettare il contratto di licenza. Per farlo, fai clic su Accettare nella finestra successiva.
Passaggio 5: Successivamente, è necessario specificare il percorso di installazione di SQL Server. Quindi, devi fare clic su Installa.
Dopo aver fatto clic su Installare , vedrai che i pacchetti richiesti vengono scaricati. Ora, al termine dell'installazione, vedrai la seguente schermata:
Qui puoi andare avanti e fare clic su Connetti ora, oppure puoi personalizzare l'installazione. Per una tua migliore comprensione, andrò avanti e sceglierò Personalizzare.
Passaggio 6: Dopo aver fatto clic su personalizzare nella finestra in alto, vedrai aprirsi la seguente procedura guidata. nella finestra successiva, fare clic su Il prossimo.
Passaggio 7: Dopo che le regole sono state installate automaticamente, fare clic su Il prossimo . Fare riferimento di seguito.
Passaggio 8: Successivamente, devi scegliere il tipo di installazione. Quindi, scegli il file Eseguire un file nuova installazione di SQL Server 2017 opzione e quindi fare clic su Il prossimo.
Passaggio 9: Nella procedura guidata che si apre, scegli l'edizione: Sviluppatore. Quindi fare clic su Il prossimo . Fare riferimento di seguito.
Passaggio 10: Ora, leggi e accetta i contratti di licenza facendo il check-in sul pulsante di opzione e quindi fai clic su Il prossimo . Fare riferimento di seguito.
Passaggio 11: Nella procedura guidata di seguito è possibile scegliere le funzionalità che si desidera installare. Inoltre, puoi scegliere la directory root dell'istanza e quindi fare clic su Il prossimo . Qui, sceglierò il file Servizi del motore di database .
Passaggio 12: Successivamente devi assegnare un nome all'istanza e automaticamente verrà creato l'ID dell'istanza. Qui chiamerò l'istanza 'edureka'. Quindi fare clic su Il prossimo.
Passaggio 13: Nella procedura guidata di configurazione del server, fare clic su Il prossimo .
Passaggio 14: Ora devi abilitare le modalità di autenticazione. Qui vedrai il file Modalità di autenticazione di Windows e Modalita `mista . Sceglierò la modalità mista. Quindi, menziona la password e quindi aggiungerò l'utente corrente come Admin scegliendo il Aggiungi utente corrente opzione.
Passaggio 15: Quindi, scegli il percorso del file di configurazione e fai clic su Installare .
Al termine dell'installazione, vedrai la seguente schermata:
Connettiti a SQL Server utilizzando SSMS
Dopo aver installato SQL Server, il passaggio successivo consiste nel connettere SQL Server a SQL Server Management Studio. Per farlo segui i passaggi seguenti:
Passo 1: Torna indietro, alla finestra successiva e fai clic su installa SSMS opzione.
Passo 2: Dopo aver fatto clic su tale opzione, verrai reindirizzato al file pagina seguente , dove devi scegliere Scarica SSMS.
Passaggio 3: Dopo aver scaricato l'installazione, fai doppio clic sull'applicazione e vedrai aprirsi la seguente procedura guidata.
Passaggio 4: Clicca su Opzione di installazione , nella finestra sopra e vedrai che l'installazione inizierà.
Passaggio 5: Al termine dell'installazione verrà visualizzata una finestra di dialogo come mostrato di seguito.
Dopo aver installato SSMS, il passaggio successivo è accedere a Motore di database .
Accesso al Motore di database
Quando apri il file Studio di gestione del server SQL dal menu iniziale , si aprirà una finestra simile a quella mostrata nell'immagine sottostante.
Qui, menziona il nome del server, la modalità di autenticazione e fai clic su Collegare.
Dopo aver fatto clic su Collegare , vedrai la seguente schermata.
Bene gente, è così che installi e configuri SQL Server. Ora, andando avanti in questo tutorial di SQL Server, comprendiamo i diversi componenti dell'architettura di SQL Server.
Architettura di SQL Server
L'architettura di SQL Server è la seguente:
- server & meno Qui è dove vengono installati i servizi SQL e risiede il database
- Motore relazionale & meno Contiene il parser di query, l'ottimizzatore e l'esecutore e l'esecuzione avviene nel motore relazionale.
- Command Parser & meno Controlla la sintassi della query e converte la query in linguaggio macchina.
- Optimizer & meno Prepara il piano di esecuzione come output prendendo come input statistiche, query e albero Algebrator.
- Query Executor & meno Questo è il punto in cui le query vengono eseguite passo dopo passo
- Storage Engine & minus È responsabile della memorizzazione e del recupero dei dati sul sistema di archiviazione, della manipolazione dei dati, della gestione e del blocco delle transazioni.
Ora che sai come configurare e installare SQL Server e i suoi vari componenti, iniziamo con la scrittura Server. Ma prima di questo lasciatemi spiegare come scrivere commenti in SQL Server.
Commenti in SQL Server
Esistono due modi in cui è possibile commentare in SQL, ovvero utilizzare l'estensione S commenti su una riga o il m commenti su più righe .
Commenti su una sola riga
I commenti su una riga iniziano con due trattini (-). Quindi, il testo menzionato dopo (-), fino alla fine di una singola riga verrà ignorato dal compilatore.
Esempio:
- Esempio di commenti su una sola riga
Commenti su più righe
I commenti su più righe iniziano con / * e finiscono con * / . Quindi, il testo menzionato tra / * e * / verrà ignorato dal compilatore.
Esempio:
/ * Esempio per commenti su più righe * /
In questo articolo sul tutorial di SQL Server, iniziamo con il primo set di comandi, ovvero i comandi del linguaggio di definizione dei dati.
Comandi del linguaggio di definizione dei dati
Questa sezione dell'articolo ti darà un'idea dei comandi con l'aiuto dei quali puoi definire il tuo database. I comandi sono i seguenti:
CREARE
Questa istruzione viene utilizzata per creare una tabella, un database o una vista.
L'istruzione 'CREATE DATABASE'
Questa istruzione viene utilizzata per creare un database.
Sintassi
CREA DATABASE DatabaseName
Esempio
CREA DATABASE Studenti
Il ' CREA TABELLA 'Dichiarazione
Come suggerisce il nome, questa istruzione viene utilizzata per creare una tabella.
Sintassi
CREATE TABLE TableName (tipo di dati Column1, tipo di dati Column2, tipo di dati Column3, .... tipo di dati ColumnN)
Esempio
CREATE TABLE StudentInfo (StudentID int, StudentName varchar (8000), ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000), City varchar (8000), Country varchar (8000))
FAR CADERE
Questa istruzione viene utilizzata per eliminare una tabella, un database o una vista esistente.
L'istruzione 'DROP DATABASE'
Questa istruzione viene utilizzata per eliminare un database esistente. Le informazioni complete presenti nel database andranno perse non appena si esegue il comando seguente.
Sintassi
DROP DATABASE DatabaseName
Esempio
DROP DATABASE Studenti
La dichiarazione 'DROP TABLE'
Questa istruzione viene utilizzata per eliminare una tabella esistente. Le informazioni complete presenti nella tabella andranno perse non appena si esegue il comando seguente.
Sintassi
DROP TABLE TableName
Esempio
TABELLA DROP StudentInfo
ETÀ
Il comando ALTER viene utilizzato per aggiungere, eliminare o modificare colonne o vincoli in una tabella esistente.
Il ' ALTER TABLE 'Dichiarazione
Questa istruzione viene utilizzata per aggiungere, eliminare, modificare colonne in una tabella preesistente.
L'istruzione 'ALTER TABLE' con ADD / DROP COLUMN
L'istruzione ALTER TABLE viene utilizzata con il comando ADD / DROP Column per aggiungere ed eliminare una colonna.
Sintassi
ALTER TABLE TableName ADD ColumnName Tipo di dati ALTER TABLE TableName DROP COLUMN ColumnName
Esempio
--ADD Column BloodGroup: ALTER TABLE StudentInfo ADD BloodGroup varchar (8000) --DROP Column BloodGroup: ALTER TABLE StudentInfo DROP COLUMN BloodGroup
L'istruzione 'ALTER TABLE' con ALTER COLUMN
L'istruzione ALTER TABLE può essere utilizzata con la colonna ALTER per modificare il tipo di dati di una colonna esistente in una tabella.
Sintassi
ALTER TABLE TableName ALTER COLUMN ColumnName Tipo di dati
Esempio
--Aggiungere una colonna DOB e modificare il tipo di dati da data a datetime. ALTER TABLE StudentInfo AGGIUNGI data DOB ALTER TABLE StudentInfo ALTER COLUMN DOB datetime
TRONCARE
Questo comando SQL viene utilizzato per eliminare le informazioni presenti nella tabella ma non elimina la tabella stessa. Quindi, se vuoi cancellare le informazioni presenti nella tabella, e non cancellare la tabella stessa, devi usare il comando TRUNCATE. Altrimenti, usa il comando DROP.
Sintassi
TRUNCATE TABLE TableName
Esempio
TABELLA TRONCA StudentInfo
RINOMINARE
Questa istruzione viene utilizzata per rinominare una o più tabelle.
Sintassi
sp_rename 'OldTableName', 'NewTableName'
Esempio
sp_rename 'StudentInfo', 'Infostudents'
Andando avanti in questo articolo sul tutorial di SQL Server, comprendiamo i diversi tipi di dati supportati da SQL Server.
Tipi di dati di SQL Server
Categoria del tipo di dati | Nome tipo di dati | Descrizione | Intervallo / sintassi |
Numeri esatti | numerico | Utilizzato per memorizzare valori numerici e avere numeri di scala e precisione fissi | - da 10 ^ 38 +1 a 10 ^ 38 - 1. |
tinyint | Utilizzato per memorizzare valori interi | Da 0 a 255 | |
smallint | Utilizzato per memorizzare valori interi | Da -2 ^ 15 (-32.768) a 2 ^ 15-1 (32.767) | |
bigint | Utilizzato per memorizzare valori interi | -2 ^ 63 (-9.223.372.036.854.775.808) a 2 ^ 63-1 (9.223.372.036.854.775.807) | |
int | Utilizzato per memorizzare valori interi | Da -2 ^ 31 (-2.147.483.648) a 2 ^ 31-1 (2.147.483.647) | |
po | Memorizza un tipo di dati intero che riporta un valore di 0, 1 o NULL | 0, 1 o NULL | |
decimale | Utilizzato per memorizzare valori numerici e avere numeri di scala e precisione fissi | - da 10 ^ 38 +1 a 10 ^ 38 - 1. | |
smallmoney | Utilizzato per memorizzare denaroo valori di valuta. | - da 214,748,3648 a 214,748,3647 | |
i soldi | Utilizzato per memorizzare denaroo valori di valuta. | -922.337.203.685.477.5808 a 922.337.203.685.477.5807 (-922.337.203.685.477,58 a 922.337.203.685.477,58 per Informatica. | |
Numeri approssimativi | galleggiante | Utilizzato per memorizzare dati numerici in virgola mobile | - 1.79E + 308 a -2.23E-308, 0 e 2.23E-308 a 1.79E + 308 |
vero | Utilizzato per memorizzare dati numerici in virgola mobile | - 3.40E + 38 a -1.18E - 38, 0 e 1.18E - 38 a 3.40E + 38 | |
Data e ora | Data | Utilizzato per definire una data in SQL Server. | Sintassi: data |
smalldatetime | Utilizzato per definire una data combinata con un'ora del giorno in cui l'ora è basata su un giorno di 24 ore, con secondi sempre zero (: 00) e senza frazioni di secondo. | Sintassi: smalldatetime | |
appuntamento | Utilizzato per definire una data combinata con un'ora del giorno con frazioni di secondo in base a un orologio a 24 ore. | Sintassi: datetime | |
datetime2 | datetime2 è come un'estensione dell'esistente appuntamento tipo con una precisione frazionaria predefinita maggiore e un intervallo di date più ampio. | Sintassi: datetime2 | |
datetimeoffset | Utilizzato per definire una data che è combinata con un'ora di un giorno con riconoscimento del fuso orario. Si basa su un orologio a 24 ore. | Sintassi: datetimeoffset | |
tempo | Utilizzato per definire un'ora di una giornata. | Sintassi: tempo | |
Stringhe di caratteri | char | Utilizzato per memorizzare caratteri di dimensione fissa. | char[( n )] dove il valore n varia da 1 a 8.000 |
varchar | Utilizzato per memorizzare caratteri di lunghezza variabile. | varchar [( n | max)] dove il valore n varia da 1 a 8000 e lo spazio di archiviazione massimo consentito è 2 GB. | |
testo | Utilizzato per memorizzare vdati non Unicode a lunghezza variabile | Lunghezza massima della stringa consentita - 2 ^ 31-1 (2.147.483.647) | |
Stringhe di caratteri Unicode | nchar | Utilizzato per memorizzare caratteri di dimensione fissa. | nchar[(n)] dove il valore n varia da 1 a 4.000 |
nvarchar | Utilizzato per memorizzare caratteri di lunghezza variabile. | varchar [( n | max)] dove il valore n varia da 1 a 4000 e lo spazio di archiviazione massimo consentito è 2 GB. | |
ntext | Utilizzato per memorizzare dati Unicode a lunghezza variabile | Lunghezza massima della stringa consentita - 2 ^ 30-1 (2.147.483.647) | |
Stringhe binarie | binario | Utilizzato per memorizzare i tipi di dati binari di una lunghezza fissa | binario[( n )] dove il valore n varia da 1 a 8.000 |
varbinary | Utilizzato per memorizzare i tipi di dati binari di una lunghezza fissa | varbinary[( n )] dove il valore n varia da 1 a 8000 e la memoria massima consentita è 2 ^ 31-1 byte. | |
Immagine | Utilizzato per memorizzare dati binari a lunghezza variabile | 0-2 ^ 31-1 (2.147.483.647) byte | |
Altri tipi di dati | È un tipo di dati per stored procedure o variabili OUTPUT parametri che contengono un riferimento a un cursore. | - | |
rowversion | Utilizzato per esporre numeri binari univoci generati automaticamente all'interno di un database. | - | |
hierarchyid | Utilizzato per rappresentare la posizione in una gerarchia. | - | |
identificativo unico | È un GUID a 16 byte. | Sintassi:identificativo unico | |
sql_variant | Utilizzato per archiviare i valori di vari tipi di dati supportati da SQL Server | Sintassi: sql_variant | |
xml | Utilizzato per memorizzare il tipo di dati XML. | xml ([CONTENT | DOCUMENT] xml_schemacollection) | |
Tipi di geometria spaziale | Utilizzato per rappresentare i dati in un sistema di coordinate euclidee (piatte). | - | |
Tipi di geografia spaziale | Utilizzato per memorizzare dati ellissoidali (round-earth), come le coordinate di latitudine e longitudine GPS. | - | |
tavolo | Utilizzato per memorizzare un set di risultati per l'elaborazione in un secondo momento | - |
Successivamente, in questo articolo, comprendiamo i diversi tipi di chiavi e vincoli nel database.
Diversi tipi di chiavi nel database
Di seguito sono riportati i diversi tipi di chiavi utilizzate nel database:
- Chiave candidata - Candidate Key è un insieme di attributi che possono identificare in modo univoco una tabella. Una tabella può avere più di una singola chiave candidata e, tra le chiavi candidate scelte, una chiave viene scelta come chiave primaria.
- Super Key - L'insieme di attributi può identificare in modo univoco una tupla. Quindi, le chiavi candidate, le chiavi univoche e le chiavi primarie sono super chiavi, ma il viceversa non è vero.
- Chiave primaria - Chiavi primarie sono usati per identificare in modo univoco ogni tupla.
- Chiave alternativa - Le chiavi alternative sono quelle chiavi candidate che non vengono scelte come chiave primaria.
- Chiave unica- Le chiavi univoche sono simili alla chiave primaria, ma consentono un singolo valore NULL nella colonna.
- Chiave esterna - Un attributo che può assumere solo i valori presenti come valori di qualche altro attributo, è il chiave esterna all'attributo a cui si riferisce.
- Chiave composita- Le chiavi composite sono una combinazione di due o più colonne che identificano ciascuna tupla in modo univoco.
Vincoli utilizzati nel database
I vincoli vengono utilizzati in un database per specificare le regole per i dati archiviati in una tabella. I diversi tipi di file vincoli in SQL sono come segue:
NON NULLO
Il vincolo NOT NULL garantisce che una colonna non possa avere un valore NULL.
Esempio
CREATE TABLE StudentsInfo (StudentID int NOT NULL, StudentName varchar (8000) NOT NULL, ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000) NOT NULL, City varchar (8000), Country varchar (8000)) --NOT NULL su ALTER TABLE ALTER TABLE StudentsInfo ALTER COLUMN PhoneNumber int NOT NULL
UNICO
Questo vincolo garantisce che tutti i valori in una colonna siano univoci.
Esempio
--UNIQUE su Crea tabella CREATE TABLE StudentsInfo (StudentID int NOT NULL UNIQUE, StudentName varchar (8000) NOT NULL, ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000) NOT NULL, City varchar (8000), Country varchar ( 8000)) --UNIQUE su più colonne CREATE TABLE StudentsInfo (StudentID int NOT NULL, StudentName varchar (8000) NOT NULL, ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000) NOT NULL, City varchar (8000), Country varchar (8000) CONSTRAINT UC_Student_Info UNIQUE (StudentID, PhoneNumber)) --UNIQUE su ALTER TABLE ALTER TABLE StudentsInfo ADD UNIQUE (StudentID) --Per eliminare un vincolo UNIQUE ALTER TABLE StudentsInfo DROP CONSTRAINT UC_Student_Info
DAI UN'OCCHIATA
Il vincolo CHECK garantisce che tutti i valori in una colonna soddisfino una condizione specifica.
Esempio
--CHECK Constraint on CREATE TABLE CREATE TABLE StudentsInfo (StudentID int NOT NULL, StudentName varchar (8000) NOT NULL, ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000) NOT NULL, City varchar (8000), Country varchar ( 8000) CHECK (Country = 'India')) --CHECK Vincolo su più colonne CREATE TABLE StudentsInfo (StudentID int NOT NULL, StudentName varchar8000) NOT NULL, ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000) NOT NULL, Città varchar (8000), Paese varchar (8000) CHECK (Country = 'India' AND City = 'Hyderabad')) --CHECK Vincolo su ALTER TABLE ALTER TABLE StudentsInfo ADD CHECK (Country = 'India') --Per dare un nome al vincolo CHECK ALTER TABLE StudentsInfo ADD CONSTRAINT CheckConstraintName CHECK (Country = 'India') --Per eliminare un vincolo CHECK ALTER TABLE StudentsInfo DROP CONSTRAINT CheckConstraintName
PREDEFINITO
Il vincolo DEFAULT consiste in un insieme di valori predefiniti per una colonna quando non viene specificato alcun valore.
Esempio
- Vincolo DEFAULT su CREATE TABLE CREATE TABLE StudentsInfo (StudentID int, StudentName varchar (8000) NOT NULL, ParentName varchar (8000), PhoneNumber int, AddressofStudent varchar (8000) NOT NULL, City varchar (8000), Country varchar (8000) DEFAULT 'India') - Vincolo DEFAULT su ALTER TABLE ALTER TABLE StudentsInfo AGGIUNGI VINCOLO defau_Country DEFAULT 'India' FOR Country --Per eliminare il vincolo predefinito ALTER TABLE StudentsInfo ALTER COLUMN Country DROP defau_Country
INDICE
Il Vincolo INDICE serve per creare indici nella tabella, attraverso i quali è possibile creare e recuperare dati dal database molto velocemente.
Sintassi
--Crea un indice in cui sono consentiti valori duplicati CREATE INDEX IndexName ON TableName (Column1, Column2, ... ColumnN) --Crea un indice in cui non sono consentiti valori duplicati CREATE UNIQUE INDEX IndexName ON TableName (Column1, Column2, ... ColonnaN)
Esempio
CREATE INDEX idex_StudentName ON StudentsInfo (StudentName) --Per eliminare un indice in una tabella DROP INDEX StudentsInfo.idex_StudentName
Andando avanti in questo articolo sul tutorial di SQL Server, comprendiamo ora i diversi comandi di Data Manipulation Language utilizzati in Microsoft SQL Server.
Comandi del linguaggio di manipolazione dei dati
Questa sezione dell'articolo tratterà tutti quei comandi attraverso i quali è possibile manipolare il database. I comandi sono i seguenti:
Oltre a questi comandi, ci sono anche altri operatori / funzioni di manipolazione come:
USO
Questa istruzione viene utilizzata per selezionare il database per iniziare a eseguire varie operazioni su di esso.
Sintassi
USA DatabaseName
Esempio
USA Studenti
INSERIRE
Il Istruzione INSERT INTO viene utilizzato per inserire nuovi record in una tabella esistente.
Sintassi
INSERT INTO TableName (Column1, Column2, Column3, ..., ColumnN) VALUES (value1, value2, value3, ...) - Se non si desidera menzionare i nomi delle colonne, utilizzare la sintassi seguente INSERT INTO TableName VALUES (Valore1, Valore2, Valore3, ...)
Esempio
INSERT INTO StudentsInfo (StudentID, StudentName, ParentName, PhoneNumber, AddressofStudent, City, Country) VALORI ('06', 'Sanjana', 'Kapoor', '9977331199', 'Buffalo Street House No 10', 'Kolkata', 'India ') INSERT INTO StudentsInfo VALUES (' 07 ',' Vishal ',' Mishra ',' 9876509712 ',' Nice Road 15 ',' Pune ',' India ')
AGGIORNARE
L'istruzione UPDATE viene utilizzata per modificare o aggiornare i record già presenti nella tabella.
Sintassi
UPDATE TableName SET Colonna1 = Valore1, Colonna2 = Valore2, ... WHERE Condizione
Esempio
argomenti della riga di comando nel codice di esempio java
UPDATE StudentsInfo SET StudentName = 'Aahana', City = 'Ahmedabad' WHERE StudentID = 1
ELIMINA
L'istruzione DELETE viene utilizzata per eliminare i record esistenti in una tabella.
Sintassi
DELETE FROM TableName WHERE Condizione
Esempio
ELIMINA DA StudentsInfo WHERE StudentName = 'Aahana'
PARTIRE
L'istruzione MERGE viene utilizzata per eseguire le operazioni INSERT, UPDATE e DELETE su una tabella specifica, in cui viene fornita la tabella di origine. Fare riferimento di seguito.
Sintassi
MERGE TagretTableName USANDO SourceTableName ON MergeCondition WHEN MATCHED THEN Update_Statement WHEN NOT MATCHED THEN Insert_Statement WHEN NOT MATCHED BY SOURCE THEN DELETE
Esempio
Per comprendere l'istruzione MERGE, considerare le seguenti tabelle come tabella di origine e tabella di destinazione.
Tabella di origine:
StudentID | Nome dello studente | Marks |
uno | io odio | 87 |
2 | Manasa | 92 |
4 | Anay | 74 |
Tabella di destinazione:
StudentID | Nome dello studente | Marks |
uno | io odio | 87 |
2 | Manasa | 67 |
3 | Saurabh | 55 |
MERGE SampleTargetTable TARGET UTILIZZANDO SampleSourceTable SOURCE ON (TARGET.StudentID = SOURCE.StudentID) QUANDO MATCHED AND TARGET.StudentName SOURCE.StudentName OR TARGET.Marks SOURCE.Marks THEN UPDATE SET TARGET.StudentName = TARGET.StudentName = SOURCE.StudentName = SOURCE. QUANDO NON ABBINATO DA TARGET, ALLORA INSERIRE (StudentID, StudentName, Marks) VALUES (SOURCE.StudentID, SOURCE.StudentName, SOURCE.Marks) QUANDO NON ABBINATO DA SOURCE THEN DELETE
Produzione
StudentID | Nome dello studente | Marks |
uno | io odio | 87 |
2 | Manasa | 92 |
4 | Anay | 74 |
SELEZIONARE
Il Istruzione SELECT viene utilizzato per selezionare i dati da un database, una tabella o una vista. I dati restituiti vengono archiviati in una tabella dei risultati, denominata set di risultati .
Sintassi
SELECT Column1, Column2, ... ColumN FROM TableName - (*) viene utilizzato per selezionare tutto dalla tabella SELECT * FROM table_name - Per selezionare il numero di record da restituire utilizzare: SELECT TOP 3 * FROM TableName
Esempio
- Per selezionare poche colonne SELECT StudentID, StudentName FROM StudentsInfo - (*) viene utilizzato per selezionare tutto dalla tabella SELECT * FROM StudentsInfo - Per selezionare il numero di record da restituire utilizzare: SELECT TOP 3 * FROM StudentsInfo
Possiamo anche utilizzare le seguenti parole chiave con l'istruzione SELECT:
DISTINTO
La parola chiave DISTINCT viene utilizzata con l'istruzione SELECT per restituire solo valori diversi.
Sintassi
SELEZIONA DISTINCT Column1, Column2, ... ColumnN FROM TableName
Esempio
SELEZIONA DISTINCT PhoneNumber FROM StudentsInfo
ORDINATO DA
Questa istruzione viene utilizzata per ordinare i risultati richiesti in ordine crescente o decrescente. Per impostazione predefinita, i risultati vengono archiviati in ordine crescente. Tuttavia, se desideri ottenere i risultati in ordine decrescente, devi usare il DESC parola chiave.
Sintassi
SELEZIONA Colonna1, Colonna2, ... ColonnaN DA TableName ORDINA PER Colonna1, Colonna2, ... ASC | DESC
Esempio
- Seleziona tutti gli studenti dalla tabella 'StudentsInfo' ordinata per ParentName: SELECT * FROM StudentsInfo ORDER BY ParentName - Seleziona tutti gli studenti dalla tabella 'StudentsInfo' ordinati per ParentName in ordine decrescente: SELECT * FROM StudentsInfo ORDER BY ParentName DESC - Seleziona tutti gli studenti dalla tabella 'StudentsInfo' ordinata per ParentName e StudentName: SELECT * FROM StudentsInfo ORDER BY ParentName, StudentName / * Seleziona tutti gli studenti dalla tabella 'StudentsInfo' ordinati per ParentName in ordine decrescente e StudentName in ordine ascendente: * / SELEZIONA * DA StudentsInfo ORDINA PER ParentName ASC, StudentName DESC
RAGGRUPPA PER
Questa istruzione viene utilizzata con funzioni aggregate per raggruppare il set di risultati per una o più colonne.
Sintassi
SELEZIONA Colonna1, Colonna2, ..., ColonnaN DA TableName WHERE Condizione GROUP BY ColumnName (s) ORDER BY ColumnName (s)
Esempio
- Per elencare il numero di studenti di ogni città. SELEZIONA COUNT (StudentID), Città FROM StudentsInfo GROUP BY City
SET DI RAGGRUPPAMENTO
I GROUPING SET sono stati introdotti in SQL Server 2008, utilizzati per generare un set di risultati che può essere generato da un file UNION ALL delle molteplici clausole GROUP BY semplici.
Sintassi
SELEZIONA COLONNAME DA GRUPPO TableName PER GRUPPI DI GRUPPI (ColumnName)
Esempio
SELEZIONA StudentID, StudentName, COUNT (City) da StudentsInfo Group PER GRUPPI INSIEME ((StudentID, StudentName, City), (StudentID), (StudentName), (City))
AVERE
Questa clausola viene utilizzata nello scenario in cui il WHERE parola chiave non può essere usato.
Sintassi
SELEZIONA ColumnName (s) DA TableName WHERE Condizione GROUP BY ColumnName (s) HAVING Condition ORDER BY ColumnName (s)
Esempio
SELEZIONA COUNT (StudentID), Città FROM StudentsInfo GRUPPO PER Città HAVING COUNT (StudentID)> 2 ORDER BY COUNT (StudentID) DESC
IN
La parola chiave INTO può essere utilizzata con Istruzione SELECT per copiare i dati da una tabella a un'altra. Bene, puoi capire che queste tabelle sono tabelle temporanee. Le tabelle temporanee sono generalmente utilizzate per eseguire manipolazioni sui dati presenti nella tabella, senza disturbare la tabella originale.
Sintassi
SELECT * INTO NewTable [IN ExternalDB] FROM OldTable WHERE Condizione
Esempio
- Per creare un backup della tabella 'StudentsInfo' SELEZIONA * INTO StudentsBackup DA StudentsInfo --Per selezionare solo poche colonne da StudentsInfo SELEZIONA StudentName, PhoneNumber INTO StudentsDetails DA StudentsInfo SELEZIONA * IN PuneStudents DA StudentsInfo WHERE City = 'Pune'
CUBO
CUBE è un'estensione di Clausola GROUP BY . Consente di generare i totali parziali per tutte le combinazioni delle colonne di raggruppamento specificate nella clausola GROUP BY.
Sintassi
SELEZIONA ColumnName (s) DA TableName GROUP BY CUBE (ColumnName1, ColumnName2, ....., ColumnNameN)
Esempio
SELEZIONA StudentID, COUNT (Città) DA StudentsInfo GRUPPO PER CUBO (StudentID) ORDINA PER StudentID
ROLLUP
ROLLUP è un'estensione della clausola GROUP BY. Ciò consente di includere le righe aggiuntive che rappresentano i totali parziali. Queste sono indicate come righe super-aggregate insieme alla riga del totale generale.
Sintassi
SELEZIONA ColumnName (s) FROM TableName GROUP BY ROLLUP (ColumnName1, ColumnName2, ....., ColumnNameN)
Esempio
SELEZIONA StudentID, COUNT (City) FROM StudentsInfo GROUP BY ROLLUP (StudentID)
COMPENSARE
La clausola OFFSET viene utilizzata con SELECT e Istruzione ORDER BY per recuperare una serie di record. Deve essere utilizzato con la clausola ORDER BY poiché non può essere utilizzato da solo. Inoltre, l'intervallo menzionato deve essere uguale o maggiore di 0. Se si menziona un valore negativo, viene visualizzato un errore.
Sintassi
SELECT ColumnNames) FROM TableName WHERE Condizione ORDER BY ColumnName OFFSET RowsToSkip ROWS
Esempio
Considera una nuova colonna Marks nel StudentsInfo tavolo.
SELEZIONA StudentName, ParentName DA StudentsInfo ORDINA PER Marks OFFSET 1 ROWS
FETCH
La clausola FETCH viene utilizzata per restituire un insieme di un numero di righe. Deve essere utilizzato insieme alla clausola OFFSET.
Sintassi
SELECT ColumnNames) FROM TableName WHERE Condizione ORDER BY ColumnName OFFSET RowsToSkip FETCH NEXT NumberOfRows ROWS ONLY
Esempio
SELEZIONA StudentName, ParentName DA StudentsInfo ORDINA PER Marks OFFSET 1 ROWS FETCH NEXT 1 ROWS ONLY
SUPERIORE
La clausola TOP viene utilizzata con l'istruzione SELECT per menzionare il numero di record da restituire.
Sintassi
SELEZIONA TOP Number ColumnName (s) FROM TableName WHERE Condizione
Esempio
SELEZIONA I TOP 3 * DA StudentsInfo
PERNO
PIVOT viene utilizzato per ruotare le righe in valori di colonna ed esegue aggregazioni quando richiesto sui valori di colonna rimanenti.
Sintassi
SELECT NonPivoted ColumnName, [First Pivoted ColumnName] AS ColumnName, [Second Pivoted ColumnName] AS ColumnName, [Third Pivoted ColumnName] AS ColumnName, ... [Ultimo Pivoted ColumnName] AS ColumnName DA (SELEZIONA query che produce i dati) AS [alias per la query iniziale] PIVOT ([AggregationFunction] (ColumName) FOR [ColumnName della colonna i cui valori diventeranno intestazioni di colonna] IN ([First Pivoted ColumnName], [Second Pivoted ColumnName], [Third Pivoted ColumnName] ... [ultimo colonna pivot])) AS [alias per la tabella pivot]
Esempio
Per ottenere un esempio dettagliato, puoi fare riferimento a il mio articolo su SQL PIVOT e UNPIVOT . Successivamente, in questo tutorial di SQL Server, esaminiamo i diversi operatori supportati da Microsoft SQL Server.
Operatori
Il diversi tipi di operatori supportati da SQL Server sono i seguenti:
- Operatori aritmetici
- Operatori di assegnazione
- Operatori bit per bit
- Operatori di confronto
- Operatori composti
- Operatori logici
- Operatori di risoluzione dell'ambito
- Imposta operatori
- Operatori di concatenazione di stringhe
Parliamo di ciascuno di essi uno per uno.
Operatori aritmetici
Operatore | Senso | Sintassi |
+ | Aggiunta | espressione + espressione |
- | Sottrazione | espressione - espressione |
* | Moltiplicazione | espressione * espressione |
/ | Divisione | espressione / espressione |
% | Modulare | espressione% espressione |
Operatori di assegnazione
Operatore | Senso | Sintassi |
= | Assegna un valore a una variabile | variabile = 'valore' |
Operatori bit per bit
Operatore | Senso | Sintassi |
& (AND bit per bit) | Utilizzato per eseguire un'operazione AND logica bit per bit tra due valori interi. | espressione ed espressione |
& = (Assegnazione AND bit per bit) | Utilizzato per eseguire un'operazione AND logica bit per bit tra due valori interi. Inoltre imposta un valore per l'output dell'operazione. | espressione & = espressione |
| (OR bit per bit) | Utilizzato per eseguire un'operazione OR logico bit per bit tra due valori interi tradotti in espressioni binarie all'interno di istruzioni Transact-SQL. | espressione | espressione |
| = (Assegnazione OR bit per bit) | Utilizzato per eseguire un'operazione OR logico bit per bit tra due valori interi tradotti in espressioni binarie all'interno di istruzioni Transact-SQL. Inoltre imposta un valore per l'output dell'operazione. array di oggetti di classe java | espressione | = espressione |
^ (OR esclusivo bit per bit) | Utilizzato per eseguire un'operazione OR esclusivo bit per bit tra due valori interi. | espressione ^ espressione |
^ = (Assegnazione OR esclusiva bit per bit) | Utilizzato per eseguire un'operazione OR esclusivo bit per bit tra due valori interi. Inoltre imposta un valore per l'output dell'operazione. | espressione ^ = espressione |
~ (Bitwise NOT) | Utilizzato per eseguire un'operazione NOT logica bit per bit su un valore intero. | ~ espressione |
Operatori di confronto
Operatore | Senso | Sintassi |
= | Uguale a | espressione = espressione |
> | Più grande di | espressione> espressione |
< | Meno di | espressione |
> = | Maggiore o uguale a | espressione> = espressione |
<= | Minore o uguale a | espressione<= expression |
Non uguale a | espressione espressione | |
! = | Non uguale a | espressione! = espressione |
!< | Non meno di | espressione! |
!> | Non maggiore di | espressione!> espressione |
Operatori composti
Operatore | Senso | Sintassi |
+ = | Utilizzato per aggiungere valore al valore originale e impostare il valore originale sul risultato. | espressione + = espressione |
- = | Utilizzato per sottrarre un valore dal valore originale e impostare il valore originale sul risultato. | espressione - = espressione |
* = | Utilizzato per moltiplicare il valore al valore originale e impostare il valore originale sul risultato. | espressione * = espressione |
/ = | Utilizzato per dividere un valore dal valore originale e impostare il valore originale sul risultato. | espressione / = espressione |
% = | Utilizzato per dividere un valore dal valore originale e impostare il valore originale sul risultato. | espressione% = espressione |
& = | Utilizzato per eseguire un'operazione AND bit per bit e impostare il valore originale sul risultato. | espressione & = espressione |
^ = | Utilizzato per eseguire un'operazione OR esclusivo bit per bit e impostare il valore originale sul risultato. | espressione ^ = espressione |
| = | Utilizzato per eseguire un'operazione OR bit per bit e impostare il valore originale sul risultato. | espressione | = espressione |
Operatori logici
Operatore | Senso | Sintassi |
TUTTI | Restituisce TRUE se tutti i set di confronti sono TRUE. | scalar_expression! = ALL (sottoquery) |
E | Restituisce TRUE se entrambe le espressioni sono TRUE. | boolean_expression AND boolean_expression |
QUALUNQUE | Restituisce VERO se uno qualsiasi di un insieme di confronti è VERO. | scalar_expression! = {ANY} (sottoquery) |
FRA | Restituisce TRUE se un operando è compreso in un intervallo. | sampleexpression [NON] TRA beginexpression E endexpression |
ESISTE | Restituisce TRUE se una sottoquery contiene righe. | EXISTS (sottoquery) |
NEL | Restituisce TRUE se un operando è uguale a uno di un elenco di espressioni. | test_expression [NOT] IN (sottoquery | espressione [,… n]) |
Restituisce TRUE se un operando corrisponde a un modello. | match_expression [NOT] LIKE pattern [ESCAPE escape_character] | |
NON | Inverte il valore di qualsiasi operatore booleano. | [NOT] boolean_expression |
O | Restituisce TRUE se una delle espressioni booleane è TRUE. | boolean_expression OR boolean_expression |
ALCUNI | Restituisce VERO se alcuni di un insieme di confronti sono VERO. | scalar_expression<= { SOME} ( subquery ) |
Operatori di risoluzione dell'ambito
Operatore | Senso | Esempio |
:: | Fornisce accesso ai membri statici di un tipo di dati composto. I tipi di dati composti sono quei tipi di dati che contengono più metodi e tipi di dati semplici. Tipi di dati composti Includono i tipi CLR incorporati e i tipi definiti dall'utente SQLCLR personalizzati (UDT). | DECLARE @hid hierarchyid SELEZIONA @hid = hierarchyid :: GetRoot () PRINT @ hid.ToString () |
Imposta operatori
Esistono principalmente tre operazioni di set:UNIONE,INTERSECT,MENO. È possibile fare riferimento all'immagine seguente per comprendere le operazioni sugli insiemi in SQL. Fare riferimento all'immagine sottostante:
Operatore | Senso | Sintassi |
UNIONE | L'operatore UNION viene utilizzato per combinare il set di risultati di due o più istruzioni SELECT. | SELEZIONA ColumnName (s) FROM Table1 UNIONE SELEZIONA ColumnName (s) FROM Table2 |
INTERSECT | La clausola INTERSECT viene utilizzata per combinare dueSELEZIONAREe restituisce l'intersezione dei set di dati di entrambe le istruzioni SELECT. | SELEZIONA Colonna1, Colonna2…. FROM TableName WHERE Condizione INTERSECT SELEZIONA Colonna1, Colonna2…. FROM TableName WHERE Condizione |
TRANNE | L'operatore EXCEPT restituisce quelle tuple che vengono restituite dalla prima operazione SELECT e non vengono restituite dalla seconda operazione SELECT. | SELEZIONA ColumnName FROM TableName TRANNE SELEZIONA ColumnName FROM TableName |
Operatori di stringa
Operatore | Senso | Sintassi / Esempio |
+ (Concatenazione di stringhe) | Concatena due o più stringhe binarie o di caratteri, colonne o una combinazione di stringhe e nomi di colonna in una singola espressione | espressione + espressione |
+ = (Concatenazione di stringhe) | Utilizzato per concatenare due stringhe e imposta la stringa sul risultato dell'operazione. | espressione + = espressione |
% (Caratteri jolly da abbinare) | Utilizzato per trovare qualsiasi stringa di zero o più caratteri. | Esempio: 'sample%' |
[] (Caratteri jolly da abbinare) | Utilizzato per trovare una corrispondenza con un singolo carattere all'interno dell'intervallo o insieme specificato specificato tra parentesi []. | Esempio: m [n-z]% ’ |
[^] (Caratteri jolly da abbinare) | Utilizzato per abbinare un singolo carattere che non è compreso nell'intervallo o nel set specificato tra le parentesi quadre. | Esempio: 'Al [^ a]%' |
_ (Caratteri jolly da abbinare) | Utilizzato per trovare una corrispondenza con un singolo carattere in un'operazione di confronto di stringhe | test_expression [NOT] IN (sottoquery | espressione [,… n]) |
Aggregato Funzioni
Il diverso funzioni aggregate supportati da SQL Server sono i seguenti:
Funzione | Descrizione | Sintassi | Esempio |
SOMMA() | Utilizzato per restituire la somma di un gruppo di valori. | SELEZIONA SUM (ColumnName) DA TableName | SELEZIONA SOMMA (voti) DA StudentsInfo |
CONTARE() | Restituisce il numero di righe in base a una condizione o senza una condizione. | SELEZIONA COUNT (ColumnName) DA TableName WHERE Condizione | SELEZIONA COUNT (StudentID) DA StudentsInfo |
AVG () | Utilizzato per calcolare il valore medio di una colonna numerica. | SELEZIONA AVG (ColumnName) DA TableName | SELEZIONA AVG (Marks) FROM StudentsInfo |
MIN () | Questa funzione restituisce il valore minimo di una colonna. | SELEZIONA MIN (ColumnName) DA TableName | SELEZIONA MIN (voti) da StudentsInfo |
MAX () | Restituisce un valore massimo di una colonna. | SELEZIONA MAX (ColumnName) DA TableName | SELEZIONA MAX (Marks) FROM StudentsInfo |
PRIMO() | Utilizzato per restituire il primo valore della colonna. | SELEZIONA PRIMO (ColumnName) DA TableName | SELEZIONA PRIMA (voti) da StudentsInfo |
ULTIMO() | Questa funzione restituisce l'ultimo valore della colonna. | SELEZIONA LAST (ColumnName) DA TableName | SELEZIONA LAST (Marks) FROM StudentsInfo |
Funzioni definite dall'utente
Microsoft SQL Server consente agli utenti di creare funzioni definite dall'utente che sono routine. Queste routine accettano parametri, possono eseguire azioni da semplici a complesse e restituire il risultato di quella particolare azione come valore. In questo caso, il valore restituito può essere un singolo valore scalare o un set di risultati completo.
È possibile utilizzare funzioni definite dall'utente per:
- Consenti la programmazione modulare
- Riduci il traffico di rete
- Consenti un'esecuzione più rapida delle query
Inoltre, è possibile creare diversi tipi di funzioni definite dall'utente. Sono:
- Funzioni scalari: Abituato arestituisce un singolo valore di dati del tipo definito nella clausola RETURNS.
- Funzioni con valori di tabella: Abituato arestituire atavolotipo di dati.
- Funzioni di sistema: Una varietà di funzioni di sistema sono fornite da SQL Server per eseguire diverse operazioni.
Bene, a parte le funzioni definite dall'utente, c'è un sacco di funzioni integrate in SQL Server che possono essere utilizzate per eseguire una varietà di attività. Andando avanti in questo articolo sul tutorial di SQL Server, vediamo ora cosa sono le query annidate.
Query annidate
Query annidate sono quelle query che hanno una query esterna e una sottoquery interna. Quindi, fondamentalmente, la sottoquery è una query annidata all'interno di un'altra query come SELECT, INSERT, UPDATE o DELETE. Fare riferimento all'immagine sottostante:
Successivamente in questo tutorial di SQL Server, comprendiamo i diversi tipi di join in SQL.
Si unisce
vengono utilizzati per combinare tuple di due o più tabelle, in base a una colonna correlata tra le tabelle. Esistono quattro tipi di join:
- INNER JOIN: Restituisce i record che hanno valori corrispondenti in entrambe le tabelle.
- PARTECIPA A SINISTRA: Restituisce i record dalla tabella di sinistra e anche quei record che soddisfano la condizione dalla tabella di destra.
- PARTECIPAZIONE DESTRA: Restituisce i record dalla tabella di destra e anche quei record che soddisfano la condizione dalla tabella di sinistra.
- PARTECIPAZIONE COMPLETA: Restituisce i record che hanno una corrispondenza nella tabella sinistra o destra.
Considera la tabella seguente insieme alla tabella StudentsInfo, per comprendere la sintassi dei join.
SubjectID | StudentID | SubjectName |
10 | 10 | Matematica |
2 | undici | Fisica |
3 | 12 | Chimica |
INNER JOIN
Sintassi
SELEZIONA ColumnName (s) FROM Table1 INNER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName
Esempio
SELEZIONA Subject.SubjectID, StudentsInfo.StudentName FROM Subject INNER JOIN StudentsInfo ON Subjects.StudentID = StudentsInfo.StudentID
SINISTRA UNISCITI
Sintassi
SELEZIONA ColumnName (s) FROM Table1 SINISTRA JOIN Table2 ON Table1.ColumnName = Table2.ColumnName
Esempio
SELEZIONA StudentsInfo.StudentName, Soggetti.SubjectID DA StudentsInfo SINISTRA UNISCI Soggetti su StudentsInfo.SubjectID = Subject.SubjectID ORDINA PER StudentsInfo.StudentName
PARTECIPA A DESTRA
Sintassi
SELEZIONA ColumnName (s) FROM Table1 RIGHT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName
Esempio
SELEZIONA StudentsInfo.StudentName, Soggetti.SubjectID DA StudentsInfo DESTRA UNISCITI A OGGETTI SU StudentsInfo.SubjectID = Soggetti.SubjectID ORDINA PER StudentsInfo.StudentName
FULL JOIN
Sintassi
SELEZIONA ColumnName (s) FROM Table1 FULL OUTER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName
Esempio
SELEZIONA StudentsInfo.StudentName, Soggetti.SubjectID DA StudentsInfo COMPLETO ESTERNO UNISCITI A OGGETTI SU StudentsInfo.SubjectID = Soggetti.SubjectID ORDINA PER StudentsInfo.StudentName
Successivamente, in questo articolo sul tutorial di SQL Server, comprendiamo i diversi tipi di loop supportati da SQL Server.
Loop
I diversi comandi di controllo del flusso sono i seguenti:
Parliamo di ciascuno di essi uno per uno.
BEGIN..END
Queste parole chiave vengono utilizzate per racchiudere una serie di istruzioni SQL. Quindi, questo gruppo di istruzioni SQL può essere eseguito.
Sintassi
BEGIN StatementBlock END
ROMPERE
Questa istruzione viene utilizzata per uscire dal ciclo WHILE corrente. Nel caso in cui il ciclo WHILE corrente sia annidato all'interno di un altro ciclo, l'istruzione BREAK esce solo dal ciclo corrente e il controllo viene passato all'istruzione successiva nel ciclo corrente. L'istruzione BREAK viene generalmente utilizzata all'interno di un'istruzione IF.
Sintassi
ROMPERE
CONTINUA
L'istruzione CONTINUE viene utilizzata per riavviare un ciclo WHILE. Quindi, qualsiasi istruzione dopo la parola chiave CONTINUE verrà ignorata.
Sintassi
CONTINUA
In questo caso, Etichetta è il punto dopo il quale viene avviata l'elaborazione se un GOTO è indirizzato a quella particolare etichetta.
VAI A
Utilizzato per modificare il flusso di esecuzione in un'etichetta. Le istruzioni scritte dopo la parola chiave GOTO vengono ignorate e l'elaborazione continua sull'etichetta.
Sintassi
Definisci etichetta: Etichetta: Modifica esecuzione: Etichetta GOTO
In questo caso, Etichetta è il punto dopo il quale viene avviata l'elaborazione se un GOTO è indirizzato a quella particolare etichetta.
SE ALTRO
Come qualsiasi altro linguaggio di programmazione, l'istruzione If-else in SQL Server verifica la condizione e, se la condizione è falsa, viene eseguita l'istruzione 'else'.
Sintassi
IF BooleanExpression StatementBlock [ELSE StatementBlock]
RITORNO
Utilizzato per uscire incondizionatamente da una query o da una procedura. Quindi, le istruzioni scritte dopo la clausola RETURN non vengono eseguite.
Sintassi
RETURN [IntegerExpression]
Qui viene restituito un valore intero.
ASPETTARE
Il flusso di controllo WAITFOR viene utilizzato per bloccare l'esecuzione di una procedura memorizzata, una transazione o un batch fino a quando un'istruzione specifica non viene modificata, restituisce almeno una riga o un tempo o un intervallo di tempo specificato.
Sintassi
WAITFOR (GetConversionGroupStatement)] [, TIMEOUT timeout]
dove,
- RITARDO - Periodo di tempo che deve trascorrere
- TimeToPass - Ptempo di attesa
- TEMPO - Ilora in cui viene eseguita la procedura memorizzata, la transazione o il batch.
- TimeToExecute - Ilora in cui termina l'istruzione WAITFOR.
- RecieveStatement - PERdichiarazione RECEIVE valida.
- GetConversionGroupStatement - PERistruzione GET CONVERSATION GROUP valida.
- TIMEOUT timeout - Specifica il periodo di tempo, in millisecondi, di attesa per l'arrivo di un messaggio sulla coda.
MENTRE
Questo ciclo viene utilizzato per impostare una condizione per l'esecuzione ripetuta di una particolare istruzione SQL o di un blocco di istruzioni SQL. Le istruzioni vengono eseguite fintanto che la condizione menzionata dall'utente è TRUE. Non appena la condizione fallisce, il ciclo interrompe l'esecuzione.
Sintassi
come implementare una hashmap
WHILE BooleanExpression StatementBlock
Ora che conoscete i comandi DML, passiamo alla nostra prossima sezionein questo articolo su SQL Tutorial, ovvero i comandi DCL.
Comandi del linguaggio di controllo dati (DCL)
Questa sezione del tutorial di SQL Server ti darà un'idea del comando attraverso il quale vengono utilizzati per applicare la sicurezza del database in più ambienti di database utente. I comandi sono i seguenti:
CONCEDERE
Il comando GRANT viene utilizzato per fornire agli utenti accesso o privilegi sul database e sui suoi oggetti.
Sintassi
GRANT PrivilegeName ON ObjectName TO RoleName [WITH GRANT OPTION]
dove,
- PrivilegeName - Il privilegio / diritto / accesso concesso all'utente.
- ObjectName - Nome di un oggetto database come TABLE / VIEW / STORED PROC.
- Nome utente - Nome dell'utente a cui vengono forniti l'accesso / i diritti / i privilegi.
- PUBBLICO - Per concedere i diritti di accesso a tutti gli utenti.
- RoleName - Il nome di un insieme di privilegi raggruppati.
- CON GRANT OPTION - Per consentire all'utente l'accesso per concedere ad altri utenti i diritti.
Esempio
- Per concedere l'autorizzazione SELECT per la tabella StudentsInfo all'utente1 CONCEDERE SELEZIONA SU StudentsInfo A utente1
REVOCARE
Il comando REVOKE viene utilizzato per revocare i privilegi di accesso dell'utente concessi utilizzando il comando GRANT.
Sintassi
REVOKE PrivilegeName ON ObjectName DA PUBBLICO
Esempio
- Per revocare l'autorizzazione concessa all'utente1 REVOKE SELECT ON StudentsInfo TO user1
Andando avanti in questo tutorial di SQL Server, cerchiamo di capire come creare e utilizzare le stored procedure.
Procedura di archiviazione
Procedura di archiviazione sono unità riutilizzabili che incapsulano una logica di business specifica dell'applicazione. Quindi, è un gruppo di istruzioni e logica SQL, compilate e memorizzate insieme per eseguire un'attività specifica.
Sintassi
CREATE [OR REPLACE] PROCEDURE nome_procedura [(nome_parametro [IN | OUT | IN OUT] tipo [])] IS BEGIN [sezione_dichiarazione] sezione_eseguibile // Istruzione SQL utilizzata nella procedura memorizzata END GO
Esempio
--Crea una procedura che restituirà il nome di uno studente quando StudentId viene fornito come parametro di input per la procedura memorizzata Crea PROCEDURA GetStudentName (@StudentId INT, --Input parameter, @StudName VARCHAR (50) OUT --Output parameter, AS BEGIN SELECT @StudName = StudentName FROM StudentsInfo WHERE StudentID = @ StudentId END
Passaggi da eseguire:
- Dichiara @StudName come nvarchar (50)
- EXEC GetStudentName 01, output @StudName
- SELEZIONA @StudName
La procedura di cui sopra restituisce il nome di un particolare studente,nel fornire l'ID dello studente come input. Successivamente in questo tutorial di SQL Server, comprendiamo i comandi del linguaggio di controllo delle transazioni.
Comandi del linguaggio di controllo delle transazioni (TCL)
Questa sezione dell'esercitazione su SQL Server fornirà una panoramica dei comandi utilizzati per gestire le transazioni nel database.I comandi sono i seguenti:
COMMETTERE
Il comando COMMIT viene utilizzato per salvare la transazione nel database.
Sintassi
COMMETTERE
ROLLBACK
Il comando ROLLBACK viene utilizzato per ripristinare il database all'ultimo stato di commit.
Sintassi
ROLLBACK
NOTA: Quando si utilizza ROLLBACK con SAVEPOINT, è possibile passare direttamente a un punto di salvataggio in una transazione in corso. Sintassi: ROLLBACK TO SavepointName
SAVEPOINT
Il comando SAVEPOINT viene utilizzato per salvare temporaneamente una transazione. Quindi, se desideri eseguire il rollback a qualsiasi punto, puoi salvare quel punto come 'SAVEPOINT'.
Sintassi
SAVEPOINT SAVEPOINTNAME
Considera la tabella seguente per comprendere il funzionamento delle transazioni nel database.
StudentID | Nome dello studente |
uno | Rohit |
2 | Suhana |
3 | Ashish |
4 | Prerna |
Ora usa quanto segue per comprendere le transazioni nel database.
INSERT INTO StudentTable VALUES (5, 'Avinash') COMMIT UPDATE StudentTable SET name = 'Akash' WHERE id = '5' SAVEPOINT S1 INSERT INTO StudentTable VALUES (6, 'Sanjana') SAVEPOINT S2 INSERT INTO StudentTable VALUES (7, 'Sanjay ') SAVEPOINT S3 INSERT INTO StudentTable VALUES (8,' Veena ') SAVEPOINT S4 SELECT * FROM StudentTable
Successivamente, in questo articolo sull'esercitazione di SQL Server, viene illustrato come gestire le eccezioni in Transact-SQL.
La gestione delle eccezioni
Esistono due tipi di eccezioni, ovvero le eccezioni definite dal sistema e le eccezioni definite dall'utente. Come suggerisce il nome, la gestione delle eccezioni è un processo attraverso il quale un utente può gestire le eccezioni generate. Per gestire le eccezioni è necessario comprendere le seguenti istruzioni del flusso di controllo:
GETTARE
Questa clausola viene utilizzata per sollevare un'eccezione e trasferisce l'esecuzione a un blocco CATCH di un costrutto TRY… CATCH.
Sintassi
THROW [ErrorNumber, @localvariable, State] []
dove,
- ErrorNumber - PERcostante o variabile che rappresenta l'eccezione.
- Messaggio - PERvariabile o stringa che descrive l'eccezione.
- Stato -Una costante o variabile compresa tra 0 e 255 che indica lo stato da associare al messaggio.
THROW 51000, 'Il record non esiste.', 1
PROVA A PRENDERE
Utilizzato per implementare la gestione delle eccezioni in Transact-SQL. Un gruppo di istruzioni può essere racchiuso nel blocco TRY. Nel caso in cui si verifichi un errore nel blocco TRY, il controllo viene passato a un altro gruppo di istruzioni racchiuse in un blocco CATCH.
Sintassi
BEGIN TRY StatementBlock END TRY BEGIN CATCH [StatementBlock] END CATCH []
BEGIN TRY SELECT * FROM StudentsInfo END TRY BEGIN CATCH SELEZIONA ERROR_NUMBER () AS ErNum, ERROR_MESSAGE () AS ErMsg END CATCH
NEL Con questo, arriviamo alla fine di questo articolo su SQL Server Tutorial. Spero che ti sia piaciuto leggere questo articolo sul tutorial di SQL Server per principianti.io Se desideri ricevere una formazione strutturata su MySQL, dai un'occhiata al nostro che viene fornito con formazione dal vivo con istruttore e esperienza di progetto nella vita reale. Questa formazione ti aiuterà a comprendere in profondità MySQL e a raggiungere la padronanza dell'argomento. Hai domande per noi? Si prega di menzionarlo nella sezione commenti di ' Esercitazione su SQL Server 'E ti ricontatterò.