Les opérateurs du langage SQL incluent : Objectif du langage SQL. Opérateurs de manipulation de données

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 pour le 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 disposant 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 système de la base de données. 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 LE TABLEAU 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
UNION 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 ARRIÈRE 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 disponible 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
COMMENTAIRE SUR 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 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 décimales
NAS(X) Renvoie le sinus de X
SQRT(X) Renvoie la racine carrée d'un nombre X
BRONZAGE(X) Renvoie la tangente d'un nombre 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 à 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 garantir 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 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. .


©2015-2019site
Tous les droits appartiennent à leurs auteurs. Ce site ne revendique pas la paternité, mais propose une utilisation gratuite.
Date de création de la page : 2016-08-07

La syntaxe de l'instruction SELECT est la suivante :

SÉLECTIONNER<список атрибутов>/* DEPUIS<список таблиц>

Les crochets indiquent les éléments qui peuvent ne pas être présents dans la demande.

Lister tous les étudiants.

SÉLECTIONNER * PARMI les étudiants

SELECT id_st, nom FROM étudiant

Notez que si vous ajoutez la clause ORDER BY nom de famille à cette requête, la liste sera classée par nom de famille. Par défaut, le tri est supposé se faire par ordre croissant. Si un ordre décroissant est souhaité, le mot DESC est ajouté après le nom de l'attribut.

Afficher une liste des notes qu'un élève a reçues avec le code "1".

Donner une liste de codes pour les étudiants ayant reçu au moins un D ou C aux examens.

Dans la clause WHERE, vous pouvez écrire une expression en utilisant opérateurs arithmétiques comparaisons (<, >, etc.) et des opérateurs logiques (AND, OR, NOT) comme dans les langages de programmation classiques.

Outre les opérateurs de comparaison et les opérateurs logiques permettant de créer des conditions dans le langage SQL (en raison du domaine d'application spécifique), il existe un certain nombre d'opérateurs spéciaux qui, en règle générale, n'ont pas d'analogues dans d'autres langages. Voici les opérateurs :

  • IN – entrée dans un certain ensemble de valeurs ;
  • ENTRE – entrée dans une certaine plage de valeurs ;
  • LIKE – test de correspondance de modèles ;
  • IS NULL – recherche une valeur non définie.

L'opérateur IN est utilisé pour vérifier si une valeur est incluse dans un ensemble. Oui, demande

donne le même résultat que la requête ci-dessus (elle affichera les identifiants de tous les candidats ayant reçu au moins un D ou C aux examens).

Le même résultat peut être obtenu en utilisant l'opérateur BETWEEN :

Listez tous les élèves dont le nom de famille commence par la lettre A.

Dans ce cas, il est pratique d'utiliser l'opérateur LIKE.

L'opérateur LIKE s'applique exclusivement aux champs de caractères et vous permet de déterminer si la valeur d'un champ correspond à un modèle. Le modèle peut contenir des caractères spéciaux :

_ (trait de soulignement) – remplace n'importe quel caractère ;

% (signe de pourcentage) – remplace une séquence de n'importe quel nombre de caractères.

Très souvent, il est nécessaire de calculer les valeurs minimales, maximales ou moyennes dans les colonnes. Par exemple, vous devrez peut-être calculer votre GPA. Pour effectuer de tels calculs, SQL fournit des fonctions d'agrégation:

  • MIN – valeur minimale dans la colonne ;
  • MAX – valeur maximale dans la colonne ;
  • SOMME – la somme des valeurs de la colonne ;
  • AVG – valeur moyenne dans la colonne ;
  • COUNT – le nombre de valeurs non NULL dans la colonne.

La requête suivante calcule la moyenne de tous les scores obtenus par les étudiants aux examens.

SELECT AVG(mark) FROM mark_st

Naturellement, vous pouvez utiliser fonctions d'agrégation avec la clause WHERE :

Cette requête calculera la note moyenne d'un étudiant avec un code de 100 en fonction des résultats de tous les examens qu'il a passés.

Cette requête calculera le score moyen des étudiants en fonction des résultats de réussite de l'examen avec le code 10. En plus des mécanismes évoqués

La base du langage SQL est constituée d'opérateurs, conditionnellement répartis en plusieurs groupes selon les fonctions qu'ils remplissent.

Les groupes d'instructions suivants peuvent être distingués (toutes les instructions SQL ne sont pas répertoriées) :

Instructions DDL (Data Definition Language) - instructions pour définir des objets de base de données

· CREATE SCHEMA - créer un schéma de base de données

· DROP SHEMA - supprime un schéma de base de données

· CRÉER UNE TABLE - créer une table

ALTER TABLE - changer la table

· DROP TABLE - supprimer une table

· CRÉER UN DOMAINE - créer un domaine

ALTER DOMAIN - changer de domaine

· DROP DOMAIN - supprimer un domaine

· CRÉER UNE COLLATION - créer une séquence

· DROP COLLATION - supprimer une séquence

· CRÉER UNE VUE - créer une vue

· DROP VIEW - supprimer une vue

Opérateurs DML (Data Manipulation Language) - opérateurs de manipulation de données

· SELECT - sélectionnez les lignes des tableaux

INSERT - ajouter des lignes au tableau

· MISE À JOUR - modifier les lignes du tableau

· SUPPRIMER - supprimer des lignes dans le tableau

· COMMIT - valider les modifications apportées

· ROLLBACK - annuler les modifications apportées

Opérateurs de protection et de gestion des données

· CRÉER UNE ASSERTION - créer une contrainte

· DROP ASSERTION - supprimer une restriction

· GRANT - accorder des privilèges à un utilisateur ou une application pour manipuler des objets

REVOKE - révoquer les privilèges d'un utilisateur ou d'une application

De plus, il existe des groupes d'opérateurs permettant de définir les paramètres de session, d'obtenir des informations sur la base de données, des opérateurs SQL statiques et des opérateurs SQL dynamiques.

Les plus importantes pour l'utilisateur sont les instructions de manipulation de données (DML).

Exemples d'utilisation d'opérateurs de manipulation de données

INSERT - insertion de lignes dans un tableau

Exemple 1. Insérer une ligne dans un tableau :

VALEURS(4, "Ivanov");

UPDATE - mise à jour des lignes dans une table

Exemple 3. Mettez à jour plusieurs lignes dans un tableau :

SET PNAME = "Pouchnikov"

OÙ P.PNUM = 1 ;

DELETE - suppression de lignes dans un tableau

Exemple 4. Suppression de plusieurs lignes dans un tableau :

OÙ P.PNUM = 1 ;

Exemples d'utilisation de l'instruction SELECT

L'instruction SELECT est en fait l'instruction SQL la plus critique pour l'utilisateur et la plus complexe. Il est destiné à récupérer des données à partir de tables, c'est-à-dire il met en œuvre en fait l’un des principaux objectifs de la base de données : fournir des informations à l’utilisateur.

L'instruction SELECT est toujours exécutée sur certaines des tables qui font partie de la base de données.

Commentaire. En fait, les bases de données peuvent contenir non seulement des tables stockées de manière permanente, mais également des tables temporaires et des vues. Les vues sont simplement des expressions SELECT stockées dans la base de données. Du point de vue de l'utilisateur, une vue est une table qui n'est pas stockée de manière permanente dans la base de données, mais qui « apparaît » lors de son accès. Du point de vue de l'instruction SELECT, les tables persistantes et les tables et vues temporaires se ressemblent exactement. Bien entendu, lorsque le système exécute réellement une instruction SELECT, les différences entre les tables et les vues stockées sont prises en compte, mais ces différences caché de l'utilisateur.


Le résultat d'une instruction SELECT est toujours un tableau. Ainsi, les résultats de l’instruction SELECT sont similaires aux opérateurs de l’algèbre relationnelle. Tout opérateur d'algèbre relationnelle peut être exprimé par une instruction SELECT correctement formulée. La complexité de l'instruction SELECT est déterminée par le fait qu'elle contient toutes les capacités de l'algèbre relationnelle, ainsi que des capacités supplémentaires qui ne sont pas présentes dans l'algèbre relationnelle.

Ordre d'exécution de l'instruction SELECT

Pour comprendre comment est obtenu le résultat de l'exécution d'une instruction SELECT, considérons le schéma conceptuel de son exécution. Ce schéma est purement conceptuel, car il est garanti que le résultat sera le même que s'il était exécuté étape par étape selon ce schéma. En fait, le résultat réel est obtenu par des algorithmes plus sophistiqués qu'un SGBD particulier « possède ».

Étape 1 : Exécution d'une seule instruction SELECT

Si l'opérateur contient les mots-clés UNION, EXCEPT et INTERSECT, alors la requête est divisée en plusieurs requêtes indépendantes, chacune étant exécutée séparément :

Étape 1 (DE). Le produit cartésien direct de toutes les tables spécifiées dans la clause FROM requise est calculé. À la suite de l'étape 1, nous obtenons le tableau A.

Étape 2 (OÙ). S'il y a une clause WHERE dans l'instruction SELECT, alors la table A, obtenue à l'étape 1, est analysée. L'expression conditionnelle donnée dans la clause WHERE est évaluée pour chaque ligne de la table A. Seules les lignes pour lesquelles l'expression conditionnelle renvoie TRUE sont incluses dans le résultat. Si la clause WHERE est omise, passez directement à l'étape 3. Si l'expression conditionnelle implique des sous-requêtes imbriquées, elles sont alors évaluées conformément à ce schéma conceptuel. À la suite de l'étape 2, nous obtenons le tableau B.

Étape 3 (REGROUPER PAR). Si une clause GROUP BY est présente dans l'instruction SELECT, alors les lignes du tableau B obtenues à la deuxième étape sont regroupées selon la liste de regroupement fournie dans la clause GROUP BY. Si la clause GROUP BY est omise, passez directement à l'étape 4. À la suite de l'étape 3, nous obtenons le tableau C.

Étape 4 (AVOIR). Si une instruction SELECT contient une clause HAVING, alors les groupes qui ne satisfont pas à l'expression conditionnelle donnée dans la clause HAVING sont exclus. Si la section HAVING est omise, passez directement à l'étape 5. À la suite de l'étape 4, nous obtenons le tableau D.

Étape 5 (SÉLECTIONNER). Chaque groupe obtenu à l'étape 4 génère une ligne de résultats comme suit. Toutes les expressions scalaires spécifiées dans la clause SELECT sont évaluées. Selon les règles d'utilisation de la clause GROUP BY, ces expressions scalaires doivent être les mêmes pour toutes les lignes de chaque groupe. Pour chaque groupe, les valeurs des fonctions d'agrégation données dans la section SELECT sont calculées. S'il n'y a pas de clause GROUP BY, mais qu'il y a des fonctions d'agrégation dans la clause SELECT, alors il n'y a qu'un seul groupe. S'il n'y a ni clause GROUP BY ni fonctions d'agrégation, alors on suppose qu'il y a autant de groupes que de lignes sélectionnées jusqu'à présent. À la suite de l'étape 5, nous obtenons le tableau E, contenant autant de colonnes qu'il y a d'éléments répertoriés dans la section SELECT et autant de lignes que de groupes sélectionnés.

Étape 2. Exécution des opérations UNION, SAUF, INTERSECT

Si l'instruction SELECT contenait les mots-clés UNION, EXCEPT et INTERSECT, alors les tables issues de la 1ère étape sont fusionnées, soustraites ou recoupées.

Étape 3. Commander le résultat

Si l'instruction SELECT contient une clause ORDER BY, alors les lignes de la table obtenues aux étapes précédentes sont classées conformément à la liste de classement donnée dans la clause ORDER BY.

Table des matières du document

Les fonctions de tout SGBD incluent :

  • créer, supprimer, modifier une base de données (DB) ;
  • ajouter, modifier, supprimer, attribuer des droits d'utilisateur ;
  • saisir, supprimer et modifier des données dans la base de données (tableaux et enregistrements);
  • récupérer des données de la base de données.
Seuls les administrateurs de SGBD ou les utilisateurs privilégiés ont accès aux deux premières fonctions. Voyons comment les deux derniers problèmes sont résolus (en fait, il y en a sept).

Avant de faire quoi que ce soit avec les données, vous devez créer des tables dans lesquelles ces données seront stockées, apprendre à modifier la structure de ces tables et les supprimer si nécessaire. Pour ce faire, le langage SQL dispose des instructions CREATE TABLE, ALTER TABLE et DROP TABLE.

1. Instruction CREATE TABLE

L'instruction CREATE TABLE crée une table avec le nom donné dans la base de données actuelle. Les règles pour les noms de table valides sont données dans la documentation. S'il n'y a pas de base de données actuelle active ou si la table spécifiée existe déjà, la commande échouera.

Dans Mysql version 3.22 et versions ultérieures, le nom de la table peut être spécifié comme nom_base de données.nom_table. Cette forme d'entrée fonctionne indépendamment du fait que la base de données spécifiée soit à jour ou non.

Dans Mysql version 3.23, vous pouvez utiliser le mot-clé TEMPORARY lors de la création d'une table. La table temporaire est automatiquement supprimée à la fin de la connexion et son nom n'est valide que pendant la durée de la connexion. Cela signifie que deux connexions différentes peuvent utiliser des tables temporaires portant le même nom sans entrer en conflit entre elles ou avec une table existante portant le même nom (la table existante est masquée jusqu'à ce que la table temporaire soit supprimée). Dans Mysql 4.0.2, vous devez disposer du privilège CREATE TEMPORARY TABLES pour créer des tables temporaires.

Dans Mysql 3.23 et versions ultérieures, vous pouvez utiliser les mots-clés IF NOT EXISTS pour éviter qu'une erreur ne soit générée si la table spécifiée existe déjà. Il faut tenir compte du fait que l'identité des structures de ces tables n'est pas vérifiée.

Chaque table est représentée par un ensemble de fichiers spécifiques dans le répertoire de la base de données.

1.1. Syntaxe

CRÉER UN TABLEAU
nom_table [(définition_colonne,...)]
[table_options]

L'expression column_definition répertorie les colonnes qui doivent être créées dans la table. Chaque colonne du tableau peut être vide (NULL), avoir une valeur par défaut, être une clé ou s'auto-incrémenter. De plus, pour chaque colonne, le type de données qui y seront stockées doit être indiqué. Si ni NULL ni NOT NULL ne sont spécifiés, alors la colonne est interprétée comme si NULL était spécifié. Si un champ est marqué comme auto-incrémenté (AUTO_INCREMENT), alors sa valeur est automatiquement augmentée de un à chaque fois que des données sont ajoutées à la table et une valeur vide (NULL, c'est-à-dire rien) est écrite dans ce champ.
enregistré) ou 0. Il ne peut y avoir qu’un seul auto-incrémentation dans une table, et il doit être indexé.

1.2. Sous-séquence

AUTO_INCREMENT commence à 1. La présence de l'auto-incrémentation est l'une des fonctionnalités de Mysql. Formellement, la description de la colonne (column_definition) ressemble à ceci :

type nom_colonne

Le type de colonne (saisissez l'expression column_definition) peut être l'un des suivants :

  • entier : INT[(longueur)]
  • réel : RÉEL[(longueur, décimales)]
  • caractère : CHAR(longueur) et VARCHAR(longueur)
  • date et heure : DATE et HEURE
  • pour travailler avec des objets volumineux : BLOB
  • texte : TEXTE
  • ensemble énumérable : ENUM(value1,value2,value3,...) et SET(value1,value2,value3,...)
Pour une liste complète des types, consultez la documentation Mysql.

Au lieu de lister les colonnes et leurs propriétés, une définition de colonne peut spécifier des listes de champs clés et d'index, de contraintes et de vérifications :

CLÉ PRIMAIRE (nom_colonne, ...)


ou

CLÉ [nom_index] (nom_colonne,...)


ou

INDEX [nom_index] (nom_colonne,...)


ou

UNIQUE [nom_index]


ou

TEXTE COMPLET [nom_index]
(nom_colonne_index,...)


ou


CLÉ ÉTRANGÈRE [nom_index]
(nom_colonne_index,...)


ou

CHÈQUE (expr)

Lors de la spécification de tous ces éléments, une liste de champs (colonnes) qui seront inclus dans l'index, la clé ou la contrainte est spécifiée le nom_colonne_indexé s'écrit comme suit :

Nom_colonne [(index_length)]
FOREIGN KEY, CHECK et REFERENCES ne font rien dans Mysql. Ils sont ajoutés uniquement pour des raisons de compatibilité avec d'autres serveurs SQL.

Nous ne nous y attarderons donc pas.

En plus de tout ce qui précède, lors de la création d'une table, vous pouvez spécifier certaines de ses propriétés (table_options), par exemple les suivantes :

  • type de table : TYPE = (BDB | HEAP | ISAM | Inno DB | MERGE | MRG_MYISAM | MYISAM)
  • valeur initiale du compteur auto-incrémenté : AUTO_INCREMENT = nombre
  • longueur moyenne des lignes du tableau : AVG_ROW_LENGTH = nombre
  • commentaires du tableau (chaîne de 60 caractères) : COMMENT = "ligne" nombre maximum et minimum de lignes attendu : MAX_ROWS = nombre et MIN_ROWS = nombre
Et le dernier élément (encore une fois facultatif) de la commande CREATE est l'expression SELECT (select_expression). La syntaxe est :

SÉLECTIONNER...
(toute expression SELECT valide)

Lors de la création d'une table, si vous spécifiez une expression SELECT dans la commande CREATE, alors tous les champs obtenus par la sélection sont ajoutés à la table créée.

Exemple 10.1. Création de la table Personnes

Mysql>CRÉER TABLE Personnes
(identifiant INT CLÉ PRIMAIRE AUTO_INCREMENT,
prénom VARCHAR ( 50 ), nom de famille
VARCHAR( 100 ), date_de_mort INT,
description TEXTE, photo INT,
citoyenneté CHAR ( 50 ) PAR DÉFAUT "Russie");

À l'aide de la commande SHOW spécifique à Mysql, vous pouvez afficher les bases de données existantes, les tables d'une base de données et les champs d'une table.

Afficher toutes les bases de données :

Mysql>AFFICHER les bases de données ;

Rendre la base de données du livre à jour et afficher toutes les tables qu'elle contient :

MySQL>utiliser le livre ;
Mysql>afficher les tables ;


Afficher toutes les colonnes de la table Personnes :

Mysql> afficher les colonnes des personnes ;

2. Instruction DROP TABLE

L'instruction DROP TABLE supprime une ou plusieurs tables. Toutes les données et définitions de table sont supprimées, soyez donc prudent lorsque vous utilisez cette commande.

Syntaxe:

DROP TABLE nom_table
[, nom_table,...]

Dans Mysql version 3.22 et versions ultérieures, vous pouvez utiliser les mots-clés IF EXISTS pour générer une erreur si les tables spécifiées n'existent pas.

Les options RESTRICT et CASCADE facilitent le transfert d'un programme depuis d'autres SGBD. Ils ne sont pas utilisés actuellement.

Mysql> DROP TABLE SI EXISTE Personnes,
Artefacts, test ;

Exemple 10.2. Utilisation de l'instruction DROP TABLE

3. Instruction ALTER TABLE

L'instruction ALTER TABLE offre la possibilité de modifier la structure d'une table existante. Par exemple, vous pouvez ajouter ou supprimer des colonnes, créer ou détruire des index, ou renommer des colonnes ou la table elle-même. Vous pouvez également modifier le commentaire du tableau et son type.

Syntaxe:

ALTER TABLE nom_table
alter_spécification
[, alter_spécification...]

Vous pouvez apporter les modifications suivantes à la table (toutes sont enregistrées dans alter_specification) :

  • ajouter un champ :

AJOUTER définition_colonne
ou
AJOUTER(définition_colonne,
définition_colonne,...)

  • ajout d'index :

ADD INDEX [nom_index] (nom_colonne,...) ou ADD
CLÉ PRIMAIRE (nom_colonne,...) ou AJOUTER UNIQUE
[nom_index] (nom_colonne,...) ou ADD FULLTEXT
[nom_index] (nom_colonne,...)

  • changement de champ :

ALTER nom_colonne (littéral SET DEFAULT | DROP DEFAULT ) ou
MODIFIER old_column_name column_definition ou
MODIFIER la définition_colonne

  • suppression d'un champ, d'un index, d'une clé :

DROP nom_colonne
SUPPRIMER LA CLÉ PRIMAIRE
DROP INDEX nom_index

  • renommer la table :

RENOMMER nouveau_nom_table

  • réorganisation des champs de la table :

Champ COMMANDER PAR
ou
options_table

Si une instruction ALTER TABLE est utilisée pour modifier la définition de type d'une colonne, mais que DESCRIBE nom_table indique que la colonne n'a pas changé, alors Mysql ignore peut-être la modification pour l'une des raisons décrites dans la section dédiée de la documentation. Par exemple, si vous essayez de modifier une colonne VARCHAR en CHAR, Mysql continuera à utiliser VARCHAR si la table en question contient d'autres colonnes de longueur variable.

L'instruction ALTER TABLE crée une copie temporaire de la table d'origine au moment de l'exécution. La modification requise est effectuée sur la copie, puis la table d'origine est supprimée et la nouvelle table est renommée. Ceci est fait pour que toutes les mises à jour, à l'exception de celles qui ont échoué, soient automatiquement incluses dans le nouveau tableau. Pendant l'exécution d'ALTER TABLE, la table source est lisible par d'autres clients.

Les opérations de mise à jour et d'écriture sur cette table sont suspendues jusqu'à ce que la nouvelle table soit prête. Il convient de noter que lors de l'utilisation d'une autre option pour ALTER TABLE autre que RENAME, Mysql créera toujours une table temporaire, même si les données n'ont pas strictement besoin d'être copiées (par exemple, lorsqu'un nom de colonne change).

Exemple 10.3. Ajoutons un champ à la table Personnes créée pour enregistrer l'année de naissance de la personne :

Mysql> ALTER TABLE Personnes
ADD bday INTEGER AFTER nom_nom ;

Exemple 10.3. Ajout d'un champ à la table Personnes pour enregistrer l'année de naissance d'une personne

Nous avons donc appris à travailler avec des tableaux : créez-les, supprimez-les et modifiez-les.

Voyons maintenant comment faire de même avec les données stockées dans ces tables.

4. Instruction SELECT

L'instruction SELECT est utilisée pour récupérer les lignes sélectionnées dans une ou plusieurs tables. C'est-à-dire qu'avec son aide, nous spécifions les colonnes ou expressions qui doivent être récupérées (select_expressions), les tables (table_references) à partir desquelles la sélection doit être effectuée et, éventuellement, la condition (where_definition) que les données de ces colonnes doivent remplir. , et l'ordre dans lequel ces données doivent être émises.

De plus, l'instruction SELECT peut être utilisée pour récupérer des lignes qui ont été calculées sans référence à aucune table. Par exemple, pour calculer à quoi 2*2 est égal, il suffit d’écrire
Mysql> SELECT 2*2 ;

Une structure simplifiée de l'instruction SELECT peut être représentée comme suit :
SELECT expression_sélection1, expression_sélection2,
...

Les crochets signifient que l'opérateur qu'ils contiennent est facultatif ; barre verticale | signifie une liste d’options possibles. Après le mot-clé ORDER BY, indiquez le nom de la colonne, le numéro (entier non signé) ou la formule et la méthode de classement (croissant - ASC ou décroissant - DESC). L'ordre par défaut est croissant.

Lorsque nous écrivons « * » dans select_expression, cela signifie sélectionner toutes les colonnes. En plus de « * », des fonctions comme max, min et avg peuvent être utilisées dans select_expressions.

Exemple 10.4. Sélectionnez dans la table Personnes toutes les données pour lesquelles le champ prénom a la valeur "Alexandre" :

Exemple 10.4. Utilisation de l'instruction SELECT

Sélectionnez le titre et la description de l'artefact numéro 10 :

5. Instruction INSÉRER

L'instruction INSERT insère de nouvelles lignes dans une table existante. L'opérateur dispose de plusieurs formulaires. Le paramètre table_name dans tous ces formulaires spécifie la table dans laquelle les lignes doivent être écrites. Les colonnes pour lesquelles des valeurs sont spécifiées sont précisées dans la liste des noms de colonnes (column_name) ou dans la partie SET.

Syntaxe:


VALEURS (expression,...),(...),...
Cette forme de commande INSERT insère des lignes selon les valeurs exactes spécifiées dans la commande. Les colonnes sont répertoriées entre parenthèses après le nom de la table et leurs valeurs sont répertoriées après le mot-clé VALUES.

Par exemple:

Mysql> INSÉRER DANS Personnes
(nom, anniversaire) VALEURS
("Ivanov", "1934");


insérera une ligne dans la table Personnes dans laquelle les valeurs du nom de famille (last_name) et de la date de naissance (bday) seront définies respectivement comme « Ivanov » et
"1934".
  • INSÉRER
nom_table [(nom_colonne,...)]
SÉLECTIONNER...

Cette forme de la commande INSERT insère des lignes sélectionnées dans une ou plusieurs autres tables.

Par exemple:


insérera dans la table Artefacts dans le champ « auteur » la valeur de l'identifiant sélectionné dans la table Personnes à condition que le nom de famille de la personne soit Ivanov.

    INSÉRER
    nom_table
    SET nom_colonne=expression,
    nom_colonne=expression, ...

Par exemple:

Mysql> INSÉRER DANS Personnes
SET nom_famille="Petrov",
first_name="Ivan";


Cette commande insérera la valeur « Petrov » dans la table Personnes dans le champ nom de famille et la chaîne « Ivan » dans le champ prénom.

Le formulaire INSERT...VALUES avec une liste de plusieurs valeurs est pris en charge dans Mysql version 3.22.5 et versions ultérieures. La syntaxe de l'expression column_name=expression est prise en charge dans Mysql version 3.22.10 et versions ultérieures.

Les accords suivants s'appliquent.

  • Si une liste de colonnes n'est pas spécifiée pour INSERT...VALUES ou INSERT...SELECT, alors les valeurs de toutes les colonnes doivent être spécifiées dans la liste VALUES() ou à la suite de l'opération SELECT. Si l'ordre des colonnes dans une table est inconnu, vous pouvez utiliser DESCRIBE nom_table pour l'obtenir.
  • Toute colonne à laquelle aucune valeur n'est explicitement attribuée sera définie sur sa valeur par défaut. Par exemple, si une liste de colonnes donnée ne spécifie pas toutes les colonnes d'une table donnée, alors les colonnes non mentionnées sont définies sur leurs valeurs par défaut.
  • L'expression peut faire référence à n'importe quelle colonne précédemment incluse dans la liste de valeurs. Par exemple, vous pouvez spécifier ce qui suit :

MySQL>
VALEURS ( 15 ,col1* 2 );

Mais vous ne pouvez pas préciser :

Mysql> INSERT INTO nom_table (col1,col2)
VALEURS(col2* 2 ,15 );

Nous n'avons pas encore abordé trois paramètres facultatifs présents dans les trois formes de commande : LOW_PRIORITY, DELAYED et IGNORE.

Les paramètres LOW_PRIORITY et DELAYED sont utilisés lorsqu'un grand nombre d'utilisateurs travaillent avec la table. Ils exigent qu'une opération donnée soit prioritaire sur les opérations des autres utilisateurs. Si le mot clé LOW_PRIORITY est spécifié, l'exécution de cette commande INSERT sera retardée jusqu'à ce que les autres clients aient fini de lire la table. Dans ce cas, le client doit attendre que la commande insert soit terminée, ce qui peut prendre un temps considérable si la table est fortement utilisée. En revanche, la commande INSERT DELAYED permet au client de poursuivre l'opération immédiatement, quels que soient les autres utilisateurs.

Si le mot-clé IGNORE est spécifié dans la commande INSERT, toutes les lignes comportant des clés PRIMARY ou UNIQUE en double dans cette table seront ignorées et ne seront pas entrées dans la table. Si vous ne spécifiez pas IGNORE, cette opération d'insertion s'interrompt lorsqu'elle rencontre une ligne comportant une valeur en double pour une clé existante.

6. Déclaration de MISE À JOUR

Syntaxe:

L'instruction UPDATE met à jour les valeurs des colonnes de table existantes pour qu'elles correspondent aux valeurs saisies. L'instruction SET spécifie quelles colonnes doivent être modifiées et quelles valeurs doivent y être définies. La clause WHERE, si elle est présente, spécifie quelles lignes sont mises à jour. Sinon, toutes les lignes sont mises à jour. Si une expression ORDER BY est spécifiée, les lignes seront mises à jour dans l'ordre qui y est spécifié.

Si le mot-clé LOW_PRIORITY est spécifié, l'exécution de cette commande UPDATE est retardée jusqu'à ce que les autres clients aient fini de lire la table.

Si le mot-clé IGNORE est spécifié, la commande de mise à jour ne s'abandonnera pas même si une erreur de clé en double se produit. Les lignes provoquant des conflits ne seront pas mises à jour.

La distribution PHP comprend une extension contenant des fonctions intégrées pour travailler avec la base de données Mysql. Dans cette conférence, nous nous familiariserons avec quelques fonctions de base pour travailler avec MySQL, qui seront nécessaires pour résoudre les problèmes de création d'interfaces Web dans le but d'afficher et de remplir la base de données. La question se pose, pourquoi construire de telles interfaces ? Les personnes peu familières avec le langage de requête SQL peuvent saisir des informations dans la base de données et afficher son contenu. Lorsque vous travaillez avec une interface Web, pour ajouter des informations à une base de données, une personne doit simplement saisir ces données dans un formulaire HTML et les envoyer au serveur, et notre script fera le reste. Et pour visualiser le contenu des tableaux, il suffit de cliquer sur le lien et de se rendre sur la page souhaitée.

Pour plus de clarté, nous allons construire ces interfaces pour la table Artefacts, qui contient des informations sur les expositions du musée virtuel d'informatique. Dans la leçon précédente, nous avons déjà présenté la structure de cette collection, ainsi que ses liens avec les collections de descriptions de Personnes et d'Images. Pour rappel, chaque pièce de la collection Artefacts est décrite selon les caractéristiques suivantes :

  • titre (titre);
  • auteur (auteur);
  • description (description);
  • nom alternatif (alternatif);
  • image (photo).
Le titre et le titre alternatif sont des chaînes de moins de 255 caractères (c'est-à-dire qu'ils sont de type VARCHAR(255)), la description est un champ de texte (de type TEXT) et les champs auteur et image contiennent les identifiants de l'auteur. de la collection Personnes et des images de l'exposition de la collection Images, respectivement.

Et au-dessus des données du tableau.

Le langage SQL s'appelle intégré, parce que Il contient les fonctions d'un langage de développement à part entière et se concentre sur l'accès aux données, ce qui fait qu'il fait partie des outils de développement d'applications. Les standards du langage SQL prennent en charge les langages de programmation Pascal, Fortran, COBOL, C, etc.

Existe 2 méthodes pour utiliser Embedded SQL:

  • statique utilisation de la langue ( SQL statique) – le texte du programme contient des appels aux fonctions SQL, qui sont incluses dans le module exécutable après compilation.
  • dynamique utilisation de la langue ( SQL dynamique) – construction dynamique des appels de fonctions SQL et leur interprétation. Par exemple, vous pouvez accéder aux données d'une base de données distante pendant l'exécution du programme.

Le langage SQL (comme d'autres langages permettant de travailler avec des bases de données) est conçu pour préparer et exécuter des requêtes. À la suite de l'exécution d'une requête de données à partir d'une ou plusieurs tables, un ensemble d'enregistrements est obtenu, appelé présentation.

Définition 1

Performance est une table formée à la suite de l’exécution d’une requête.

Opérateurs de base du langage de requête SQL

Les opérateurs du langage SQL sont classiquement divisés en 2 sous-langues:

  1. Langage de définition de données DDL;
  2. Langage de manipulation de données DML.

Dans le tableau, ils sont marqués d'un * opérateurs spécifiques langue.

Examinons les instructions SQL les plus importantes.

    Déclaration de création de table :

    Le nom de la table en cours de création et le nom d'au moins une colonne (champ) sont des opérandes obligatoires. Pour le nom de la colonne, vous devez spécifier le type de données qui y seront stockées.

    Pour les champs individuels, vous pouvez spécifier des règles supplémentaires pour contrôler les valeurs qui y sont saisies. Par exemple, PAS NUL indique que le champ ne peut pas être vide et doit être rempli avec une valeur.

    Exemple 1

    Pour créer un tableau livres catalogue de livres, qui contient les champs :

    taper– type de livre,

    nom- le titre du livre,

    prix– prix du livre

    la déclaration pourrait ressembler à ceci :

    Opérateur pour changer la structure de la table :

    Lors de la modification de la structure du tableau, vous pouvez ajouter ( AJOUTER), changement ( MODIFIER) ou supprimer ( BAISSE) une ou plusieurs colonnes du tableau. Les règles d'enregistrement de cet opérateur sont les mêmes que pour l'opérateur CRÉER UN TABLEAU. Pour supprimer une colonne, vous n'avez pas besoin de la spécifier.

    Exemple 2

    Pour ajouter à un tableau livres champs nombre, dans lequel sera stocké le nombre de livres, vous pouvez écrire l'opérateur :

    Opérateur de dépose de table :

    Exemple 3

    Par exemple, pour supprimer une table existante nommée livres il suffit d'utiliser l'opérateur :

    Opérateur de création d'index :

    L'opérateur crée un index sur une ou plusieurs colonnes d'une table donnée, ce qui peut accélérer les opérations de requête et de recherche. Plusieurs index peuvent être créés pour une table.

    Option facultative UNIQUE est chargé de garantir que les valeurs de toutes les colonnes spécifiées dans l'instruction sont uniques.

    A.S.C. définit les valeurs dans les colonnes à trier automatiquement par ordre croissant (par défaut), et DESC– par ordre décroissant.

    Opérateur de suppression d'index :

    Opérateur de création de vue :

    Lorsque vous créez une vue, vous n'avez pas besoin de spécifier des noms de colonnes. Ensuite, les noms de colonnes de la requête, décrite par l'opérateur correspondant, seront utilisés SÉLECTIONNER.

    Afficher l'opérateur de suppression :

    Opérateur de sélection d'enregistrement :

    Opérateur SÉLECTIONNER effectue un échantillonnage et des calculs sur les données d'une ou plusieurs tables. Le résultat de l'exécution de l'opérateur est une table de réponses qui contient ( TOUS) ou ne contient pas ( DISTINCT) des lignes qui se répètent.

    Opérande DEPUIS contient une liste de tables à partir desquelles les enregistrements sont extraits pour la sélection des données.

    Opérateur de modification d'enregistrement :

    Les nouvelles valeurs de champ dans les enregistrements ne peuvent pas contenir de valeurs ( NUL) ou calculé selon une expression arithmétique.

    Opérateur d'insertion de nouveaux enregistrements :

    Dans la première fiche opérateur INSÉRER Les nouveaux enregistrements sont saisis avec les valeurs spécifiées dans les colonnes.

    Dans la deuxième fiche opérateur INSÉRER de nouvelles lignes sont saisies, sélectionnées dans une autre table via une clause SÉLECTIONNER.

    Opérateur de suppression d'enregistrement :

    À la suite de l'exécution de l'opérateur, les lignes qui satisfont à la condition spécifiée par l'opérande facultatif sont supprimées de la table spécifiée. . Si l'opérande n'est pas spécifié, tous les enregistrements de la table sont supprimés.



Des questions ?

Signaler une faute de frappe

Texte qui sera envoyé à nos rédacteurs :