Le Tutoriel De SQL Pour Débutant Avec SQL Server - Devstory
Maybe your like
- Tous les Tutoriels
- Java
- Java Basic
- Java Collections Framework
- Java IO
- Java New IO
- Java Date Time
- Servlet/JSP
- Eclipse Tech
- SWT
- RCP
- RAP
- Eclipse Plugin Tools
- XML & HTML
- Java Opensource
- Java Application Servers
- Maven
- Gradle
- Servlet/Jsp
- Thymeleaf
- Spring
- Spring Boot
- Spring Cloud
- Struts2
- Hibernate
- Java Web Service
- JavaFX
- SWT
- Oracle ADF
- Android
- iOS
- Python
- Swift
- C#
- C/C++
- Ruby
- Dart
- Batch
- Database
- Oracle
- MySQL
- SQL Server
- PostGres
- Other Database
- Oracle APEX
- Report
- Client
- ECMAScript / Javascript
- TypeScript
- NodeJS
- ReactJS
- Flutter
- AngularJS
- HTML
- CSS
- Bootstrap
- OS
- Ubuntu
- Solaris
- Mac OS
- Browser
- Git
- SAP
- Amazon AWS
- Others
- Chưa phân loại
- Phần mềm & ứng dụng tiện ích
- VirtualBox
- VmWare
- Giới thiệu
- Outils de visualisation pour travailler avec SQL Server
- La base de données pour apprendre SQL (LearningSQL)
- Query
- Insert
- SQL Update
- SQL Delete
- SQL Functions
- SQL Join
- Subquery
- Tutoriel de programmation SQL Server Transact-SQL
1. Giới thiệu
Ce document est tout particulièrement destiné aux débutants qui veulent apprendre SQL. Ce document est basé sur:- SQL Server (2008-2014)
- Le langage SQL
- La syntaxe de SQL
- La sytaxe spécifique SQL de SQL Server
- SQL Server (2008 - 2020)
- Langage SQL
- Syntaxe SQL (syntaxe de base, standard pour chaque DB)
- Syntaxe SQL spécifique de SQLServer.
En savoir plus:
- Hướng dẫn học SQL cho người mới bắt đầu với MySQL
- SQL Tutorial for Beginners with Oracle
2. Outils de visualisation pour travailler avec SQL Server
Dans cette instruction, j'utilise le SQLServer Management Studio, un outil disponible dans le SQL Server. Après l'avoir installé, vous serez libre de l'utiliser. Pour avoir plus d'instruction de l'installation du SQLServer, veuillez consulter à:- Installer SQL Server Express 2014 sur Windows
- Install SQL Server Express 2012 on Windows
- Installer SQL Server Express 2008 sur Windows

3. La base de données pour apprendre SQL (LearningSQL)
Ce document est utilisé la base de données de LearningSQL (version SQLServer). Il est nécessaire pour vous de créer une base de données pour la convenance de votre apprentissage ( il vous demande moins de 5 minutes). Le Script crée la base de donnée et sa structure, pour aller plus loin, veuillez consulter à:- Exemple de base de données SQL Server pour l'apprentissage SQL
4. Query
SQL SelectLa commande Select est une commande basique dans le SQL. L'utilisation basique de cette commande est de s'effectuer la requête de base de données dans des tables (Table).- PRODUCT_TYPE: Une table de la base de donnée des produits (Service type of bank).
C'est une commande Select de requête de la base de données dans la table PRODUCT_TYPE-- Query entire column of Product_Type table. Select * From Product_Type; -- The above statement and the following statement are equivalent. -- Pty is alias (a alias of Product_Type table). Select Pty.* From Product_Type Pty; -- Query some columns. Select Pty.Product_Type_Cd ,Pty.Name From Product_Type Pty;Les résutats de requête:
La requête de la base de données dans la table EMPLOYEE:-- Query 4 columns on the Employee table -- Using Emp as alias for Employee Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id From Employee Emp;Les résultats de requête:
Alias sur une colonne:-- Using Convert(Varchar, <intvalue>) to convert int to Varchar (Function of SQL Server) -- Using + operation to concatenate two strings together. -- We have a new column, use 'as' to define column name for this column. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id ,'EMP' + Convert(Varchar,Emp.Emp_Id) As Emp_No2 -- Cột mới From Employee Emp; -- Maybe not need 'as' in the definition Alias column Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id ,'EMP' + Convert(varchar,Emp.Emp_Id ) Emp_No2 -- New column From Employee Emp;Les résultats de requête:
SQL DistinctL'utilisation de la commande distinct et la commande Selecte vise à sélectionner- select des bases de données et en évitant des redondances dans les résultats. Sa syntaxte est:Select distinct <column1>, <column2> ....Exemple:-- Query Product table. Select Pro.Product_Cd ,Pro.Name ,Pro.Product_Type_Cd From Product Pro; -- Query Product_Type in Product table. Select Pro.Product_Type_Cd from Product Pro; -- Distinct need to use to remove the duplicates. Select Distinct Pro.Product_Type_Cd from Product Pro;Les résultats qui apparaissent sur ces commandes:
SQL WhereUne requête SQL peut être restreinte à l'aide de la condition Where. Par exemple, vous voulez chercher le service des produits qui sont Crédit individuel et commercial (Individual and Business Loans). - Product_Type_Cd = 'LOAN'.
Un autre exemple utilise la commande where avec des conditions.SQL And OrDes opérateurs And et Or sont à ajoutés dans la condition where:Par exemple, vous voulez faire une liste des employés dont la prénom commence par la lettre "S" et qui travaillent dans le département opérationnel (Operations).-- Query the employee whose first name starts with S. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id From Employee Emp Where Emp.First_Name Like 'S%'; -- Query the employee whose first name starts with S. -- and work in Operation department. Dept_Id = 1. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id From Employee Emp Where Emp.First_Name Like 'S%' And Emp.Dept_Id = 1;Les résultats de requête:
Exemple:-- Find the employees whose first name starts with S or P. -- and work in Operation department. Dept_Id = 1. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id From Employee Emp Where (Emp.First_Name Like 'S%' Or Emp.First_Name Like 'P%') And Emp.Dept_Id = 1;Les résulats de requête:
SQL INL'opérateur logique in s'utilise dans la commande where pour vérifier si une colonne est égale à une des valeurs comprise dans set de valeurs déterminées. Cet opérateur fonctionne avec toutes sortes des valeurs de la base de données.-- This command searches the employee named -- Susan or Paula or Helen. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id From Employee Emp Where Emp.First_Name In ('Susan' ,'Paula' ,'Helen');Les résultats de requête:
SQL Between-- Find employees, with Emp_Id between 5 and 10. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Start_Date From Employee Emp Where (Emp.Emp_Id Between 5 And 10); -- The statement above is equivalent to: Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Start_Date From Employee Emp Where Emp.Emp_Id >= 5 And Emp.Emp_Id <= 10;Query Results:
L'opérateur BETWEEN est utilisé pour sélectionner un intervalle de données dans une requête utilisant where. Par exemple, vous cherchez des employés qui commencent à travailler dans un période de temps.- 03-05-2002 ==> 09-08-2002 (dd-MM-yyyy)
SQL WildcardIl y a 2 caractères spécials dans SQL: - Le caractère %
- Le caractère _
- % est remplacé par 0, 1 ou tous les autres caractères.
- _ est remplacé par un seul caractère uniquement.
SQL LikeVous êtes déjà familier avec cette commande dans des exemples dessus.SQL Order ByUne requête où l'ont souhaite filtrer des résultats, utiliser la commande Order by va permettre de trier les lignes dans cette requête.-- Syntax: SELECT "column_name" FROM "table_name" [WHERE "condition"] ORDER BY "column_name1" [ASC, DESC], "column_name2" [ASC, DESC]; -- Note: -- ASC: ascending (default) -- DESC: descending order..Exemple:-- Arrange Product_Type_Cd in ascending order -- Next, arrange Name in ascending order, too. Select Pro.Product_Cd ,Pro.Product_Type_Cd ,Pro.Name From Product Pro Order By Pro.Product_Type_Cd Asc ,Pro.Name Asc; -- In Order BY, ASC is defaulted. -- Thus, it is unnecessary to write ASC. Select Pro.Product_Cd ,Pro.Product_Type_Cd ,Pro.Name From Product Pro Order By Pro.Product_Type_Cd ,Pro.Name; -- Arrange Product_Type_Cd in descending order -- Next, arrange Name in ascending order Select Pro.Product_Cd ,Pro.Product_Type_Cd ,Pro.Name From Product Pro Order By Pro.Product_Type_Cd Desc ,Pro.Name Asc;Query Results:
La commande Order By se trouve toujours en arrière de la commande where.-- Find the employees whose first name starts with S. -- Sort descending by start date of work. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Start_Date From Employee Emp Where Emp.First_Name Like 'S%' Order By Emp.Start_Date Desc;Query Results:
OR:-- Apply the order of column to Order by clause. -- First_Name is the second column in Select clause. -- Be able to use Order by 2 in lieu of Order by First_Name. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Start_Date From Employee Emp Order By 2 Desc;SQL Group ByD'abord, nous devons comprendre ce qui les fonctions d'agrégation sont: - Sum: la fonction calcule la somme sur un ensemble d'enregistrement
- Avg: la fonction calcule la moyenne sur un ensemble d'enregistrement
- Count: la fonctioncompte le nombre d'enregistrement
- Min: la fonction récupère la valeur minumum
- Max: la fonction récupère la valeur maximum
La question qui se pose est que vous voulez voir la somme de l'argent dans le compte, par rapport à chaque catégorie de différents services (Product_Cd). Ca veut dire que vous avez besoin de grouper dans Product_Cd.Select Acc.Product_Cd ,Count(Acc.Product_Cd) As Count_Acc ,Sum(Acc.Avail_Balance) As Sum_Avail_Balance ,Avg(Acc.Avail_Balance) As Avg_Avail_Balance From Account Acc Group By Acc.Product_Cd;Results:
Donc, vous avez une évaluation sur: - Il y a 4 comptes qui prennent part au service du "Compte d'épargne"(SAV) avec le somme totale atteinte à 1855.76 et chaque compte contient 463.94 en moyen
- ...
La distinction entre Where et HavingVous devez differencier entre Where et Having dans la même commande. - Where est une commande utilisée à filtrer la base de données devant du groupe (Group)
- Having est une commande usagée à filtrer la base de données après du groupe (Group)
Select Acc.Product_Cd ,Count(Acc.Product_Cd) As Count_Acc ,Sum(Acc.Avail_Balance) As Sum_Avail_Balance ,Avg(Acc.Avail_Balance) As Avg_Avail_Balance From Account Acc -- Using WHERE to filter data before group Where Acc.Open_Branch_Id = 1 Group By Acc.Product_Cd -- Using HAVING to filter data after group Having Count(Acc.Product_Cd) > 1;Query Results:
5. Insert
SQL Insert IntoSyntaxe:-- Syntax of Insert Into: INSERT INTO "table_name" ("column1", "column2", ...) VALUES ("value1", "value2", ...);Par exemple,vous insérez une transaction du client dans la table ACC_TRANSACTION:-- Insert a record in Acc_Transaction table -- numeric value is automatically generated for Txn_ID. -- Current_Timestamp is function of SQL Server, return system datetime -- Current_Timestamp : System datetime Insert Into Acc_Transaction (Amount ,Funds_Avail_Date ,Txn_Date ,Txn_Type_Cd ,Account_Id ,Execution_Branch_Id ,Teller_Emp_Id) Values (100 -- Amount ,Current_Timestamp -- Funds_Avail_Date ,Current_Timestamp -- Txn_Date ,'CDT' -- Txn_Type_Cd ,2 -- Account_Id ,Null -- Execution_Branch_Id ,Null -- Teller_Emp_Id );SQL Insert Into SelectVous pouvez utiliser la condition Select afin de fournir la base de données dans la commande Insert. En utilisant la commande Insert Into ... Select:-- Syntax of INSERT INTO .. SELECT INSERT INTO "table1" ("column1", "column2", ...) SELECT "column3", "column4", ... FROM "table2";Exemple:-- Insert multi record in Acc_Transaction table -- Use Select statement to provide data. -- numeric value is automatically generated for Txn_ID. Insert Into Acc_Transaction ( Txn_Date ,Account_Id ,Txn_Type_Cd ,Amount ,Funds_Avail_Date) Select Acc.Open_Date -- Txn_Date ,Acc.Account_Id -- Account_Id ,'CDT' -- Txn_Type_Cd ,200 -- Amount ,Acc.Open_Date -- Funds_Avail_Date From Account Acc Where Acc.Product_Cd = 'CD';6. SQL Update
-- Syntax of Update: UPDATE "table_name" SET "column_1" = "new value 1", "column_2"= "new value 2" WHERE "condition";Si vous voulez mettre à jour et augmenter la somme d'argent dans le compte du client, utilisez CUST_ID = 1 à 2%.
La commande Update:-- Update, increase the amount of money in customers' account with CUST_ID = 1 by 2%. Update Account Set Avail_Balance = Avail_Balance + 2 * Avail_Balance / 100 ,Pending_Balance = Pending_Balance + 2 * Pending_Balance / 100 Where Cust_Id = 1;Requérez, après Update.
7. SQL Delete
La synthèse de supprimer de la bases de données dans la table.-- Delete two records in the Acc_Transaction table DELETE FROM "table_name" WHERE "condition";
-- Delete two records in the Acc_Transaction table Delete From Acc_Transaction Where Txn_Id In (25 ,26);8. SQL Functions
SQL CountLa fonction Count() permet de compter le nombre de ligns en correspondants des critères spécifiques dans Query.En généralement,en terme de performance il est plustôt conseillé de filtrer les lignes avec Group by.-- Count the number of rows in the Account table Select Count(Acc.Account_Id) As Count_Acc From Account Acc;
Vous voulez énumérer les clients (CUST_ID) et ses comptes.-- Count the number of accounts opened for each customer.... Select Acc.Cust_Id ,Count(Acc.Account_Id) As Count_Acc From Account Acc Group By Acc.Cust_Id;
SQL SumLa fonction d’agrégation SUM() permet de calculer la somme totale d’une colonne contenant des valeurs numériques.-- Syntax: SELECT SUM("column_name") FROM "table_name";Exemple:-- Find the sum of the money in customers' accounts with CUST_ID = = 1 Select Sum(Acc.Avail_Balance) As Sum_Avail_Balance From Account Acc Where Acc.Cust_Id = 1; -- Use Group by. -- Find the sum of the money in accounts owned by each customer. Select Acc.Cust_Id ,Sum(Acc.Avail_Balance) As Sum_Avail_Balance From Account Acc Group By Acc.Cust_Id;
SQL AVGLa fonction d’agrégation AVG() permet de calculer une valeur moyenne sur un ensemble d’enregistrement.-- Syntax: SELECT AVG("column_name") FROM "table_name";Example-- Find the average of money equivalent to each type of deposit. Select Avg(Acc.Avail_Balance) As Avg_Avail_Balance From Account Acc Where Acc.Product_Cd = 'SAV'; -- Use Group by. -- A customer can own one or more account. -- Find the average of money in each account owned by each customer -- (In the bank with Branch_ID = 1) Select Acc.Cust_Id ,Avg(Acc.Avail_Balance) As Avg_Avail_Balance From Account Acc Where Acc.Open_Branch_Id = 1 Group By Acc.Cust_Id;
SQL MINLa fonction Min() de SQL permet de retourner la plus petite valeur d’une colonne.-- Syntax: SELECT MIN ("column_name") FROM "table_name";Example:-- Find the minimum amount of deposit. Select Min(Acc.Avail_Balance) As Min_Avail_Balance From Account Acc Where Acc.Product_Cd = 'SAV'; -- Use Group by. -- A customer can own one or more account. -- Accounts can be opened in different branches. -- Find the amount in the account, minimum for each branch Select Acc.Open_Branch_Id ,Min(Acc.Avail_Balance) As Min_Avail_Balance From Account Acc Group By Acc.Open_Branch_Id;
SQL MAXLa fonction MAX() permet de récupérer la valeur maximum d’une colonne sur un ensemble de ligne, de la même manière que MIN. Vous pouvez donc faire la référence dans les exemples de MIN.-- Syntax: SELECT MAX("column_name") FROM "table_name";9. SQL Join
Par exemple, vous voulez voir des informations d'un(e) employé(e) dans la table EMPLOYEE. Vous pouvez chercher un(e) employé(e) que vous savez son département ID. Mais c'est seulement un numéro insensé. Pour trouver le département, il est néssaire de chercher dans la table DEPARTEMENT. Le fait d’associer plusieurs tables dans une même requête pour obtenir des résultats complets est des jointures en SQL.
Il y a plusieurs méthodes pour associer 2 tables ensemble. Voici la liste de 4 différentes techniques qui sont utilisées :- INNER JOIN (JOIN)
- LEFT OUTER JOIN (LEFT JOIN)
- RIGHT OUTER JOIN (RIGHT JOIN)
- FULL OUTER JOIN (OUTER JOIN)
- CROSS JOIN
Syntaxe:-- Syntax: SELECT column_name(s) FROM table1 INNER JOIN table2 ON table1.column_name=table2.column_name; -- INNER JOIN can replaced by JOIN -- Same Meaning, and result. SELECT column_name(s) FROM table1 JOIN table2 ON table1.column_name=table2.column_name;
Example:-- INNER JOIN 2 table: EMPLOYEE and DEPARTMENT. Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id ,Dep.Name Dept_Name From Employee Emp Inner Join Department Dep On Emp.Dept_Id = Dep.Dept_Id Order By Emp.Emp_Id;Syntaxe propre de SQLServer:-- Other SQL Server syntax to join two tables: Select Emp.Emp_Id ,Emp.First_Name ,Emp.Last_Name ,Emp.Dept_Id ,Dep.Name Dept_Name From Employee Emp ,Department Dep Where Emp.Dept_Id = Dep.Dept_Id Order By Emp.Emp_Id;LEFT OUTER JOIN (or LEFT JOIN)La mot-clé LEFT OUTER JOIN est une jointure externe pour récupérer les informations de la table de gauche( table1) tout en récupérant les données associées avec la table de droite (table 2). S’il n’y a pas de correspondance les colonnes de la table de droite (table 2) vaudront toutes NULL.
Observez l'illustration suivant:
Exemple:-- Customer LEFT OUTER JOIN Officer -- LEFT OUTER JOIN Can be replaced by LEFT JOIN (meaning, and the result is the same) Select Cus.Cust_Id ,Cus.Fed_Id ,Cus.State ,Ofc.Cust_Id As Ofc_Cust_Id ,Ofc.Officer_Id ,Ofc.Start_Date ,Ofc.Title From Customer Cus -- Table1 Left Outer Join Officer Ofc -- Table2 On Cus.Cust_Id = Ofc.Cust_Id;Résultat:
RIGHT OUTER JOIN (or RIGHT JOIN)L'utilisation de la commande RIGHT OUTER JOIN est assez similaire à celle de LEFT OUTER JOIN:
FULL OUTER JOIN (or OUTER JOIN)La commande FULL OUTER JOIN est la combinaison de la commande LEFT OUTER JOIN et la commande RIGHT OUTER JOIN
-- Syntax: (FULL OUTER JOIN) -- Or: FULL JOIN SELECT columns FROM table1 FULL [OUTER] JOIN table2 ON table1.column = table2.column;10. Subquery
Dans le langage SQL, une sous-requête consiste à exécuter une requête à l’intérieur d’une autre requête. Une sous-requête dans la commande SQL est souvent utilisée au sein d’une clause WHERE, la clause FROM ou la clause SELECT.Subquery in the Where clauseDes sous-requête se trouvent assez fréquemment dans la clause WHERE. Ces sous requête est également appelée des requêtes imbriquées.Select Acc.Account_Id ,Acc.Open_Date ,Acc.Product_Cd ,Acc.Avail_Balance From Account Acc Where Acc.Cust_Id In (Select Cus.Cust_Id From Customer Cus Where Cus.Cust_Type_Cd = 'B')Subquery in the From clauseUne sous requête est également trouvée dans la clause FROM. Elle s'appelle inline views.Select Cus.Cust_Id ,Cus.Address ,Cus.Fed_Id ,Acc2.Sum_Avail_Balance From Customer Cus , -- Define a inline view. (Select Acc.Cust_Id ,Sum(Acc.Avail_Balance) As Sum_Avail_Balance From Account Acc Group By Acc.Cust_Id) Acc2 Where Cus.Cust_Id = Acc2.Cust_Id;Subquery in the Select clauseUne sous requête est ainsi trouvée dans la clause SELECT.Select Cus.Cust_Id ,Cus.Address ,Cus.Fed_Id ,(Select Sum(Acc.Avail_Balance) From Account Acc Where Acc.Cust_Id = Cus.Cust_Id) As Sum_Avail_Balance From Customer Cus;L'artifice de mettre une sous-requête dans la clause select est que cette sous- requête doit rendre un seul résultat uniquement. Ca explique la raison pour laquelle des fonctions d'agrégation comme la fonction SUM, COUNT, MIN ou MAX sont souvent usées dans la sous-requête.11. Tutoriel de programmation SQL Server Transact-SQL
Si vous voulez faire la référence des vocabulaires de Transact-SQL de SQL Server, veuillez consulter à:- Le Tutoriel de programmation SQL Server Transact-SQL
Tutoriels de base de données SQL Server
- Installer SQL Server Express 2008 sur Windows
- Installer SQL Server Express 2014 sur Windows
- Exemple de base de données SQL Server pour l'apprentissage SQL
- Le Tutoriel de programmation SQL Server Transact-SQL
- Le Tutoriel de SQL pour débutant avec SQL Server
Tutoriels de base de données SQL Server
- Installer SQL Server Express 2008 sur Windows
- Installer SQL Server Express 2014 sur Windows
- Exemple de base de données SQL Server pour l'apprentissage SQL
- Le Tutoriel de programmation SQL Server Transact-SQL
- Le Tutoriel de SQL pour débutant avec SQL Server
Articles les plus récents
Show More- Tutoriels de base de données SQL Server
Tag » Apprendre Sql Server
-
Les Meilleurs Cours Et Tutoriels Pour Apprendre Microsoft SQL Server
-
Apprendre à Utiliser SQL Server En Ligne - Débutant | Skilleos
-
Cours SQL Server Gratuit - Expert
-
SQL Server 2022 : Le Cours Complet De 27 H (13 Cours En 1) | Udemy
-
Supports De Cours Gratuit Sur Formation Sql Server - Pdf - BestCours
-
Tutorials For SQL Server - Microsoft Docs
-
Formation Complet Langage SQL Server - Cours-Gratuit
-
Cours SqlServer Creation Des Base De Donneess Et Tables - YouTube
-
Cours Et Tutoriels Sur Le Langage SQL
-
Meilleurs Cours De Sql Server - Apprendre En Ligne Sur ... - Coursera
-
[PDF] SQL Server Par La Pratique - Cours D'informatique
-
Cours - SQL
-
Comment Apprendre SQL Server - MaFormation
-
Cours éditions De SQL Server - Apprendre En Ligne