Maison  >  Article  >  base de données  >  Premiers pas avec SQL Server 7.0 (3)

Premiers pas avec SQL Server 7.0 (3)

黄舟
黄舟original
2016-12-24 17:37:221463parcourir

Tri des données
La clause ORDER BY trie les données dans l'ordre spécifié (données de tri). Il nécessite une liste de noms de colonnes ou une liste d'entiers non négatifs pour spécifier les positions des colonnes. Utilisez ASC pour représenter l'ordre croissant et DESC pour représenter l'ordre décroissant. La valeur par défaut est ASC.

Limiter le nombre de lignes renvoyées
Il est possible de limiter le nombre de lignes dans le résultat sans utiliser de clause WHERE. La clause "TOP" peut limiter le nombre de lignes par un nombre ou un pourcentage spécifié.

Regroupement des données et calcul des fonctions d'agrégation
La fonction d'agrégation calcule la somme des données du tableau. SQL Server fournit les fonctions d'agrégation suivantes :
· AVG Cette fonction calcule la moyenne. La syntaxe est la suivante :
AVG ([ALL | DISTINCT] exPRession)
Le mot clé DISTINCT est uniquement utilisé pour calculer la moyenne de différentes valeurs. S'il y a de nombreuses valeurs en double, ces valeurs​​sont uniquement. calculé une fois, et la valeur par défaut est ALL.
L'expression peut être une expression arithmétique impliquant une ou plusieurs colonnes.
· MIN Cette fonction trouve la valeur minimale dans l'expression fournie. La syntaxe est la suivante :
MIN (expression)
· MAX La fonction de cette fonction est de trouver la valeur maximale dans l'expression fournie. La syntaxe est la suivante :
MAX (expression)
Remarque : Si le type de chaîne locale utilise MIN et MAX, la sortie dépend de l'ordre défini pour SQL Server. MIN et MAX ne peuvent pas être utilisés sur les bits.
· SUM SUM calcule la somme de toutes les valeurs de données. La syntaxe est la suivante :
SUM (expression [ALL | DISTINCT])
Remarque : SUM et AVG ne peuvent être utilisés que pour les types de données numériques.
· COUNT Compte le nombre de valeurs d'expression. La syntaxe est la suivante :
COUNT (expression [ALL | DISTINCT])
COUNT a un autre usage, il peut renvoyer le nombre de lignes sélectionnées.
Par exemple : SELECT NumRows = COUNT (*) FROM titles
La fonction d'agrégation ignore toutes les valeurs nulles, sauf COUNT(*). Bien que toutes les fonctions d'agrégation calculent en fonction de l'absence de valeurs NULL, COUNT(*) calcule toutes les lignes (y compris les lignes avec des valeurs NULL).

