Dans Utilisé pour vérifier si une valeur existe dans une liste. Opérateur de modification d'enregistrement SQL en langage de requête structuré

La leçon couvrira le langage de requête : instruction SELECT sql - pour sélectionner des données

Sélectionnez une requête SQL est destiné à un échantillonnage normal à partir d’une base de données. Ceux. si nous avons simplement besoin de recevoir des données sans effectuer aucun traitement avec celles-ci et sans apporter de modifications à la base de données, nous pouvons utiliser cet outil en toute sécurité.

Syntaxe de l'instruction SELECT

SELECT * FROM nom_table ;

Il s'agit de l'option la plus simple pour travailler avec l'opérateur, lorsque nous sélectionnons tous les enregistrements d'une table de base de données.

Le symbole * indique récupérer tous les enregistrements d'une table. Cependant, les colonnes et les lignes du jeu de résultats ne sont pas ordonnées.

Examinons des exemples de requêtes de sélection SQL :

Exemple: Si vous avez créé une base de données locale et rempli les tables, comme dans celle évoquée précédemment (ou utilisé le service sqlFiddle), exécutons l'exemple suivant.
Vous devez sélectionner tous les enregistrements de la table des enseignants

SELECT * FROM nom_table LIMIT 2,3;

Dans l'exemple, 3 enregistrements sont sélectionnés dans la table, en commençant par l'enregistrement 2.
Cette requête est notamment nécessaire lors de la création d'un bloc de pages de navigation.

À ordonner les champs du jeu de résultats, ils doivent être répertoriés séparés par des virgules dans l'ordre requis après le mot SELECT :

SELECT nom, zarplata, prime FROM professeurs ORDER BY nom ;

Sélectionnez les valeurs des champs nom , zarplata , primes et triez par champ nom (par ordre alphabétique)


Exemple: BD "Magasin informatique". Sélectionnez des informations sur la vitesse et la mémoire des ordinateurs. Vous souhaitez trier le résultat défini par vitesse du processeur par ordre croissant.

SELECTIONNER `Vitesse`, `Mémoire` DE `pc` ORDER BY 1 ASC

Résultat:

Vous pouvez trier selon deux champs :

SELECT nom, zarplata, prime FROM professeurs ORDER BY nom DESC;

Sélectionne les valeurs des champs name , zarplata , premia et trie par le champ name par ordre décroissant


Suppression des valeurs en double dans SQL

Lorsque vous avez besoin d'obtenir des lignes uniques, vous pouvez utiliser le mot-clé DISTINCT.

DISTINCT(traduit de l'anglais DIFFÉRENCE) - un argument selon lequel élimine les valeurs doubles:

Exemple de base de données « Institut » : vous devez connaître les options premium possibles. Si vous n'utilisez pas Distinct , le résultat sera deux valeurs identiques. Vous pouvez supprimer les valeurs en double dans SQL en entrant Distinct - par conséquent, les valeurs en double ne sont pas répétées.

    SÉLECTIONNEZ la vitesse, la mémoire à partir du PC ;

    Résultat:

    Dans la table PC, la clé primaire est le champ code. Ce champ n'étant pas présent dans la requête, il existe des lignes en double dans l'ensemble de résultats ci-dessus.

    Lorsque vous avez besoin d'obtenir des chaînes uniques (par exemple, nous ne nous intéressons qu'à différentes combinaisons de vitesse de processeur et de mémoire, et non aux caractéristiques de tous les ordinateurs disponibles), alors vous devez utiliser Distinct :

    SÉLECTIONNEZ LA VITESSE DISTINCTE, LA MÉMOIRE À PARTIR DU PC ;

    SÉLECTIONNEZ LA VITESSE DISTINCTE, LA MÉMOIRE À PARTIR DU PC ;

    Résultat:

    sql sélectionnez la tâche 1_1. BD "Institut" Exécutez une requête pour sélectionner l'identifiant et le nom dans la table des enseignants. Trier les noms des enseignants par ordre décroissant

    Langage SQL : condition où

    La condition est remplie par la phrase

    qui est écrit après la clause FROM.

    Dans ce cas, seuls les enregistrements pour lesquels la valeur du prédicat est TRUE seront inclus dans le jeu de résultats.

    Exemple de base de données « Institut » : Sortez les données d'un enseignant de la table des enseignants, dont le nom de famille est Ivanov

    Conditions multiples dans SQL

    Les prédicats (conditions) peuvent consister en une seule expression ou en toute combinaison d'expressions construites à l'aide d'opérateurs booléens :

  1. ET
  2. ou non
  3. Exemple de base de données « Institut » : afficher le code d'un enseignant dont le salaire est 10000 , et le bonus 500

    Opérateurs relationnels trouvés dans les conditions :
    = Égal
    >Plus de
    >= Supérieur ou égal à
    Inégal

    Entre en SQL (entre)

    Le prédicat BETWEEN vérifie si les valeurs de l'expression testée se situent dans la plage spécifiée par les expressions limites jointes par le mot de fonction AND.

    Syntaxe:

    <Проверяемое выражение>ENTRE<Начальное выражение>ET<Конечное выражение>

    Exemple de base de données « Institut » : Imprimez le nom et le salaire d'un enseignant dont le salaire est compris entre 5 000 et 10 000.

    Exemple de base de données « Institut » : Afficher le nom et le salaire d'un enseignant dont le salaire n'est pas compris entre 5 000 et 10 000.

    Prédicat IN

    Le prédicat IN détermine si la valeur de l'expression testée se trouvera dans un ensemble de valeurs explicitement défini.

    Syntaxe:

    < Проверяемое выражение>[ PAS DEDANS (< набор значений> )

    <Проверяемое выражение>DANS (<набор значений>)

    Exemple de base de données « Institut » : afficher les noms des enseignants dont le salaire est de 5000, 10000 ou 11000

    Exemple de base de données « Institut » : afficher les noms des enseignants dont le salaire ne figure pas parmi les valeurs : 5000, 10000 ou 11000

    sql sélectionnez la tâche 1_3. BD "Institut" Affichez le nom, le salaire et la prime des enseignants dont la prime est de 2 000 à 5 000 roubles.

Le langage de requête structuré SQL est basé sur le calcul relationnel avec des tuples variables. Le langage SQL est conçu pour effectuer des opérations sur les tables, créer, supprimer, modifier la structure et sur les données des tables, sélectionner, modifier, ajouter et supprimer, ainsi que certaines opérations associées. SQL est un langage non procédural et ne contient pas d'instructions de contrôle pour organiser les routines, les entrées, les sorties, etc.


Partagez votre travail sur les réseaux sociaux

Si cette œuvre ne vous convient pas, en bas de page se trouve une liste d'œuvres similaires. Vous pouvez également utiliser le bouton de recherche


Langage de requêtes structurées SQL : historique, standards,

Opérateurs de langage de base.

Le langage de requête structuré SQL est basé sur le calcul relationnel avec des tuples variables. La langue a plusieurs normes. Le langage SQL est conçu pour effectuer des opérations sur les tables (création, suppression, modification de la structure) et sur les données des tables (sélection, modification, ajout et suppression), ainsi que certaines opérations associées. SQL est un langage non procédural et ne contient pas d'instructions de contrôle, d'organisation de sous-programmes, d'entrées-sorties, etc. À cet égard, SQL n'est pas utilisé de manière autonome, il est généralement immergé dans l'environnement du langage de programmation SGBD intégré (par exemple, FoxPro DBMS Visual FoxPro, ObjectPAL DBMS Paradox, Visual Basic pour Applications DBMS Access).

Dans les SGBD modernes dotés d'une interface interactive, vous pouvez créer des requêtes à l'aide d'autres outils, tels que QBE. Cependant, l’utilisation de SQL peut souvent améliorer l’efficacité du traitement des données dans la base de données. Par exemple, lors de la préparation d'une requête dans l'environnement Access, vous pouvez passer de la fenêtre Query Builder (formulation d'un exemple de requête dans le langage QBE) à une fenêtre avec l'instruction SQL équivalente. Dans certains cas, il est plus facile de préparer une nouvelle requête en modifiant une requête existante en modifiant l'instruction SQL. La composition des instructions SQL peut différer légèrement selon les SGBD. Le langage SQL n'a pas les fonctions d'un langage de développement à part entière, mais se concentre sur l'accès aux données, il est donc inclus dans les outils de développement de programmes. Dans ce cas, cela s’appelle Embedded SQL. Le standard de langage SQL est pris en charge par les implémentations modernes des langages de programmation suivants : PL/1, Ada, C, COBOL, Fortran, MUMPS et Pascal.

