Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Tutoriel SQL Server - Tout ce dont vous avez besoin pour maîtriser Transact-SQL

Dans le marché actuel, où une énorme quantité de données est générée chaque jour, il est très important de comprendre comment gérer les données. SQL Server est un environnement intégré développé par Microsoft pour gérer les données. Dans cet article sur le didacticiel SQL Server, vous apprendrez toutes les opérations et commandes dont vous avez besoin pour explorer vos bases de données.

Pour votre meilleure compréhension, j'ai divisé le blog dans les catégories suivantes :

Commandes Description

Commandes du langage de définition de données (DDL)

Cet ensemble de commandes est utilisé pour définir une base de données.

Commandes du langage de manipulation de données (DML)

Les commandes de manipulation permettent de manipuler les données présentes dans la base de données.

Commandes du langage de contrôle des données (DCL)

Cet ensemble de commandes traite des autorisations, droits et autres contrôles des systèmes de base de données.

Commandes du langage de contrôle des transactions (TCL)

Ces commandes sont utilisées pour gérer la transaction de la base de données.

Outre les commandes, les sujets suivants sont traités dans cet article :

  1. Qu'est-ce que SQL Server ?
  2. Installer SQL Server
  3. Se connecter à SQL Server à l'aide de SSMS
  4. Accéder au moteur de base de données
  5. Architecture SQL Server
  6. Commentaires en SQL
  7. Types de données SQL Server
  8. Clés dans la base de données
  9. Contraintes dans la base de données
  10. Opérateurs
  11. Fonctions d'agrégation
  12. Fonctions définies par l'utilisateur
  13. Requêtes imbriquées
  14. Joints
  15. Boucles
  16. Procédures stockées
  17. Gestion des exceptions

***REMARQUE*** Dans ce didacticiel SQL Server, je vais considérer la base de données ci-dessous comme exemple, pour vous montrer comment apprendre et écrire des commandes.

ID étudiant Nom de l'étudiant Nom du parent Numéro de téléphone Adresse Ville Pays
1 Vihaan Akriti Mehra 9955339966 Brigade Road Block 9 Hyderabad Inde
2 Manasa Shourya Sharma 9234568762 Mayo Road 15 Calcutta Inde
3 Anay Soumya Mishra 9876914261 Maison Marathalli n° 101 Bengale Inde
4 Preeti Rohan Sinha 9765432234 Queens Road 40 Delhi Inde
5 Shanaya Abhinay Agarwal 9878969068 Oberoi Street 21 Bombay Inde

Avant de commencer à comprendre les différentes commandes utilisées dans SQL Server, comprenons ce qu'est SQL Server, son architecture et comment l'installer.

Qu'est-ce que SQL Server ?

Microsoft SQL Server est un système de gestion de base de données relationnelle. Il prend en charge le langage de requête structuré et est livré avec sa propre implémentation du langage SQL qui est le Transact-SQL(T-SQL) . Il dispose d'un environnement intégré pour gérer les bases de données SQL, qui est SQL Server Management Studio.

Les composants clés de SQL Server sont les suivants :

  • Moteur de base de données : Ce composant gère le stockage, le traitement rapide des transactions et la sécurisation des données.
  • SQL Server – Ce service est utilisé pour démarrer, arrêter, mettre en pause et continuer l'instance de MS SQL Server.
  • Agent SQL Server – Le service Server Agent joue le rôle de planificateur de tâches et est déclenché par n'importe quel événement ou selon les besoins.
  • Navigateur SQL Server – Ce service est utilisé pour connecter la requête entrante à l'instance SQL Server souhaitée.
  • Recherche en texte intégral SQL Server – Utilisé pour permettre à l'utilisateur d'exécuter des requêtes en texte intégral sur les données textuelles des tables SQL.
  • Écrivain VSS SQL Server Autorise les sauvegardes et la restauration des fichiers de données lorsque SQL Server ne s'exécute pas.
  • SQL Server Analysis Services (SSAS) – Ce service est utilisé pour fournir des capacités d'analyse de données, d'exploration de données et d'apprentissage automatique. SQL Server est également intégré à Python et R pour l'analyse avancée des données.
  • Services de création de rapports SQL Server (SSRS) – Comme son nom l'indique, ce service est utilisé pour fournir des fonctionnalités et des capacités de prise de décision, y compris l'intégration avec Hadoop.
  • Services d'intégration SQL Server (SSIS) – Ce service est utilisé pour effectuer les opérations ETL pour différents types de données provenant de plusieurs sources de données.

Maintenant que vous savez ce qu'est MS SQL Server, avançons dans cet article sur le didacticiel SQL Server et comprenons comment installer et configurer SQL Server.

Installer SQL Server

Suivez les étapes ci-dessous pour installer SQL Server :

Étape 1 : Accédez à la page officielle de téléchargement de Microsoft SQL Server , où vous trouverez la possibilité d'installer SQL Server sur site ou sur le cloud.

Étape 2 : Maintenant, faites défiler vers le bas et vous verrez deux options : Édition Développeur et Entreprise . Ici, je vais télécharger l'édition développeur . Pour télécharger, il vous suffit de cliquer sur Télécharger maintenant option. Reportez-vous ci-dessous.

Étape 3 : Une fois l'application téléchargée, double-cliquez sur le fichier et vous verrez apparaître la fenêtre suivante.

Étape 4 : Maintenant, vous pouvez choisir l'une des 3 options pour configurer SQL Server. Ici, je vais juste choisir l'option de base . Lors de la sélection de l'option de type d'installation, l'écran suivant consiste à accepter le contrat de licence. Pour cela, cliquez sur Accepter dans la fenêtre suivante.

Étape 5 : Ensuite, vous devez spécifier l'emplacement d'installation de SQL Server. Ensuite, vous devez cliquer sur Installer.

Une fois que vous avez cliqué sur Installer , vous verrez que les packages requis sont téléchargés. Maintenant, une fois l'installation terminée, vous verrez l'écran suivant :

Ici, vous pouvez soit continuer et cliquer sur Se connecter maintenant, soit personnaliser l'installation. Pour votre meilleure compréhension, je vais continuer et choisir Personnaliser.

Étape 6 : Une fois que vous avez cliqué sur Personnaliser dans la fenêtre ci-dessus, vous verrez l'assistant suivant s'ouvrir. dans la fenêtre suivante, cliquez sur Suivant.

Étape 7 : Une fois les règles installées automatiquement, cliquez sur Suivant . Reportez-vous ci-dessous.

Étape 8 : Ensuite, vous devez choisir le type d'installation. Alors, choisissez le Effectuer un nouvelle installation de SQL Server 2017 puis cliquez sur Suivant.

Étape 9 : Dans l'assistant qui s'ouvre, choisissez l'édition :Developer. Ensuite, cliquez sur Suivant . Reportez-vous ci-dessous.

