Requêtes d'écriture du serveur MS SQL. Exécuter des requêtes SQL dans Management Studio. Ajout d'un champ calculé Moyenne
Expressions de tableau sont appelées sous-requêtes utilisées là où la présence d'une table est attendue. Il existe deux types d'expressions de tableau :
tables dérivées ;
expressions de tableau généralisées.
Ces deux formes d'expressions de tableau sont abordées dans les sous-sections suivantes.
Tableaux dérivés
Tableau dérivé est une expression de table incluse dans la clause FROM d'une requête. Les tables dérivées peuvent être utilisées dans les cas où l'utilisation d'alias de colonne n'est pas possible car le traducteur SQL traite une autre instruction avant que l'alias ne soit connu. L'exemple ci-dessous montre une tentative d'utilisation d'un alias de colonne dans une situation où une autre clause est en cours de traitement avant que l'alias ne soit connu :
UTILISER SampleDb ; SELECT MOIS (EnterDate) comme enter_month FROM Works_on GROUP BY enter_month ;
Essayer d'exécuter cette requête produira le message d'erreur suivant :
Msg 207, niveau 16, état 1, ligne 5 Nom de colonne non valide « enter_month ». (Message 207 : niveau 16, état 1, ligne 5 Nom de colonne invalide enter_month)
La raison de l'erreur est que la clause GROUP BY est traitée avant le traitement de la liste correspondante de l'instruction SELECT et que l'alias de la colonne enter_month est inconnu lorsque le groupe est traité.
Ce problème peut être résolu en utilisant une table dérivée contenant la requête précédente (sans la clause GROUP BY) car la clause FROM est exécutée avant la clause GROUP BY :
UTILISER SampleDb ; SELECT enter_month FROM (SELECT MONTH(EnterDate) as enter_month FROM Works_on) AS m GROUP BY enter_month;
Le résultat de l'exécution de cette requête sera le suivant :
En règle générale, une expression de table peut être placée n'importe où dans une instruction SELECT où un nom de table peut apparaître. (Le résultat d'une expression de table est toujours une table ou, dans des cas particuliers, une expression.) L'exemple ci-dessous montre l'utilisation d'une expression de table dans la liste de sélection d'une instruction SELECT :
Le résultat de cette requête :
Expressions de table génériques
Expression de table commune (OTB) est une expression de table nommée prise en charge par le langage Transact-SQL. Les expressions de table courantes sont utilisées dans les deux types de requêtes suivants :
non récursif ;
récursif.
Ces deux types de demandes sont abordés dans les sections suivantes.
OTB et requêtes non récursives
La forme non récursive d'OTB peut être utilisée comme alternative aux tables et vues dérivées. Généralement, l'OTB est déterminé par AVECclauses et une requête supplémentaire qui fait référence au nom utilisé dans la clause WITH. Dans Transact-SQL, la signification du mot clé WITH est ambiguë. Pour éviter toute ambiguïté, l'instruction précédant l'instruction WITH doit se terminer par un point-virgule.
UTILISER AdventureWorks2012 ; SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") ET Fret > (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005 ")/2,5 ;
La requête dans cet exemple sélectionne les commandes dont le total des taxes (TotalDue) est supérieur à la moyenne de toutes les taxes et dont les frais de transport (Freight) sont supérieurs à 40 % des taxes moyennes. La propriété principale de cette requête est sa longueur, puisque la sous-requête doit être écrite deux fois. Un des moyens possibles réduire la taille de la construction de requête reviendrait à créer une vue contenant une sous-requête. Mais cette solution est un peu compliquée car elle nécessite de créer une vue puis de la supprimer une fois l'exécution de la requête terminée. Une meilleure approche serait de créer un OTB. L'exemple ci-dessous montre l'utilisation d'OTB non récursif, qui raccourcit la définition de requête ci-dessus :
UTILISER AdventureWorks2012 ; AVEC price_calc(year_2005) AS (SELECT AVG(TotalDue) FROM Sales.SalesOrderHeader WHERE YEAR(OrderDate) = "2005") SELECT SalesOrderID FROM Sales.SalesOrderHeader WHERE TotalDue > (SELECT year_2005 FROM price_calc) ET Fret > (SELECT year_2005 FROM price_cal c ) /2,5;
La syntaxe de la clause WITH dans les requêtes non récursives est la suivante :
Le paramètre cte_name représente le nom OTB qui définit la table résultante et le paramètre column_list représente la liste des colonnes de l'expression de table. (Dans l'exemple ci-dessus, l'OTB s'appelle price_calc et comporte une colonne, year_2005.) Le paramètre inner_query représente une instruction SELECT qui spécifie le jeu de résultats de l'expression de table correspondante. L'expression de table définie peut ensuite être utilisée dans external_query. (La requête externe dans l'exemple ci-dessus utilise OTB price_calc et sa colonne year_2005 pour simplifier la requête doublement imbriquée.)
OTB et requêtes récursives
Cette section présente du matériel d'une complexité accrue. Par conséquent, lors de sa première lecture, il est recommandé de l’ignorer et d’y revenir plus tard. Les OTB peuvent être utilisés pour implémenter des récursions car les OTB peuvent contenir des références à eux-mêmes. La syntaxe OTB de base pour une requête récursive ressemble à ceci :
Les paramètres cte_name et column_list ont la même signification que dans OTB pour les requêtes non récursives. Le corps d'une clause WITH est constitué de deux requêtes combinées par l'opérateur UNION TOUS. La première requête n'est appelée qu'une seule fois et elle commence à accumuler le résultat de la récursion. Le premier opérande de l’opérateur UNION ALL ne fait pas référence à OTB. Cette requête est appelée requête de référence ou source.
La deuxième requête contient une référence à l'OTB et représente sa partie récursive. Pour cette raison, on l'appelle un membre récursif. Lors du premier appel à la partie récursive, la référence OTB représente le résultat de la requête de référence. Le membre récursif utilise le résultat du premier appel de requête. Après cela, le système appelle à nouveau la partie récursive. Un appel à un membre récursif s'arrête lorsqu'un appel précédent à celui-ci renvoie un jeu de résultats vide.
L'opérateur UNION ALL connecte les données accumulées ce moment lignes, ainsi que les lignes supplémentaires ajoutées par l'appel en cours au membre récursif. (La présence de l'opérateur UNION ALL signifie que les lignes en double ne seront pas supprimées du résultat.)
Enfin, le paramètre external_query spécifie la requête externe qu'OTB utilise pour récupérer tous les appels à la jointure des deux membres.
Pour démontrer la forme récursive d'OTB, nous utilisons la table Airplane définie et renseignée avec le code présenté dans l'exemple ci-dessous :
UTILISER SampleDb ; CREATE TABLE Avion (ContainingAssembly VARCHAR (10), ContainedAssembly VARCHAR (10), QuantityContained INT, UnitCost DECIMAL (6,2)); INSÉRER DANS LES VALEURS DE L'Avion ("Avion", "Fuselage", 1, 10) ; INSÉRER DANS LES VALEURS DE L'Avion ("Avion", "Ailes", 1, 11) ; INSÉRER DANS LES VALEURS DE L'Avion ("Avion", "Queue", 1, 12); INSÉRER DANS LES VALEURS DE L'AVION ("Fuselage", "Salon", 1, 13); INSÉRER DANS LES VALEURS DE L'AVION ("Fuselage", "Cockpit", 1, 14) ; INSÉRER DANS LES VALEURS DE L'AVION ("Fuselage", "Nose", 1, 15); INSÉRER DANS LES VALEURS DE L'AVION ("Cabine", NULL, 1,13); INSÉRER DANS LES VALEURS DE L'AVION ("Cockpit", NULL, 1, 14); INSÉRER DANS LES VALEURS DE L'AVION ("Nez", NULL, 1, 15); INSÉRER DANS LES VALEURS DE L'AVION ("Ailes", NULL,2, 11); INSÉRER DANS LES VALEURS DE L'AVION ("Queue", NULL, 1, 12);
Le tableau Avion comporte quatre colonnes. La colonne ContainingAssembly identifie l'assembly et la colonne ContainedAssembly identifie les pièces (une par une) qui composent l'assembly correspondant. La figure ci-dessous montre une illustration graphique d'un type possible d'avion et de ses composants :
Le tableau Avion se compose des 11 lignes suivantes :
L'exemple suivant utilise la clause WITH pour définir une requête qui calcule le coût total de chaque build :
UTILISER SampleDb ; AVEC list_of_parts(assembly1, quantité, coût) AS (SELECT ContainingAssembly, QuantityContained, UnitCost FROM Airplane WHERE ContainedAssembly EST NULL UNION ALL SELECT a.ContainingAssembly, a.QuantityContained, CAST(l.quantity * l.cost AS DECIMAL(6,2) ) FROM list_of_parts l, Airplane a WHERE l.assembly1 = a.ContainedAssembly) SELECT assembly1 "Pièce", quantité "Quantité", coût "Prix" FROM list_of_parts ;
La clause WITH définit une liste OTB nommée list_of_parts, composée de trois colonnes : assembly1, quantité et coût. La première instruction SELECT de l'exemple n'est appelée qu'une seule fois pour stocker les résultats de la première étape du processus de récursion. L'instruction SELECT sur la dernière ligne de l'exemple affiche le résultat suivant.
SQL ou Structured Query Language est un langage utilisé pour gérer les données dans un système de base de données relationnelle (SGBDR). Cet article couvrira les applications couramment utilisées Commandes SQL, que tout programmeur devrait connaître. Ce matériel est idéal pour ceux qui souhaitent parfaire leurs connaissances en SQL avant un entretien d'embauche. Pour ce faire, regardez les exemples donnés dans l'article et rappelez-vous que vous avez étudié les bases de données en binôme.
Notez que certains systèmes de bases de données nécessitent un point-virgule à la fin de chaque instruction. Le point-virgule est pointeur standardà la fin de chaque instruction SQL. Les exemples utilisent MySQL, un point-virgule est donc requis.
Mise en place d'une base de données pour des exemples
Créez une base de données pour démontrer le fonctionnement des équipes. Pour travailler, vous devrez télécharger deux fichiers : DLL.sql et InsertStatements.sql. Après cela, ouvrez un terminal et connectez-vous à la console MySQL à l'aide de la commande suivante (l'article suppose que MySQL est déjà installé sur le système) :
Mysql -u racine -p
Entrez ensuite votre mot de passe.
Exécutez la commande suivante. Appelons la base de données « université » :
CRÉER UNE BASE DE DONNÉES universitaire ; UTILISER l'université ; SOURCE Vous devrez peut-être créer des restrictions sur certaines colonnes d'un tableau. Lors de la création d'un tableau, vous pouvez définir les restrictions suivantes : Vous pouvez spécifier plusieurs clés primaires. Dans ce cas, vous obtiendrez une clé primaire composite. Créer une table "instructeur" : CREATE TABLE instructeur (ID CHAR(5), nom VARCHAR(20) NOT NULL, nom_dept VARCHAR(20), salaire NUMERIC(8,2), CLÉ PRIMAIRE (ID), CLÉ ÉTRANGÈRE (nom_dept) RÉFÉRENCES département(nom_dept)) ; Vous pouvez afficher diverses informations (type de valeur, clé ou non) sur les colonnes de la table avec la commande suivante : DÉCRIRE Lorsque vous ajoutez des données à chaque colonne d'un tableau, vous n'avez pas besoin de spécifier les noms des colonnes. INSÉRER DANS SELECT est utilisé pour récupérer les données d'une table spécifique : SÉLECTIONNER La commande suivante peut afficher toutes les données du tableau : SÉLECTIONNER * DEPUIS Les colonnes du tableau peuvent contenir des données en double. Utilisez SELECT DISTINCT pour récupérer uniquement les données non dupliquées. SÉLECTIONNER DISTINCT Vous pouvez utiliser le mot clé WHERE dans SELECT pour spécifier des conditions dans une requête : SÉLECTIONNER Les conditions suivantes peuvent être précisées dans la demande : Essayez les commandes suivantes. Faites attention aux conditions spécifiées dans OÙ : SELECT * FROM cours WHERE dept_name=’Comp. Sci.'; SELECT * FROM cours WHERE crédits>3 ; SELECT * FROM cours WHERE dept_name="Comp. Sci." ET crédits>3 ; L'opérateur GROUP BY est souvent utilisé avec fonctions d'agrégation tels que COUNT, MAX, MIN, SUM et AVG pour regrouper les valeurs de sortie. SÉLECTIONNER Affichons le nombre de cours pour chaque faculté : SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name ; Le mot clé HAVING a été ajouté à SQL car WHERE ne peut pas être utilisé avec les fonctions d'agrégation. SÉLECTIONNER Affichons une liste des facultés qui ont plus d'un cours : SELECT COUNT(course_id), dept_name FROM course GROUP BY dept_name HAVING COUNT(course_id)>1 ; ORDER BY est utilisé pour trier les résultats de la requête par ordre décroissant ou croissant. ORDER BY triera par ordre croissant sauf si ASC ou DESC est spécifié. SÉLECTIONNER Affichons une liste de cours par ordre croissant et décroissant de crédits : SELECT * FROM cours ORDER PAR crédits ; SELECT * FROM cours ORDER BY crédits DESC; BETWEEN est utilisé pour sélectionner des valeurs de données dans une plage spécifique. Numérique et valeurs de texte, ainsi que les dates. SÉLECTIONNER Affichons une liste des instructeurs dont le salaire est supérieur à 50 000, mais inférieur à 100 000 : SÉLECTIONNER * FROM instructeur OÙ salaire ENTRE 50000 ET 100000 ; L'opérateur LIKE est utilisé dans WHERE pour spécifier un modèle de recherche pour une valeur similaire. Il existe deux opérateurs gratuits utilisés dans LIKE : Affichons une liste de cours dont les noms contiennent "to" et une liste de cours dont les noms commencent par "CS-" : SELECT * FROM cours WHERE titre LIKE '%to%'; SELECT * FROM cours WHERE course_id LIKE "CS-___" ; En utilisant IN, vous pouvez spécifier plusieurs valeurs pour la clause WHERE : SÉLECTIONNER Affichons une liste d'étudiants des majors Comp. Sci., Physique et Elec. Ing. : SELECT * FROM student WHERE dept_name IN ('Comp. Sci.', 'Physics', 'Elec. Eng.'); JOIN est utilisé pour lier deux ou plusieurs tables en utilisant des attributs communs en leur sein. L'image ci-dessous montre différentes manières se joint à SQL. Notez la différence entre une jointure externe gauche et une jointure externe droite : SÉLECTIONNER Nous afficherons une liste de tous les cours et des informations pertinentes sur les facultés : SELECT * FROM cours REJOINDRE le département ON course.dept_name=department.dept_name ; Nous afficherons une liste de tous les cours obligatoires et des détails les concernant : SELECT prereq.course_id, title, dept_name, credits, prereq_id FROM prereq LEFT OUTER JOIN course ON prereq.course_id=course.course_id ; Nous afficherons une liste de tous les cours, qu'ils soient obligatoires ou non : SELECT course.course_id, title, dept_name, credits, prereq_id FROM prereq RIGHT OUTER JOIN course ON prereq.course_id=course.course_id ; View est une table SQL virtuelle créée à la suite de l'exécution d'une expression. Il contient des lignes et des colonnes et ressemble beaucoup à une table SQL classique. View affiche toujours les dernières informations de la base de données. Créons une vue composée de cours avec 3 crédits : Ces fonctions permettent d'obtenir un résultat agrégé lié aux données en question. Les fonctions d'agrégation suivantes sont couramment utilisées : Les sous-requêtes imbriquées sont des requêtes SQL qui incluent des clauses SELECT , FROM et WHERE imbriquées dans une autre requête. Retrouvons les cours qui ont été dispensés à l'automne 2009 et au printemps 2010 : SELECT DISTINCT course_id FROM section OÙ semestre = 'Automne' ET année = 2009 ET course_id IN (SELECT course_id FROM section OÙ semestre = 'Printemps' ET année = 2010); SQL- Langage de requêtes structurées. Description
bigint (entier 8) bigint (entier 8) binaire(n) binaire(ni image personnage national personnage ou ntexte caractère variable(synonyme char variable varchar) caractère national variable ou ntexte Dateheure dateheure décimal alias numérique double precision double precision entier (entier 4) (synonyme : int) entier (entier 4) caractère national(synonyme: caractère national, nchar) caractère national Numérique(synonymes : décimal, déc) caractère national variable(synonymes : omble national variable, nvarchar) Caractère national variable Petite date et heure dateheure petit entier (entier 2) petit entier (entier 2) Petit argent variante_sql N'est plus pris en charge Ntexte Horodatage Non supporté minusculeint (entier 1) minusculeint (entier 1) Identifiant unique identifiant unique varbinaire(n) varbinaire(ni image petite dateheure dateheure petit entier (entier 2) petit entier (entier 2) petit argent variante_sql Non supporté horodatage Non supporté minusculeint (entier 1) minusculeint (entier 1) identifiant unique identifiant unique varbinaire(n) varbinaire(ni image Table des types de données dans SQL Server 2000 Demande est une commande que vous donnez à votre programme de base de données. Les requêtes font partie du langage DML. Toutes les requêtes SQL consistent en une seule commande. La structure de cette commande est d'une simplicité trompeuse car vous devez l'étendre pour effectuer des évaluations et des manipulations de données très complexes. SÉLECTIONNER« Sélectionner » est la commande la plus fréquemment utilisée ; elle permet de sélectionner des données dans le tableau. SELECT id, nom_utilisateur, ville, jour_naissance FROM users_base ; Une telle requête affichera depuis la table users_base toutes les valeurs des colonnes spécifiées séparées par des virgules après Commandes SÉLECTIONNER. De plus, vous pouvez afficher toutes les colonnes avec un seul caractère, * c'est-à-dire SELECT * FROM utilisateurs_base ; - une telle requête affichera toutes les données de la table. SELECT (Noms de colonnes séparés par des virgules qui doivent être affichés dans la requête) FROM (nom de la table dans la base de données) Les valeurs peuvent être placées et supprimées des champs à l'aide de trois commandes DML (Data Manipulation Language) : INSERT INTO users_base (nom_utilisateur, ville, jour_naissance) VALEURS ('Alexandre', 'Rostov', '20/06/1991'); UPDATE users_base SET user_name = 'Alexey'; La commande UPDATE met à jour les valeurs dans un tableau. Vient d'abord la commande UPDATE elle-même, puis le nom de la table, après la commande SET (set), puis le nom de la colonne et sa valeur entre guillemets (des guillemets sont placés si la valeur est au format chaîne, s'il s'agit d'une valeur numérique et que la colonne n'est pas lié au type de données vchar ou à tout autre type de chaîne, les guillemets n'ont aucune signification.) DELETE FROM users_base WHERE user_name = 'Vasily'; La commande DELETE supprime la ligne entière et identifie la ligne à l'aide du critère WHERE. Dans ce cas, cette requête supprimerait toutes les lignes dans lesquelles la valeur de la colonne user_name était Vasily. Nous parlerons du critère WHERE et d'autres un peu plus tard. La clause WHERE est une clause de la commande SELECT et d'autres commandes DML qui vous permet de définir des prédicats dont la condition peut être vraie ou fausse pour n'importe quelle ligne de la table. La commande récupère uniquement les lignes de la table pour lesquelles cette instruction est vraie. ORDER BY - condition de tri des lignes sélectionnées. Possède 2 critères ASC et DESC. ASC (tri de A à Z ou de 0 à 9) DESC (à l'opposé de ASC). Cette condition peut également être utilisée conjointement avec la clause WHERE. DISTINCT est un argument qui vous permet d'éliminer les valeurs doubles de votre clause SELECT. Ceux. si vous avez des valeurs en double dans une colonne, disons nom_utilisateur, alors DISTINCT vous montrera une seule valeur, par exemple, vous avez 2 personnes nommées Alexey dans votre base de données, alors une requête utilisant la fonction DISTINCT ne vous montrera qu'une seule valeur que l'on rencontre en premier... AND - prend deux booléens (sous la forme A ET B) comme arguments et les évalue par rapport à la vérité, s'ils sont tous les deux vrais. OR - prend deux booléens (sous la forme A OU B) comme arguments et évalue si l'un d'eux est correct. SELECT * FROM users_base WHERE city = 'Rostov' OU user_name = 'Alexander';- affichera toutes les valeurs du tableau où le nom de la ville de Rostov ou le nom d'utilisateur Alexandre apparaît dans la ligne. NOT - prend un seul booléen (sous la forme NOT A) comme arguments et change sa valeur de faux à vrai ou de vrai à faux. IN - définit un ensemble de valeurs dans lesquelles une valeur donnée peut ou non être incluse. Between est similaire à l’opérateur IN. Contrairement à la définition par des nombres à partir d'un ensemble, comme le fait IN, BETWEEN définit une plage dont les valeurs doivent diminuer pour rendre le prédicat vrai. COUNT - Produit les numéros de ligne ou les valeurs non NULL des champs sélectionnés par la requête. SOMME - produit la somme arithmétique de toutes les valeurs sélectionnées pour un champ donné. AVG - fait la moyenne de toutes les valeurs sélectionnées de ce champ. MAX - produit la plus grande de toutes les valeurs sélectionnées pour ce champ. MIN - produit la plus petite de toutes les valeurs sélectionnées pour ce champ. CREATE TABLE users_base (identifiant entier, texte du nom d'utilisateur, texte de la ville, date et heure du jour de naissance) ;- exécuter une telle commande entraînera la création de la table pour laquelle j'ai donné des exemples... Tout est simple ici, on écrit la commande CREATE TABLE, suivie du nom de la table que l'on souhaite créer, puis entre parenthèses, séparés par des virgules, les noms des colonnes et leur type de données. C'est la manière standard de créer une table en SQL. Je vais maintenant donner un exemple de création de tables dans SQL Server 2005 : DÉFINIR ANSI_NULLS SUR Si vous avez des questions sur ce sujet, écrivez-moi Développer une application qui démontre les opérations de base sur les données dans une base de données telle que MS SQL Server, à savoir : Comme base, on prend la base de données Education.dbo, dont le processus de création est décrit en détail La figure 1 montre la structure de la base de données Education.dbo. Comme le montre la figure, la base de données s'appelle : Ici « sasha-pc » est l'identifiant de l'ordinateur sur le réseau, « sqlexpress » est le nom du serveur de base de données, « Education.dbo » est le nom de la base de données. Riz. 1. Base de données Education.dbo La base de données contient deux tables : Student et Session. La structure des tableaux est la suivante. Tableau des étudiants. Tableau des séances. Créez un nouveau projet de type Application Windows Forms. Un exemple de création d'un nouveau projet est décrit en détail Pour afficher les données des tables de base de données, vous pouvez utiliser différentes façons. L'un d'eux est la création de vues générées à l'aide de MS Visual Studio. Dans notre cas, les données du tableau seront affichées sur le formulaire dans un contrôle de type DataGridView. Après avoir créé des vues, il est très pratique de les associer à des éléments DataGridView. Pour créer une vue, vous devez appeler la commande « Ajouter une nouvelle vue » dans le menu contextuel, qui est appelée en cliquant avec le bouton droit sur l'élément « Vues » de la base de données Education.dbo (Figure 2). Riz. 2. Appel de la commande pour ajouter une nouvelle vue En conséquence, la fenêtre « Ajouter une table » s'ouvrira (Figure 3). Dans la fenêtre, vous devez sélectionner les tables ajoutées à la vue. Riz. 3. Sélection des tables sur lesquelles sera basée la nouvelle vue Dans notre cas, sélectionnez la table Étudiant et confirmez votre choix en cliquant sur le bouton Ajouter. L'étape suivante consiste à fermer la fenêtre en sélectionnant le bouton Fermer. Après avoir terminé les étapes, une fenêtre sera générée dans laquelle vous devrez sélectionner les champs qui doivent être affichés dans la vue (sur le formulaire). Sélectionnez tous les champs (Figure 4). Lorsque vous sélectionnez des champs, les champs de la table Étudiant sont affichés en haut de la zone de travail. A l'aide de la souris, vous pouvez sélectionner les champs souhaités pour la présentation. Ainsi, la zone médiane de la fenêtre affiche les noms des champs sélectionnés, le tableau dans lequel ils existent (voir Fig. 4), la possibilité de trier, de filtrer, etc. Le bas de la zone affiche le texte de requête SQL correspondant utilisé pour créer la vue. Riz. 4. Sélection des champs du tableau Étudiant à afficher dans la vue Après avoir choisi une équipe Une fenêtre s'ouvrira dans laquelle vous devrez spécifier le nom de la vue. Définissez le nom « View Student » (Figure 5). Riz. 5. Spécifier un nom pour la vue Une fois les étapes terminées, la fenêtre de présentation ressemblera à celle illustrée à la figure 6. Riz. 6. Afficher la représentation des étudiants dans la base de données Vous pouvez désormais héberger un contrôle DataGridView et l'associer à une vue. Avant de placer le contrôle DataGridView, vous devez passer en mode conception de formulaire "Form1.cs". L'élément DataGridView est un tableau qui peut afficher des données. Ce contrôle se trouve dans le panneau ToolBox. Tout d'abord, nous ajustons légèrement la taille du formulaire, puis y plaçons le contrôle DataGridView (Figure 7). Cela créera une instance d'objet nommée dataGridView1 par défaut. Riz. 7. Fenêtre de sélection du contrôle DataGridView et de la source de données Après avoir placé le contrôle DataGridView sur le formulaire, dans le coin supérieur droit, vous pouvez choisir de configurer la source de données. En conséquence, la fenêtre « Tâches DataGridView » s'ouvrira. Dans cette fenêtre, vous devez sélectionner le menu contextuel « Choisir la source de données ». Dans le menu qui s'ouvre, sélectionnez la commande « Ajouter une source de données du projet... » (Fig. 7). Après cela, une fenêtre d'assistant s'ouvre dans laquelle la source de données est sélectionnée séquentiellement. La figure 8 montre le " Assistant de configuration de source de données», dans lequel le type de source de données est sélectionné. Dans notre cas, nous installons « Base de données ». Riz. 8. Sélection d'un type de source de données Dans la fenêtre suivante (Figure 9), le modèle de source de données est sélectionné. Vous devez sélectionner DataSet. Riz. 9. Sélection d'un modèle de source de données Dans la fenêtre illustrée à la figure 10, vous devez spécifier la connexion de données que vous souhaitez utiliser pour vous connecter à la base de données. Dans notre cas, nous devons sélectionner la base de données " sasha-pc\sqlexpress\Education.dbo«.
Riz. 10. Sélection d'une connexion de données La fenêtre suivante (Figure 11) suggère d'enregistrer la chaîne de connexion dans le fichier de configuration de l'application. Nous laissons tout tel quel et passons à la fenêtre suivante. Riz. 11. Proposition de sauvegarde de la chaîne de connexion à la base de données Connection String dans le fichier de configuration de l'application Après avoir créé une connexion à la base de données, divers objets de base de données s'affichent (Figure 12). Dans notre cas, nous devons sélectionner la vue « Afficher l'étudiant » et tous les champs de celle-ci. Les champs cochés seront affichés dans le composant de type DataGridView. Riz. 12. Sélection des objets de base de données à afficher dans DataGridView Après avoir sélectionné le bouton Terminer, les objets sélectionnés (vue View Student) de la base de données Education.dbo seront affichés (Figure 13). Riz. 13. Contrôle DataGridView avec les champs View Student sélectionnés De la même manière, vous pouvez configurer des vues contenant n'importe quel champ de n'importe quelle table de base de données. De plus, les champs de différentes tables peuvent être affichés dans une seule vue. Si vous exécutez l'application, vous recevrez les données de la vue View Student, qui correspond à la table Student dans la base de données (Figure 14). Comme vous pouvez le voir sur la figure 14, les données de la table dataGridView1 sont affichées normalement, mais la conception peut être ajustée. Un champ de type DataGridView permet d'ajuster l'apparence des champs qui sont affichés. Pour appeler des commandes d'édition de champs, appelez simplement le menu contextuel en cliquant avec le bouton droit sur le contrôle dataGridView1. Le menu propose divers commandes utiles, qui vous permettent de contrôler l'apparence et le fonctionnement du DataGridView : Dans notre cas, vous devez sélectionner la commande « Modifier les colonnes... » (Figure 15). Riz. 15. Commande "Modifier les colonnes..." dans le menu contextuel En conséquence, la fenêtre « Modifier les colonnes » s'ouvrira, dans laquelle vous pourrez personnaliser l'apparence des champs de présentation à votre guise (Figure 16). Dans la fenêtre de la figure 16, pour n'importe quel champ, vous pouvez configurer le nom, l'alignement, la largeur, la possibilité de modifier les données, etc. Afin d'apporter des modifications à la base de données, vous devez obtenir une chaîne de connexion à la base de données Connection String . Il existe différentes manières d'obtenir la chaîne de connexion à la base de données. L'une d'elles repose sur la lecture de cette ligne dans la fenêtre Propriétés de la base de données Education.dbo (Fig. 17). Pour sauvegarder la chaîne dans le programme, une variable interne du type chaîne. À l'aide du presse-papiers, copiez la chaîne de connexion dans la variable de chaîne décrite. Dans le texte du fichier « Form1.cs » au début de la description de la classe Form1, vous devez décrire la variable : Pour le moment, le texte de la classe Form1 est le suivant : Afin de pouvoir traiter les données de l'enregistrement en cours, vous devez créer un nouveau formulaire. Le processus de création d'un nouveau formulaire dans MS Visual Studio - C# est décrit en détail. L'ajout d'un nouveau formulaire se fait avec la commande : Dans la fenêtre « Nouvel élément » qui s'ouvre, vous devez sélectionner l'élément « Windows Form ». Laissez le nouveau nom de fichier de formulaire par défaut « Form2.cs ». La figure 18 montre une vue du nouveau formulaire. Nous plaçons les types de contrôles suivants sur le formulaire : Vous devez configurer les propriétés suivantes des contrôles : Nous configurons également la visibilité des contrôles TextBox. Pour ce faire, dans tous les contrôles textBox1, textBox2, textBox3, textBox4, la valeur de la propriété Modifiers = « public ». Pour un travail ultérieur, vous devez utiliser la souris pour passer au formulaire principal Form1. Ajoutez trois boutons au formulaire principal de l'application Form1 (Button). Trois variables d'objet seront automatiquement créées avec les noms bouton1, bouton2, bouton3. Dans chacun de ces boutons, nous effectuons les réglages suivants (fenêtre Propriétés) : À la suite des modifications apportées, le formulaire principal ressemblera à celui illustré à la figure 19. Le gestionnaire d'événements de clic sur le bouton « Insérer » ressemble à ceci : Form2 est appelé en premier. Après avoir reçu le résultat « OK » (en appuyant sur le bouton correspondant), dans Form2, les champs remplis dans les éléments de type TextBox sont inclus dans la chaîne de requête SQL. La requête SQL pour ajouter une nouvelle ligne ressemble à : où valeur1 correspond au numéro du carnet de notes ; valeur2 – nom de famille de l’étudiant ; valeur3 – groupe dans lequel l'étudiant étudie ; valeur4 – année d’entrée. La chaîne de connexion à la base de données Connection String est décrite dans la variable conn_string (voir paragraphe 5). L'objet de classe SqlConnection connecte l'application aux sources de données. De plus, la classe Connection gère l'authentification des utilisateurs, la mise en réseau, l'identification de la base de données, la mise en mémoire tampon des connexions et le traitement des transactions. La commande SQL qui ajoute un enregistrement à une table est encapsulée dans la classe SqlCommand. Le constructeur de la classe SqlCommand prend deux paramètres : une chaîne de requête SQL (variable cmd_text) et un objet de la classe SqlConnection. La méthode ExecuteNonQuery() est implémentée dans l'interface IDBCommand. La méthode implémente des commandes SQL qui ne renvoient pas de données. Ces commandes incluent les commandes INSERT, DELETE, UPDATE, ainsi que les procédures stockées qui ne renvoient pas de données. La méthode ExecuteNonQuery() renvoie le nombre d'enregistrements impliqués. Le gestionnaire d'événements de clic sur le bouton « Modifier » ressemble à ceci : Ce gestionnaire exécute une commande UPDATE SQL qui modifie la valeur actuelle de l'enregistrement actif. Le gestionnaire d'événements de clic sur le bouton « Supprimer » ressemble à ceci : Ce gestionnaire exécute la commande SQL DELETE pour supprimer un enregistrement. SQL Server Management Studio fournit un outil complet pour créer tous types de requêtes. Avec son aide, vous pouvez créer, enregistrer, charger et modifier des requêtes. De plus, vous pouvez travailler sur des requêtes sans vous connecter à aucun serveur. Cet outil offre également la possibilité de développer des requêtes pour différents projets. Vous pouvez travailler avec des requêtes à l'aide de l'éditeur de requêtes ou de l'explorateur de solutions. Cet article couvre ces deux outils. En plus de ces deux composants de SQL Server Management Studio, nous examinerons le débogage du code SQL à l'aide du débogueur intégré. Pour ouvrir le panneau Éditeur de requête Éditeur de requête, dans la barre d'outils SQL Server Management Studio, cliquez sur le bouton Nouvelle requête. Ce panneau peut être étendu pour afficher des boutons permettant de créer toutes les requêtes possibles, pas seulement les requêtes du moteur de base de données. Par défaut, il est créé nouvelle requête Composant Moteur de base de données, mais en cliquant sur le bouton correspondant dans la barre d'outils, vous pouvez également créer des requêtes MDX, XMLA, etc. La barre d'état en bas du panneau de l'éditeur de requête indique l'état de la connexion de l'éditeur au serveur. Si vous ne vous connectez pas automatiquement au serveur, lorsque vous lancez l'éditeur de requête, une boîte de dialogue Se connecter au serveur apparaît, vous permettant de sélectionner le serveur auquel vous connecter et le mode d'authentification. La modification des requêtes hors ligne offre plus de flexibilité que lorsque vous êtes connecté à un serveur. Pour éditer des requêtes, il n'est pas nécessaire de se connecter au serveur, et la fenêtre de l'éditeur de requêtes peut être déconnectée d'un serveur (à l'aide de la commande de menu Requête --> Connexion --> Déconnecter) et connectée à un autre sans ouvrir une autre fenêtre d'éditeur. Pour sélectionner le mode d'édition hors ligne, utilisez la boîte de dialogue Connexion au serveur qui s'ouvre lorsque vous lancez l'éditeur. type spécifique demandes, cliquez simplement sur le bouton Annuler. Vous pouvez utiliser l'éditeur de requête pour effectuer les tâches suivantes : créer et exécuter des instructions Transact-SQL ; enregistrer les instructions du langage Transact-SQL créées dans un fichier ; créer et analyser des plans d'exécution pour les requêtes courantes ; illustrant graphiquement le plan d'exécution de la requête sélectionnée. L'éditeur de requêtes contient un éditeur de texte et une barre d'outils avec un ensemble de boutons pour différentes actions. La fenêtre principale de l'éditeur de requêtes est divisée horizontalement en un panneau de requêtes (en haut) et un panneau de résultats (en bas). Les instructions Transact-SQL (c'est-à-dire les requêtes) à exécuter sont saisies dans le volet supérieur et les résultats du traitement de ces requêtes par le système sont affichés dans le volet inférieur. La figure ci-dessous montre un exemple de saisie d'une requête dans l'éditeur de requête et les résultats de l'exécution de cette requête : La première instruction de requête USE spécifie d'utiliser la base de données SampleDb comme base de données actuelle. La deuxième instruction, SELECT, récupère toutes les lignes de la table Employee. Pour exécuter cette requête et afficher les résultats, dans la barre d'outils de l'éditeur de requête, cliquez sur le bouton Exécuter ou appuyez sur F5. Vous pouvez ouvrir plusieurs fenêtres de l'éditeur de requête, c'est-à-dire établir plusieurs connexions à une ou plusieurs instances du moteur de base de données. Une nouvelle connexion est créée en cliquant sur le bouton Nouvelle requête de la barre d'outils SQL Server Management Studio. La barre d'état en bas de la fenêtre de l'éditeur de requête affiche les informations suivantes relatives à l'exécution des instructions de requête : le statut de l'opération en cours (par exemple, « Demande terminée avec succès » ); nom du serveur de base de données ; nom d'utilisateur actuel et ID de processus serveur ; nom actuel de la base de données ; temps passé à exécuter la dernière requête ; nombre de lignes trouvées. L'un des principaux avantages de SQL Server Management Studio est sa facilité d'utilisation, qui s'applique également à l'éditeur de requêtes. L'éditeur de requête fournit de nombreuses fonctionnalités pour faciliter le codage des instructions Transact-SQL. Il utilise notamment la coloration syntaxique pour améliorer la lisibilité des instructions Transact-SQL. Tous les mots réservés sont affichés en bleu, les variables sont affichées en noir, les chaînes sont affichées en rouge et les commentaires sont affichés en vert. De plus, l'éditeur de requêtes est doté d'une aide contextuelle appelée Aide dynamique, grâce auquel vous pouvez obtenir des informations sur une instruction spécifique. Si vous ne connaissez pas la syntaxe d'une instruction, sélectionnez-la dans l'éditeur, puis appuyez sur la touche F1. Vous pouvez également mettre en évidence les paramètres de diverses instructions Transact-SQL pour obtenir de l'aide à leur sujet dans la documentation en ligne. SQL Management Studio prend en charge SQL Intellisense, qui est un type d'outil de saisie semi-automatique. En d’autres termes, ce module suggère l’achèvement le plus probable des éléments d’instruction Transact-SQL partiellement saisis. L'explorateur d'objets peut également vous aider à modifier des requêtes. Par exemple, si vous souhaitez savoir comment créer une instruction CREATE TABLE pour la table Employee, cliquez avec le bouton droit sur la table dans l'Explorateur d'objets et le résultat menu contextuel sélectionnez Table de script en tant que -> CRÉER vers -> Nouvelle fenêtre de l'éditeur de requête. La fenêtre de l'éditeur de requête contenant l'instruction CREATE TABLE créée de cette manière est illustrée dans la figure ci-dessous. Cette fonctionnalité s'applique également à d'autres objets, tels que les procédures stockées et les fonctions. Le navigateur d'objets est très utile pour afficher graphiquement le plan d'exécution d'une requête particulière. Le plan d'exécution de requête est l'option d'exécution sélectionnée par l'optimiseur de requête parmi plusieurs options possibles répondre à une demande spécifique. Entrez la requête requise dans le panneau supérieur de l'éditeur, sélectionnez une séquence de commandes dans le menu Requête --> Afficher le plan d'exécution estimé, et le plan d'exécution de cette requête sera affiché dans le panneau inférieur de la fenêtre de l'éditeur. La modification des requêtes dans SQL Server Management Studio est basée sur la méthode des solutions. Si vous créez une requête vide à l'aide du bouton Nouvelle requête, elle sera basée sur une solution vide. Vous pouvez le voir en exécutant une séquence de commandes à partir du menu Affichage --> Explorateur de solutions immédiatement après l'ouverture d'une requête vide. La décision peut porter sur aucun, un ou plusieurs projets. Une solution vide, associée à aucun projet. Pour associer un projet à une solution, fermez la solution vide, l'Explorateur de solutions et l'éditeur de requête, puis créez un nouveau projet en exécutant Fichier --> Nouveau --> Projet. Dans la fenêtre Nouveau projet qui s'ouvre, sélectionnez l'option Scripts SQL Server dans le volet central. Un projet est une manière d'organiser des fichiers dans un emplacement spécifique. Vous pouvez attribuer un nom au projet et choisir un emplacement pour son emplacement sur le disque. Lorsque vous créez un nouveau projet, une nouvelle solution est automatiquement lancée. Le projet peut être ajouté à solution existanteà l'aide de l'Explorateur de solutions. Pour chaque projet créé, l'Explorateur de solutions affiche les dossiers Connexions, Requêtes et Divers. Pour ouvrir une nouvelle fenêtre de l'éditeur de requêtes pour un projet donné, cliquez avec le bouton droit sur son dossier Requêtes et sélectionnez Nouvelle requête dans le menu contextuel. SQL Server, à partir de SQL Server 2008, dispose d'un débogueur de code intégré. Pour démarrer une session de débogage, sélectionnez Déboguer --> Démarrer le débogage dans le menu principal de SQL Server Management Studio. Nous verrons comment fonctionne le débogueur à l'aide d'un exemple utilisant un lot de commandes. Un lot est une séquence logique d'instructions SQL et d'extensions procédurales envoyée au moteur de base de données pour exécuter toutes les instructions qu'il contient. La figure ci-dessous montre un package qui compte le nombre d'employés travaillant sur le projet p1. Si ce nombre est 4 ou plus, alors un message correspondant s'affiche. Sinon, les noms et prénoms des salariés sont affichés. Pour arrêter l'exécution d'un package à une instruction spécifique, vous pouvez définir des points d'arrêt, comme le montre la figure. Pour cela, cliquez à gauche de la ligne sur laquelle vous souhaitez vous arrêter. Lorsque le débogage commence, l’exécution s’arrête à la première ligne de code, marquée d’une flèche jaune. Pour poursuivre l'exécution et le débogage, sélectionnez la commande de menu Debug --> Continue. Les instructions par lots continueront à s'exécuter jusqu'au premier point d'arrêt et la flèche jaune s'arrêtera à ce stade. Les informations relatives au processus de débogage sont affichées dans deux panneaux en bas de la fenêtre de l'éditeur de requête. Des informations sur différents types Les informations de débogage sont regroupées dans ces panneaux sur plusieurs onglets. Le volet de gauche contient l'onglet Autos, l'onglet Locals et jusqu'à cinq onglets Watch. Le volet de droite contient les onglets Pile d'appels, Threads, Points d'arrêt, Fenêtre de commande, Fenêtre d'exécution et Sortie. L'onglet Locals affiche les valeurs des variables, l'onglet Call Stack affiche les valeurs de la pile d'appels et l'onglet Breakpoints affiche les informations sur les points d'arrêt. Pour terminer le processus de débogage, exécutez une séquence de commandes depuis le menu principal Debug -> Stop Debugging ou cliquez sur le bouton bleu de la barre d'outils du débogueur. SQL Server 2012 ajoute plusieurs nouvelles fonctionnalités au débogueur intégré dans SQL Server Management Studio. Vous pouvez désormais y effectuer un certain nombre des opérations suivantes : Spécifiez une condition de point d'arrêt. Condition de point d'arrêt est une expression SQL dont la valeur évaluée détermine si l'exécution du code s'arrêtera ou non à un moment donné. Pour spécifier une condition de point d'arrêt, cliquez avec le bouton droit sur l'icône de point d'arrêt rouge et sélectionnez Condition dans le menu contextuel. La boîte de dialogue Condition de point d'arrêt s'ouvre, vous permettant de saisir l'expression booléenne requise. De plus, si vous devez arrêter l'exécution si l'expression est vraie, vous devez définir le commutateur Is True. Si l'exécution doit être arrêtée si l'expression a changé, vous devez alors définir le commutateur When Changed. Spécifiez le nombre d'accès au point d'arrêt. Le nombre d'accès est la condition permettant d'arrêter l'exécution à un point donné en fonction du nombre de fois où ce point d'arrêt a été atteint pendant l'exécution. Lorsque le nombre de passes spécifié et toute autre condition spécifiée pour un point d'arrêt donné sont atteints, le débogueur effectue l'action spécifiée. La condition d'abandon de l'exécution basée sur le nombre d'accès peut être l'une des suivantes : inconditionnel (action par défaut) (Pause toujours) ; si le nombre de hits est égal à la valeur spécifiée (Pause lorsque son nombre est égal à une valeur spécifiée) ; si le nombre d'accès est un multiple d'une valeur spécifiée (interruption lorsque le nombre d'accès est égal à un multiple d'une valeur spécifiée) ; Break lorsque son compte est supérieur ou égal à une valeur spécifiée. Pour définir le nombre d'accès pendant le débogage, cliquez avec le bouton droit sur l'icône du point d'arrêt requis dans l'onglet Points d'arrêt, sélectionnez Nombre d'accès dans le menu contextuel, puis sélectionnez l'une des conditions dans la boîte de dialogue Nombre d'accès au point d'arrêt qui s'ouvre dans la liste précédente. Pour les options qui nécessitent une valeur, saisissez-la dans la zone de texte à droite de la liste déroulante des conditions. Pour enregistrer les conditions spécifiées, cliquez sur OK. Spécifiez un filtre de point d'arrêt. Un filtre de point d'arrêt limite l'opération de point d'arrêt aux seuls ordinateurs, processus ou threads spécifiés. Pour définir un filtre de point d'arrêt, cliquez avec le bouton droit sur le point d'arrêt souhaité et sélectionnez Filtre dans le menu contextuel. Ensuite, dans la boîte de dialogue Filtres de point d'arrêt qui s'ouvre, spécifiez les ressources auxquelles vous souhaitez limiter l'exécution de ce point d'arrêt. Pour enregistrer les conditions spécifiées, cliquez sur OK. Spécifiez une action à un point d'arrêt. La condition When Hit spécifie l’action à entreprendre lorsque l’exécution par lots atteint un point d’arrêt donné. Par défaut, lorsque la condition de nombre d'accès et la condition d'arrêt sont satisfaites, l'exécution est abandonnée. Alternativement, un message prédéfini peut être affiché. Pour spécifier quoi faire lorsqu'un point d'arrêt est atteint, cliquez avec le bouton droit sur l'icône rouge du point d'arrêt et sélectionnez Lorsqu'il est atteint dans le menu contextuel. Dans la boîte de dialogue Lorsque le point d'arrêt est atteint qui s'ouvre, sélectionnez l'action que vous souhaitez entreprendre. Pour enregistrer les conditions spécifiées, cliquez sur OK. Utilisez la fenêtre Quick Watch. Vous pouvez afficher la valeur d'une expression Transact-SQL dans la fenêtre QuickWatch, puis enregistrer l'expression dans la fenêtre Espion. Pour ouvrir la fenêtre Quick Watch, sélectionnez Quick Watch dans le menu Débogage. L'expression dans cette fenêtre peut être sélectionnée dans la liste déroulante Expression ou saisie dans ce champ. Utilisez l’info-bulle Informations rapides. Lorsque vous passez votre souris sur un identifiant de code, Quick Info ( Information brève) affiche son annonce dans une fenêtre pop-up.Commandes pour travailler avec des bases de données
1. Afficher les bases de données disponibles
AFFICHER LES BASES DE DONNÉES ; 2. Créez une nouvelle base de données
CRÉER UNE BASE DE DONNÉES ; 3. Sélection d'une base de données à utiliser
UTILISER 4. Importez des commandes SQL à partir d'un fichier .sql
SOURCE 5. Supprimez la base de données
SUPPRIMER LA BASE DE DONNÉES Travailler avec des tableaux
6. Afficher les tables disponibles dans la base de données
AFFICHER LES TABLEAUX ; 7. Créez un nouveau tableau
CRÉER UN TABLEAU Contraintes d'intégrité lors de l'utilisation de CREATE TABLE
Exemple
8. Informations sur le tableau
9. Ajout de données au tableau
INSÉRER DANS 10. Mise à jour des données du tableau
MISE À JOUR 11. Suppression de toutes les données du tableau
SUPPRIMER DE 12. Supprimer un tableau
TABLEAU DE DÉPÔT Commandes pour créer des requêtes
13. SÉLECTIONNER
14. SÉLECTIONNER DISTINCT
15. OÙ
Exemple
16. GROUPER PAR
Exemple
17. AVOIR
Exemple
18. COMMANDER PAR
Exemple
19. ENTRE
Exemple
20. COMME
SÉLECTIONNER Exemple
21. DANS
Exemple
22. REJOIGNEZ
Exemple 1
Exemple 2
Exemple 3
23. Voir
Création
CRÉER UNE VUE Suppression
VUE GOUTTE Exemple
24. Fonctions agrégées
25. Sous-requêtes imbriquées
Exemple
Dans cette revue, nous examinerons les types de requêtes SQL les plus courants.
Le standard SQL est défini ANSI(Institut national américain de normalisation).
SQL est un langage destiné spécifiquement aux bases de données relationnelles. Partitionnement SQL :
DDL(Langage de définition de données)
- ce qu'on appelle le langage de description de schéma en ANSI, consiste en des commandes qui créent des objets (tables, index, vues, etc.) dans la base de données.
DML(Langage de manipulation des données) est un ensemble de commandes qui déterminent quelles valeurs sont représentées dans les tableaux à un moment donné.
DCD(Langage de gestion des données) se compose de fonctionnalités qui déterminent s'il faut autoriser ou non un utilisateur à effectuer certaines actions. Ils font partie de l'ANSI DDL. N'oubliez pas ces noms. Ce ne sont pas des langages différents, mais des sections de commandes SQL regroupées selon leurs fonctions. Types de données:
SQL Server - Types de données
(synonyme carboniser)
À partir de SQL Server 2005, son utilisation n'est pas recommandée.
QU'EST-CE QU'UNE DEMANDE ?
Commande SELECT :
Type de requête utilisant SELECT :Structure de la commande SELECT :
- C'est le type de demande le plus simple. Il existe des commandes supplémentaires pour une récupération pratique des données (voir ci-dessous « Fonctions ») Commandes DML :
INSÉRER(Insérer)
MISE À JOUR(Mise à jour, modification),
SUPPRIMER(Supprimer) Commande INSÉRER :
La commande INSERT est livrée avec le préfixe INTO (in to), puis entre parenthèses se trouvent les noms des colonnes dans lesquelles on doit insérer des données, puis vient la commande VALUES (valeurs) et entre parenthèses les valeurs viennent tour à tour (c'est Il est nécessaire de respecter l'ordre des valeurs avec les colonnes, les valeurs doivent être dans le même ordre que les colonnes que vous avez spécifiées). Commande MISE À JOUR :
Commande SUPPRIMER :
Critères, fonctions, conditions, etc. ce qui nous aide en SQL :
Exemple:
SELECT id, ville, jour de naissance FROM users_base WHERE user_name = 'Alexey';- une telle requête affichera uniquement les lignes qui correspondent à la condition WHERE, à savoir toutes les lignes dans lesquelles la colonne user_name a la valeur Alexey.
Exemple:
SELECT id, ville, jour de naissance FROM users_base ORDER BY user_name ASC ; - une telle requête affichera les valeurs triées par la colonne nom_utilisateur de A à Z (A-Z ; 0-9)
Exemple:
SELECT id, city,birth_day FROM users_base WHERE user_name = 'Alexey' ORDER BY id ASC ;
Exemple:
SELECT DISTINCT nom_utilisateur FROM utilisateurs_base ;- une telle requête nous montrera les valeurs de tous les enregistrements dans la colonne user_name, mais elles ne seront pas répétées, c'est-à-dire si vous aviez un nombre infini de valeurs répétitives, alors elles ne seront pas affichées...
Exemple:
SELECT * FROM users_base WHERE city = 'Rostov' AND user_name = 'Alexander';- affichera toutes les valeurs du tableau où le nom de la ville apparaît sur une seule ligne (dans ce cas, Rostov et le nom d'utilisateur Alexander.
SELECT * FROM users_base WHERE city = 'Rostov' OR NOT user_name = 'Alexander';- affichera toutes les valeurs du tableau où le nom de la ville de Rostov apparaît sur une ligne ou le nom d'utilisateur n'est pas exactement Alexandre.
SELECT * FROM users_base WHERE ville IN ('Vladivostok', 'Rostov');- une telle requête affichera toutes les valeurs du tableau contenant les noms des villes spécifiées dans la colonne ville
SELECT * FROM users_base WHERE id BETWEEN 1 AND 10 ;- affiche toutes les valeurs du tableau qui seront comprises entre 1 et 10 dans la colonne id
SELECT COUNT (*) FROM utilisateurs_base ;- affichera le nombre de lignes dans ce tableau.
SELECT COUNT (DISTINCT nom_utilisateur) FROM utilisateurs_base ;- affichera le nombre de lignes avec les noms d'utilisateurs (non répétées)
SELECT SUM (id) FROM utilisateurs_base ;- affichera la somme des valeurs de toutes les lignes de la colonne id.
SELECT AVG (id) FROM utilisateurs_base ;- affichera la moyenne de toutes les valeurs sélectionnées de la colonne idCréation de tableaux :
ALLER
ACTIVER QUOTED_IDENTIFIER
ALLER
SI NON EXISTE (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") ET tapez (N"U"))
COMMENCER
CRÉER UNE TABLE .(
PAS NUL,
PAS NUL,
PAS NUL,
CLÉ PRIMAIRE EN GROUPE
A.S.C.
FIN
ALLER
DÉFINIR ANSI_NULLS SUR
ALLER
ACTIVER QUOTED_IDENTIFIER
ALLER
SI NON EXISTE (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") ET tapez (N"U"))
COMMENCER
CRÉER UNE TABLE .(
IDENTITE(1,1) NON NULLE,
NUL,
NUL,
CLÉ PRIMAIRE EN GROUPE
A.S.C.
)AVEC (IGNORE_DUP_KEY = OFF) ON
) SUR TEXTIMAGE_ON
FIN
ALLER
DÉFINIR ANSI_NULLS SUR
ALLER
ACTIVER QUOTED_IDENTIFIER
ALLER
SI NON EXISTE (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N."") ET tapez (N"U"))
COMMENCER
CRÉER UNE TABLE .(
IDENTITE(1,1) NON NULLE,
NUL,
NUL,
CLÉ PRIMAIRE EN GROUPE
A.S.C.
)AVEC (IGNORE_DUP_KEY = OFF) ON
) SUR
FIN
La syntaxe dans SQL Server 2005 est un autre sujet, je voulais juste montrer que j'ai décrit les bases de la programmation SQL, vous pouvez atteindre le sommet par vous-même en connaissant les bases.Performance
1. Créer nouveau projet dans MS Visual Studio en tant qu'application Windows Forms.
2. Créez une nouvelle vue pour afficher les données de la table Student.
3. Placez le contrôle DataGridView et configurez la connexion avec la base de données.
4. Définition de l'apparence du contrôle DataGridView.
Riz. 14. Lancement de l'application pour exécution
Riz. 16. Fenêtre de paramétrage de la vue des champs dans la vue « View Student »
5. Chaîne de connexion
Riz. 17. Définir une chaîne de connexion
6. Création nouvelle forme pour démontrer les commandes de manipulation de données.
Riz. 18. Vue du formulaire nouvellement créé
7. Ajout de boutons pour appeler des commandes permettant de manipuler les données de la table Student.
Riz. 19. Formulaire principal de la demande
8. Programmation d'un événement clic sur le bouton « Insérer... ».
9. Programmation d'un événement clic sur le bouton « Modifier... ».
10. Programmation d'un événement de clic sur le bouton « Supprimer ».
Rubriques connexes
Éditeur de requête
Explorateur de solution
Débogage de SQL Server