Dans les systèmes spécialisés de développement d'applications de type client-serveur, l'environnement de programmation est, en outre, généralement complété par des outils de communication (établissement et déconnexion des connexions avec les serveurs de bases de données, détection et traitement des erreurs survenant dans le réseau, etc.), des outils de développement interfaces utilisateur, outils de conception et débogage Il existe deux méthodes principales pour utiliser Embedded SQL : statique et dynamique. Lors de l'utilisation statique d'un langage (SQL statique), le texte du programme contient des appels aux fonctions du langage SQL, qui sont strictement incluses dans le module exécutable après compilation.

Les modifications dans les fonctions appelées peuvent se situer au niveau des paramètres d'appel individuels à l'aide de variables de langage de programmation. Lors de l'utilisation dynamique du langage (SQL dynamique), on suppose que les appels aux fonctions SQL sont construits dynamiquement et que l'interprétation de ces appels, par exemple lors de l'accès aux données d'une base de données distante, lors de l'exécution du programme. La méthode dynamique est généralement utilisée dans les cas où l'application ne connaît pas à l'avance le type d'appel SQL et elle est construite en dialogue avec l'utilisateur. L'objectif principal du langage SQL (ainsi que d'autres langages permettant de travailler avec des bases de données) est de préparer et d'exécuter des requêtes. La récupération de données à partir d'une ou plusieurs tables peut aboutir à un ensemble d'enregistrements appelé vue. Une vue est essentiellement une table générée à la suite d’une requête. On peut dire que c'est un type de requête stockée. Vous pouvez créer plusieurs vues en utilisant les mêmes tables. La vue elle-même est décrite en précisant l'identifiant de la vue et la requête qui doit être faite pour l'obtenir.

Pour faciliter le travail avec les vues, le concept de curseur a été introduit dans le langage SQL. Un curseur est une sorte de pointeur utilisé pour se déplacer dans des ensembles d'enregistrements tout en les traitant. La description et l'utilisation d'un curseur en SQL sont les suivantes. Dans la partie descriptive du programme, une variable de type curseur (CURSOR) est associée à une instruction SQL (généralement une instruction SELECT). Dans la partie exécution du programme, le curseur est ouvert (OPEN<имя курсора>), en déplaçant le curseur à travers les enregistrements (FETCH<имя курсора>...), suivi d'un traitement approprié, et enfin de la fermeture du curseur (CLOSE<имя курсора>).

Opérateurs de langage de base

Décrivons un sous-ensemble minimal du langage SQL, basé sur son implémentation dans l'interface standard ODBC (Open Database Connectivity) de Microsoft. Les opérateurs du langage SQL peuvent être divisés en deux sous-langages : Data Definition Language (DDL) et Data Manipulation Language (DML). Les principaux opérateurs du langage SQL sont présentés dans le tableau.

Considérons le format et les capacités de base des opérateurs les plus importants, à l'exception des opérateurs spécifiques marqués dans le tableau par le symbole « * ». Nous omettrons les opérandes et les éléments de syntaxe sans importance (par exemple, la règle adoptée dans de nombreux systèmes de programmation pour mettre « ; » à la fin de l'opérateur).

1. Opérateur créer un tableaua le format :

CRÉER UN TABLEAU<имя таблицы>

(<имя столбца> <тип данных>

[,<имя столбца> <тип данных> ]...)

Les opérandes requis de l'opérateur sont le nom de la table en cours de création et le nom d'au moins une colonne (champ) indiquant le type de données stockées dans cette colonne.

Lors de la création d'un tableau, certaines règles supplémentaires permettant de contrôler les valeurs qui y sont saisies peuvent être spécifiées pour des champs individuels. La construction NOT NULL sert précisément cet objectif et, pour une colonne de tableau, signifie qu'une valeur doit être définie dans cette colonne.

Instructions SQL

Voir

Nom

But

CRÉER UN TABLEAU

TABLEAU DE DÉPÔT

MODIFIER TABLE

CRÉER UN INDICE

INDICE DE BAISSE

CRÉER UNE VUE

VUE GOUTTE

GRANDIOSE*

RÉVOQUER*

créer un tableau

supprimer un tableau

structure de table à langer

création d'index

supprimer un index

créer une vue

supprimer une vue

attribution de privilèges

suppression de privilèges

SÉLECTIONNER

MISE À JOUR

INSÉRER

SUPPRIMER

exemples d'enregistrements

modifier les enregistrements

insertion de nouveaux enregistrements

suppression d'entrées

En général, différents SGBD peuvent utiliser différents types de données. L'interface ODBC prend en charge ses propres types de données standard, par exemple ceux de caractères (SQL_CHAR, SQL_VARCHAR, SQL_LONGVARCHAR), etc. Lorsque vous travaillez avec la base de données d'un certain SGBD via l'interface ODBC, les types de données standard pris en charge par l'interface sont automatiquement convertis. en types de données sources et vice versa. Si nécessaire, l'échange de données entre le programme et la source de données peut être effectué sans conversion dans le format de données interne de la source.

Exemple 1 . Création d'un tableau.

Supposons que vous souhaitiez créer une table marchandises décrivant les marchandises qui comporte les champs suivants : type type de produit, identifiant comp_id de l'entreprise de fabrication, nom du produit et prix du produit. L'instruction de définition de table pourrait ressembler à ceci:

CREATE TABLE biens (type SQL_CHAR(8) NOT NULL,

comp_id SQL_CHAR(10) NOT NULL, nom SQL_VARCHAR(20),

prix SQL_DECIMAL(8,2)).

2. Opérateur changements dans la structure du tableaua le format :

MODIFIER TABLE<имя таблицы>

((AJOUTER, MODIFIER, SUPPRIMER)<имя столбца> [<тип данных>]

[,(AJOUTER, MODIFIER, SUPPRIMER)<имя столбца> [<тип данных>]]...)

Changer la structure d'un tableau peut consister à ajouter (ADD), modifier (MODIFY) ou supprimer (DROP) une ou plusieurs colonnes du tableau. Les règles d'écriture de l'instruction ALTER TABLE sont les mêmes que pour l'instruction CREATE TABLE. Lors de la suppression d'une colonne, indiquez<тип данных>pas besoin.

3. Opérateur supprimer un tableaua le format :

TABLEAU DE DÉPÔT<имя таблицы>

L'opérateur vous permet de supprimer une table existante. Par exemple, pour supprimer une table nommée items, il suffit d'écrire une instruction du type : DROP TABLE items.

4. Opérateur création d'un indexa le format :

CRÉER UN INDICE< имя индекса >

SUR< имя таблицы >

(<имя столбца>[ASC | DESC]

[,<имя столбца>[ASC | DESC]...)

L'opérateur permet de créer un index sur une ou plusieurs colonnes d'une table donnée afin d'accélérer l'exécution des opérations de requête et de recherche sur la table. Vous pouvez créer plusieurs index sur une seule table. En spécifiant l'option facultative UNIQUE, vous pouvez vous assurer que les valeurs de toutes les colonnes spécifiées dans l'instruction sont uniques. Essentiellement, créer un index à l'aide de l'attribut UNIQUE signifie définir une clé dans une table créée précédemment. Lorsque vous créez un index, vous pouvez définir les valeurs dans les colonnes pour qu'elles soient automatiquement triées par ordre croissant ASC (par défaut) ou par ordre décroissant DESC. Vous pouvez définir un ordre de tri différent pour différentes colonnes.

5. Opérateur supprimer un indexa le format :

INDICE DE BAISSE<имя индекса>

Cet opérateur permet de supprimer un index précédemment créé avec le nom correspondant. Ainsi, par exemple, pour détruire l'index main_indx sur la table emp, il suffit d'écrire l'instruction main_indx DROP INDEX.

6. Opérateur créer une vuea le format :

CRÉER UNE VUE<имя представления>

[(<имя столбца> [,<имя столбца> ]...)]

COMME<оператор SELECT>

Cet opérateur vous permet de créer une vue. Si les noms de colonnes ne sont pas spécifiés dans la vue, les noms de colonnes de la requête décrite par l'instruction SELECT correspondante seront utilisés.

7. Supprimer l'opérateur la représentation a le format suivant :

VUE GOUTTE<имя представления>

L'opérateur permet de supprimer une vue précédemment créée. Notez que lorsque vous supprimez une vue, les tables participant à la requête ne sont pas supprimées. La suppression d'une représentation gerg se fait avec un opérateur de la forme : DROP VIEW repr.

8. Opérateur de sélection d'enregistrement a le format :

SÉLECTIONNER

< список данных >

DEPUIS<список таблиц>

... ]

...]

Il s'agit de l'instruction la plus importante de toutes les instructions SQL. Sa fonctionnalité est énorme. Regardons les principaux. L'instruction SELECT vous permet de sélectionner et d'effectuer des calculs sur les données d'une ou plusieurs tables. Le résultat de l'instruction est une table de réponses, qui peut ou non contenir des lignes en double (DISTINCT). Par défaut, toutes les lignes, y compris celles en double, sont incluses dans la table de réponses. La sélection de données implique des enregistrements d'une ou plusieurs tables répertoriées dans la liste de l'opérande FROM. La liste de données peut contenir les noms des colonnes participant à la requête, ainsi que les expressions sur les colonnes. Dans le cas le plus simple, les expressions peuvent contenir des noms de colonnes, des symboles arithmétiques (+, , *, /), des constantes et des parenthèses. Si une expression est écrite dans la liste de données, parallèlement à la sélection des données, des calculs sont effectués dont les résultats tombent dans une nouvelle colonne (créée) du tableau de réponses. Lors de l'utilisation des noms de colonnes de plusieurs tables dans des listes de données, une construction du formulaire est utilisée pour indiquer qu'une colonne appartient à une certaine table :<имя таблицы>.<имя столбца>.

L'opérande WHERE spécifie les conditions qui doivent être remplies par les enregistrements de la table résultante. Expression<условие выборки>est booléen. Ses éléments peuvent être des noms de colonnes, des opérations de comparaison, des opérations arithmétiques, des connecteurs logiques (AND, OR, NOT), des parenthèses, des fonctions spéciales LIKE, NULL, IN, etc. L'opérande GROUP BY vous permet de sélectionner des groupes dans l'ensemble d'enregistrements résultant.

9. Opérateur enregistrer les modificationsa le format :

MISE À JOUR<имя таблицы>

ENSEMBLE<имя столбца> = {<выражение>, NUL )

[, ENSEMBLE<имя столбца> = {<выражение>, NUL)... ]

L'exécution d'une instruction UPDATE consiste à modifier les valeurs dans les colonnes du tableau spécifiées par l'opérande SET pour les enregistrements qui satisfont à la condition spécifiée par l'opérande WHERE. Les nouvelles valeurs de champ dans les enregistrements peuvent être vides (NULL) ou calculées selon une expression arithmétique. Les règles d'écriture des expressions arithmétiques et logiques sont similaires aux règles correspondantes de l'instruction SELECT.

10. Opérateur insertion de nouveaux enregistrementsa deux types de formats :

INSÉRER DANS<имя таблицы>

[(<список столбцов>)]

VALEURS (<список значений>)

INSÉRER DANS<имя таблицы>

[(<список столбцов>)]

<предложение SELECT>

Dans le premier format, l'instruction INSERT est utilisée pour saisir de nouveaux enregistrements avec des valeurs spécifiées dans les colonnes. L'ordre de liste des noms de colonnes doit correspondre à l'ordre des valeurs répertoriées dans la liste de l'opérande VALEURS. Si<список столбцов>omis, alors dans<списке значений>Toutes les valeurs doivent être répertoriées dans l'ordre des colonnes de la structure du tableau.Dans le deuxième format, l'instruction INSERT est destinée à entrer dansune table donnée de nouvelles lignes sélectionnées dans une autre table avecen utilisant la clause SELECT.

PAGE 1

D'autres ouvrages similaires qui pourraient vous intéresser.vshm>

16. Apprenez les bases du langage de requête structuré T-SQL 34,15 Ko
Pour atteindre cet objectif, il est nécessaire de résoudre les tâches suivantes : créer des requêtes de sélection à partir de plusieurs tables en langage SQL en utilisant des critères de sélection spécifiés ; créer une requête de sélection en SQL contenant des fonctions d'agrégation statique ; créez une requête qui combine les résultats de deux ou plusieurs requêtes en un seul jeu de résultats à l'aide de la commande UNION. À la fin du travail, les étudiants doivent connaître : les catégories de commandes SQL ; commandes SQL de base utilisées pour créer une requête ; principes de création de requêtes SQL...
6030. LA LANGUE COMME PHÉNOMÈNE EN DÉVELOPPEMENT. FACTEURS EXTERNES ET INTERNES DU DÉVELOPPEMENT DU LANGAGE 17,38 Ko
Le problème de l'origine du langage soulève deux questions. La première question est liée au problème de l'origine de la langue en général, comment le langage humain s'est développé, comment une personne a appris à parler, la seconde avec l'origine de chaque langue individuelle. Aucune preuve de cette période n'a été préservée. Par conséquent, lorsqu'ils étudient l'origine du langage en général, les linguistes doivent opérer non seulement avec des faits linguistiques, mais aussi avec des données provenant de sciences connexes. L'intérêt pour le problème de l'origine de la langue est apparu il y a longtemps.
10870. Liens interdisciplinaires du cours « Langue russe professionnelle ». Transformation et différenciation de la langue russe professionnelle 10,57 Ko
Transformation et différenciation de la langue russe professionnelle 1. Transformation et différenciation de la langue russe professionnelle. Les normes syntaxiques sont déterminées par la structure de la langue et, comme d'autres normes orthoépiques, lexicales et morphologiques, subissent des changements au cours du processus de développement du langage. Lors de la maîtrise de la syntaxe d'une langue non maternelle, un certain nombre de difficultés surviennent lors du choix des formes de contrôle et de la coordination de la construction des phrases, de l'utilisation des participes, du choix de la bonne préposition, etc.
6929. Histoire de la langue Delphi 13,01 Ko
Delphes est la ville grecque où vivait l'oracle de Delphes. Delphi est une combinaison de plusieurs technologies importantes : Compilateur hautes performances pour le code machine Modèle de composants orienté objet Construction visuelle et donc rapide d'applications à partir de prototypes logiciels Outils évolutifs pour la construction de bases de données Compilateur pour le code machine Le compilateur intégré à Delphi fournit le hautes performances nécessaires à la construction d'applications dans l'architecture...
10869. Les notions de « langue professionnelle », de « langue de spécialité », leur différenciation. Langue russe professionnelle : son origine, ses fonctions, son étendue de fonctionnement (en tenant compte des spécificités de la spécialité) 9,5 Ko
Différenciation du langage. Chaque spécialité économique, outre le langage commun à tous les économistes, possède également son langage particulier et spécialisé. Les spécialistes communiquent dans ces langues professionnelles oralement et par écrit ; ces langues professionnelles sont enseignées aux étudiants ; ces langues professionnelles décrivent des systèmes de connaissances et de compétences dans la référence pédagogique scientifique et autre littérature. Dans le système linguistique économique, il existe des problèmes communs à toutes les langues professionnelles.
1335. Modèles de base de formation de mots en anglais américain moderne 117,01 Ko
Les principales différences entre l'anglais américain et britannique. Le problème de la détermination du statut mondial de l'anglais américain. L'anglais américain dans le monde moderne. Caractéristiques lexicales de l'anglais américain.
1936. HISTOIRE, STRUCTURE ET CONCEPTS DE BASE DE L'ÉCOLOGIE 495,77 Ko
Le terme « écologie » est formé à partir des racines grecques « oikos » – maison, environnement immédiat d'une personne et « logos » – science. Ainsi, au sens littéral, l’écologie est la science des organismes, y compris les humains, observés dans l’enceinte de leur foyer, avec une attention particulière portée à la nature des relations entre les organismes et leur environnement.
17746. Pédagogie des beaux-arts : histoire et principales tendances de développement 25,96 Ko
La tâche du test est de considérer le concept de créativité artistique des enfants, d'identifier les recherches d'enseignants et de psychologues exceptionnels et l'histoire de la formation de la créativité artistique des enfants. Une manifestation de la créativité artistique peut être constituée d'œuvres individuelles - réalisées indépendamment ou sous la direction d'un adulte, de dessins, de modelages, d'art oral et écrit, de mélodies, de dramatisation, de danse, ainsi que de chant choral, de représentations théâtrales, d'art et d'artisanat, de sculpture, théâtre de marionnettes, films dessinés et fictions, et...
6285. Déclarations de contrôle 103,51 Ko
Opérateurs de boucle Les opérateurs de boucle sont utilisés pour organiser des calculs répétés. Pour organiser une boucle, vous avez besoin d'une variable appelée paramètre de boucle ou variable de contrôle de boucle. Tout cycle est constitué : de réglages initiaux ou d'un bloc d'initialisation des paramètres de cycle ; les corps de boucle, c'est-à-dire les instructions exécutées plusieurs fois ; bloc de modification des paramètres de cycle ; vérifier la condition de sortie de la boucle, qui peut être placée soit avant le corps de la boucle, alors on parle de boucle avec une précondition soit après le corps...
2784. Déclarations conditionnelles et de sélection 16 Ko
Opérateur de condition Si. Par conséquent, vous pouvez déjà écrire les opérateurs d'affectation suivants : Koren:=Sqrtxy; Module :=bsxy. Pour implémenter de tels sauts conditionnels dans le langage Pascal, les opérateurs If et Else sont utilisés, ainsi que l'opérateur de saut inconditionnel Goto. Regardons l'instruction If.

Dans un langage de requête SQL occupe une place importante Instruction SELECT, puisque nous l'utilisons pour faire une sélection dans la base de données. Dans cet article, nous examinerons les bases de cette instruction SQL très importante.

Il existe de nombreuses sortes d'articles, de livres, de tutoriels sur SQL sur Internet, mais ils sont tous difficiles pour une personne qui n'a jamais entendu parler de SQL, ou peut-être même de la programmation en général, et donc toutes ces sources sont difficiles pour lui pour étudier. Ici, j'essaie d'expliquer les bases d'un opérateur sans entrer dans les détails ( C'est ce qui rend l'apprentissage difficile, qu'ils passent directement des bases aux requêtes complexes.), il faut donc d'abord apprendre les bases, puis passer à des bases plus complexes, ce qui facilite l'apprentissage du langage SQL. Cet article est parfait pour les débutants qui souhaitent apprendre à écrire des requêtes SQL simples pour récupérer des données.

Qu'est-ce que le langage SQL et l'instruction SELECT

SQL est un langage de requête utilisé pour manipuler (gérer) des données dans des bases de données relationnelles. Il est très populaire et tout informaticien qui se respecte devrait donc connaître les bases de ce langage, puisque presque toutes les entreprises disposent de bases de données.

SÉLECTIONNER– Opérateur du langage SQL, appartient au groupe des opérateurs de manipulation de données ( Langage de manipulation de données, DML) et sert à récupérer des données de la base de données.

Note! Afin d'apprendre le langage SQL et les bases de données, il existe des éditions gratuites spéciales de grands SGBD, par exemple, SQL Server de Microsoft a une édition Express. Vous pouvez lire comment installer ce SGBD dans le matériel - Description de l'installation de Microsoft SQL Server 2016 Express.

Voici l'exemple le plus simple d'utilisation de l'instruction SELECT.

SELECT * FROM Tableau

  • * — afficher toutes les données ;
  • DE - de la source ;
  • Tableau - nom de la source ( dans notre cas le tableau).

Mais, en pratique, souvent on n'a pas besoin de toutes les données du tableau, mais parfois seulement de quelques colonnes ; pour ce faire, on indique simplement le nom de la colonne souhaitée au lieu de * ( ou haut-parleurs), Par exemple:

SELECT Prix FROM Tableau

où Price est le nom de la colonne.

Note! A titre d'exemple, nous utilisons un simple tableau répertoriant les modèles d'ordinateurs, leurs prix et leurs noms.

Si vous devez spécifier plusieurs colonnes, répertoriez-les simplement séparées par des virgules après l'instruction SELECT, par exemple

SELECT prix, nom, modèle FROM Tableau

où, prix, nom, modèle sont des colonnes du tableau.

Condition de sélection – Clause WHERE

Au cours du processus d'échantillonnage, nous devons souvent filtrer les données selon une certaine condition, c'est-à-dire pas toutes les données, mais seulement celles qui remplissent la condition ; dans la construction SELECT, vous pouvez utiliser l'opérateur pour cela .

SELECT prix FROM Tableau WHERE prix > 100

où, OÙ est la condition, c'est-à-dire nous affichons uniquement les lignes qui correspondent à notre condition ( prix supérieur à 100).

Opérateurs de comparaison en SQL

  • « > » – plus que tout ;
  • «<» – меньше чего-нибудь;
  • « = » – égal ;
  • «<>" - inégal;
  • « >= » – supérieur ou égal à ;
  • «<=» – меньше или равно.

Vous pouvez également spécifier un mot-clé dans la condition ENTRE, c'est à dire. si la valeur se situe ou non dans une certaine plage, par exemple

SÉLECTIONNER le prix DEPUIS le tableau OÙ prix ENTRE 400 ET 600

où, nous indiquons que le prix doit être compris entre 400 et 600.

Pour vérifier si la valeur de l'expression testée est incluse dans un ensemble spécifique de valeurs, vous pouvez utiliser un prédicat DANS.

SELECT prix FROM table WHERE prix IN (400, 600)

Dans ce cas, nous souhaitons uniquement obtenir le prix avec un coût de 400 et 600.

Si nous devons obtenir uniquement des chaînes source uniques, nous pouvons spécifier le mot-clé DISTINCT, Par exemple

SELECT prix DISTINCT FROM Tableau WHERE prix > 100

Note! Le langage SQL n'est pas sensible à la casse ; les requêtes peuvent être écrites sur une seule ligne ou divisées en plusieurs. Par exemple, les deux requêtes suivantes sont exactement identiques.

SÉLECTIONNER le prix À PARTIR du tableau

Sélectionnez le prix dans le tableau

Tri ORDER PAR

Très souvent il est nécessaire de trier le résultat d'une requête selon un champ précis ( colonne). Pour ce faire, après la demande nous indiquons la construction COMMANDÉ PAR et ces champs ( peut-être quelques-uns séparés par des virgules) selon lequel vous souhaitez trier.

SELECT prix FROM Table ORDER PAR prix DESC

Ceci est un exemple de tri par ordre décroissant, mais vous pouvez également trier par ordre croissant ; au lieu de DESC, nous écrivons ASC, mais généralement nous ne l'écrivons pas comme ça, puisque le tri ascendant est la valeur par défaut.

Fonctions d'agrégation en SQL

SQL possède des fonctions dites d'agrégation très utiles, à savoir :

  • COMPTER— le nombre de valeurs dans la colonne spécifiée ;
  • SOMME— la somme des valeurs dans la colonne spécifiée ;
  • MOYENNE— la valeur moyenne dans la colonne spécifiée ;
  • MINIMUM— la valeur minimale dans la colonne spécifiée ;
  • MAXIMUM— la valeur maximale dans la colonne spécifiée.

Par exemple, nous devons obtenir le prix moyen d'un ordinateur, maximum et minimum, pour cela nous pouvons écrire la requête suivante

SELECT AVG(prix), MAX(prix), MIN(prix) FROM table

PAR GROUPE

Vous pouvez regrouper les valeurs par colonnes, par exemple, nous devons connaître le prix moyen pour chaque modèle d'ordinateur, dans ce cas la demande sera comme ceci

SELECT modèle, AVG (prix) AS AVGPrice FROM table GROUP BY modèle

Si vous l'avez remarqué, j'ai utilisé le devoir ici " pseudonyme» pour une perception plus pratique des résultats de cette demande, c'est-à-dire après la colonne, écrivez AS et le nom que vous souhaitez afficher dans les résultats.

Tout comme lorsque vous utilisez des conditions dans des colonnes individuelles, vous pouvez également spécifier une condition pour un groupe entier à l'aide de la fonction AYANT. Par exemple, il faut déterminer le prix maximum d'un ordinateur, regroupé par modèles de ces ordinateurs, mais dont le prix maximum est inférieur à 500.

SELECT modèle, MAX (prix) FROM table GROUP BY modèle HAVING MAX (prix)< 500

Dans ce cas, notre demande nous donnera des ordinateurs regroupés par modèle dont le prix maximum est inférieur à 500.

Note! Vous pouvez en savoir plus sur le regroupement en SQL dans ce document.

Valeur NULL en SQL

En SQL, il existe une valeur telle que NULL. En fait, NULL est l'absence de valeur ( ceux. vide). Afin d'afficher toutes les lignes qui contiennent une telle valeur ( par exemple, nous n'avons pas encore fixé de prix pour certains ordinateurs), vous pouvez utiliser la condition suivante.

SELECT * FROM table OÙ le prix EST NULL

Ce qui signifie rechercher toutes les lignes qui n’ont pas de valeur pour le champ prix.

Syntaxe simplifiée de l'instruction SELECT

SÉLECTIONNER<Список полей>ou * , ...] , ...]

La note! Si le langage T-SQL vous intéresse, je vous recommande de lire mon livre « The T-SQL Programmer’s Way », dans lequel je parle en détail, avec de nombreux exemples, des bases du langage Transact-SQL notamment pour les débutants.

C'est tout pour aujourd'hui, nous avons examiné une petite partie du langage SQL, à savoir l'instruction SELECT. Bonne chance!

Brève description des instructions SQL

Travailler avec des instructions SQL

Sélection des données

La sélection de données est l'opération la plus courante effectuée à l'aide de SQL. L'instruction SELECT est l'une des instructions les plus importantes de ce langage, utilisée pour sélectionner des données. La syntaxe de cet opérateur est la suivante :

SELECT liste-colonnes FROM liste-tables

Les instructions SELECT doivent contenir les mots SELECT et FROM ; d'autres mots-clés, tels que WHERE ou ORDER BY, sont facultatifs.

Le mot-clé SELECT est suivi d'informations sur les champs à inclure dans l'ensemble de données résultant. Un astérisque (*) désigne tous les champs du tableau, par exemple :

Pour sélectionner une colonne, utilisez la syntaxe suivante :

SELECT CompanyName Un exemple de sélection de plusieurs colonnes ressemble à ceci :

SELECT CompanyName, ContactName, ContactTitle

Si vous sélectionnez des données dans plusieurs tables et des champs du même nom dans différentes tables, vous devez vous référer aux noms des tables pour identifier complètement les champs inclus dans l'ensemble de données résultant, par exemple :

SELECT Customers.CompanyName, Expéditeurs.CompanyName

OffreDEPUIS

Pour spécifier les noms des tables dans lesquelles les enregistrements sont sélectionnés, utilisez le mot clé FROM, par exemple :

SELECT * FROM Clients

Cette requête renverra tous les champs de la table Clients.

Si nous voulons uniquement les champs CompanyName et ContactName dans l'ensemble de données résultant, nous pouvons saisir la clause SELECT suivante :

SELECT CompanyName, ContactName FROM Clients

Un exemple de requête sur plusieurs tables est donné ci-dessous :

SELECT Customers.CompanyName, Shippers.CompanyName FROM Clients, Expéditeurs

Clause OÙ

Pour filtrer les résultats renvoyés par une instruction SELECT, vous pouvez utiliser une clause WHERE dont la syntaxe est :

OÙ expression1 [(ET | OU) expression2 […]]

Par exemple, au lieu d'obtenir la liste complète des produits, vous pouvez vous limiter uniquement à ceux dont le champ CategoryID est de 4 :

SELECT * FROM Produits WHERE CategoryID = 4

Vous pouvez utiliser diverses expressions dans la clause WHERE, par exemple :

SELECT * FROM Produits OÙ CategoryID = 2 AND SupplierID > 10

SELECT ProductName, UnitPrice FROM Products WHERE CategoryID = 3 OU UnitPrice< 50

SELECT ProductName, UnitPrice FROM Products WHERE Discontinued IS NOT NULL

L'expression 'IS NOT NULL' signifie que la colonne correspondante du jeu de résultats ne peut pas contenir de valeurs vides. La clause WHERE peut utiliser l'un des six opérateurs relationnels définis en SQL. Ces opérateurs sont donnés dans le tableau. 1.

Tableau 1 Description de l'opérateur

< Меньше

<= Меньше или равно

<>Inégal

> Plus

>= Supérieur ou égal à

En plus des opérateurs de comparaison simples répertoriés ci-dessus, vous pouvez également utiliser des opérateurs de comparaison spéciaux indiqués dans le tableau. 2.

Tableau 2 Description de l'opérateur

ALL Utilisé conjointement avec les opérateurs de comparaison lors de la comparaison avec une liste de valeurs

ANY Utilisé conjointement avec les opérateurs de comparaison lors de la comparaison avec une liste de valeurs

ENTRE Utilisé pour vérifier si une valeur se trouve dans un intervalle spécifié (y compris ses limites)

Dans Utilisé pour vérifier si une valeur existe dans une liste

LIKE Utilisé pour vérifier si une valeur correspond à un masque donné

Voici quelques exemples d’utilisation de ces opérateurs. Pour faire correspondre les données avec un masque, utilisez le mot-clé LIKE :

SELECT CompanyName, ContactName FROM Clients WHERE CompanyName LIKE 'M%'

Dans ce masque, le caractère « % » (pourcentage) remplace toute séquence de caractères et le caractère « _ » (trait de soulignement) remplace n'importe quel caractère unique. Le même résultat peut être obtenu de la manière suivante :

SELECT CompanyName, ContactName FROM Customers O CompanyName ENTRE « M » ET « N »

Dans le dernier exemple, nous pouvons étendre la zone de recherche. Plus précisément, lorsque vous recherchez des sociétés dont le nom commence par les lettres A à C, vous pouvez exécuter l'instruction SELECT suivante :

SELECT CompanyName, ContactName FROM Clients O CompanyName ENTRE « A » ET « D »

En utilisant l'opérateur LIKE, nous pouvons affiner la recherche en utilisant un masque de comparaison plus complexe. Par exemple, pour rechercher les entreprises dont le nom contient la sous-chaîne bl, vous pouvez utiliser la requête suivante :

SELECT CompanyName, ContactName FROM Clients WHERE CompanyName LIKE '%bl%'

Le masque '%bl%' indique qu'il peut y avoir n'importe quel nombre de caractères arbitraires avant et après la sous-chaîne recherchée.

À l'aide de l'opérateur IN, vous pouvez spécifier une liste de valeurs qui doivent contenir la valeur d'un champ :

SELECT CompanyName, ContactName FROM Clients WHERE CustomerID IN ('ALFKI', 'BERGS', 'VINET')

Opérateurs et, ou et non

Nous avons déjà examiné un exemple d'utilisation de l'opérateur AND pour des opérations logiques qui nécessitent qu'un enregistrement satisfasse à deux critères différents. Considérez la requête suivante :

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE 'S%' AND Country = 'USA'

Le résultat de cette requête sera une liste de clients situés aux Etats-Unis dont le nom commence par la lettre S.

L'opérateur OR vous permet de sélectionner des enregistrements qui satisfont à au moins une des conditions répertoriées, tandis que l'opérateur NOT est utilisé pour exclure de l'ensemble de données les enregistrements qui satisfont une condition donnée. Par exemple, vous pouvez utiliser l'opérateur OR pour rechercher tous les clients situés en Californie ou dont le nom commence par la lettre S (mais situés n'importe où) :

SELECT CompanyName, ContactName FROM Customers WHERE CompanyName LIKE 'S%' OR Region='CA'

Dans ce cas, l'ensemble de données résultant contiendra des enregistrements dans lesquels la valeur du champ CompanyName satisfait à la première condition, ainsi que tous les enregistrements dans lesquels la valeur du champ Région satisfait à la deuxième condition.

Regardons maintenant un exemple d'utilisation de l'opérateur NOT. Pour exclure certains clients de l'ensemble de données résultant, vous pouvez utiliser une requête telle que :

SELECT CompanyName, ContactName FROM Customers WHERE Country NOT IN (« USA », « UK »)

Suite à l'exécution de cette demande, nous recevrons une liste de clients de tous les pays à l'exception des États-Unis et du Royaume-Uni.

Trier par clause

La clause ORDER BY (facultative) est utilisée pour trier l'ensemble de données résultant sur une ou plusieurs colonnes. Les mots-clés ASC (croissant) ou DESC (décroissant) sont utilisés pour déterminer l'ordre de tri. Par défaut, les données sont triées par ordre croissant. La syntaxe de la clause ORDER BY est :

ORDER BY colonne1 [(ASC | DESC)] [, colonne2 [(ASC | DESC)] [,…]

Par exemple, pour trier les employés par nom puis par prénom, vous utiliserez la requête SQL suivante :

SELECT Nom, Prénom, Titre FROM Employés ORDER BY Nom, Prénom

Si vous souhaitez trier les données par ordre décroissant (par exemple, vous souhaitez lister les produits par ordre décroissant de prix), utilisez le mot-clé DESC :

SELECT ProductName, UnitPrice FROM Produits ORDER BY UnitPrice DESC

Question n°1. SQL et son histoire. 1

Question n°2. Description des instructions SQL de base.. 1

Fonctions arithmétiques. 4

Fonctions de traitement de chaînes. 5

Fonctions spéciales. 6

Fonctions de traitement des dates... 7

Utilisation de fonctions d'agrégation dans les requêtes. 7

Question n°1. SQL et son histoire

Le seul moyen de communication entre les administrateurs de bases de données, les concepteurs, les développeurs et les utilisateurs d'une base de données relationnelle est le langage de requête structuré SQL (Structured Query Language). SQL est un langage complet permettant de manipuler des données dans des bases de données relationnelles. Actuellement, il s'agit d'une interface standard généralement acceptée pour les bases de données relationnelles telles qu'Oracle, Informix, Sybase, DB/2, MS SQL Server et plusieurs autres (normes ANSI et ISO). SQL est un langage non procédural conçu pour traiter des ensembles constitués de lignes et de colonnes de tables de bases de données relationnelles. Bien qu'il existe des extensions qui permettent un traitement procédural. Les concepteurs de bases de données utilisent SQL pour créer tous les objets physiques d'une base de données relationnelle.

Les fondements théoriques de SQL ont été posés dans le célèbre article de Codd, qui a jeté les bases du développement de la théorie des bases de données relationnelles. La première mise en œuvre pratique a été réalisée dans les laboratoires de recherche d'IBM Chamberlin D.D. et Royce R.F. L'utilisation industrielle de SQL a été implémentée pour la première fois dans le SGBD Ingres. L'un des premiers SGBD relationnels industriels est Oracle. Essentiellement, un SGBD relationnel est un logiciel qui gère le fonctionnement d'une base de données relationnelle.

La première norme internationale pour le langage SQL a été adoptée en 1989 (SQL-89). Fin 1992, une nouvelle norme internationale, SQL-92, est adoptée. Actuellement, la plupart des fabricants de SGBD relationnels l’utilisent comme base. Cependant, les travaux de normalisation du langage SQL sont loin d'être terminés et un projet de norme SQL-99 a déjà été élaboré, qui introduit la notion d'objet dans le langage et permet de le référencer dans les instructions SQL : Dans la version originale de SQL il n'y avait pas de commandes de contrôle de flux de données, elles figuraient dans la norme ISO/IEC 9075-5 : 1996, partie supplémentaire SQL récemment adoptée.

Chaque SGBD spécifique possède sa propre implémentation SQL, qui prend généralement en charge une certaine norme, mais possède ses propres caractéristiques. Ces implémentations sont appelées dialectes. Ainsi, la norme 1SO/IEC 9075-5 fournit des objets appelés modules stockés persistants ou modules PSM (Persistent Stored Modules). Dans le SGBD Oracle, l'extension PL/SQL est un analogue de l'extension standard ci-dessus."

Question n°2. Description des instructions SQL de base

SQL consiste en un ensemble de commandes permettant de manipuler des données dans une base de données relationnelle, qui vous permettent de créer des objets de base de données relationnelles, de modifier des données dans des tables (insérer, supprimer, corriger), de modifier les schémas de relations de bases de données, d'effectuer des calculs sur les données, d'effectuer des sélections dans base de données, maintenir la sécurité et l’intégrité des données.

L'ensemble des commandes SQL peut être divisé dans les groupes suivants :

· commandes de définition de données (DDL - Data Defininion Language) ;

· commandes de manipulation de données (DML - Data Manipulation Language) ;

· commandes d'échantillonnage de données (DQL - Data Query Language) ;

· commandes de gestion des transactions ;

· commandes de gestion de données.

Une fois exécutée, chaque commande SQL passe par quatre phases de traitement :

· la phase d'analyse, qui comprend la vérification de la syntaxe des commandes, la vérification des noms des tables et des colonnes dans la base de données et la préparation des données d'entrée pour l'optimiseur ;

· phase d'optimisation, qui comprend le remplacement des noms réels des tables et des colonnes de base de données dans la vue, l'identification des options possibles pour exécuter une commande, la détermination du coût d'exécution de chaque option et la sélection de la meilleure option sur la base de statistiques internes ;

· la phase de génération du code exécutable, qui comprend la construction du code de commande exécutable ;

· la phase d'exécution de la commande, qui consiste à exécuter le code de la commande.

Actuellement optimiseur fait partie intégrante de toute implémentation industrielle de SQL. L'optimiseur fonctionne en collectant des statistiques sur les commandes qu'il exécute et en effectuant des transformations algébriques équivalentes sur les relations avec la base de données. Ces statistiques sont stockées dans le répertoire de la base de données du système. Catalogue système est un dictionnaire de données pour chaque base de données et contient des informations sur les tables, les vues, les index, les colonnes, les utilisateurs et leurs privilèges d'accès. Chaque base de données possède son propre catalogue système, qui représente une collection de tables de base de données prédéfinies.

Le tableau 8.1 contient une liste de commandes SQL selon la norme acceptée, à l'exception de certaines commandes qui ne sont pratiquement pas utilisées dans les dialectes.

Tableau 8.1. Liste typique des commandes SQL

Équipe Description
Commandes pour définir les données d'objet
MODIFIER TABLE Modifie la description de la table (schéma de relation)
CRÉER UN ÉVÈNEMENT Crée un événement de minuterie dans la base de données
CRÉER UN INDICE Crée un index sur la table
CRÉER UNE SÉQUENCE Crée une séquence
CRÉER UN TABLEAU Définit une table
CRÉER UN ESPACE TABLE Créera un tablespace
CRÉER UN DÉCLENCHEUR Crée un déclencheur dans la base de données
CRÉER UNE VUE Définit une vue sur les tables
INDICE DE BAISSE Supprime physiquement un index de la base de données
SÉQUENCE DE DÉPÔT Supprime une séquence
TABLEAU DE DÉPÔT Supprime physiquement une table de la base de données
SUPPRIMER L'ESPACE TABLE Supprime un tablespace
VUE GOUTTE Supprime une vue
Commandes de manipulation de données
SUPPRIMER Supprime une ou plusieurs lignes d'une table de base de données
INSÉRER Insère une ou plusieurs lignes dans une table de base de données
MISE À JOUR Met à jour les valeurs des colonnes dans une table de base de données
Commandes de récupération de données
SÉLECTIONNER Exécute une requête pour récupérer les données des tables et des vues
SYNDICAT Combine les résultats de deux ou plusieurs commandes SELECT en une seule sélection
Commandes de contrôle des transactions
COMMETTRE Termine une transaction et met physiquement à jour l'état actuel de la base de données
RETOUR EN ARRIERE Termine une transaction et renvoie l'état actuel de la base de données au moment de la dernière transaction terminée et du point de contrôle
POINT DE SAUVEGARDE Attribue un point de contrôle dans une transaction
Commandes de gestion des données
MODIFIER LA BASE DE DONNÉES Modifie les groupes de stockage ou les journaux de transactions
Modifier la zone de base de données Modifie la taille des zones de stockage de la base de données
MODIFIER LE MOT DE PASSE Change le mot de passe pour accéder à la base de données
ALTER STOGROUP Modifie la composition des zones de stockage dans un groupe de stockage
VÉRIFIER LA BASE DE DONNÉES Vérifie l'intégrité de la base de données
VÉRIFIER L'INDEX Vérifie l'intégrité de l'index
VÉRIFIER LE TABLEAU Vérifie l'intégrité de la table et de l'index
CRÉER UNE BASE DE DONNÉES Crée physiquement la base de données
CRÉER UNE ZONE DE BDD Crée une zone de stockage de base de données
CRÉER UN STOGROUPE Crée un groupe de stockage
CRÉER UN SYSNONYME Crée un synonyme pour une table ou une vue
DÉSINSTALLER LA BASE DE DONNÉES Rend la base de données inaccessible aux utilisateurs du réseau
SUPPRIMER LA BASE DE DONNÉES Supprime physiquement les bases de données
SUPPRIMER LA ZONE DE DB Supprime physiquement une zone de stockage de base de données
DROP STOGROUP Supprime un groupe de stockage
ACCORDER Définit les privilèges des utilisateurs et le contrôle d'accès à la base de données
INSTALLER LA BASE DE DONNÉES Rend la base de données accessible aux utilisateurs du réseau
VERROUILLER LA BASE DE DONNÉES Verrouille la base de données actuellement active
RÉVOQUER Révoque les privilèges utilisateur et les restrictions d'accès à la base de données
DÉFINIR LE STOGROUP PAR DÉFAUT Définit le groupe de stockage par défaut
DÉVERROUILLER LA BASE DE DONNÉES Libère la base de données actuellement active
MISE À JOUR DES STATISTIQUES Met à jour les statistiques d'une base de données
Autres commandes
COMMENTER Place des commentaires sur la description des objets de base de données dans le catalogue système
CRÉER UN SYNONYME Définit des noms alternatifs pour les tables et les vues de base de données dans le catalogue système
SYNONYME DE GOUTTE Supprime les noms alternatifs pour les tables et les vues de base de données du catalogue système
ÉTIQUETTE Modifie les étiquettes de description du système
COMPTE DE LIGNES Calcule le nombre de lignes dans une table de base de données

L'ensemble des commandes SQL répertoriées dans le tableau n'est pas complet. Cette liste est fournie pour vous donner une idée de ce que SQL peut faire en général. Pour une liste complète des commandes, veuillez vous référer au manuel approprié de votre SGBD spécifique. Rappelons que SQL est le seul moyen de communication pour toutes les catégories d'utilisateurs disposant de bases de données relationnelles.

Fonctions arithmétiques

SQL prend en charge un ensemble complet d'opérations arithmétiques et de fonctions mathématiques pour construire des expressions arithmétiques sur les colonnes de la base de données (+, -, *, /, ABS, LN, SQRT, etc.).

Une liste des principales fonctions mathématiques intégrées est donnée ci-dessous dans le tableau 8.2.

Fonction mathématique Description
ABS(X) Renvoie la valeur absolue d'un nombre X
ACOS(X) Renvoie l'arc cosinus d'un nombre X
ASIN(X) Renvoie l'arc sinus d'un nombre X
ATAN(X) Renvoie l'arctangente de X
COS(X) Renvoie le cosinus d'un nombre X
EXP(X) Renvoie l'exposant d'un nombre X
SIGNE(X) Renvoie -] si X< 0, 0, если X = 0, + 1, если X > 0
LN(X) Renvoie le logarithme népérien d'un nombre X
MOD(X,Y) Renvoie le reste lorsque X est divisé par Y
PLAFOND(X) Renvoie le plus petit entier supérieur ou égal à X
ROND(X,n) Arrondit le nombre X à un nombre avec n places après la virgule
NAS(X) Renvoie le sinus de X
SQRT(X) Renvoie la racine carrée d'un nombre X
BRONZAGE(X) Renvoie la tangente de X
ÉTAGE(X) Renvoie le plus grand entier inférieur ou égal à X
JOURNAL(a,X) Renvoie le logarithme d'un nombre X en base A
SINH(X) Renvoie le sinus hyperbolique de X
COSH(X) Renvoie le cosinus hyperbolique d'un nombre X
TANH(X) Renvoie la tangente hyperbolique de X
TRANC(X.n) Tronque le nombre X en un nombre avec n décimales
PUISSANCE(A,X) Renvoie la valeur de A élevée à la puissance X

L'ensemble des fonctions intégrées peut varier en fonction de la version du SGBD d'un fabricant et également des SGBD de différents fabricants. . Par exemple, dans le SGBD SQLBase, Century Inc. Il existe une fonction @ATAN2(X,Y), qui renvoie l'arctangente de Y/X, mais il n'y a pas de fonction SIGN(X).

Des expressions arithmétiques sont nécessaires pour obtenir des données qui ne sont pas directement stockées dans les colonnes des tables de la base de données, mais dont les valeurs sont requises par l'utilisateur. Supposons que vous ayez besoin d'une liste d'employés indiquant le salaire reçu par chaque employé, y compris les primes et les pénalités.

SÉLECTIONNEZ ENAME, SAL, COMM. FINE, SAL + COMM - FINE

L'expression arithmétique SAL + COMM - FINE est affichée sous la forme d'une nouvelle colonne dans la table de résultats, qui est calculée à la suite de la requête. De telles colonnes sont également appelées attributs dérivés (calculés) ou des champs.

Fonctions de traitement de chaînes

SQL vous offre un large éventail de fonctions pour manipuler les données de chaîne (concaténation de chaînes, CHR, LENGTH, INSTR et autres). Une liste des principales fonctions de traitement des données de chaîne est donnée dans le tableau 8.3.

Tableau 8.3. Fonctions SQL pour le traitement des chaînes

Fonction Description
CHR(N) Renvoie le caractère de code ASCII pour le code décimal N
ASCII(S) Renvoie le code ASCII décimal du premier caractère d'une chaîne
INSTR(S2,SI,pos|,N|) Renvoie la position de la chaîne SI dans la chaîne S2 supérieure ou égale à pos. N - nombre d'occurrences
LONGUEUR(S) Renvoie la longueur d'une chaîne
INFÉRIEUR(S) Remplace tous les caractères d'une chaîne par des caractères majuscules
CAP(S) INIT Définit le premier caractère de chaque mot d'une chaîne en majuscule et les caractères restants de chaque mot en majuscule.
SUBSTR(S,pos,[,len|) Sélectionne une sous-chaîne de longueur dix dans la chaîne S, en commençant à la position pos
SUPÉRIEUR(S) Convertit les lettres majuscules d'une chaîne en lettres majuscules
LPAD(S,N |,A|) Renvoie la chaîne S complétée par des A jusqu'à un maximum de N caractères. Le caractère de remplissage par défaut est l'espace.
RPAD(S,N |,A]) Renvoie la chaîne S complétée à droite par des A jusqu'à un maximum de N caractères. Le caractère de remplissage par défaut est l'espace.
LTRIM(S,|,Sll) Renvoie la chaîne S tronquée à gauche. Les caractères sont supprimés tant que le caractère à supprimer est dans la chaîne - modèle SI (la valeur par défaut est l'espace)
RTRIM(S,|,SI |) Renvoie la chaîne S tronquée à droite. Les caractères sont supprimés tant que le caractère à supprimer est dans la chaîne - modèle S1 (la valeur par défaut est l'espace)
TRADUIT,(SI,S2) Renvoie la chaîne S avec toutes les occurrences de la chaîne SI remplacées par la chaîne S2. Si S.I.<>S2, alors les caractères qui ne correspondent pas sont exclus de la chaîne résultante
REMPLACÉ(SI,|,S2|) Renvoie la chaîne S pour laquelle toutes les occurrences de la sous-chaîne SI sont remplacées par la sous-chaîne S2. Si S2 n'est pas spécifié, alors toutes les occurrences de la sous-chaîne SI sont supprimées de la chaîne résultante S.
NVL(X,Y) Si X est NULL, renvoie Y soit une chaîne, un nombre ou une date, selon le type d'origine de Y

Les noms des mêmes fonctions peuvent différer selon les SGBD. Par exemple, la fonction du SGBD Oracle SUBSTR(S, pos, |, len|) dans le SGBD SQLBase est appelée @SUBSTRING(S, pos, Ien). Le SGBD SQLBase possède des fonctions qui ne sont pas disponibles dans le SGBD Oracle (voir le tableau ci-dessous pour une liste de ces fonctions).

Tableau 8.4. Fonctions de chaîne SQLBase DBMS qui diffèrent des fonctions de chaîne Oracle DBMS

Fonction Description
@EXACT(SI,S2) Renvoie le résultat de la comparaison de deux chaînes
@GAUCHE(S,lcn) Renvoie la sous-chaîne gauche de longueur len
@LONGUEUR(S) Renvoie la longueur d'une chaîne
@MID(S, pos, len) Renvoie une sous-chaîne de la longueur spécifiée, commençant à la position pos
@RÉPÉTITION(S,n) Répète la chaîne S n fois
@REPLACE(SI,pos,len,S2) Remplacer les positions pos len caractères dans la chaîne S2 par des caractères dans la chaîne SI
@DROITE(S,len) Renvoie la sous-chaîne droite de S de longueur len
@SCAN(S,pat) Renvoie la position de la sous-chaîne pat dans la chaîne S
@STRING(X, échelle) Renvoie une représentation symbolique d'un nombre avec l'échelle spécifiée
@TRIM(S) Supprime les espaces à droite et à gauche d'une chaîne
@VALEURS) Convertit la représentation symbolique d'un nombre en une valeur numérique

Vous pouvez utiliser la fonction INITCAP pour vous assurer que, lors de la récupération d'une liste de noms d'employés, les noms de famille commencent toujours par une lettre majuscule et que tous les autres noms sont en majuscule.

SELECTIONNER INITCAP(ENAME)

Fonctionnalités spéciales

SQL fournit un ensemble de fonctions spéciales pour transformer les valeurs des colonnes. Une liste de ces fonctions est donnée dans le tableau 8.5.

Tableau 8.5. Fonctionnalités spéciales

Dans la table EMPLOYEE, vous pouvez saisir un attribut de sexe pour chaque employé - ajoutez une colonne SEX de type CHAR(l) (0 - homme, 1 - femme). Disons que vous avez besoin d'une liste d'employés, ce qui nécessite qu'ils soient divisés par sexe et indiqués sous forme numérique ; alors vous pouvez lancer la commande suivante :

SÉLECTIONNEZ ENAME, LNAME, AGE, " Sol:", TO_NUMBER(SEXE)

A titre d'exemple d'utilisation de la fonction DECODE, nous présentons une requête qui calcule une liste d'employés indiquant leur manager. Si le gestionnaire est inconnu, alors « n'a pas » est affiché par défaut.

SELECT ENAME, DEC0DE(DEPN0, 10, " Dryagin", 20,"Zhilyaeva". 30,"

Korotkov", "n'a pas")

Supposons que le responsable de l'organisation ait une valeur indéfinie pour la colonne DEPNO et, par conséquent, la valeur par défaut fournie dans DECODE fonctionnera pour lui. .