Étape 10 : Maintenant, lisez et acceptez les contrats de licence en cochant le bouton radio, puis cliquez sur Suivant . Reportez-vous ci-dessous.

Étape 11 : Dans l'assistant ci-dessous, vous pouvez choisir les fonctionnalités que vous souhaitez installer. Vous pouvez également choisir le répertoire racine de l'instance, puis cliquer sur Suivant . Ici, je choisirai les services de moteur de base de données .

Étape 12 : Ensuite, vous devez nommer l'instance, et automatiquement l'ID d'instance sera créé. Ici, je nommerai l'instance « edureka ». Ensuite, cliquez sur Suivant.

Étape 13 : Dans l'assistant de configuration du serveur, cliquez sur Suivant .

Étape 14 : Maintenant, vous devez activer les modes d'authentification. Ici, vous verrez le mode d'authentification Windows et Mode mixte . Je vais choisir le mode mixte. Ensuite, mentionnez le mot de passe, puis j'ajouterai l'utilisateur actuel en tant qu'Admin en choisissant Ajouter un utilisateur actuel option.

Étape 15 : Ensuite, choisissez le chemin du fichier de configuration et cliquez sur Installer .

Une fois l'installation terminée, vous verrez l'écran suivant :

Se connecter à SQL Server à l'aide de SSMS

Après l'installation de SQL Server, votre prochaine étape consiste à connecter SQL Server à SQL Server Management Studio. Pour ce faire, suivez les étapes ci-dessous :

Étape 1 : Revenez à la fenêtre suivante et cliquez sur installer SSMS option.

Étape 2 : Une fois que vous aurez cliqué sur cette option, vous serez redirigé vers la page suivante, où vous devrez choisir Télécharger SSMS.

Étape 3 : Une fois la configuration téléchargée, double-cliquez sur l'application et vous verrez l'assistant suivant s'ouvrir.

Étape 4 : Cliquez sur Option d'installation , dans la fenêtre ci-dessus et vous verrez que cette installation va commencer.

Étape 5 : Une fois l'installation terminée, vous obtiendrez une boîte de dialogue comme indiqué ci-dessous.

Après avoir installé le SSMS, l'étape suivante consiste à accéder au moteur de base de données .

Accéder au moteur de base de données

Lorsque vous ouvrez le studio de gestion de serveur SQL depuis le menu Démarrer , une fenêtre similaire à celle illustrée ci-dessous s'ouvrira.

Ici, mentionnez le nom du serveur, le mode d'authentification et cliquez sur Se connecter.

Après avoir cliqué sur Se connecter , vous verrez l'écran suivant.

Eh bien, c'est ainsi que vous installez et configurez SQL Server. Maintenant, en avançant dans ce didacticiel SQL Server, comprenons les différents composants de l'architecture de SQL Server.

Architecture SQL Server

L'architecture de SQL Server est la suivante :

  • Serveur − C'est ici que les services SQL sont installés et que réside la base de données
  • Moteur relationnel − Contient l'analyseur de requête, l'optimiseur et l'exécuteur ; et l'exécution se passe dans le moteur relationnel.
  • Analyseur de commandes − Vérifie la syntaxe de la requête et convertit la requête en langage machine.
  • Optimiseur − Prépare le plan d'exécution en sortie en prenant les statistiques, la requête et l'arbre Algebrator en entrée.
  • Exécuteur de requête − C'est l'endroit où les requêtes sont exécutées étape par étape
  • Moteur de stockage − Il est responsable du stockage et de la récupération des données sur le système de stockage, de la manipulation des données, de la gestion et du verrouillage des transactions.

Maintenant que vous savez comment configurer et installer SQL Server et ses différents composants, commençons par écrire des commandes dans SQL Server. Mais avant cela, permettez-moi de vous expliquer comment écrire des commentaires dans SQL Server.

Commentaires dans SQL Server

Vous pouvez commenter en SQL de deux manières, c'est-à-dire utiliser les s commentaires d'une seule ligne ou le m commentaires sur plusieurs lignes .

Commentaires sur une seule ligne

Les commentaires d'une seule ligne commencent par deux traits d'union (–). Ainsi, le texte mentionné après (–), jusqu'à la fin d'une seule ligne sera ignoré par le compilateur.

Exemple :

--Example of single line comments

Commentaires multi-lignes

Les commentaires multilignes commencent par /* et se terminent par */ . D'où le texte mentionné entre /* et */ sera ignoré par le compilateur.

Exemple :

/* Example for 
multi-line comments */

Maintenant, dans cet article sur le didacticiel SQL Server, commençons par le premier ensemble de commandes, c'est-à-dire les commandes du langage de définition de données.

Commandes du langage de définition de données

Cette section de l'article vous donnera une idée des commandes à l'aide desquelles vous pourrez définir votre base de données. Les commandes sont les suivantes :

  • CRÉER
  • DÉPOSER
  • ALTER
  • TRUNCATE
  • RENOMMER

CRÉER

Cette instruction est utilisée pour créer une table, une base de données ou une vue.

La déclaration "CRÉER UNE BASE DE DONNÉES"

Cette instruction est utilisée pour créer une base de données.

Syntaxe

CREATE DATABASE DatabaseName;

Exemple

CREATE DATABASE Students;

La déclaration "CRÉER UNE TABLE"

Comme son nom l'indique, cette instruction est utilisée pour créer un tableau.

Syntaxe

CREATE TABLE TableName (
Column1 datatype,
Column2 datatype,
Column3 datatype,
....

ColumnN datatype
);

Exemple

CREATE TABLE StudentInfo
(
StudentID int,
StudentName varchar(8000),
ParentName varchar(8000),
PhoneNumber int,
AddressofStudent varchar(8000),
City varchar(8000),
Country varchar(8000)
);

DÉPOSER

Cette instruction est utilisée pour supprimer une table, une base de données ou une vue existante.

La déclaration "DROP DATABASE"

Cette instruction est utilisée pour supprimer une base de données existante. Toutes les informations présentes dans la base de données seront perdues dès que vous exécuterez la commande ci-dessous.

Syntaxe

DROP DATABASE DatabaseName;

Exemple

DROP DATABASE Students;

La déclaration "DOP TABLE"

Cette instruction est utilisée pour supprimer une table existante. Les informations complètes présentes dans le tableau seront perdues dès que vous exécuterez la commande ci-dessous.

Syntaxe

DROP TABLE TableName;

Exemple

DROP TABLE StudentInfo;

MODIFIER

La commande ALTER est utilisée pour ajouter, supprimer ou modifier des colonnes ou des contraintes dans une table existante.

La déclaration "ALTER TABLE"

Cette instruction est utilisée pour ajouter, supprimer, modifier des colonnes dans une table préexistante.

L'instruction "ALTER TABLE" avec ADD/DROP COLUMN

L'instruction ALTER TABLE est utilisée avec la commande ADD/DROP Column pour ajouter et supprimer une colonne.

Syntaxe

ALTER TABLE TableName
ADD ColumnName Datatype;

ALTER TABLE TableName
DROP COLUMN ColumnName;

Exemple

--ADD Column BloodGroup:
ALTER TABLE StudentInfo
ADD BloodGroup varchar(8000);
 
--DROP Column BloodGroup:
ALTER TABLE StudentInfo
DROP COLUMN BloodGroup ;

L'instruction "ALTER TABLE" avec ALTER COLUMN

L'instruction ALTER TABLE peut être utilisée avec la colonne ALTER pour modifier le type de données d'une colonne existante dans une table.

Syntaxe

ALTER TABLE TableName
ALTER COLUMN ColumnName Datatype;

Exemple

--Add a column DOB and change the data type from date to datetime.
ALTER TABLE StudentInfo
ADD DOB date;
ALTER TABLE StudentInfo
ALTER COLUMN DOB datetime;

TRUNCATE

Cette commande SQL est utilisée pour supprimer les informations présentes dans la table mais ne supprime pas la table elle-même. Ainsi, si vous souhaitez supprimer les informations présentes dans la table, et non supprimer la table elle-même, vous devez utiliser la commande TRUNCATE. Sinon, utilisez la commande DROP.

Syntaxe

TRUNCATE TABLE TableName;

Exemple

TRUNCATE TABLE StudentInfo;

RENOMMER

Cette instruction est utilisée pour renommer une ou plusieurs tables.

Syntaxe

sp_rename 'OldTableName', 'NewTableName';

Exemple

sp_rename 'StudentInfo', 'Infostudents';

En poursuivant dans cet article sur le didacticiel SQL Server, comprenons les différents types de données pris en charge par SQL Server.

Types de données SQL Server

Catégorie de type de données Nom du type de données Description Plage/Syntaxe
Chiffres exacts numérique Utilisé pour stocker des valeurs numériques et avoir des numéros de précision et d'échelle fixes – 10^38 +1 à 10^38 – 1.
tinyint Utilisé pour stocker des valeurs entières 0 à 255
smallint Utilisé pour stocker des valeurs entières -2^15 (-32 768) à 2^15-1 (32 767)
bigint Utilisé pour stocker des valeurs entières -2^63 (-9 223 372 036 854 775 808) à 2^63-1 (9 223 372 036 854 775 807)
int Utilisé pour stocker des valeurs entières -2^31 (-2 147 483 648) à 2^31-1 (2 147 483 647)
bit Stocke un type de données entier qui contient une valeur de 0, 1 ou NULL 0, 1 ou NULL
décimal Utilisé pour stocker des valeurs numériques et avoir des numéros de précision et d'échelle fixes – 10^38 +1 à 10^38 – 1.
smallmoney Utilisé pour stocker des valeurs monétaires ou monétaires. – 214 748,3648 à 214 748,3647
argent Utilisé pour stocker des valeurs monétaires ou monétaires. -922 337 203 685 477,5808 à 922 337 203 685 477,5807 (-922 337 203 685 477,58
à 922 337 203 685 477,58 pour Informatica.
Chiffres approximatifs float Utilisé pour stocker des données numériques à virgule flottante – 1,79E+308 à -2,23E-308, 0 et 2,23E-308 à 1,79E+308
réel Utilisé pour stocker des données numériques à virgule flottante – 3.40E + 38 à -1.18E – 38, 0 et 1.18E – 38 à 3.40E + 38
Date et heure date Utilisé pour définir une date dans SQL Server. Syntaxe :date
smalldatetime Utilisé pour définir une date combinée à une heure de la journée ; où l'heure est basée sur une journée de 24 heures, avec des secondes toujours à zéro (:00) et sans fraction de seconde. Syntaxe :smalldatetime
datetime Utilisé pour définir une date combinée à une heure de la journée avec des fractions de secondes basées sur une horloge de 24 heures. Syntaxe :datetime
datetime2 datetime2 est une extension du datetime existant type qui a une plus grande précision fractionnaire par défaut, une plus grande plage de dates. Syntaxe :datetime2
datetimeoffset Utilisé pour définir une date qui est combinée avec une heure de la journée qui tient compte du fuseau horaire. Il est basé sur une horloge de 24 heures. Syntaxe :datetimeoffset
heure Utilisé pour définir une heure d'une journée. Syntaxe : heure
Chaînes de caractères char Utilisé pour stocker des caractères de taille fixe. char [ ( n ) ] où la valeur n varie de 1 à 8 000
varchar Utilisé pour stocker des caractères de longueur variable. varchar [ ( n | max ) ] où la valeur n varie de 1 à 8 000 et le stockage maximal autorisé est de 2 Go.
texte Utilisé pour stocker des données non Unicode de longueur variable Longueur de chaîne maximale autorisée :2^31-1 (2 147 483 647)
Chaînes de caractères Unicode nchar Utilisé pour stocker des caractères de taille fixe. nchar [ ( n ) ] où la valeur n varie de 1 à 4 000
nvarchar Utilisé pour stocker des caractères de longueur variable. varchar [ ( n | max ) ] où la valeur n varie de 1 à 4 000 et le stockage maximal autorisé est de 2 Go.
ntext Utilisé pour stocker des données Unicode de longueur variable Longueur de chaîne maximale autorisée :2^30-1 (2 147 483 647)
Chaînes binaires binaire Utilisé pour stocker des types de données binaires de longueur fixe binaire [ ( n ) ] où la valeur n varie de 1 à 8 000
varbinary Utilisé pour stocker des types de données binaires de longueur fixe varbinary [ ( n ) ] où la valeur n varie de 1 à 8 000 et le stockage maximal autorisé est de 2^31-1 octets.
image Utilisé pour stocker des données binaires de longueur variable 0 – 2^31-1 (2 147 483 647) octets
Autres types de données curseur Il s'agit d'un type de données pour les paramètres de sortie de procédure stockée ou de variables qui contiennent une référence à un curseur.
rowversion Utilisé pour exposer des nombres binaires uniques générés automatiquement dans une base de données.
hierarchyid Utilisé pour représenter la position dans une hiérarchie.
identifiant unique Est un GUID de 16 octets. Syntaxe :uniqueidentifier
sql_variant Utilisé pour stocker les valeurs de divers types de données pris en charge par SQL Server Syntaxe :sql_variant
xml Utilisé pour stocker le type de données XML.

xml ( [ CONTENU | DOCUMENT ] xml_schemacollection )

Types de géométrie spatiale Utilisé pour représenter des données dans un système de coordonnées euclidien (plat).
Types de géographie spatiale Utilisé pour stocker des données ellipsoïdales (terre ronde), telles que les coordonnées GPS de latitude et de longitude.
tableau Utilisé pour stocker un ensemble de résultats pour un traitement ultérieur

Ensuite, dans cet article, comprenons les différents types de clés et de contraintes dans la base de données.

Différents types de clés dans la base de données

Voici les différents types de clés utilisées dans la base de données :

  • Clé du candidat – La clé candidate est un ensemble d'attributs qui peuvent identifier de manière unique une table. Une table peut avoir plusieurs clés candidates, et parmi les clés candidates choisies, une clé est choisie comme clé primaire.
  • Super Clé – L'ensemble d'attributs peut identifier de manière unique un tuple. Ainsi, les clés candidates, les clés uniques et les clés primaires sont des super clés, mais l'inverse n'est pas vrai.
  • Clé primaire – Les clés primaires sont utilisées pour identifier de manière unique chaque tuple.
  • Clé alternative – Les clés alternatives sont les clés candidates qui ne sont pas choisies comme clé primaire.
  • Clé unique – Les clés uniques sont similaires à la clé primaire, mais autorisent une seule valeur NULL dans la colonne.
  • Clé étrangère – Un attribut qui ne peut prendre que les valeurs présentes comme valeurs d'un autre attribut est la clé étrangère de l'attribut auquel il se réfère.
  • Clé composite – Les clés composites sont une combinaison de deux colonnes ou plus qui identifient chaque tuple de manière unique.

Contraintes utilisées dans la base de données

Les contraintes sont utilisées dans une base de données pour spécifier les règles pour les données stockées dans une table. Les différents types de contraintes en SQL sont les suivants :

  • NON NULL
  • UNIQUES
  • VÉRIFIER
  • PAR DÉFAUT
  • INDICE

NON NULL

La contrainte NOT NULL garantit qu'une colonne ne peut pas avoir de valeur NULL.

Exemple

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 on ALTER TABLE
ALTER TABLE StudentsInfo
ALTER COLUMN PhoneNumber int NOT NULL;

UNIQUE

Cette contrainte garantit que toutes les valeurs d'une colonne sont uniques.

Exemple

--UNIQUE on Create Table
 
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 on Multiple Columns
 
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 on ALTER TABLE
 
ALTER TABLE StudentsInfo
ADD UNIQUE (StudentID);
 
--To drop a UNIQUE constraint
 
ALTER TABLE  StudentsInfo
DROP CONSTRAINT UC_Student_Info;

CHECK

The CHECK constraint ensures that all the values in a column satisfy a specific condition.

Example

--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 Constraint on multiple columns
 
CREATE TABLE StudentsInfo
(
StudentID int NOT NULL,
StudentName varchar8000) NOT NULL,
ParentName varchar(8000),
PhoneNumber int ,
AddressofStudent varchar(8000) NOT NULL,
City varchar(8000),
Country varchar(8000) CHECK (Country ='India'  AND City = 'Hyderabad')
);
 
--CHECK Constraint on ALTER TABLE
 
ALTER TABLE StudentsInfo
ADD CHECK (Country ='India');
 
--To give a name to the CHECK Constraint
 
ALTER TABLE StudentsInfo
ADD CONSTRAINT CheckConstraintName CHECK (Country ='India');
 
--To drop a CHECK Constraint
 
ALTER TABLE StudentsInfo
DROP CONSTRAINT CheckConstraintName;

DEFAULT

The DEFAULT constraint consists of a set of default values for a column when no value is specified.

Example

--DEFAULT Constraint on 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'
);
 
--DEFAULT Constraint on ALTER TABLE
 
ALTER TABLE StudentsInfo
ADD CONSTRAINT defau_Country
DEFAULT 'India' FOR Country;
 
--To drop the Default Constraint
 
ALTER TABLE StudentsInfo
ALTER COLUMN Country DROP defau_Country;

INDEX

The INDEX constraint is used to create indexes in the table, through which you can create and retrieve data from the database very quickly.

Syntax

--Create an Index where duplicate values are allowed
CREATE INDEX IndexName
ON TableName (Column1, Column2, ...ColumnN);

--Create an Index where duplicate values are not allowed
CREATE UNIQUE INDEX IndexName
ON TableName (Column1, Column2, ...ColumnN);

Example

CREATE INDEX idex_StudentName
ON StudentsInfo (StudentName);
 
--To delete an index in a table
 DROP INDEX StudentsInfo.idex_StudentName;

Moving forward in this article on SQL Server tutorial, let us now understand the different Data Manipulation Language commands used in Microsoft SQL Server.

Data Manipulation Language commands

This section of the article will cover all those commands through which you can manipulate the database. The commands are as follows:

  • USE
  • INSERT INTO
  • UPDATE
  • DELETE
  • MERGE
  • SELECT
  • CUBE
  • ROLLUP
  • OFFSET
  • FETCH
  • TOP
  • PIVOT

Apart from these commands, there are also other manipulative operators/functions such as:

  • Operators
    • Opérateurs arithmétiques
    • Assignment Operators
    • Bitwise Operators
    • Opérateurs de comparaison
    • Compound Operators
    • Opérateurs logiques
    • Scope Resolution Operators
    • Set Operators
    • String Concatenation Operators
    • Aggregate Functions
  • User-Defined Functions

USE

This statement is used to select the database to start performing various operations on it.

Syntax

USE DatabaseName;

Example

USE Students;

INSERT INTO

The INSERT INTO statement is used to insert new records into an existing table.

Syntax

INSERT INTO TableName (Column1, Column2, Column3, ...,ColumnN)
VALUES (value1, value2, value3, ...);

--If you don't want to mention the column names then use the below syntax

INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);

Example

INSERT INTO StudentsInfo(StudentID, StudentName, ParentName, PhoneNumber, AddressofStudent, City, Country)
VALUES ('06', 'Sanjana','Kapoor', '9977331199', 'Buffalo Street House No 10', 'Kolkata', 'India');
 
INSERT INTO StudentsInfo
VALUES ('07', 'Vishal','Mishra', '9876509712', 'Nice Road 15', 'Pune', 'India');

UPDATE

The UPDATE statement is used to modify or update the records already present in the table.

Syntax

UPDATE TableName
SET Column1 = Value1, Column2 = Value2, ...
WHERE Condition;

Example

UPDATE StudentsInfo
SET StudentName = 'Aahana', City= 'Ahmedabad'
WHERE StudentID = 1;

DELETE

The DELETE statement is used to delete the existing records in a table.

Syntax

DELETE FROM TableName WHERE Condition;

Example

DELETE FROM StudentsInfo
WHERE StudentName='Aahana';

MERGE

The MERGE statement is used to perform the INSERT, UPDATE and DELETE operations on a specific table, where the source table is provided. Reportez-vous ci-dessous.

Syntax

MERGE TagretTableName USING SourceTableName
ON MergeCondition
WHEN MATCHED
THEN Update_Statement
WHEN NOT MATCHED
THEN Insert_Statement
WHEN NOT MATCHED BY SOURCE
THEN DELETE;

Example

To understand the MERGE statement, consider the following tables as the Source table and the Target table.

Source Table:

StudentID StudentName Marks
1 Vihaan 87
2 Manasa 92
4 Anay 74