1. Clause GROUP BY
La clause GROUP BY crée des groupes plus petits en fonction des données définies et effectue des calculs de fonction d'agrégation sur chaque groupe. En d’autres termes, il produit des informations globales pour chaque groupe. GROUP BY peut traiter plusieurs colonnes comme des colonnes de regroupement (Grouping Columns). Il résume les informations sur les valeurs uniques dans une colonne combinée.
Une liste de sélection utilisant la clause GROUP BY ne peut contenir que les éléments suivants :
· Valeurs constantes.
· Colonnes combinées.
·Expression. Chaque expression renvoie une valeur pour chaque groupe (comme une fonction d'agrégation). Si une colonne se trouve dans une liste de sélection en plus d'être dans une colonne combinée, elle a alors plusieurs valeurs pour chaque valeur unique de la colonne combinée. Ce type de structure n'est pas autorisé.
2. Les clauses GROUP BY et HAVING
HAVING sont utilisées pour ajouter des critères de filtrage de données aux requêtes utilisant la clause GROUP BY. L'utilisation de HAVING est la même que celle de la clause WHERE dans SELECT. Il est possible d'utiliser la clause WHERE dans une requête contenant une clause GROUP BY. HAVING et WHERE ont la même syntaxe. La différence entre HAVING et WHERE est :
· Dans la clause WHERE, les lignes qui ne remplissent pas la condition sont supprimées avant le regroupement, tandis que dans la clause HAVING, la condition est appliquée après le regroupement.
· HAVING peut inclure des fonctions d'agrégation dans des conditions, mais WHERE ne le peut pas.
Remarque : les clauses GROUP BY et HAVING ne peuvent pas utiliser de types de données texte ou image.
3. Clause COMPUTE BY
La clause COMPUTE BY peut obtenir des enregistrements détaillés ou totaux. Il divise les données en groupes plus petits, puis crée un ensemble de données de résultats d'enregistrement détaillé pour chaque groupe (comme SELECT). Il peut également générer des enregistrements totaux pour chaque groupe (comme GROUP BY).
Dans COMPUT BY, il n'est pas nécessaire de définir la clause BY. Si la clause BY n'est pas définie, la table entière est considérée comme un groupe et seuls deux ensembles de données de résultats sont produits, l'un avec tous les enregistrements détaillés et l'autre avec une seule ligne, qui contient le total des enregistrements.
Remarque : lors de l'utilisation de BY dans COMPUTE, il est nécessaire d'inclure ORDER BY dans toutes les colonnes combinées.

Opérations Cube et Rollup
Les opérations CUBE et ROLLUP peuvent produire plus de valeurs agrégées qu'un simple GROUP BY. Ces opérations sont utiles lors de la production de rapports croisés. Si la requête utilise n colonnes de combinaison, il existe 2n combinaisons pour calculer l'agrégation.

Accès aux données de plusieurs tables
Nous avons expliqué comment accéder aux données d'une seule table. L'accès aux données de plusieurs tables est également possible. L'accès aux données de plusieurs tables s'appelle rejoindre une table.
1. CROSS JOIN (produit cartésien)
CROSS JOIN combine simplement des tables sans aucune contrainte. Le nombre de lignes dans le résultat après CROSS JOIN est le produit du nombre de lignes dans les deux premières tables jointes. Si vous joignez deux tables contenant chacune des milliers de lignes, les résultats seront inimaginables.
2. INNER JOIN
INNER JOIN est la méthode la plus couramment utilisée pour combiner deux tables. INNER JOIN est basé sur un discriminant, appelé condition de connexion. La condition de jointure est définie avec la clause WHERE. La condition de jointure se compose de colonnes des deux tables et utilise une condition de comparaison pour comparer les valeurs des colonnes. Les valeurs passées par la comparaison sont incluses dans l'ensemble de données de résultat, voici la syntaxe de Inner JOIN :
Syntaxe 1 : (ANSI 92)
Select
FROM JOIN
ON . = .
Syntaxe 2 :
Sélectionnez
DE < table1>,. = .
Un alias peut être défini pour la table dans la clause FROM, et l'alias peut être utilisé à la place du vrai nom n’importe où.
Remarque : s'il y a une valeur nulle dans la colonne utilisée comme condition de jointure, la valeur nulle ne peut correspondre à aucune valeur, donc le résultat n'inclura pas de lignes avec des valeurs nulles.
3. Left Outer JOIN
Dans Inner JOIN, seules les lignes qui correspondent dans les deux tables peuvent figurer dans l'ensemble de données de résultat. Mais dans Left Outer JOIN, toutes les lignes du tableau de gauche apparaissent dans l'ensemble de données de résultat. Si une ligne du tableau de gauche n'a pas de ligne correspondante dans le tableau de droite, une valeur nulle est utilisée pour remplacer la valeur du tableau de droite. et rejoignez-le.
La syntaxe est la suivante : (ANSI 92)
Sélectionnez
FROM LEFT OUTER JOIN
ON . = < table2>.
4. Right Outer JOIN
Right Outer JOIN est similaire à Left Outer JOIN, sauf que la table de droite est utilisée comme table externe (toutes les lignes de la table de droite). sont inclus dans l'ensemble de données de résultat).
La syntaxe est la suivante :
Sélectionnez
FROM RIGHT OUTER JOIN
ON . ;.< ;nom de la colonne>
5. Full Outer JOIN
Dans Full Outer JOIN, toutes les lignes des deux tables sont incluses dans l'ensemble de données de résultat.
La syntaxe est la suivante :
Sélectionnez
FROM ;.< ;nom de la colonne>

Instruction Case
Lorsque différentes valeurs de résultat sont produites pour différentes conditions, l'instruction Case peut être utilisée.
L'instruction Case calcule toutes les conditions définies et renvoie le résultat selon que les conditions sont vraies ou non.
La syntaxe est la suivante :
CASE []
WHEN THEN
[ELSE ]
END
Input_expression est une expression SQL Server ou une expression booléenne valide.
When_expression est une expression SQL Server ou une expression booléenne valide. Cette expression est comparée à Input_expression. Si Input_expression n’est pas défini, When_expression doit être une expression booléenne.
Result_expression est toute expression SQL Server valide. Si la comparaison de When_expression et Input_expression renvoie TRUE (si Input_expression est défini) ou When_expression est évaluée à TRUE, l'expression est évaluée et son résultat est renvoyé. Sinon, l'expression dans Else_expression est évaluée et son résultat est renvoyé.
Par exemple :
SELECT au_fname,au_lname,
State=CASE state
QUAND 'CA' PUIS 'Californie'
QUAND 'KS' PUIS 'Kansas'
FIN
FROM auteurs


UNION

L'instruction UNION combine les résultats de deux requêtes ou plus dans un ensemble de résultats.
La syntaxe est la suivante : SELECT
FROM
WHERE
UNION [ALL]
SELECT
FROM < ;table_list>

Le mot-clé ALL spécifie que les données en double seront également incluses dans l'ensemble de données de résultat final. Si nécessaire, une requête peut contenir plusieurs instructions UNION. Toutes les listes Select_lists doivent avoir le même nombre de colonnes et être du même type de données ou compatible.

Commande Go La commande Go est utilisée pour marquer la fin d'un lot de requêtes. Un lot de requêtes est un ensemble d'instructions TSQL exécutées ensemble. Go fonctionne avec Osql ou SQL Server Query Analyzer.

Ce qui précède est le contenu de Premiers pas avec SQL Server 7.0 (Partie 3). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn