Conditions de l'opérateur SQL. Opérateurs de langue de base SQL

Question numéro 1. SQL et son histoire. une

Question Numéro 2. Description des principales déclarations SQL .. 1

Fonctions arithmétiques. quatre

Fonctions de traitement de ligne. cinq

Fonctions spéciales. 6

Caractéristiques du traitement de la date. 7

Utilisez des fonctions agrégées dans les requêtes. 7.

Question numéro 1. SQL et son histoire

Le seul moyen de communication et d'administrateurs de bases de données, de concepteurs et de développeurs, et les utilisateurs ayant une base de données relationnelle est une requête SQL structurée de langage (langage de requête structuré). SQL dispose d'une langue de manipulation de la langue complète 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 que Oracle, Informix, Sybase, DB / 2, MS SQL Server et un certain nombre d'autres (normes ANSI et ISO). SQL est un langage non rentable destiné aux ensembles de traitement constitués de lignes et de colonnes des tables de base de données relationnelles. Bien qu'il y ait des extensions qui permettent le traitement de la procédure. Les concepteurs de base de données utilisent SQL pour créer tous les objets physiques de la base de données relationnelle.

Les bases théoriques de SQL ont été posées dans le code bien connu du code, qui a commencé le 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 IBM Chamberlin D.D.. et Royce R.f. L'utilisation industrielle de SQL a été mise en œuvre pour la première fois dans Ingres SGMS. L'un des premiers SGBD relationnels industriels est Oracle. En substance, le SGBD relationnel est un logiciel qui gère le fonctionnement de la base de données relationnelle.

La première langue internationale SQL SQL a été adoptée en 1989 (SQL-89). À la fin de 1992, une nouvelle norme internationale SQL-92 a été adoptée. Actuellement, la plupart des fabricants de SGBD relationnels l'utilisent comme une base de base. Cependant, le travail de normalisation de la langue SQL est loin d'être achevé et a déjà mis au point un projet de la norme SQL-99, qui introduit le concept d'un objet à la langue de la langue et vous permet de faire référence à des opérateurs SQL: dans la source SQL Version, il n'y avait pas de commandes de contrôle de flux de données, elles sont apparues dans le nouvel accepté Standard ISO / CEI 9075-5: 1996 une partie supplémentaire de SQL.

Chaque SGBD spécifique est conforme à sa propre mise en œuvre SQL, dans son ensemble, en appuyant une certaine norme, mais ayant ses propres caractéristiques. Ces implémentations sont appelées dialectes. Ainsi, la norme 1SO / CEI 9075-5 fournit des objets appelés modules constamment stockés ou modules PSM (modules stockés persistants). Dans le SGBR Oracle, l'extension Pl / SQL est analogue de l'extension ci-dessus de la norme. "

Question Numéro 2. Description des opérateurs SQL principaux

SQL consiste en un ensemble de commandes de manipulation de commandes dans une base de données relationnelle, qui vous permet de créer des objets de base de données relationnels, de modifier les données dans les tableaux (Insérer, supprimer, corriger), modifier les circuits de relation de base de données, effectuer des calculs sur les données, Faites des échantillons de la base de données, maintenez la sécurité et l'intégrité des données.

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

· Commandes de définition de données (DDL - Langue de définition de données);

· Commandes de manipulation de données (DML - Langue de manipulation de données);

· Commandes d'échantillonnage de données (langage de requête DQL - DATA);

· Commandes de contrôle des transactions;

· Commandes de gestion de données.

Lors de l'exécution de chaque commande SQL transmet quatre phases:

· Le palaus de l'analyse syntaxique, qui inclut la vérification de la commande Syntaxe, la vérification des noms de table et des colonnes de la base de données, ainsi que la préparation des données source de l'optimiseur;

· Phase d'optimisation comprenant une substitution de noms de table valides et de colonnes de base de données en représentation, identification options possibles Exécution de la commande, déterminant le coût d'exécution de chaque option, sélectionnez meilleure option basé sur des statistiques internes;

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

· Une phase d'exécution de la commande qui inclut l'exécution du code de commande.

Actuellement Optimiseur est un partie de Toute implémentation industrielle SQL. Le travail d'optimisation est basé sur la collecte de statistiques sur les commandes exécutées et l'exécution de transformations algébriques équivalentes avec les relations de base de données. De telles statistiques sont stables dans le répertoire système de base de données. Catalogue de systèmes Ce 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 répertoire système, qui représente un ensemble de tables de base de données prédéfinies.

Le tableau 8.1 contient une liste de commandes SQL conformément à norme adoptéeSauf que certaines des équipes ne sont pratiquement pas utilisées dans les dialectes.

Tableau 8.1. Liste de commandes SQL typique

Équipe La description
Commandes de définition de données d'objet
Modifier table Modifications Description de la table (schéma de relations)
Créer un évènement Crée un événement de minuterie dans la base de données
Créer index Créer un index pour une table
Créer une séquence Crée une séquence
Créer une table Définit la table
Créer des espaces de table. Créer une table
Créer un déclencheur. Crée un déclencheur dans la base de données
Créer une vue. Détermine la vue sur les tables
Index Supprime physiquement l'index de la base de données
Séquence de goutte Supprime la séquence
Table de goutte Supprime physiquement une table de la base de données
Drop Tablepace. Supprime l'espace de la table
Vue de goutte. Supprime la vue
Commandes de manipulation danoise
Effacer. Supprime une ou plusieurs lignes de la table de base de données
Insérer. Insère une ou plusieurs lignes dans la table de base de données
Mettre à jour. Mise à jour des valeurs des haut-parleurs dans la table de base de données
Commandes d'échantillonnage de données
SÉLECTIONNER Effectue une demande de sélection de données à partir de tables et de vues
syndicat Combine dans un seul échantillon des résultats de l'exécution de deux ou plusieurs commandes de sélection
Commandes de gestion des transactions
S'ENGAGER. Complète la transaction et actualise physiquement l'état actuel de la base de données
Retour en arriere Complète la transaction et renvoie l'état actuel de la base de données au moment de la dernière transaction terminée et le point de contrôle
Sauvegarde de sauvegarde. Attribue un point de contrôle dans une transaction
Commandes de gestion de données
Modifier la base de données. Modifie les groupes de stockage ou les journaux de transaction
Alter Dbarea. Modifie la taille des zones de stockage de base de données
Modifier le mot de passe. Modifie le mot de passe pour accéder à la base de données
Alter Stogroupe Modifie la composition des zones de stockage dans le groupe de stockage
Vérifiez la base de données. Vérifie l'intégrité de la base de données
Indice de contrôle Vérifie l'intégrité de l'index
Table de chèque Vérifie l'intégrité de la table et de l'index
Créer une base de données. Crée physiquement une base de données
Créer Dbarea. Crée une zone de stockage de base de données
Créer un stogroup Crée un groupe de stockage
Créer un synonyme. Crée un synonyme pour une table ou une représentation
Dinsoints de la base de données. Est-ce que la base de données n'est pas utilisateurs abordables réseau informatique
Drop Base de données. Supprime physiquement les bases de données
Drop Dbarea. Supprimer physiquement la zone de stockage de la base de données
Goutte stogroupe Supprime un groupe de stockage
ACCORDER. Détermine les privilèges des utilisateurs et distinguant l'accès à la base de données
Installer la base de données. Donne une base de données disponible pour informer les utilisateurs
Base de données de verrouillage. Bloque la base de données active actuelle
Révoquer Annule les privilèges utilisateur et désarmer l'accès à la base de données
Définir la pagroupe par défaut Définit le groupe de stockage par défaut
Déverrouillez la base de données. Efface la base de données active actuelle
Mettre à jour la statistique Mises à jour Statistiques pour la base de données
Autres équipes
Commenter. Messages dans le catalogue système Commentaires sur la description des objets BD
Créer synonyme. Définit les noms alternatifs pour les tables et les bases de données dans le répertoire système
Drop Synonyme. Supprime les noms alternatifs pour les tables et les vues de la base de données à partir du répertoire système
Étiqueter Modifications Tags descriptions de système
RowCount. Calcule le nombre de lignes dans la table de base de données