Target Table:

StudentID StudentName Marks
1 Vihaan 87
2 Manasa 67
3 Saurabh 55
MERGE SampleTargetTable TARGET USING SampleSourceTable SOURCE ON (TARGET.StudentID = SOURCE.StudentID)                                                                                       
WHEN MATCHED AND TARGET.StudentName <> SOURCE.StudentName OR TARGET.Marks <> SOURCE.Marks 
THEN UPDATE SET TARGET.StudentName = SOURCE.StudentName, TARGET.Marks = SOURCE.Marks         
WHEN NOT MATCHED BY TARGET THEN  
INSERT (StudentID,StudentName,Marks) VALUES (SOURCE.StudentID,SOURCE.StudentName,SOURCE.Marks)
WHEN NOT MATCHED BY SOURCE THEN         
DELETE;    

Output

StudentID StudentName Marks
1 Vihaan 87
2 Manasa 92
4 Anay 74

SELECT

The SELECT statement is used to select data from a database, table or view. The data returned is stored in a result table, called the result-set .

Syntax

SELECT Column1, Column2, ...ColumN
FROM TableName;

--(*) is used to select all from the table
SELECT * FROM table_name;

-- To select the number of records to return use:
SELECT TOP 3 * FROM TableName;

Example

-- To select few columns
SELECT StudentID, StudentName
FROM StudentsInfo;
 
--(*) is used to select all from the table
SELECT * FROM StudentsInfo;
 
-- To select the number of records to return use:
SELECT TOP 3 * FROM StudentsInfo;

We can also use the following keywords with the SELECT statement:

  • DISTINCT
  • ORDER BY
  • GROUP BY
  • GROUPING SETS
  • HAVING Clause
  • INTO

DISTINCT

The DISTINCT keyword is used with the SELECT statement to return only different values.

Syntax

SELECT DISTINCT Column1, Column2, ...ColumnN
FROM TableName;

Example

SELECT DISTINCT PhoneNumber FROM StudentsInfo;

ORDER BY

This statement is used to sort the required results either in the ascending or descending order. By default, the results are stored in ascending order. Yet, if you wish to get the results in descending order, you have to use the DESC mot-clé.

Syntax

SELECT Column1, Column2, ...ColumnN
FROM TableName
ORDER BY Column1, Column2, ... ASC|DESC;

Example

-- Select all students from the 'StudentsInfo' table sorted by ParentName:
SELECT * FROM StudentsInfo
ORDER BY ParentName;
 
-- Select all students from the 'StudentsInfo' table sorted by ParentName in Descending order:
SELECT * FROM StudentsInfo
ORDER BY ParentName DESC;
 
-- Select all students from the 'StudentsInfo' table sorted by ParentName and StudentName:
SELECT * FROM StudentsInfo
ORDER BY ParentName, StudentName;

/* Select all students from the 'StudentsInfo' table sorted by ParentName 
in Descending order and StudentName in Ascending order: */
SELECT * FROM StudentsInfo
ORDER BY ParentName ASC, StudentName DESC;

GROUP BY

This statement is used with the aggregate functions to group the result-set by one or more columns.

Syntax

SELECT Column1, Column2,..., ColumnN
FROM TableName
WHERE Condition
GROUP BY ColumnName(s)
ORDER BY ColumnName(s);

Example

-- To list the number of students from each city.
SELECT COUNT(StudentID), City
FROM StudentsInfo
GROUP BY City;

GROUPING SETS

GROUPING SETS were introduced in SQL Server 2008, used to generate a result-set that can be generated by a UNION ALL of the multiple simple GROUP BY clauses.

Syntax

SELECT ColumnNames(s)
FROM TableName
GROUP BY GROUPING SETS(ColumnName(s));

Example

SELECT StudentID, StudentName, COUNT(City)
from StudentsInfo
Group BY
GROUPING SETS
((StudentID, StudentName, City),(StudentID),(StudentName),(City));

HAVING

This clause is used in the scenario where the WHERE keyword cannot be used.

Syntax

SELECT ColumnName(s)
FROM TableName
WHERE Condition
GROUP BY ColumnName(s)
HAVING Condition
ORDER BY ColumnName(s);

Example

SELECT COUNT(StudentID), City
FROM StudentsInfo
GROUP BY City
HAVING COUNT(StudentID) > 2
ORDER BY COUNT(StudentID) DESC;

INTO

The INTO keyword can be used with the SELECT statement to copy data from one table to another. Well, you can understand these tables to be temporary tables. The temporary tables are generally used to perform manipulations on data present in the table, without disturbing the original table.

Syntax

SELECT *
INTO NewTable [IN ExternalDB]
FROM OldTable
WHERE Condition;

Example

-- To create a backup of table 'StudentsInfo'
SELECT * INTO StudentsBackup
FROM StudentsInfo;
 
--To select only few columns from StudentsInfo
SELECT StudentName, PhoneNumber INTO StudentsDetails
FROM StudentsInfo;
 
SELECT * INTO PuneStudents
FROM StudentsInfo
WHERE City = 'Pune';

CUBE

CUBE is an extension of the GROUP BY clause. It allows you to generate the sub-totals for all the combinations of the grouping columns specified in the GROUP BY clause.

Syntax

SELECT ColumnName(s)
FROM TableName
GROUP BY CUBE(ColumnName1, ColumnName2, ....., ColumnNameN);

Example

SELECT StudentID, COUNT(City)
FROM StudentsInfo
GROUP BY CUBE(StudentID)
ORDER BY StudentID;  

ROLLUP

ROLLUP is an extension of the GROUP BY clause. This allows you to include the extra rows which represent the subtotals. These are referred to as super-aggregated rows along with the grand total row.

Syntax

SELECT ColumnName(s)
FROM TableName
GROUP BY ROLLUP(ColumnName1, ColumnName2, ....., ColumnNameN);

Example

SELECT StudentID, COUNT(City)
FROM StudentsInfo
GROUP BY ROLLUP(StudentID);

OFFSET

The OFFSET clause is used with the SELECT and ORDER BY statement to retrieve a range of records. It must be used with the ORDER BY clause since it cannot be used on its own. Also, the range that you mention must be equal to or greater than 0. If you mention a negative value, then it shows an error.

Syntax

SELECT ColumnNames)
FROM TableName
WHERE Condition
ORDER BY ColumnName(s)
OFFSET RowsToSkip ROWS;

Example

Consider a new column Marks in the StudentsInfo tableau.

SELECT StudentName, ParentName
FROM StudentsInfo
ORDER BY Marks
OFFSET 1 ROWS;

FETCH

The FETCH clause is used to return a set of a number of rows. It has to be used in conjunction with the OFFSET clause.

Syntax

SELECT ColumnNames)
FROM TableName
WHERE Condition
ORDER BY ColumnName(s)
OFFSET RowsToSkip 
FETCH NEXT NumberOfRows ROWS ONLY;

Example

SELECT StudentName, ParentName
FROM StudentsInfo
ORDER BY Marks
OFFSET 1 ROWS
FETCH  NEXT 1 ROWS ONLY;

TOP

The TOP clause is used with the SELECT statement to mention the number of records to return.

Syntax

SELECT TOP Number ColumnName(s)
FROM TableName
WHERE Condition;

Example

SELECT TOP 3 * FROM StudentsInfo;

PIVOT

PIVOT is used to rotate the rows to column values and runs aggregations when required on the remaining column values.

Syntax

SELECT NonPivoted ColumnName,  
    [First Pivoted ColumnName] AS ColumnName,  
    [Second Pivoted ColumnName] AS ColumnName, 
    [Third Pivoted ColumnName] AS ColumnName,   
    ...  
    [Last Pivoted ColumnName] AS ColumnName  
FROM 
    (SELECT query which produces the data)   
    AS [alias for the initial query]  
PIVOT  
(  
    [AggregationFunction](ColumName)  
FOR  
[ColumnName of the column whose values will become column headers]   
    IN ( [First Pivoted ColumnName], [Second Pivoted ColumnName],  [Third Pivoted ColumnName]
    ... [last pivoted column])  
) AS [alias for the Pivot Table];

Example

To get a detailed example, you can refer to my article on SQL PIVOT and UNPIVOT. Next in this SQL Server Tutorial let us look into the different operators supported by Microsoft SQL Server.

Operators

The different types of operators supported by SQL Server are as follows:

  • Opérateurs arithmétiques
  • Assignment Operators
  • Bitwise Operators
  • Opérateurs de comparaison
  • Compound Operators
  • Opérateurs logiques
  • Scope Resolution Operators
  • Set Operators
  • String Concatenation Operators

Let us discuss each one of them one by one.

Arithmetic Operators

Operator Meaning Syntax

+

Addition

expression + expression

Subtraction

expression – expression

*

Multiplication

expression * expression

/

Divison

expression / expression

%

Modulous

expression % expression

Assignment Operators

Operator Meaning Syntax

=

Assign a value to a variable

variable =‘value’

Bitwise Operators

Operator Meaning Syntax

&(Bitwise AND)

Used to perform a bitwise logical AND operation between two integer values.

expression &expression

&=(Bitwise AND Assignment)

Used to perform a bitwise logical AND operation between two integer values. It also sets a value to the output of the operation.

expression &=expression

| (Bitwise OR)

Used to perform a bitwise logical OR operation between two integer values as translated to binary expressions within Transact-SQL statements.

expression | expression

|=(Bitwise OR Assignment)

Used to perform a bitwise logical OR operation between two integer values as translated to binary expressions within Transact-SQL statements. It also sets a value to the output of the operation.

expression |=expression

^ (Bitwise Exclusive OR)

Used to perform a bitwise exclusive OR operation between two integer values.

expression ^ expression

^=(Bitwise Exclusive OR Assignment)

Used to perform a bitwise exclusive OR operation between two integer values. It also sets a value to the output of the operation.

expression ^=expression

~ (Bitwise NOT)

Used to perform a bitwise logical NOT operation on an integer value.

~ expression

Comparison Operators

Operator Meaning Syntax

=

Equal to

expression =expression

>

Greater than

expression> expression

<

Less than

expression

>=

Greater than or equal to

expression>=expression

<=

Less than or equal to

expression <=expression

<>

Not equal to

expression <> expression

!=

Not equal to

expression !=expression

!<

Not less than

expression !

!>

Not greater than

expression !> expression

Compound Operators

Operator Meaning Syntax

+ =

Used to add value to the original value and set the original value to the result.

expression +=expression

-=

Used to subtract a value from the original value and set the original value to the result.

expression -=expression

*=

Used to multiply value to the original value and set the original value to the result.

expression *=expression

/=

Used to divide a value from the original value and set the original value to the result.

expression /=expression

%=

Used to divide a value from the original value and set the original value to the result.

expression %=expression

&=

Used to perform a bitwise AND operation and set the original value to the result.

expression &=expression

^=

Used to perform a bitwise exclusive OR operation and set the original value to the result.

expression ^=expression

|=

Used to perform a bitwise OR operation and set the original value to the result.

expression |=expression

Logical Operators

Operator Meaning Syntax

ALL

Returns TRUE if all of set of comparisons are TRUE.

scalar_expression { =| <> | !=|> |>=| !> | <| <=| !<} ALL ( subquery )

AND

Returns TRUE if both the expressions are TRUE.

boolean_expression AND boolean_expression

ANY

Returns TRUE if any one of a set of comparisons are TRUE.

scalar_expression { =| <> | ! =|> |> =| !> | <| <=| ! <} { ANY } ( subquery )

BETWEEN

Returns TRUE if an operand is within a range.

sampleexpression [ NOT ] BETWEEN beginexpression AND endexpression

EXISTS

Returns TRUE if a subquery contains any rows.

EXISTS (sub query)

IN

Returns TRUE if an operand is equal to one of a list of expressions.

test_expression [ NOT ] IN( subquery | expression [ ,…n ])

LIKE

Returns TRUE if an operand matches a pattern.

match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

NOT

Reverses the value of any boolean operator.

[ NOT ] boolean_expression

OR

Returns TRUE if either of the boolean expression is TRUE.

boolean_expression OR boolean_expression

SOME

Returns TRUE if some of a set of comparisons are TRUE.

scalar_expression { =| <> | ! =|> |> =| !> | <| <=| ! <} { SOME} ( subquery )

Scope Resolution Operators

Operator Meaning Example

::

Provides access to static members of a compound data type. Compound data types are those data types which contain multiple methods and simple data types. Compound data types These include the built-in CLR types and custom SQLCLR User-Defined Types (UDTs).

DECLARE @hid hierarchyid; SELECT @hid =hierarchyid::GetRoot(); PRINT @hid.ToString();

Set Operators

There are mainly three set operations:UNION, INTERSECT, MINUS. You can refer to the image below to understand the set operations in SQL. Refer to the below image:

Operator Meaning Syntax

UNION

The UNION operator is used to combine the result-set of two or more SELECT statements.

SELECT ColumnName(s) FROM Table1
SYNDICAT
SELECT ColumnName(s )FROM Table2;

INTERSECT

The INTERSECT clause is used to combine two SELECT statements and return the intersection of the data-sets of both the SELECT statements.

SELECT Column1 , Column2 ….
FROM TableName;
WHERE Condition
INTERSECT
SELECT Column1 , Column2 ….
FROM TableName;
WHERE Condition

EXCEPT

The EXCEPT operator returns those tuples that are returned by the first SELECT operation, and are not returned by the second SELECT operation.

SELECT ColumnName
FROM TableName;
À L'EXCEPTION
SELECT ColumnName
FROM TableName;

String Operators

Operator Meaning Syntax/ Example

+ (String Concatenation)

Concatenates two or more binary or character strings, columns, or a combination of strings and column names into a single expression

expression+expression

+=(String Concatenation)

Used to concatenate two strings and sets the string to the result of the operation.

expression+=expression

% (Wildcard Characters to match)

Used to matches any string of zero or more characters.

Example:‘sample%’

[] (Wildcard Characters to match)

Used to match a single character within the specified range or set that is specified between brackets [].

Example:m[n-z]%’

[^] (Wildcard Characters to match)

Used to match a single character which is not within the range or set specified between the square brackets.

Example:‘Al[^a]%’

_ (Wildcard Characters to match)

Used to match a single character in a string comparison operation

test_expression [ NOT ] IN( subquery | expression [ ,…n ])

Aggregate Functions

The different aggregate functions supported by SQL Server are as follows:

Function Description Syntax Example

SUM()

Used to return the sum of a group of values.

SELECT SUM(ColumnName) FROM TableName;

SELECT SUM(Marks) FROM StudentsInfo;

COUNT()

Returns the number of rows either based on a condition, or without a condition.

SELECT COUNT(ColumnName) FROM TableName WHERE Condition;

SELECT COUNT(StudentID) FROM StudentsInfo;

AVG()

Used to calculate the average value of a numeric column.

SELECT AVG(ColumnName) FROM TableName;

SELECT AVG(Marks) FROM StudentsInfo;

MIN()

This function returns the minimum value of a column.

SELECT MIN(ColumnName) FROM TableName;

SELECT MIN(Marks) FROM StudentsInfo;

MAX()

Returns a maximum value of a column.

SELECT MAX(ColumnName) FROM TableName;

SELECT MAX(Marks) FROM StudentsInfo;

FIRST()

Used to return the first value of the column.

SELECT FIRST(ColumnName) FROM TableName;

SELECT FIRST(Marks) FROM StudentsInfo;

LAST()

This function returns the last value of the column.

SELECT LAST(ColumnName) FROM TableName;

SELECT LAST(Marks) FROM StudentsInfo;

User-Defined Functions

Microsoft SQL Server allows the users to create user-defined functions which are routines. These routines accept parameters, can perform simple to complex actions and return the result of that particular action as a value. Here, the value returned can either be a single scalar value or a complete result-set.

You can use user-defined functions to:

  • Allow modular programming
  • Reduce network traffic
  • Allow faster execution of queries

Also, there are different types of user-defined functions you can create. They are:

  • Scalar Functions: Used to return a single data value of the type defined in the RETURNS clause.
  • Table-Valued Functions: Used to return a table data type.
  • System Functions: A variety of system functions are provided by the SQL Server to perform different operations.

Well, apart from the user-defined functions, there is a bunch of in-built functions in SQL Server; which can be used to perform a variety of tasks. Moving on in this article on SQL Server tutorial, let us now understand what are nested queries.

Nested Queries

Nested queries are those queries that have an outer query and inner subquery. So, basically, the subquery is a query which is nested within another query such as SELECT, INSERT, UPDATE or DELETE. Refer to the image below:

Next in this SQL Server tutorial, let us understand the different types of joins in SQL.

Joins

Joins are used to combine tuples from two or more tables, based on a related column between the tables. There are four types of joins:

  • INNER JOIN: Returns records that have matching values in both the tables.
  • LEFT JOIN: Returns records from the left table, and also those records which satisfy the condition from the right table.
  • RIGHT JOIN: Returns records from the right table, and also those records which satisfy the condition from the left table.
  • FULL JOIN: Returns records which either have a match in the left or the right table.

Consider the following table along with the StudentsInfo table, to understand the syntax of joins.

SubjectID StudentID SubjectName
10 10 Maths
2 11 Physics
3 12 Chemistry

INNER JOIN

Syntax

SELECT ColumnName(s)
FROM Table1
INNER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

Example

SELECT Subjects.SubjectID, StudentsInfo.StudentName
FROM Subjects
INNER JOIN StudentsInfo ON Subjects.StudentID = StudentsInfo.StudentID;

LEFT JOIN

Syntax

SELECT ColumnName(s)
FROM Table1
LEFT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

Example

SELECT StudentsInfo.StudentName, Subjects.SubjectID
FROM StudentsInfo
LEFT JOIN Subjects ON StudentsInfo.SubjectID = Subjects.SubjectID
ORDER BY StudentsInfo.StudentName;

RIGHT JOIN

Syntax

SELECT ColumnName(s)
FROM Table1
RIGHT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

Example

SELECT StudentsInfo.StudentName, Subjects.SubjectID
FROM StudentsInfo
RIGHT JOIN Subjects ON StudentsInfo.SubjectID = Subjects.SubjectID
ORDER BY StudentsInfo.StudentName;

FULL JOIN

Syntax

SELECT ColumnName(s)
FROM Table1
FULL OUTER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

Example

SELECT StudentsInfo.StudentName, Subjects.SubjectID
FROM StudentsInfo
FULL OUTER JOIN Subjects ON StudentsInfo.SubjectID = Subjects.SubjectID
ORDER BY StudentsInfo.StudentName;

Next, in this article on SQL Server tutorial, let us understand the different types of loops supported by the SQL Server.

Loops

The different control-of-flow commands are as follows:

  • BEGIN..END
  • BREAK
  • CONTINUE
  • GOTO
  • IF..ELSE
  • RETURN
  • WAITFOR
  • WHILE

Let us discuss each one of them one by one.

BEGIN..END

These keywords are used to enclose a series of SQL statements. Then, this group of SQL statements can be executed.

Syntax

BEGIN   
     { SQLStatement | StatementBlock }   
END

BREAK

This statement is used to exit the current WHILE loop. In case, the current WHILE loop is nested inside another loop, then the BREAK statement exits only the current loop and the control is passed on to the next statement in the current loop. The BREAK statement is generally used inside an IF statement.

Syntax

BREAK;

CONTINUE

The CONTINUE statement is used to restart a WHILE loop. So, any statements after the CONTINUE keyword will be ignored.

Syntax

CONTINUE;

Here, Label is the point after which processing starts if a GOTO is targeted to that particular label.

GOTO

Used to alter the flow of execution to a label. The statements written after the GOTO keyword are skipped and processing continues at the label.

Syntax

Define Label:   
Label:   
Alter Execution:  
GOTO Label

Here, Label is the point after which processing starts if a GOTO is targeted to that particular label.

IF..ELSE

Like any other programming language, the If-else statement in SQL Server tests the condition and if the condition is false then ‘else’ statement is executed.

Syntax

IF BooleanExpression      
     { SQLStatement | StatementBlock }   
[ ELSE   
     { SQLStatement | StatementBlock } ]

RETURN

Used to exit unconditionally from a query or procedure. So, the statements which are written after the RETURN clause are not executed.

Syntax

RETURN [ IntegerExpression ]

Here, an integer value is returned.

WAITFOR

The WAITFOR control flow is used to block the execution of a stored procedure, transaction or a batch until a specific statement modifies, returns at least one row or a specified time or time interval elapses.

Syntax

WAITFOR   
{  
    DELAY 'TimeToPass'   
  | TIME 'TimeToExecute'   
  | [ ( RecieveStatement ) | ( GetConversionGroupStatement ) ]   
    [ , TIMEOUT timeout ]  
}

where,

  • DELAY – Period of time that must pass
  • TimeToPass – Period of time to wait
  • TIME – The time when the stored procedure, transaction or the batch runs.
  • TimeToExecute – The time at which the WAITFOR statement finishes.
  • RecieveStatement – A valid RECEIVE statement.
  • GetConversionGroupStatement – A valid GET CONVERSATION GROUP statement.
  • TIMEOUT timeout Specifies the period of time, in milliseconds, to wait for a message to arrive on the queue.

WHILE

This loop is used to set a condition for repeated execution of a particular SQL statement or a SQL statement block. The statements are executed as long as the condition mentioned by the user is TRUE. As soon as the condition fails, the loop stops executing.

Syntax

WHILE BooleanExpression 
{ SQLStatement | StatementBlock | BREAK | CONTINUE }

Now, that you guys know the DML commands, let’s move onto our next section in this article on SQL Tutorial i.e. the DCL commands.

Data Control Language Commands (DCL)

This section of SQL Server tutorial will give you an idea about the command through which are used to enforce database security in multiple user database environments. The commands are as follows:

  • GRANT
  • REVOKE

GRANT

The GRANT command is used to provide access or privileges on the database and its objects to the users.

Syntax

GRANT PrivilegeName
ON ObjectName
TO {UserName |PUBLIC |RoleName}
[WITH GRANT OPTION];

where,

  • PrivilegeName – Is the privilege/right/access granted to the user.
  • ObjectName – Name of a database object like TABLE/VIEW/STORED PROC.
  • UserName – Name of the user who is given the access/rights/privileges.
  • PUBLIC – To grant access rights to all users.
  • RoleName – The name of a set of privileges grouped together.
  • WITH GRANT OPTION – To give the user access to grant other users with rights.

Example

-- To grant SELECT permission to StudentsInfo table to user1
GRANT SELECT ON StudentsInfo TO user1;

REVOKE

The REVOKE command is used to withdraw the user’s access privileges given by using the GRANT command.

Syntax

REVOKE PrivilegeName 
ON ObjectName 
FROM {UserName |PUBLIC |RoleName}

Example

-- To revoke the granted permission from user1
REVOKE SELECT ON StudentsInfo TO user1;

Moving on in this SQL Server tutorial, let us understand the how to create and use Stored Procedures.

Stored Procedures

Stored Procedures are reusable units that encapsulate a specific business logic of the application. So, it is a group of SQL statements and logic, compiled and stored together to perform a specific task.

Syntax

CREATE [ OR REPLACE] PROCEDURE procedure_name [
(parameter_name [IN | OUT | IN OUT] type [ ])]
{IS | AS }
BEGIN [declaration_section]
executable_section 
//SQL statement used in the stored procedure
END
GO

Example

--Create a procedure that will return a student name when the StudentId is given as the input parameter to the stored procedure
Create  PROCEDURE GetStudentName 
(
@StudentId INT, --Input parameter ,  
@StudName VARCHAR(50)  OUT  --Output parameter, 
AS
BEGIN
SELECT @StudName = StudentName FROM StudentsInfo WHERE StudentID=@StudentId
END

Steps to execute:

      • Declare @StudName as nvarchar(50)
      • EXEC GetStudentName 01, @StudName output
      • SELECT @StudName

The above procedure returns the name of a particular student, on giving that students id as input. Next in this SQL Server tutorial, let us understand the transaction control language commands.

Transaction Control Language Commands (TCL)

This section of SQL Server tutorial will give you an insight into the commands which are used to manage transactions in the database. The commands are as follows:

  • COMMIT
  • ROLLBACK
  • SAVEPOINT

COMMIT

The COMMIT command is used to save the transaction into the database.

Syntax

COMMIT;

ROLLBACK

The ROLLBACK command is used to restore the database to the last committed state.

Syntax

ROLLBACK;

NOTE: When you use ROLLBACK with SAVEPOINT, then you can directly jump to a savepoint in an ongoing transaction. Syntax:ROLLBACK TO SavepointName;

SAVEPOINT

The SAVEPOINT command is used to temporarily save a transaction. So if you wish to rollback to any point, then you can save that point as a ‘SAVEPOINT’.

Syntax

SAVEPOINT SAVEPOINTNAME;

Consider the below table to understand the working of transactions in the database.

StudentID StudentName
1 Rohit
2 Suhana
3 Ashish
4 Prerna

Now, use the below SQL queries to understand the transactions in the 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;

Next in this article on SQL Server tutorial let us understand how to handle exceptions in Transact-SQL.

Exception Handling

There are two types of exceptions, i.e, the system-defined exceptions and the user-defined exceptions. As the name suggests, exception handling is a process through which a user can handle the exceptions generated. To handle exceptions you have to understand the following control flow statements:

  • THROW
  • TRY…CATCH

THROW

This clause is used to raise an exception and transfers the execution to a CATCH block of a TRY…CATCH construct.

Syntax

THROW [ { ErrorNumber | @localvariable },  
        { Message | @localvariable },  
        { State | @localvariable } ]   
[ ; ]

where,

  • ErrorNumber – A constant or variable that represents the exception.
  • Message – A variable or string that describes the exception.
  • State – A constant or variable between 0 and 255 that indicates the state to associate with the message.
THROW 51000, 'Record does not exist.', 1;  

TRY..CATCH

Used to implement exception handling in Transact-SQL. A group of statements can be enclosed in the TRY block. In case an error occurs in the TRY block, control is passed to another group of statements that are enclosed in a CATCH block.

Syntax

BEGIN TRY  
     { SQLStatement | StatementBlock}  
END TRY  
BEGIN CATCH  
     [ { SQLStatement | StatementBlock } ]  
END CATCH  
[ ; ]
BEGIN TRY  
    SELECT * FROM StudentsInfo;  
END TRY  
BEGIN CATCH  
    SELECT   
        ERROR_NUMBER() AS ErNum , ERROR_MESSAGE() AS ErMsg;  
END CATCH

W ith this, we come to the end of this article on SQL Server Tutorial. I hope you enjoyed reading this article on SQL Server Tutorial For Beginners. I f you wish to get a structured training on MySQL, then check out our MySQL DBA Certification Training qui vient avec une formation en direct dirigée par un instructeur et une expérience de projet réelle. This training will help you understand MySQL in-depth and help you achieve mastery over the subject. Vous avez une question pour nous ? Please mention it in the comments section of ”SQL Server Tutorial ” et je vous répondrai.