Les bases fondamentales du langage transact sql

  • View
    696

  • Download
    0

Embed Size (px)

Text of Les bases fondamentales du langage transact sql

  • 1. Les bases fondamentalesdu langage Transact SQLVersion 1.0Grgory CASANOVAJames RAVAILLEhttp://blogs.dotnet-france.com/jamesr

2. 2 Les bases fondamentales du langage Transact SQLSommaire1Introduction ..................................................................................................................................... 42Pr-requis ........................................................................................................................................ 52.1 Prsentation ............................................................................................................................ 52.2 Les expressions ........................................................................................................................ 52.3 Les oprateurs ......................................................................................................................... 62.4 Les fonctions ............................................................................................................................ 73Les instructions DML ..................................................................................................................... 123.1 Prsentation .......................................................................................................................... 123.2 Cration, modification et suppression de donnes .............................................................. 12 3.2.1Linstruction INSERT ...................................................................................................... 12 3.2.2Linstruction UPDATE..................................................................................................... 14 3.2.3Linstruction DELETE ...................................................................................................... 153.3 Lire et trier des donnes ....................................................................................................... 16 3.3.1Linstruction SELECT ...................................................................................................... 16 3.3.2Changer le nom des colonnes (ALIAS) ........................................................................... 16 3.3.3La condition WHERE ...................................................................................................... 17 3.3.4Les projections de donnes ........................................................................................... 18 3.3.5Les calculs simples ......................................................................................................... 20 3.3.6Le produit cartsien....................................................................................................... 20 3.3.7Les jointures .................................................................................................................. 21 3.3.8La close ORDER BY ......................................................................................................... 23 3.3.9Loprateur UNION ........................................................................................................ 24 3.3.10 Loprateur EXCEPT ....................................................................................................... 25 3.3.11 Loprateur INTERSECT.................................................................................................. 25 3.3.12 La clause TOP ................................................................................................................. 26 3.3.13 Crer une table grce SELECT INTO ............................................................................ 26 3.3.14 La clause COMPUTE et COMPUTE BY ............................................................................ 27 3.3.15 Les oprateurs ROLLUP et CUBE ................................................................................... 28 3.3.16 Loprateur OVER .......................................................................................................... 29 3.3.17 Loprateur NTILE .......................................................................................................... 30 3.3.18 Les sous-requtes .......................................................................................................... 30Dotnet France Association Grgory CASANOVA / James RAVAILLE 3. 3 Les bases fondamentales du langage Transact SQL 3.3.19 Les instructions PIVOT et UNPIVOT ............................................................................... 30 3.3.20 Linstruction MERGE ...................................................................................................... 324Le SQL Procdural.......................................................................................................................... 334.1 Les variables .......................................................................................................................... 33 4.1.1Les variables utilisateur ................................................................................................. 33 4.1.2Les variables systme .................................................................................................... 334.2 Les transactions ..................................................................................................................... 334.3 Les lots et les scripts .............................................................................................................. 344.4 Le contrle de flux ................................................................................................................. 35 4.4.1Linstruction RETURN..................................................................................................... 35 4.4.2Linstruction PRINT ........................................................................................................ 35 4.4.3Linstruction CASE.......................................................................................................... 36 4.4.4Les blocs BEGIN END .................................................................................................. 364.5 La gestion des curseurs ......................................................................................................... 384.6 Les exceptions ....................................................................................................................... 41 4.6.1Lever une exception ...................................................................................................... 41 4.6.2Gestion des erreurs dans le code .................................................................................. 425Conclusion ..................................................................................................................................... 43Dotnet France Association Grgory CASANOVA / James RAVAILLE 4. 4Les bases fondamentales du langage Transact SQL1 IntroductionDans ce cours, nous allons tudier les bases du langage Transact SQL. La version du langageTransact SQL utilise est celle de SQL Server 2008. Pour ce faire, nous allons dfinir les diffrentesparties du langage (DML, DDL, DCL), puis dtailler la partie DML, qui est celle qui sert manipuler lesdonnes de faon gnrale. Dotnet France Association Grgory CASANOVA / James RAVAILLE 5. 5Les bases fondamentales du langage Transact SQL2 Pr-requisAvant de lire ce cours, nous vous conseillons :- Davoir dj utilis linterface dadministration de SQL Server 2008 : SQL Server ManagementStudio (Chapitre 1).- Davoir les bases dans la construction dun modle relationnel de donnes (Chapitre 2).- Les bases fondamentales du langage T-SQL2.1 PrsentationLe T-SQL (Transact Structured Query Langage) est un langage de communication avec unebase de donnes relationnelle SQL Server. Il dfinit une batterie simple mais complte de toutesles oprations excutables sur une base de donnes (lecture de donnes, oprationsdadministration du serveur, ajout, suppression et mises jour dobjets SQL - tables, vues,procdures stockes, dclencheurs, types de donnes personnaliss -). Ce langage est composdinstructions, rparties dans de 3 catgories distinctes : DML : Data Modification Language, soit langage de manipulation de donnes. Dans cettecatgorie, sinscrivent les instructions telles que linstruction SELECT ou encore lesinstructions qui nous permettent la cration, la mise jour et la suppression de donnesstockes dans les tables de la base de donnes. Il est important de retenir que le DML sertsimplement pour les donnes, et en aucun cas pour la cration, mise jour ou suppressiondobjets dans la base de donnes SQL Server. DDL : Data Definition Language, soit langage de dfinition de donnes. Les instructions decette catgorie, permettent dadministrer la base de donnes, ainsi que les objets quellecontient. Elles ne permettent pas de travailler sur les donnes. Aussi, elles ne seront pastraites dans ce chapitre. DCL : Data Control Language, soit langage de contrle daccs. Cette catgorie dinstructionsnous permet de grer les accs (autorisations) aux donnes, aux objets SQL, aux transactionset aux configurations gnrales de la base.Ces trois catgories combines permettent que le langage T-SQL prenne en compte desfonctionnalits algorithmiques, et admette la programmabilit. Le T-SQL est non seulement unlangage de requtage, mais aussi un vrai langage de programmation part entire. Sa capacit crire des procdures stockes et des dclencheurs (Triggers), lui permet dtre utilis dans unenvironnement client de type .NET, au travers dune application en C# ou en VB.NET. Dans cechapitre, nous allons dtailler la partie DML du T-SQL exclusivement. Auparavant, nous tudieronsdiffrents lments syntaxiques qui composeront la syntaxe de ce langage, savoir les expressions,les oprateurs et les fonctions. Par la suite, nous traiterons laspect procdural (algorithmique) de celangage.2.2 Les expressionsDans le T-SQL, nous pouvons utiliser des exp