L'ensemble de commandes SQL répertoriés dans le tableau n'est pas terminé. Cette liste vous est donnée, faites une impression de capacités SQL dans son ensemble. Pour obtenir liste complète Les commandes doivent se référer au manuel approprié pour un SGBD spécifique. Il convient de rappeler que SQL est le seul moyen de communication de toutes les catégories d'utilisateurs avec des bases de données relationnelles.

Fonctions arithmétiques

SQL soutient ensemble complet Opérations arithmétiques et fonctions mathématiques pour la construction d'expressions arithmétiques sur les colonnes de base de données (+, -, *, /, ABS, LN, SQRT, etc.).

La liste des fonctions mathématiques intégrées intégrées est indiquée ci-dessous dans le tableau 8.2.

Fonction mathématique La description
ABS (x) Retourne la valeur absolue du nombre x
ACOS (x) Retourne le numéro arckosinus x
Asin (x) Retourne des chiffres arksinus x
Atan (x) Retourne le numéro arcthannx x
Cos (x) Retourne les chiffres cosinus x
Exp (x) Renvoie l'exposant du nombre x
Signe (x) Retourne -], si x< 0, 0, если X = 0, + 1, если X > 0
Ln (x) Retourne le logarithme naturel du x
Mod (x, y) Retourne le solde de la division x sur y
CEIL (x) Retourne le plus petit tout, plus ou égal x
Rond (x, n) Arrondit le nombre x au nombre avec n signes après un point décimal
Péché (x) Retourne les nombres sinus x
Sqrt (x) Retourne la racine carrée du nombre x
Tan (x) Retourne le numéro tangent x
Étage (x) Retourne le plus grand entier, plus petit ou égal x
Journal (A, X) Retourne le logarithme du x sur la base de
Sinh (x) Retourne le numéro de sinus hyperbolique x
Cosh (x) Renvoie le nombre de cosinus hyperboliques x
Tanh (x) Retourne le numéro de tangent hyperbolique x
Tranc (x.n) Comptez le numéro X au numéro avec Mar signes après un point décimal
Pouvoir (a, x) Renvoie la valeur A, érigée au degré de x

L'ensemble des caractéristiques intégrées peut varier en fonction de la version du DBMS d'un fabricant et de la SGBM de différents fabricants. . Donc, par exemple, dans le SQLBASE DBMS, Centure Inc. Il y a une fonction @ Atan2 (x, y), qui retourne l'arctangent Y / x, mais il n'y a pas de signe de fonction (x).

Les expressions arithmétiques sont nécessaires pour obtenir des données qui ne sont pas enregistrées directement dans les colonnes de la table de base de données, mais dont les valeurs sont nécessaires pour l'utilisateur. Supposons que vous ayez besoin d'une liste d'employés indiquant le paiement que chaque employé a reçu en tenant compte des primes et des amendes.

Sélectionnez Ename, Sal, Comm. Fine, Sal + Comm - Fine

L'expression arithmétique SAL + COMM-FINE est affichée sous forme de nouvelle colonne dans la table résultante, qui est calculée à la suite de l'exécution de la requête. Ces colonnes sont encore appelées Dérivés (calculés) attributs ou des champs.

Fonctions de traitement de ligne

SQL vous fournit une large gamme de fonctions de manipulation avec des données de chaîne (concaténation de chaînes, de chr, de longueur, d'instruments et d'autres). La liste des fonctions de base pour le traitement des données de chaîne est donnée dans le tableau 8.3.

Tableau 8.3. Fonctions SQL pour le traitement des lignes

Une fonction La description
Chr (n) Renvoie le symbole du code ASCII pour le code décimal n
ASCII (S) Retourne le code ASCII décimal du premier code de symbole de chaîne
Instr (S2, SI, POS |, N |) Retourne la position SI String dans la chaîne S2 supérieure ou égale à pos. N - le nombre d'occurrences
Longueur (s) Retourne la longueur de la chaîne
Basse (s) Remplace tous les caractères de chaîne pour les caractères de capital
Initcap (s) Définit le premier symbole de chaque mot dans la ligne du titre et les symboles restants de chaque mot - sur la capitale
Substr (S, POS, [, LEN |) Il met en évidence la longueur de la ligne longue dure dix, à partir de la position postale
Haut (s) Convertit lettres majuscules Dans la rangée sur des lettres majuscules
LPAD (S, N |, A |) Renvoie la chaîne S, complétée sur les symboles de gauche A au nombre de caractères N. Symbole par défaut - Espace
RPAD (S, N |, A]) Renvoie une chaîne S, complétée sur les symboles de droite A au nombre de caractères N. Symbole de remplissage par défaut - Espace
Ltrim (s, |, sll) Retourne la chaîne gauche tronquée S. Symboles sont supprimées jusqu'à ce que le symbole retiré soit inclus dans la chaîne - Modèle SI (Space par défaut)
Rtrim (s, |, si |) Renvoie une ligne de droite tronquée S. Symboles sont supprimés jusqu'à ce que le symbole retiré soit inclus dans la chaîne - Template S1 (espace par défaut)
Traduit, (si, s2) Renvoie une chaîne S, dans laquelle toute la saisie de la ligne SI est remplacée par la chaîne S2. Si SI<>S2, puis symboles qu'aucune correspondance n'est exclue de la chaîne résultante
Remplacé (SI, |, S2 |) Retourne la chaîne S, pour laquelle toutes les entrées de la sous-chaîne SI sont substituées sur la substitution S2. Si S2 n'est pas spécifié, toutes les sous-chaînes de saisie SI sont supprimées de la chaîne résultante S
Nvl (x, y) Si X est , il retourne à Y ou à une chaîne ou à un numéro ou à une date en fonction du type source Y

Les noms des mêmes et des mêmes fonctions peuvent différer dans divers SGBD. Par exemple, la fonction du Substr de l'oracle (S, POS, |, LEN |) DBMS dans la SQLBASE SGMS s'appelle @Substring (S, POS, IEN). Le SQLBASE SGMS a des fonctions qui ne figurent pas sur le DBMS Oracle (voir le tableau ci-dessous, qui fournit une liste de telles fonctions).

Tableau 8.4. Fonctions de chaîne de SQLBASE SGMS, diffère des fonctions de chaîne du SGBR Oracle

Une fonction La description
@Exact (SI, S2) Renvoie le résultat de la comparaison de deux lignes
@Left (S, LCN) Retourne la sous-chaîne longue gauche
@Length (s) Retourne la longueur de la chaîne
@Mid (s, pos, len) Renvoie la sous-chaîne de la longueur spécifiée, à partir de la position POS
@Repeat (S, N) Répète la chaîne s n fois
@Replace (Si, pos, len, s2) Remplacez les positions POS pour les caractères LEN dans les symboles S2 String S2
@Right (s, len) Renvoie la droite Substring S Long Len
@Scan (S, PAT) Retourne la position de la sous-chaîne de PAT en ligne
@String (x, échelle) Renvoie la vue de caractère du numéro avec l'échelle d'échelle spécifiée
@Trim (s) Supprime les espaces dans la rangée à droite et à gauche
@Valeurs) Convertit une représentation symbolique du nombre en une valeur numérique

Vous pouvez utiliser la fonction initcap pour que lors de la réception d'une liste de noms des noms de famille a toujours commencé avec lettre capitaleEt tous les autres étaient en majuscule.

Sélectionnez InitCap (Ename)

Fonctions spéciales

SQL fournit un ensemble de fonctions spéciales pour les conversions des valeurs des haut-parleurs. Une liste de telles fonctions est indiquée dans le tableau 8.5.

Tableau 8.5. Fonctions spéciales

Dans la table des employés pour chaque employé, vous pouvez entrer un signe de plancher - ajouter le type de colonne de sexe Char (L) (0 - Homme, 1 - Femme). Supposons que vous ayez besoin d'une liste d'employés dans lesquels ils doivent les diviser sur la base du plancher l'indiquant dans un format numérique; Ensuite, vous pouvez demander la commande suivante:

Sélectionnez Ename, LNAME, Age, " Étage: ", To_number (sexe)

À titre d'exemple d'utilisation de la fonction TheDecode, voir la demande, calculant la liste des employés avec l'indication de leur chef. Si la tête est inconnue, il est affiché par défaut "ne" pas ".

Sélectionnez Ename, Dec0de (Depn0, 10, " Diryagin ", 20,"Zhilyaev". 30,"

Korotkov", "Ne fait pas")

Supposons que le chef de l'organisation ait une valeur indéfinie de la colonneDepno et, par conséquent, la valeur par défaut fonctionnera pour celui-ci fourni par VDecode .


© 2015-2019 Site
Tous droits à appartenir à leurs auteurs. Ce site ne prétend pas à la paternité, mais fournit une utilisation gratuite.
Page de création de page: 2016-08-07

Table des matières

Caractéristiques Tout SGBD incluait:

  • création, suppression, modification de la base de données (base de données);
  • ajouter, changer, supprimer, attribuer des droits d'utilisateur;
  • établir, supprimer et modifier des données dans la base de données (tableaux et enregistrements);
  • Échantillonnage des données de la base de données.
Seuls les administrateurs DBMS ou les utilisateurs privilégiés ont accès aux deux premières fonctions. Considérez comment les deux dernières tâches sont résolues (en fait, il s'agit de sept tâches).

Avant de faire quelque chose avec les données, vous devez créer des tables dans lesquelles ces données seront stockées, apprendrez à modifier la structure de ces tables et à les supprimer si nécessaire. Pour ce faire, dans SQL, il y a une table, des opérateurs de table d'alter et de table.

1. Créer un opérateur de table

L'opérateur de table Create crée une table avec un nom spécifié dans la base de données actuelle. Les règles de noms de table acceptables sont fournies dans la documentation. S'il n'y a pas de base de données actuelle active ou que le tableau spécifié n'existe déjà, l'erreur d'exécution de la commande se produit.

Dans la version de MySQL 3.22 et ultérieure, le nom du tableau peut être spécifié comme nom_ame_d_name. Cette forme d'enregistrement fonctionne, que la base de données spécifiée soit actuelle.

Dans la version MySQL 3.23, lors de la création d'une table, vous pouvez utiliser le mot-clé temporaire. La table temporaire est automatiquement supprimée à la fin du composé et son nom n'est valide que pendant cette connexion. Cela signifie que dans deux connexions différentes, des tables temporaires peuvent être utilisées avec les mêmes noms sans conflit entre eux ou avec une table existante avec le même nom (la table existante est masquée jusqu'à ce que la table temporaire soit supprimée). Dans la version de MySQL 4.0.2 pour créer des tables temporaires, vous devez disposer des privilèges de créer des tables temporaires.

Dans la version MySQL 3.23 et plus tard, vous pouvez utiliser les mots-clés si cela ne dépasse pas de manière à ce que l'erreur ne se produise pas si le tableau spécifié existe déjà. Il convient de garder à l'esprit 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 base de données.

1.1. Syntaxe

Créer une table
Name_table [(définition_stolbets, ...)]
[Options_Tables]

Dans l'expression, la définition de la piste est répertorie quelles colonnes doivent être créées dans le tableau. Chaque colonne de table peut être vide (NULL), pour avoir une valeur par défaut, être une clé ou une auto-accord. De plus, pour chaque colonne indique nécessairement le type de données qui sera stocké. Si ni NULL ni NON NULL n'est spécifié, la colonne est interprétée comme si NULL est indiquée. Si le champ est étiqueté comme auto-incrément (auto_incrènement), sa valeur augmente automatiquement par une fois que les données sont ajoutées à la table et que la valeur vide est écrite dans ce champ (NULL, I.E. rien
Enregistré) ou 0. Incrément automatique dans le tableau ne peut être que l'un, et en même temps, il doit être indexé.

1.2. Séquence

Auto_incrènement commence par 1. La présence d'auto-incrément est l'une des caractéristiques de MySQL. Formellement, la description de la colonne (définition_tolbets) ressemble à ceci:

nom de type type_stolb

Type de colonne (type d'expression définition_tolbets) peut être l'une des opérations suivantes:

  • entier: int [(longueur)]
  • valable: réel [(longueur, décimales)]
  • symbolique: Char (longueur) et Varchar (longueur)
  • date et heure: date et heure
  • travailler avec de gros objets: blob
  • texte: Texte
  • lISTE: ENUM (valeur1, valeur2, valeur3, ...) et set (valeur1, valeur2, valeur3, ...)
Types complets de types Voir la documentation MySQL.

Au lieu de répertorie les colonnes et leurs propriétés dans la définition de_stolbits, vous pouvez définir des listes de champs, limitations et vérification de la clé et de l'index:

Touche principale (nom_name_stolbets, ...)


ou alors

Touche [Nom_Name] (nom_name_stolbets, ...)


ou alors

Index [Nom_Name] (nom_name_stolbets, ...)


ou alors

Unique [nom_intex]


ou alors

Fulltext [Nom_Name]
(nom_name_stolbets, ...)


ou alors


Touche étrangère [Nom_Name]
(nom_name_stolbets, ...)


ou alors

Chèque (expr)

Lorsque vous spécifiez tous ces éléments, la liste des champs (colonnes), qui seront incluses dans l'index, la clé ou la limite, le nom_name_stolb est écrit comme suit:

Nom long-roll [(longueur_index)]
La clé étrangère, la vérification et les références sont réellement effectuées dans MySQL. Ils sont ajoutés uniquement à la compatibilité avec d'autres serveurs SQL.

Par conséquent, nous ne nous arrêterons pas sur eux.

En plus de la liste énumérée, lors de la création d'une table, vous pouvez spécifier certaines de ses propriétés (Options_Table), par exemple, telles que:

  • type de table: Type \u003d (BDB | HEP | ISAM | Inno DB | Fusion | Mrg_myisam | Myisam)
  • la valeur initiale du compteur automatique: auto_incrènement \u003d nombre
  • la longueur moyenne de la chaîne dans le tableau: avg_row_length \u003d numéro
  • commentaires sur la table (ligne de 60 caractères): Commentaire \u003d "rangée" maximum et nombre minimum Nombre estimé de lignes: max_rows \u003d numéro et min_rows \u003d numéro
Et ce dernier (encore facultatif) L'élément de commande Créer est l'expression sélectionnée (SELECT_PER). La syntaxe est:

Sélectionnez ...
(toute expression de sélection correcte)

Si lors de la création d'une table dans la commande Créer, l'expression sélectionnée est spécifiée, puis tous les champs obtenus par la sélection sont ajoutés à la table créée.

Exemple 10.1. Créer une table des personnes

Mysql\u003e créer des personnes de table
(ID int clé primaire Auto_Increment,
First_Name Varchar ( 50 ), Nom de famille.
Varchar ( 100 ), dieth_date int,
Description Texte, Photo Int,
Citiship Char ( 50 ) Défaut "Russie");

Avec la commande show spécifique MySQL, vous pouvez afficher des bases de données existantes, des tables dans la base de données et des champs de la table.

Afficher toutes les bases de données:

MySQL\u003e montrer des bases de données;

Faites la base de données actuelle du livre et affichez toutes les tables de la table:

Mysql\u003e utiliser un livre;
Mysql\u003e show tables;


Afficher toutes les colonnes de la table des personnes:

Mysql\u003e montrer des colonnes de personnes;

2. Opérateur de table Drop

L'opérateur de table de chute supprime une ou plusieurs tables. Toutes les données et définitions tabulaires sont supprimées, alors lorsque vous travaillez avec cette commande doit être prise en charge.

Syntaxe:

Drop Table Nom_table
[, Name_table, ...]

Dans la version mySQL 3.22 et ultérieure, vous pouvez utiliser les mots-clés si vous n'existaient pas l'erreur si les tables spécifiées n'existent pas.

Les options de restriction et de cascade vous permettent de simplifier le transfert du programme à partir d'autres SGDM. Pour le moment, ils ne sont pas impliqués.

MySQL\u003e Table de chute si elle existe des personnes,
Artefacts, test;

Exemple 10.2. Utilisation de l'opérateur de table DROP

3. Alter Table Operateur

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

Syntaxe:

ALTER TABLE NAME_TABLE
alter_specification
[, alter_specification ...]

Vous pouvez apporter les modifications suivantes dans le tableau (tous sont enregistrés dans alter_specification):

  • ajout d'un champ:

Ajouter définition_stolbets
ou alors
Ajouter (définition_
définition_stolbets, ...)

  • ajout d'index:

Ajouter index [Nom_Name] (nom_name_stolbets, ...) ou ajouter
Touche principale (nom_name_stolbets, ...) ou ajoutez unique unique
[Nom_dex_] (nom_name_stolbets, ...) ou ajoutez FullText
[Nom_Name] (nom_name_stolbets, ...)

  • changement de champ:

Alter_stolbet_name (définissez le littéral par défaut | Drop Drop Default) ou
Changer old_im_stolbets définition_stolbets ou
Modifier définition_stolbets

  • suppression du champ, index, clé:

Drop name_stolbets
Drop Primary Key.
Drop Index Name_index

  • rename Table:

Renommer NEW_IMI_TABLE

  • champs de table de réorganisation:

Commander par champ
ou alors
Options_tables

Si l'instruction Alter Table est utilisée pour modifier la définition du type de colonne, mais décrivez Name_Tables indique que la colonne n'a pas changé, alors peut-être que MySQL ignore cette modification Selon l'une des raisons décrites dans la section spéciale de la documentation. Par exemple, lorsque vous essayez de modifier la colonne Varcharner sur Char MySQL continuera à utiliser Varchar si cette table contient d'autres colonnes avec une longueur variable.

L'instruction ALTER TABLE pendant l'opération crée une copie temporaire de la table source. La modification requise est effectuée sur la copie, puis la table source est supprimée et le nouveau est renommé. Ceci est fait afin de tomber automatiquement dans une nouvelle table, sauf échec. Lors de la mise en oeuvre de la table Alter, la table source est disponible pour la lecture d'autres clients.

Les opérations de mise à jour et d'écriture dans cette table sont suspendues jusqu'à ce que la nouvelle table soit prête. Il convient de noter que lorsque vous utilisez une autre option pour Alter Table, sauf renommer, MySQL créera toujours une table temporaire, même si les données, à proprement parler, n'ont pas besoin d'être copiées (par exemple, lors de la modification du nom de la colonne. ).

Exemple 10.3. Ajouter à la table des personnes créées pour écrire l'anniversaire d'une personne:

MySQL\u003e Alter Table Personnes
Ajouter un entier BDAY après last_name;

Exemple 10.3. Ajouter un champ à la table des personnes pour écrire une année de naissance d'une personne

Nous avons donc appris à travailler avec des tables: créer, supprimer et les changer.

Nous allons maintenant comprendre comment faire la même chose avec les données, que dans ces tables sont stockées.

4. Sélectionnez la déclaration

L'instruction SELECT est utilisée pour extraire des chaînes sélectionnées dans une ou plusieurs tables. C'est-à-dire que, avec elle, nous définissons des colonnes ou des expressions qui doivent être supprimées (Select_persion), des tables (table_riférences), à partir de laquelle l'échantillon doit être effectué et éventuellement condition (où_definition), qui doit être configuré dans ces colonnes et commander , dans lequel ces données doivent être émises.

De plus, l'instruction SELECT peut être utilisée pour extraire des chaînes calculées sans référence à une table. Par exemple, pour calculer ce qui est égal à 2 * 2, il vous suffit d'écrire
MySQL\u003e Sélectionnez 2 * 2;

La structure de relevé de sélection de sélection simplifiée peut être représentée comme suit:
Sélectionnez SELECT_Magement1, SELECT_PERSION2,
...

Les crochets carrés signifient que l'utilisation de l'opérateur est optionnelle, trait vertical | signifie transfert d'options possibles. Après le mot-clé, commandez en indiquez le nom de la colonne, le nombre (actif entier) ou la formule et la méthode de commande (ascendance - ASC ou décroissant - Desc). Par défaut, la rationalisation est utilisée ascendante.

Lorsque nous écrivons "*" dans Select_, cela signifie choisir toutes les colonnes. En plus de "*" dans Select_Production, les fonctions de type Max, Min et AVG peuvent être utilisées.

Exemple 10.4. Sélectionnez dans la table des personnes toutes les données pour lesquelles le champ First_Name est "Alexander":

Exemple 10.4. Utilisation de l'instruction SELECT

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

5. Insertion de l'opérateur

L'instruction insertion insère de nouvelles lignes dans une table existante. L'opérateur a plusieurs formes. Le paramètre Name_Name dans tous ces formulaires spécifie la table à laquelle des lignes doivent être effectuées. Les colonnes pour lesquelles les valeurs sont spécifiées sont indiquées dans la liste de la liste de noms de colonne (libel_name) ou dans la partie définie.

Syntaxe:


Valeurs (expression, ...), (...), ...
Cette forme de la commande insertion insère les chaînes en fonction des valeurs spécifiées dans la commande. Entre-arrière après le nom de la table, les colonnes sont répertoriées et une fois que les mots-clés de valeurs sont leurs valeurs.

Par example:

Mysql\u003e insérer dans des personnes
(Last_name, bday) valeurs
("Ivanov", "1934");


Insérez la ligne dans la table des personnes dans laquelle les noms du nom (nom_telame) et les dates de naissance (s) seront spécifiés conformément à Ivanov et
"1934".
  • Insérer.
Name_table [(Nastrolbits, ...)]
Sélectionnez ...

Cette forme de la commande insertion insère les lignes sélectionnées dans une autre table ou tables.

Par example:


Insérez sur la table des artefacts dans le champ Auteur (Auteur) La valeur de l'identifiant sélectionné dans la table des personnes par la condition que le nom de famille de la personne Ivanov.

    Insérer.
    Name_table
    Set_stolbetname \u003d expression,
    Le nom de la bibliothèque \u003d expression, ...

Par example:

Mysql\u003e insérer dans des personnes
Ensemble Last_Name \u003d "Petrov",
first_name \u003d "Ivan";


Cette commande insérera dans la table des personnes dans le champ Last_Name, la valeur Petrov et dans le champ First_Name, la ligne "Ivan".

Le formulaire insertion ... Les valeurs avec une liste de plusieurs valeurs sont prises en charge dans la version mySQL 3.22.5 et ultérieure. Syntaxe expression_name_name \u003d expression est prise en charge dans la version mysql 3.22.10 et ultérieure.

Les accords suivants s'appliquent.

  • Si la liste des colonnes n'est pas spécifiée pour insertion ... Valeurs ou insertion ... Sélectionnez, puis les valeurs de toutes les colonnes doivent être définies dans la liste Valeurs () ou à la suite de la sélection de la sélection. . Si l'ordre des colonnes de la table est inconnu, vous pouvez l'obtenir, vous pouvez utiliser la nom_same_Pr.
  • Toute colonne pour laquelle il est clairement non spécifié par la valeur sera défini sur la valeur par défaut. Par exemple, si la liste des colonnes ne contient pas toutes les colonnes de cette table, les colonnes non mentionnées sont installées dans leurs valeurs par défaut.
  • L'expression expression peut être liée à toute colonne qui a déjà été entrée dans la liste des valeurs. Par exemple, vous pouvez spécifier ce qui suit:

Mysql\u003e
Valeurs ( 15 , col1 * 2 );

Mais vous ne pouvez pas spécifier:

MySQL\u003e Insérer dans NAME_TABLE (COL1, COL2)
Valeurs (COL2 * 2 ,15 );

Nous n'avons pas encore discuté de trois paramètres facultatifs présents dans les trois formes de la commande: faible_priority, retardé et ignorer.

Les paramètres low_piority et retardé sont utilisés lorsqu'un grand nombre d'utilisateurs travaillent avec la table. Ils prescrivent la priorité de cette opération avant les opérations d'autres utilisateurs. Si le mot-clé Low_Priority est spécifié, l'exécution de cette commande d'insertion sera détenue jusqu'à ce que d'autres clients aient terminé la lecture de ce tableau. Dans ce cas, le client devrait être attendu jusqu'à ce que cette commande d'insertion soit terminée que, dans le cas d'une utilisation intensive de la table, il peut nécessiter une période considérable. En revanche, la commande d'insertion retardée permet à ce client de continuer l'opération immédiatement, quels que soient les autres utilisateurs.

Si la commande INSERT spécifie le mot-clé Ignorer, toutes les lignes ayant des touches primaires ou uniques en double dans cette table seront ignorées et non entrées dans le tableau. Si vous ne spécifiez pas d'ignorer, cette opération d'insertion s'arrête lorsqu'une chaîne comporte une valeur en double d'une clé existante.

6. Opérateur de mise à jour

Syntaxe:

Mettre à jour l'opérateur met à jour les valeurs des colonnes existantes de la table conformément aux valeurs entrées. L'expression définie indique quelles colonnes doivent être modifiées et quelles valeurs doivent être installées dans elles. Dans l'expression de la situation, s'il est présent, est spécifié quelles lignes sont soumises à la mise à jour. Dans d'autres cas, toutes les lignes sont mises à jour. Si la commande par expression est spécifiée, les lignes seront mises à jour dans l'ordre indiqué.

Si le mot-clé Low_Priority est spécifié, l'exécution de cette commande de mise à jour est retardée jusqu'à ce que d'autres clients aient terminé la lecture de ce tableau.

Si le mot clé Ignore est spécifié, la commande de mise à jour ne sera pas interrompue, même si l'erreur de duplication des touches se produit. Les lignes, en raison de quelles situations de conflit surviennent, ne seront pas mises à jour.

La distribution PHP comprend une extension contenant des fonctions incorporées pour fonctionner avec la base de données MySQL. Dans cette conférence, nous vous familiariserons avec certaines fonctions de base pour travailler avec MySQL, qui sera nécessaire pour résoudre les tâches de la construction d'interfaces Web afin d'afficher et de remplir la base de données. La question se pose, pourquoi construire de telles interfaces? Afin de rendre des informations dans la base de données et de voir son contenu pourraient les personnes qui ne connaissent pas la langue requêtes SQL. Lorsque vous travaillez avec une interface Web, vous devez ajouter des informations à une base de données, vous devez simplement entrer ces données dans le formulaire HTML et les envoyer au serveur, et notre script fera tout le reste. Et pour afficher le contenu des tables, cliquez sur le lien et accédez à la page souhaitée.

Pour plus de clarté, nous construirons ces interfaces pour la table des artefacts, qui contient des informations sur les expositions du Musée virtuel d'informatique. Dans la conférence précédente, nous avons déjà donné la structure de cette collection, ainsi que sa relation avec les collections de la description des personnes (personnes) et d'images. Rappelez-vous que chaque exposition dans la collection Artefacts est décrite en utilisant les caractéristiques suivantes:

  • nom (titre);
  • auteur (auteur);
  • description (description);
  • nom alternatif (Alternative);
  • image (photo).
Le nom et le nom alternatif sont des chaînes de moins de 255 caractères (c'est-à-dire le type Varchar (255)), la description est un champ de texte (il contient un type de texte) et dans les champs "Auteur" et "Image" contiennent Les identifiants de l'auteur de la collection des personnes et des images de l'exposition de la collection Ireages, respectivement.

Les principales déclarations SQL. Syntaxe et exemples d'utilisation de l'instruction SELECT.

La base de la langue SQL est les opérateurs, le conditionnellement divisé plusieurs groupes sur les fonctions effectuées.

Vous pouvez sélectionner les groupes d'opérateurs suivants (Listes non des opérateurs SQL):

Opérateurs DDL (langue de définition de données) - Opérateurs de définition de la base de données de la base de données

· Créer un schéma - Créer un schéma de base de données

· Drop Shema - Supprimer le schéma de base de données

· Créer une table - Créer une table

· Alter table - changer la table

· Table de chute - Supprimer la table

· Créer un domaine - Créer un domaine

· Alter Domain - Modifier le domaine

· Drop Domain - Supprimer le domaine

· Créer une garantie - Créez une séquence

· Collation de chute - Séquence Supprimer

· Créer une vue - Créer une vue

· Vue Drop - Supprimer la vue

Opérateurs DML (langage de manipulation de données) - opérateurs de manipulation de données

· Sélectionnez - Sélectionnez les lignes des tables

· Insérer - ajouter des lignes à la table

· Mise à jour - changez de lignes dans la table

· Supprimer - Supprimer les lignes dans la table

· Engagez - réparer les modifications apportées

· Rollback - Rouler les modifications

Opérateurs de protection et de gestion

· Créer une assertion - Créer une restriction

· Assertion de chute - Supprimer la restriction

· Grant - fournir des privilèges à un utilisateur ou à une application pour manipuler des objets

· Revoquer - Annuler les privilèges d'utilisateur ou les applications

Dans le même temps, des groupes d'opérateurs définissent des paramètres de session, recevant des informations de base de données, des instructions SQL statiques, des opérateurs SQL dynamiques.

Les opérateurs de manipulation de données (DML) sont les plus importants pour l'utilisateur.

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

Insérer - Insérez des rangées dans une table

Exemple 1.. Insérez une ligne dans une table:

Valeurs (4, Ivanov);

Mise à jour - Mettre à jour les chaînes dans la table

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

Ensemble PName \u003d "Pashers"

Où p.pnum \u003d 1;

Supprimer - Supprimer des lignes dans la table

Exemple 4.. Suppression de plusieurs lignes dans le tableau:

Où p.pnum \u003d 1;

Exemples d'utilisation de l'opérateur Select

L'instruction SELECT est en fait le plus important pour l'utilisateur et l'opérateur SQL le plus complexe. Il est destiné aux données d'échantillonnage des tables .. Il implémente en fait une mission de base de base de données de base - fournissez des informations à l'utilisateur.

L'instruction SELECT est effectuée au-dessus des tables incluses dans la base de données.

Commenter. Dans la base de données elle-même, il existe non seulement des tables constamment stockées, ainsi que des tables temporaires et des points de vue soi-disant. Les présentations sont simplement stockées dans les données de base de données de l'expression Select. Du point de vue des vues d'UserView, il s'agit d'une table qui n'est pas stockée constamment dans la base de données et "se produit" au moment de l'appel. Du point de vue de la déclaration SELECT et des tableaux constamment stockés, des tables et des représentations temporaires sont complètement égales. Bien sûr, avec la réelle exécution de l'opérateur Select, les différences entre les tables et les représentations stockées, mais ces différences sont prises en compte. cachéde l'utilisateur.

Le résultat de l'exécution de l'opérateur Select est la table. Selon les résultats des actions, l'instruction SELECT est similaire à celle des opérateurs d'algèbre relationnels. Tout opérateur d'algèbre relationnel doit être appliqué avec une déclaration de sélection formulée appropriée. La complexité de l'opérateur Select est déterminée par le fait qu'il contient en soi la possibilité d'algèbre relationnelle, ainsi que de caractéristiques supplémentairesqui ne sont pas en algèbre relationnelle.

La procédure d'exécution de l'instruction SELECT

Afin de comprendre comment l'instruction SELECT est obtenue, envisagez le schéma conceptuel de son exécution. Ce schéma est conceptuel, car Il est garanti que le résultat sera tel que s'il a été effectué étape par étape conformément à ce système. Dans le cas lui-même, le résultat est des algorithmes plus sophistiqués qui "possèdent" un SGBD spécifique.

Étape 1. Effectuer une seule instruction SELECT

Si l'opérateur contient l'Union, sauf et intersect les mots-clés, la requête est divisée en plusieurs demandes indépendantes, chacune étant exécutée séparément:

Étape 1 (de). Un produit décarculé droit de toutes les tables spécifiées dans la partition requise est calculé. À la suite de l'étape 1, nous obtenons la table A.

Étape 2 (où). Si la section où la section est présente dans l'instruction SELECT, la table A est numérisée lorsque l'étape 1. En même temps, pour chaque rangée du tableau A, l'expression conditionnelle est calculée dans la section où la section suivante: Seules ces chaînes pour lesquelles l'expression conditionnelle revient à vrai, est incluse dans le résultat. Si la section où la section est omise, passez immédiatement à l'étape 3. Si les sous-solutions sont impliquées dans l'expression conditionnelle, elles sont calculées conformément à ce schéma conceptuel. À la suite de l'étape 2, nous obtenons la table B.

Étape 3 (groupe par). Si le groupe par opérateur est présent dans l'instruction SELECT, les lignes du tableau B obtenues dans la deuxième étape sont regroupées conformément à la liste du groupe donné en groupe de section par. Dans le cas où le groupe par section est omis, passez immédiatement à l'étape 4. À la suite de l'étape 3, nous obtenons la table S.

Étape 4 (avoir). Si l'instruction SELECT présente la section suivante, les groupes qui ne répondent pas à l'expression conditionnelle donnée dans la section sont exclus. Si la section est omise, passez immédiatement à l'étape 5. À la suite de l'étape 4, nous obtenons une table D.

Étape 5 (Sélectionnez). Chaque groupe obtenu à l'étape 4 génère une ligne du résultat comme suit. Alto Les expressions scalaires spécifiées dans la section Sélectionner sont calculées. Selon les règles d'utilisation du groupe par section, de telles expressions scalaires doivent être identiques pour toutes les lignes de chaque groupe. Pour chaque groupe, les valeurs des fonctions d'agrégat indiquées dans la section Sélectionner sont calculées. Si le groupe par section était absent, mais dans la section Sélectionner une section, il y a des fonctions globales, on pense qu'il y a un groupe. Dans le cas où il n'y a pas de groupe par section, aucune fonction agrégée, on pense qu'il y a tant de groupes combien de lignes sélectionnées à ce point. À la suite de l'étape 5, nous obtenons le tableau E contenant autant de colonnes que les éléments sont donnés dans la section Sélectionner et autant de lignes que des groupes sélectionnés.

Étape 2. Effectuer une union des opérations, sauf, intersect

Si l'instruction SELECT a été suivie par l'Union des mots-clés, sauf et intersect, les tableaux obtenus à la suite de l'exécution de la 1ère étape sont combinés, soustraits ou intersect.

Étape 3. Rationaliser le résultat

Si la commande par l'instruction SELECT est présente dans l'instruction SELECT, les lignes obtenues dans les étapes précédentes du tableau sont commandées conformément à la liste de commandes indiquée dans la section commandée par.

Les principales déclarations SQL. Syntaxe et exemples d'utilisation de l'instruction SELECT. - Concept et espèce. Classification et fonctionnalités de la catégorie "Les principales déclarations SQL. Syntaxe et exemples d'utilisation de l'instruction SELECT." 2017, 2018.

Structure Langue Langue Langue de requête structurée (SQL) a été créée à la suite du développement modèle relationnel Données et actuellement est la norme réelle de la langue de la SGBD relationnelle. Le langage SQL aujourd'hui est pris en charge par un grand nombre de SGBD de différents types.

Le nom de la langue SQL est généralement prononcé par les lettres "Es-kewn el". Utilisez parfois le nom mnémonique "Voir-Quel".

La langue SQL fournit à l'utilisateur (avec un minimum d'effort de sa part) les fonctionnalités suivantes:

Créer des bases de données et des tables avec description complète Leurs structures

Effectuer des opérations de manipulation de données de base: insérer, modifier, supprimer des données

Effectuer des demandes simples et complexes.

La langue SQL est complète relativement.

La structure et la syntaxe de ses commandes sont assez simples et la langue elle-même est universelle, c'est-à-dire la syntaxe et la structure de ses commandes ne changent pas pendant la transition d'un SGBD à un autre.

Le langage SQL a deux composants principaux:

Langue DDL (langue de définition de données) pour déterminer les structures de base de données et le contrôle d'accès aux données

Langue DML (langue de manipulation de données), conçue pour l'échantillonnage et la mise à jour des données.

La langue SQL n'est pas discrémable, c'est-à-dire lorsque vous l'utilisez, il est nécessaire de spécifier quelles informations doivent être obtenues, et non comment il peut être obtenu. Les commandes de langue SQL sont des mots courants de langue anglaise (Sélectionnez, insérez, etc.). Considérez aux premières déclarations SQL DML:

Sélectionner - des données d'échantillonnage de la base

Insérer - Insérez des données dans le tableau

Mise à jour - Mettre à jour les données dans le tableau

Supprimer - Supprimer des données de la table

Sélection de l'opérateur

L'opérateur Select Sample effectue des actions équivalentes aux opérations relatives à l'algèbre relationnelle suivantes: échantillonnage, projection et connexion.

La demande SQL la plus simple avec son utilisation est la suivante:

Sélectionnez Col_Name à partir de TBL

Une fois que le mot clé SELECT fait suite à la liste des colonnes séparées par des virgules, dont les données seront renvoyées à la suite de la demande. Le mot clé de, indique à partir de laquelle les données de table (ou de représentation) sont récupérées.

Le résultat de la requête SELECT est toujours une table appelée table résultante. De plus, les résultats de la requête effectuée à l'aide de l'instruction SELECT peuvent être utilisés pour créer une nouvelle table. Si les résultats de deux demandes à différentes tables ont le même format, ils peuvent être combinés en une seule table. En outre, le tableau obtenu à la suite de la demande peut faire l'objet de demandes supplémentaires.

Pour sélectionner toutes les colonnes et toutes les lignes de la table, il suffit de sélectionner * de la requête TBL;

Considérez la table de produits contenant des informations sur les prix sur différents types de produits:

Le résultat de la requête

Sélectionnez * du produit;

il y aura toute la table de produits.

Sélectionnez des colonnes de table spécifiques à l'aide de la requête

Sélectionnez Col1, Col2, ..., Coln de TBL;

Donc, le résultat de la requête

Sélectionnez Type, prix du produit;

il y aura une table

La liste des colonnes dans les stations de relevé sélectionnées et dans le cas où il est nécessaire de modifier l'ordre des piliers dans la table résultante:

Afin de sélectionner uniquement les lignes de tables qui satisfont à certaines restrictions, un mot clé spécial utilisé, suivi d'une condition logique. Si l'enregistrement répond à une telle condition, il entre dans le résultat. Sinon, un tel enregistrement est jeté.

Par exemple, le choix de ces produits de la table des produits, dont le prix satisfait le prix de la condition<3200, можно осуществить, используя запрос

Sélectionnez * du produit où le prix<3200;

Son résultat:

La condition peut être composite et combinée avec des opérateurs logiques non, et ou, des opérateurs XOR, par exemple: où ID_ Price\u003e 500 et prix<3500. Допускается также использование выражений в условии: where Price>(1 + 1) et constantes de chaîne: où nom \u003d "Autovits".

L'utilisation de la conception entre Var1 et Var2 vous permet de vérifier si les valeurs de toute expression de l'intervalle VAR1 à Var2 tomberont (y compris ces valeurs):

Sélectionnez * du produit où le prix entre 3000 et 3500;

Par analogie avec la déclaration non comprise, il n'y a pas de déclaration.

Les noms des colonnes spécifiés dans la clause Select peuvent être renommés. Pour ce faire, utilisez-le comme mot clé, ce qui peut toutefois être omis, car il est implicitement impliqué. Par exemple, requête

Sélectionnez Tapez comme modèle, type_id comme num du produit où type_id \u003d 3

retours (les noms des pseudonymes doivent être enregistrés sans guillemets):

L'opérateur similaire est conçu pour comparer une chaîne avec un échantillon:

Sélectionnez * de TBL où Col_Name comme "ABC"

Cette requête ne renvoie que ces enregistrements contenant la valeur de chaîne ABC dans la colonne COL_NAME.

L'échantillon est autorisé à utiliser deux symboles d'écran: "_" et "%". Le premier d'entre eux remplace un symbole arbitraire dans le gabarit et la seconde est une séquence de caractères arbitraires. Donc, "ABC%" correspond à n'importe quelle ligne qui commence à ABC, "ABC_" - une rangée de 4 caractères à partir de ABC, "% Z" - une ligne arbitraire se terminant par Z, et, enfin, "% z%" - séquences des symboles contenant z.

Trouvez tous les enregistrements de la table de produits dans laquelle la valeur du type commence par la lettre "A" donc:

Sélectionnez * du produit où tapez comme "A%";

autovaysa

Si la chaîne souhaitée contient un symbole d'écran, vous devez spécifier le caractère de contrôle dans la phrase d'échappement. Ce caractère de commande doit être utilisé dans l'échantillon avant le symbole de l'écran, rapportant que ce dernier doit être interprété comme un symbole normal. Par exemple, si dans certains champs, toutes les valeurs contenant le caractère "_" doivent être trouvées, le modèle "% _%" entraînera toutes les enregistrements de la table. Dans ce cas, le modèle doit être enregistré comme suit:

"% | _%" Escape "|"

Pour vérifier la valeur de la conformité à la chaîne "20%", vous pouvez utiliser un tel opérateur:

Comme "20 #%" "évasion" # "

L'opérateur NULL vous permet de vérifier l'absence (présence) des valeurs NULL dans les champs de la table. Dans ces cas, les opérateurs de comparaison conventionnels peuvent entraîner des résultats incorrects, car la comparaison avec la valeur NULL donne le résultat connu (inconnu). Ainsi, la condition de sélection devrait ressembler à ceci:

où col_name est , au lieu de savoir où col_name \u003d null.

Le résultat de l'échantillonnage par défaut renvoie les enregistrements situés dans le même ordre dans lequel ils sont stockés dans la base de données. Si vous souhaitez trier les enregistrements par l'une des colonnes, vous devez appliquer la commande par conception, après quoi le nom de cette colonne est spécifié:

Sélectionnez * à partir de la commande TBL par Col_Name;

En conséquence, la demande d'enregistrement sera renvoyée à l'ordre croissant de la valeur d'attribut Col_Name.

Les enregistrements de tri peuvent être effectués dans plusieurs colonnes. Pour cela, leurs noms doivent être spécifiés après la commande par la virgule:

Sélectionnez * à partir de la commande TBL par col_name1, col_name2.

Les enregistrements seront triés par le champ Col_Name1; Si plusieurs entrées sont trouvées avec la valeur correspondante dans la colonne Col_Name1, elles seront triées par le champ Col_Name2.

Si vous souhaitez trier des enregistrements dans l'ordre inverse (par exemple, date décroissante), vous devez spécifier la commande par Col_Name Desc.

Pour le tri direct, il existe un mot clé ASC, qui est accepté comme valeur par défaut.

Si le résultat de l'échantillon contient des centaines et des milliers d'entrées, leur conclusion et leur traitement occupent une période considérable.

Par conséquent, les informations sont souvent décomposées sur les pages et la fournissent d'une partie. La navigation de l'image est utilisée à l'aide du mot-clé limite, suivi du nombre d'entrées affichées. La requête suivante est récupérée les 10 premiers enregistrements, tout en triant simultanément sur le champ COL_NAME1:

Sélectionnez * à partir de la commande TBL par col_name1 La limite de descendance 10

Afin d'extraire les 10 entrées suivantes, le mot-clé limite est utilisé avec deux valeurs: le premier indique la position à partir duquel il est nécessaire de produire le résultat et le second est le nombre d'enregistrements récupérables:

Sélectionnez * à partir de la commande TBL par col_name1 Limite de descendance 10.10

Pour extraire les 10 enregistrements suivants, vous devez utiliser la limite 20, 10 design.

Et sur les tables de données.

La langue SQL est appelée intégrécar Il contient les fonctions d'une langue de développement à part entière et se concentre sur l'accès aux données, à la suite de laquelle elle fait partie des outils de développement des applications. Les normes de langue SQL soutiennent les langages de programmation de Pascal, Fortran, Cobol, C, etc.

Existe 2 méthodes d'utilisation du SQL intégré:

  • statique En utilisant la langue ( sQL statique) - Le texte du programme contient des appels pour les fonctions SQL, qui incluent dans le module exécutable après la compilation.
  • dynamique En utilisant la langue ( sQL dynamique) - La construction dynamique de fonctions SQL et leur interprétation. par exampleVous pouvez vous référer aux données de base de données distantes lors de l'exécution du programme.

La langue SQL (ainsi que d'autres langues pour travailler avec la base de données) est conçue pour préparer et exécuter des demandes. À la suite de l'exécution d'une requête de données d'une ou plusieurs tables, une variété d'enregistrements sont reçus, ce qui est appelé. représentation.

Définition 1.

Représentation - Ceci est une table qui est formée à la suite de l'exécution de la requête.

Opérateurs de langue de la requête SQL de base

Les opérateurs de langue SQL sont classiquement divisés en 2 plymo-masques:

  1. Langue de définition de données DDL;
  2. Langue de manipulation danoise Dml..

Dans le symbole de la table * marqué opérateurs spécifiques Langue.

Considérez les déclarations SQL les plus importantes.

    Opérateur de création de table:

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

    Pour les champs individuels, vous pouvez spécifier des règles supplémentaires pour surveiller les valeurs qui sont entrées. Par example, Pas nulle Indique que le champ ne peut pas être vide et la valeur doit être entrée dans elle.

    Exemple 1.

    Créer une table livres. Catalogue de livres contenant des champs:

    taper - type de livre,

    nom. - titre du livre,

    prix - prix du livre

    l'opérateur peut être comme suit:

    Opérateur de changement de structure de table:

    Lorsque la structure de la table change, vous pouvez ajouter ( Ajouter.), monnaie ( Modifier.) ou supprimer ( Tomber.) Une ou plusieurs colonnes de la table. Les règles d'enregistrement de cet opérateur sont les mêmes que pour l'opérateur Créer une table. Pour supprimer une colonne, vous n'avez pas besoin de spécifier.

    Exemple 2.

    Ajouter à la table livres. domaine nombreDans lequel le nombre de livres sera stocké, vous pouvez écrire l'opérateur:

    Opérateur de suppression de table:

    Exemple 3.

    Par exemple, pour supprimer une table existante nommée livres. Assez pour utiliser l'opérateur:

    Opérateur de création d'index:

    L'opérateur crée un index pour une ou plusieurs colonnes de cette table, ce qui vous permet d'accélérer l'exécution de la requête et des opérations de recherche. Pour une table, plusieurs index peuvent être créés.

    Option facultative Unique Responsable de la garantie de l'unicité des valeurs dans toutes les colonnes, qui sont indiquées dans l'opérateur.

    ASC Définit le tri automatique des valeurs dans les colonnes dans l'ordre croissant (par défaut) et Desc. - par ordre décroissant.

    Opérateur d'enlèvement d'index:

    Opérateur de création de représentation:

    Lors de la création d'une vue, vous ne pouvez pas spécifier les noms des colonnes. Ensuite, les noms de colonne de la requête seront utilisés, qui est décrit par l'opérateur correspondant. SÉLECTIONNER.

    Opérateur de suppression de la représentation:

    Enregistrement de l'opérateur d'échantillonnage:

    Opérateur SÉLECTIONNER Produit des données d'échantillonnage et de calcul d'une ou de plusieurs tables. Le résultat de l'opérateur est la table de réponse contenant ( Tout.) ou ne contient pas ( Distinct.) Lignes répétées.

    Opérande De. Contient une liste de tables à partir de laquelle des enregistrements sont pris pour sélectionner des données.

    Opérateur de changement d'enregistrement:

    Les nouvelles valeurs de champ dans les enregistrements peuvent ne pas contenir de valeurs ( NUL) ou calculé en fonction de l'expression arithmétique.

    Opérateur insérant de nouveaux enregistrements:

    Dans le premier enregistrement de l'opérateur Insérer. Les nouvelles entrées avec des valeurs spécifiées dans les colonnes sont introduites.

    Dans le deuxième enregistrement de l'opérateur Insérer. Nouvelles lignes sélectionnées dans une autre table via l'offre SÉLECTIONNER.

    Opérateur de déménagement:

    À la suite de l'exécution de l'opérateur, il est supprimé du tableau de chaîne spécifié qui répond à la condition déterminée par un opérande en option. Où.. Si opérande. Où. Non spécifié, tous les enregistrements sont supprimés.

Avez-vous aimé l'article? Partager avec des amis: