PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • SELECT
  • SELECT
  • Cas particulier : SELECT multifichiers
  • Cas particuliers : SELECT sans FROM ou SELECT utilisant une table virtuelle
  • Exécuter une procédure stockée
  • INSERT
  • INSERT
  • INSERT avec sélection
  • UPDATE
  • DELETE
  • CREATE TABLE
  • Types disponibles
  • CREATE TABLE AS
  • DROP TABLE
  • ALTER TABLE
  • CREATE INDEX
  • GRANT
  • Droits disponibles
  • REVOKE
  • CREATE VIEW
  • DROP VIEW
  • CREATE MATERIALIZED VIEW
  • DROP MATERIALIZED VIEW
  • REFRESH MATERIALIZED VIEW
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
Les principales instructions SQL autorisées dans les requêtes SQL gérées par WINDEV et WEBDEV sont les suivantes :
Pour plus de détails sur les instructions SQL, consultez une documentation spécifique au langage SQL.
Pour connaître toutes les commandes SQL (fonctions, clauses, opérateurs, ...) utilisables dans une requête SQL gérée par HFSQL, consultez Commandes utilisables dans une requête SQL gérée par HFSQL.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Remarques :
  • Ces instructions sont utilisables :
    • dans le code SQL des requêtes créées sous l'éditeur de requêtes. Ces requêtes sont ensuite exécutées grâce à la fonction HExécuteRequête.
    • dans le code SQL des requêtes exécutées avec la fonction du WLangage HExécuteRequêteSQL.
  • Versions 15 et supérieures
    Le caractère " peut être utilisé comme délimiteur d'identifiant dans les requêtes SQL comme prévu par la norme SQL92.
    Nouveauté 15
    Le caractère " peut être utilisé comme délimiteur d'identifiant dans les requêtes SQL comme prévu par la norme SQL92.
    Le caractère " peut être utilisé comme délimiteur d'identifiant dans les requêtes SQL comme prévu par la norme SQL92.

Important

L'éditeur de requêtes Utilisateur ne permet pas de créer des requêtes en code SQL utilisant les ordres INSERT, UPDATE ou DELETE.
SELECT

SELECT

L'instruction SELECT permet de rechercher des enregistrements dans un ou plusieurs fichiers.
Format d'utilisation :
SELECT [ALL/DISTINCT] NomDesRubriques AS NomDesRubriquesUtilisé
FROM NomDesFichiers AS NomDesFichiersUtilisé
[WHERE JointuresFichiers [AND] ConditionsSélection]
[GROUP BY NomDesRubriques [HAVING Condition]]
[ORDER BY NomDesRubriques]
Exemple : Le code SQL suivant permet de visualiser la somme totale des commandes par client habitant en Côte d'Or. Le résultat sera regroupé par nom du client, par code postal et par ville. Seuls les clients ayant un cumul des commandes supérieur à 3000 Euros seront conservés. Le résultat sera trié par ordre croissant selon le cumul des commandes :
SELECT CLIENT.NomClient AS NomClient,
CLIENT.CodePostal AS CodePostal,
CLIENT.Ville AS Ville,
SUM(COMMANDE.TotalTTC) AS TotalTTC
FROM CLIENT AS CLI, COMMANDE AS COM
WHERE CLI.NumClient = COM.NumClient
AND CodePostal LIKE '21%'
GROUP BY NomClient, CodePostal, Ville
HAVING TotalTTC > 3000
ORDER BY TotalTTC ASC
Remarques :
  • Le mot-clé DISTINCT permet de supprimer les enregistrements dupliqués (doublons) du résultat de la requête.
  • Pour plus de détails sur les conditions de sélection, consultez Conditions de sélection dans une requête SQL.
  • Une requête de sélection peut être réalisée avec l'éditeur de requêtes. Pour plus de détails, consultez Création d'une requête de sélection.
  • Versions 19 et supérieures
    Dans la syntaxe de l'instruction SELECT, le paramètre NomDesRubriques peut contenir une ou plusieurs conditions de sélection. Par exemple :
    SELECT NomClient, Age>18 AS Majeur FROM Client
    Nouveauté 19
    Dans la syntaxe de l'instruction SELECT, le paramètre NomDesRubriques peut contenir une ou plusieurs conditions de sélection. Par exemple :
    SELECT NomClient, Age>18 AS Majeur FROM Client
    Dans la syntaxe de l'instruction SELECT, le paramètre NomDesRubriques peut contenir une ou plusieurs conditions de sélection. Par exemple :
    SELECT NomClient, Age>18 AS Majeur FROM Client
Versions 20 et supérieures
  • L'instruction SELECT peut être utilisée comme une expression scalaire, c'est-à-dire qu'il est possible d'utiliser l'instruction SELECT à la place d'une valeur ou d'une colonne dans des instructions comme INSERT, UPDATE, SELECT, etc.
    Par exemple :
    INSERT INTO TABLE (nom, valeur) VALUES ( 'Rome a Rick',
    (SELECT MAX(nombre) FROM table2) )

    UPDATE client SET cattc = (SELECT SUM(facture.total_ttc)
    FROM facture WHERE facture.reference=client.reference)

    SELECT NomDesRubriques AS NomDesRubriquesUtilisé,
    (SELECT COUNT(*) FROM Table2 WHERE Rub=NomDesRubriquesUtilisé)
    FROM Table1
Remarque : La requête SELECT utilisée comme expression scalaire doit renvoyer un résultat sur une seule colonne et une seule ligne.
Nouveauté 20
  • L'instruction SELECT peut être utilisée comme une expression scalaire, c'est-à-dire qu'il est possible d'utiliser l'instruction SELECT à la place d'une valeur ou d'une colonne dans des instructions comme INSERT, UPDATE, SELECT, etc.
    Par exemple :
    INSERT INTO TABLE (nom, valeur) VALUES ( 'Rome a Rick',
    (SELECT MAX(nombre) FROM table2) )

    UPDATE client SET cattc = (SELECT SUM(facture.total_ttc)
    FROM facture WHERE facture.reference=client.reference)

    SELECT NomDesRubriques AS NomDesRubriquesUtilisé,
    (SELECT COUNT(*) FROM Table2 WHERE Rub=NomDesRubriquesUtilisé)
    FROM Table1
Remarque : La requête SELECT utilisée comme expression scalaire doit renvoyer un résultat sur une seule colonne et une seule ligne.
  • L'instruction SELECT peut être utilisée comme une expression scalaire, c'est-à-dire qu'il est possible d'utiliser l'instruction SELECT à la place d'une valeur ou d'une colonne dans des instructions comme INSERT, UPDATE, SELECT, etc.
    Par exemple :
    INSERT INTO TABLE (nom, valeur) VALUES ( 'Rome a Rick',
    (SELECT MAX(nombre) FROM table2) )

    UPDATE client SET cattc = (SELECT SUM(facture.total_ttc)
    FROM facture WHERE facture.reference=client.reference)

    SELECT NomDesRubriques AS NomDesRubriquesUtilisé,
    (SELECT COUNT(*) FROM Table2 WHERE Rub=NomDesRubriquesUtilisé)
    FROM Table1
Remarque : La requête SELECT utilisée comme expression scalaire doit renvoyer un résultat sur une seule colonne et une seule ligne.
Versions 16 et supérieures

Cas particulier : SELECT multifichiers

L'instruction SELECT permet également de sélectionner dans une requête multifichier toutes les colonnes d'un fichier de données grâce à la syntaxe suivante :
SELECT Ligne_Commande.*,Commande.NumCommande, ...
FROM Commande, Ligne_Commande
Cette syntaxe est particulièrement intéressante dans le cadre de jointures et évite la saisie fastidieuse de chaque nom de rubrique.
Nouveauté 16

Cas particulier : SELECT multifichiers

L'instruction SELECT permet également de sélectionner dans une requête multifichier toutes les colonnes d'un fichier de données grâce à la syntaxe suivante :
SELECT Ligne_Commande.*,Commande.NumCommande, ...
FROM Commande, Ligne_Commande
Cette syntaxe est particulièrement intéressante dans le cadre de jointures et évite la saisie fastidieuse de chaque nom de rubrique.

Cas particulier : SELECT multifichiers

L'instruction SELECT permet également de sélectionner dans une requête multifichier toutes les colonnes d'un fichier de données grâce à la syntaxe suivante :
SELECT Ligne_Commande.*,Commande.NumCommande, ...
FROM Commande, Ligne_Commande
Cette syntaxe est particulièrement intéressante dans le cadre de jointures et évite la saisie fastidieuse de chaque nom de rubrique.
Versions 19 et supérieures

Cas particuliers : SELECT sans FROM ou SELECT utilisant une table virtuelle

L'instruction SELECT permet également d'exécuter des requêtes ne portant pas sur des tables :
  • soit en utilisant la syntaxe sans clause "FROM".
    Exemple :
    SELECT TO_CHAR(12,'RN')
  • soit en utilisant la table virtuelle DUAL. Cette table virtuelle contient une seule rubrique (nommée "dummy") et un seul enregistrement.
    Exemple :
    SELECT CURRENT_DATE FROM DUAL
Nouveauté 19

Cas particuliers : SELECT sans FROM ou SELECT utilisant une table virtuelle

L'instruction SELECT permet également d'exécuter des requêtes ne portant pas sur des tables :
  • soit en utilisant la syntaxe sans clause "FROM".
    Exemple :
    SELECT TO_CHAR(12,'RN')
  • soit en utilisant la table virtuelle DUAL. Cette table virtuelle contient une seule rubrique (nommée "dummy") et un seul enregistrement.
    Exemple :
    SELECT CURRENT_DATE FROM DUAL

Cas particuliers : SELECT sans FROM ou SELECT utilisant une table virtuelle

L'instruction SELECT permet également d'exécuter des requêtes ne portant pas sur des tables :
  • soit en utilisant la syntaxe sans clause "FROM".
    Exemple :
    SELECT TO_CHAR(12,'RN')
  • soit en utilisant la table virtuelle DUAL. Cette table virtuelle contient une seule rubrique (nommée "dummy") et un seul enregistrement.
    Exemple :
    SELECT CURRENT_DATE FROM DUAL

Exécuter une procédure stockée

L'instruction SELECT permet également d'exécuter directement des procédures stockées.
La syntaxe pour exécuter la procédure stockée est la suivante :
SELECT NomDeLaProcédureStockée(ParamètreNumérique,'ParamètreChaîne',....) [FROM DUAL]
Remarques :
  • La procédure stockée doit être une fonction stockée : elle doit toujours renvoyer une valeur. Dans le cas contraire, une erreur d'exécution sera générée.
  • Si le nom de la procédure stockée est identique à celui d'une fonction ou procédure du projet, il est nécessaire de préfixer son nom par le nom de la collection de procédures stockées.
  • Le résultat d'une procédure stockée peut également être un des paramètres d'une requête de type SELECT.
INSERT

INSERT

L'instruction INSERT permet d'ajouter un enregistrement dans un fichier de données. Son format d'utilisation est :
INSERT INTO NomDuFichier (NomDesRubriques)
VALUES (ValeurDesRubriques)
Exemple : Les codes SQL suivants permettent d'insérer un nouveau client dans le fichier CLIENT :
  • l'ensemble des informations du client est fourni :
    INSERT INTO CLIENT
    VALUES (77, 'Martin', 'Julie', '1 rue Giono',...
    '69000', 'Lyon')
  • seuls le numéro, le nom et le prénom du client sont fournis :
    INSERT INTO CLIENT (NumClient, NomClient, PrénomClient)
    VALUES (77, 'Martin', 'Julie')
Remarques :
  • Sous WINDEV, l'instruction INSERT est mono-tuple : il ajoute un seul enregistrement à la fois. La requête suivante n'est pas acceptée :
    INSERT INTO CLIENT VALUES
    (1, 'Dupont', 'Jean')
    (2, 'Wolff', 'Walter')
    (3, 'Bambois', 'René')
  • Une requête d'insertion peut être créée sous l'éditeur de requêtes. Pour plus de détails, consultez Création d'une requête d'insertion.
  • Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers HFSQL (requête exécutée par la fonction HExécuteRequêteSQL, HExécuteRequête ou SQLExec) : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
  • Il n'est pas possible d'utiliser l'instruction INSERT pour copier les données d'un fichier HFSQL dans un autre fichier HFSQL.
L'instruction INSERT permet d'ajouter  :
  • un enregistrement dans un fichier de données.
  • Versions 20 et supérieures
    plusieurs enregistrements dans un fichier de données.
    Nouveauté 20
    plusieurs enregistrements dans un fichier de données.
    plusieurs enregistrements dans un fichier de données.
Son format d'utilisation est :
INSERT INTO NomDuFichier (NomDesRubriques)
VALUES (ValeurRubriques ajout 1), (ValeurRubriques ajout 2), ... , (ValeurRubriques ajout N)
Exemples : Les codes SQL suivants permettent d'insérer :
  • un nouveau client dans le fichier CLIENT (l'ensemble des informations du client est fourni).
    INSERT INTO CLIENT
    VALUES (77, 'Martin', 'Julie', '1 rue Giono',...
    '69000', 'Lyon')
  • un nouveau client dans le fichier CLIENT : seuls le numéro, le nom et le prénom du client sont fournis :
    INSERT INTO CLIENT (NumClient, NomClient, PrénomClient)
    VALUES (77, 'Martin', 'Julie')
  • Versions 20 et supérieures
    3 produits dans un fichier PRODUIT :
    INSERT INTO PRODUIT
    VALUES ('Ref01', 'Eau minérale'), ('Ref02', 'Beurre'), ('Ref03', 'Eponge')
    Nouveauté 20
    3 produits dans un fichier PRODUIT :
    INSERT INTO PRODUIT
    VALUES ('Ref01', 'Eau minérale'), ('Ref02', 'Beurre'), ('Ref03', 'Eponge')
    3 produits dans un fichier PRODUIT :
    INSERT INTO PRODUIT
    VALUES ('Ref01', 'Eau minérale'), ('Ref02', 'Beurre'), ('Ref03', 'Eponge')
Remarques :
  • Une requête d'insertion peut être créée sous l'éditeur de requêtes. Pour plus de détails, consultez Création d'une requête d'insertion.
  • Pour connaître la valeur de l'identifiant automatique lors d'une requête de type INSERT sur des fichiers HFSQL (requête exécutée par la fonction HExécuteRequêteSQL, HExécuteRequête ou SQLExec) : la variable SQL.Idauto permet de connaître la valeur de l'identifiant.
  • Il n'est pas possible d'utiliser l'instruction INSERT pour copier les données d'un fichier HFSQL dans un autre fichier HFSQL.
  • La variable H.NbEnregRequêteModification permet de connaître le nombre d'enregistrements insérés.

INSERT avec sélection

L'instruction INSERT peut également être utilisée pour insérer une sélection d'enregistrements réalisée par une requête SELECT. Son format d'utilisation devient :
INSERT INTO NomDuFichier [(NomDesRubriques)] SELECT ...
Remarques :
  • Le nombre de rubriques à insérer doit être identique au nombre de valeurs renvoyées par la requête SELECT.
  • Si aucune rubrique n'est précisée dans l'instruction INSERT, toutes les rubriques du fichier sont prises en compte.
  • Ce type de requête ne peut pas être créé directement dans l'éditeur de requêtes.
UPDATE
L'instruction UPDATE permet de mettre à jour des enregistrements dans un fichier. Son format d'utilisation est le suivant :
UPDATE NomDuFichier
SET NomDeLaRubrique = Expression
[WHERE Conditions]
Exemple : Le code SQL suivant permet de modifier la civilité et le nom du client Montgomery :
UPDATE CLIENT
SET Civilité = 'Mme',
NomClient = 'Darwin'
WHERE NomClient = 'Montgomery'
Remarques sur l'utilisation de l'instruction UPDATE dans WINDEV :
  • La clause WHERE accepte des sous-sélections (par SELECT), à condition que la sous-sélection soit relative à un autre fichier.
  • L'expression SET n'accepte pas de sous-sélection (pas de commande SELECT directement après SET). De la même façon il n'est pas possible de faire une jointure au niveau de la partie UPDATE de la requête.
    La requête suivante est acceptée :
    UPDATE ARTICLE SET PrixVente = 1000
    WHERE RefArticle IN (SELECT COMMANDE.RefArticle FROM COMMANDE)
    -- Sous-requête dans le WHERE: OK

    La requête suivante n'est pas acceptée :
    UPDATE Article
    SET PrixVente = (SELECT AVG(COMMANDE.PrixUnit) FROM COMMANDE
    -- Sous-requête dans le SET: NON VALIDE
    WHERE COMMANDE.RefArticle = ARTICLE.RefArticle
    GROUP BY COMMANDE.RefArticle)
    WHERE RefArticle IN (SELECT COMMANDE.RefArticle FROM COMMANDE)

    Et de la même façon la requête suivante n'est pas acceptée :
    UPDATE Article INNER JOIN PRODUIT ON (Article.IdArticle = Produit.IdProduit)
    -- Jointure dans le UPDATE : NON VALIDE
    SET Article.PrixVente = Produit.PrixVente
    WHERE RefArticle IN (SELECT COMMANDE.RefArticle FROM COMMANDE)
  • Une requête de mise à jour peut être créée directement sous l'éditeur de requêtes. Pour plus de détails, consultez Création d'une requête de modification.
  • L'apostrophe sert de délimiteur pour les chaînes dans les requêtes SQL. Si la valeur à écrire doit contenir une apostrophe, cette valeur doit être précédée du caractère antislash ('\'). Par exemple :
    UPDATE CLIENT
    SET Adresse = 'Rue de l\'écluse'
    WHERE NomClient = 'Montgomery'
  • La variable H.NbEnregRequêteModification permet de connaître le nombre d'enregistrements mis à jour.
DELETE
L'instruction DELETE permet de supprimer des enregistrements dans un fichier. Son format d'utilisation est le suivant :
DELETE FROM NomDuFichier
WHERE Conditions
Exemple : Le code SQL suivant permet de supprimer les clients nés entre le 01/01/1971 et le 01/01/1975 :
DELETE FROM CLIENT
WHERE CLIENT.DateNaissance BETWEEN '19710101' AND '19750101'
Remarque : Une requête de suppression peut être créée directement avec l'éditeur de requêtes. Pour plus de détails, consultez Création d'une requête de suppression.
CREATE TABLE
L'instruction CREATE TABLE permet de décrire une table et de la créer. Son format d'utilisation est le suivant :
CREATE TABLE NomTable
(
Description de la rubrique1,
Description de la rubrique2,
...
Description Index1,
Description Index2,
...
)
Dans cette syntaxe :
  • les paramètres "Description de rubrique" correspondent à :
    NomRubrique type  [DEFAULT 'valeur' | DEFAULT NULL] [NOT NULL]
      [UNIQUE] [PRIMARY KEY]  [AUTO_INCREMENT] [COMMENT 'libellé'] [COLLATE 'langue']
    où :
    • NomRubrique : nom à donner à la rubrique.
    • Type : Type de la rubrique (choisi parmi les types disponibles présentés ci-dessous).
    • DEFAULT : permet de fixer la valeur par défaut de la rubrique.
    • Versions 16 et supérieures
      NOT NULL : permet d'interdire d'affecter la valeur NULL à la rubrique.
      Nouveauté 16
      NOT NULL : permet d'interdire d'affecter la valeur NULL à la rubrique.
      NOT NULL : permet d'interdire d'affecter la valeur NULL à la rubrique.
    • AUTO_INCREMENT : permet de définir un identifiant automatique pour les rubriques de type entier.
    • COMMENT : permet de définir le libellé de la rubrique.
    • COLLATE : permet de définir la langue de tri de la rubrique (par exemple : 'FR_BE').
  • les paramètres "Description d'index" correspondent à :
    INDEX  NomIndex ( rub1 [ASC | DESC] [CI] [AI] [PI], rub2 ... ) [UNIQUE]
    où :
    • ASC et DESC : permet de définir le sens du tri.
    • CI : permet d'indiquer que la case est ignorée.
    • AI : permet d'indiquer que les accents sont ignorés.
    • PI : permet d'indiquer que la ponctuation est ignorée.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.

Types disponibles

Les types disponibles sont :
CHARACTERChaîne de caractères
CHARACTER(Taille)Chaîne sur taille
VARCHAR(Taille)Chaîne sur taille
Versions 19 et supérieures
CHARACTER VARYING(Taille)
Nouveauté 19
CHARACTER VARYING(Taille)
CHARACTER VARYING(Taille)
Chaîne sur taille
Versions 19 et supérieures
CHAR VARYING(Taille)
Nouveauté 19
CHAR VARYING(Taille)
CHAR VARYING(Taille)
Chaîne sur taille
NVARCHAR(Taille)Chaîne Unicode sur taille
VARCHAR(Taille) BINARYChaîne binaire sur taille
BINARY(Taille)Chaîne binaire sur taille
VARBINARY(Taille)Chaîne binaire sur taille
BLOBMémo binaire
CLOBMémo texte
TEXTMémo texte
NCLOBMémo Unicode
NTEXTMémo Unicode
NUMBER(Précision)Entier
NUMBER(Précision, échelle)Entier
DECIMAL(Précision)Réel
DECIMAL(Précision, échelle)Réel
TINYINT UNSIGNEDEntier non signé sur 1 octet
SMALLINT UNSIGNEDEntier non signé sur 2 octets
INTEGER UNSIGNEDEntier non signé sur 4 octets
BIGINT UNSIGNEDEntier non signé sur 8 octets
TINYINTEntier signé sur 1 octet
SMALLINTEntier signé sur 2 octets
INTEGEREntier signé sur 4 octets
BIGINTEntier signé sur 8 octets
FLOATRéel sur 4 octets
REALRéel sur 8 octets
DOUBLE PRECISIONRéel sur 8 octets
MONEYMonétaire
DATEDATE
DATETIMEDate heure
TIMEHeure
CREATE TABLE AS
Versions 20 et supérieures
L'instruction CREATE TABLE AS permet de décrire une table et de la créer à partir du résultat d'une requête de sélection. Les colonnes de la table ont les noms et les types de données associés aux colonnes en sortie de la requête de type SELECT.
Son format d'utilisation est le suivant :
CREATE TABLE NomTable AS RequêteSélection [WITH NO DATA]
Dans cette syntaxe :
  • RequêteSélection est une requête de sélection (SELECT). La requête est exécutée et la table est créée à partir du résultat de cette requête de sélection.
  • L'option "WITH NO DATA" permet de créer uniquement la structure de la table (sans les données contenues dans le résultat de la requête de sélection).
Attention : La table créée peut avoir un index différent de la table d'origine.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
Nouveauté 20
L'instruction CREATE TABLE AS permet de décrire une table et de la créer à partir du résultat d'une requête de sélection. Les colonnes de la table ont les noms et les types de données associés aux colonnes en sortie de la requête de type SELECT.
Son format d'utilisation est le suivant :
CREATE TABLE NomTable AS RequêteSélection [WITH NO DATA]
Dans cette syntaxe :
  • RequêteSélection est une requête de sélection (SELECT). La requête est exécutée et la table est créée à partir du résultat de cette requête de sélection.
  • L'option "WITH NO DATA" permet de créer uniquement la structure de la table (sans les données contenues dans le résultat de la requête de sélection).
Attention : La table créée peut avoir un index différent de la table d'origine.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
L'instruction CREATE TABLE AS permet de décrire une table et de la créer à partir du résultat d'une requête de sélection. Les colonnes de la table ont les noms et les types de données associés aux colonnes en sortie de la requête de type SELECT.
Son format d'utilisation est le suivant :
CREATE TABLE NomTable AS RequêteSélection [WITH NO DATA]
Dans cette syntaxe :
  • RequêteSélection est une requête de sélection (SELECT). La requête est exécutée et la table est créée à partir du résultat de cette requête de sélection.
  • L'option "WITH NO DATA" permet de créer uniquement la structure de la table (sans les données contenues dans le résultat de la requête de sélection).
Attention : La table créée peut avoir un index différent de la table d'origine.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
DROP TABLE
L'instruction DROP TABLE permet de supprimer physiquement une table. Son format d'utilisation est le suivant :
DROP TABLE [ IF EXISTS ] name [, ...]
Remarques :
  • IF EXISTS permet de ne pas renvoyer d'erreur si la table n'existe pas.
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
ALTER TABLE
Versions 18 et supérieures
L'instruction ALTER TABLE permet de changer la structure d'une table existante. Par exemple, vous pouvez ajouter ou supprimer des colonnes, des index, changer le type des colonnes existantes, renommer ces colonnes, ou la table elle-même. Son format d'utilisation est le suivant :
ALTER TABLE NomTable Action [, Action] ....
Dans cette syntaxe :
  • les paramètres "Action" correspondent à une des actions suivantes :
    ADD [COLUMN] Description de rubrique
    ADD [COLUMN] (Description de rubrique1 [,Description de rubrique2]....)
    DROP [COLUMN] [IF EXISTS] NomRubrique
    DROP [COLUMN] [IF EXISTS] (NomRubrique1 [, NomRubrique2]...)
    ALTER [COLUMN] NomRubrique [SET DATA] TYPE alter_type_desc
    ALTER [COLUMN] NomRubrique SET DEFAULT <valeur>
    ALTER [COLUMN] NomRubrique DROP DEFAULT
    ADD [UNIQUE] INDEX [<NomIndex>] (Description d'index [, Description d'index2]...)
    DROP INDEX [IF EXISTS] NomIndex
    DROP INDEX [IF EXISTS] (NomIndex1 [, NomIndex2]...)
    RENAME COLUMN NomRubrique TO Nouveau_NomRubrique
  • Les paramètres "Description de rubrique" correspondent à :
    NomRubrique type  [DEFAULT 'valeur' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY]
     [AUTO_INCREMENT] [COMMENT 'libellé'] [COLLATE 'langue']
    où :
    • NomRubrique : nom à donner à la rubrique.
    • Type : Type de la rubrique (choisi parmi les types disponibles présentés ci-dessus).
    • DEFAULT : permet de fixer la valeur par défaut de la rubrique.
    • NOT NULL : permet d'interdire d'affecter la valeur NULL à la rubrique.
    • AUTO_INCREMENT : permet de définir un identifiant automatique pour les rubriques de type entier.
    • COMMENT : permet de définir le libellé de la rubrique.
    • COLLATE : permet de définir la langue de tri de la rubrique (par exemple : 'FR_BE').
  • les paramètres "Description d'index" correspondent à :
    NomRubrique [ASC | DESC] [CI] [AI] [PI]
    où :
    • ASC et DESC : permet de définir le sens du tri.
    • CI : permet d'indiquer que la case est ignorée.
    • AI : permet d'indiquer que les accents sont ignorés.
    • PI : permet d'indiquer que la ponctuation est ignorée.
Remarques :
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Pour utiliser la table modifiée lors du ALTER (sans analyse liée au projet), il faut utiliser la fonction HDéclareExterne après l'exécution de la requête de type ALTER TABLE.
Nouveauté 18
L'instruction ALTER TABLE permet de changer la structure d'une table existante. Par exemple, vous pouvez ajouter ou supprimer des colonnes, des index, changer le type des colonnes existantes, renommer ces colonnes, ou la table elle-même. Son format d'utilisation est le suivant :
ALTER TABLE NomTable Action [, Action] ....
Dans cette syntaxe :
  • les paramètres "Action" correspondent à une des actions suivantes :
    ADD [COLUMN] Description de rubrique
    ADD [COLUMN] (Description de rubrique1 [,Description de rubrique2]....)
    DROP [COLUMN] [IF EXISTS] NomRubrique
    DROP [COLUMN] [IF EXISTS] (NomRubrique1 [, NomRubrique2]...)
    ALTER [COLUMN] NomRubrique [SET DATA] TYPE alter_type_desc
    ALTER [COLUMN] NomRubrique SET DEFAULT <valeur>
    ALTER [COLUMN] NomRubrique DROP DEFAULT
    ADD [UNIQUE] INDEX [<NomIndex>] (Description d'index [, Description d'index2]...)
    DROP INDEX [IF EXISTS] NomIndex
    DROP INDEX [IF EXISTS] (NomIndex1 [, NomIndex2]...)
    RENAME COLUMN NomRubrique TO Nouveau_NomRubrique
  • Les paramètres "Description de rubrique" correspondent à :
    NomRubrique type  [DEFAULT 'valeur' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY]
     [AUTO_INCREMENT] [COMMENT 'libellé'] [COLLATE 'langue']
    où :
    • NomRubrique : nom à donner à la rubrique.
    • Type : Type de la rubrique (choisi parmi les types disponibles présentés ci-dessus).
    • DEFAULT : permet de fixer la valeur par défaut de la rubrique.
    • NOT NULL : permet d'interdire d'affecter la valeur NULL à la rubrique.
    • AUTO_INCREMENT : permet de définir un identifiant automatique pour les rubriques de type entier.
    • COMMENT : permet de définir le libellé de la rubrique.
    • COLLATE : permet de définir la langue de tri de la rubrique (par exemple : 'FR_BE').
  • les paramètres "Description d'index" correspondent à :
    NomRubrique [ASC | DESC] [CI] [AI] [PI]
    où :
    • ASC et DESC : permet de définir le sens du tri.
    • CI : permet d'indiquer que la case est ignorée.
    • AI : permet d'indiquer que les accents sont ignorés.
    • PI : permet d'indiquer que la ponctuation est ignorée.
Remarques :
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Pour utiliser la table modifiée lors du ALTER (sans analyse liée au projet), il faut utiliser la fonction HDéclareExterne après l'exécution de la requête de type ALTER TABLE.
L'instruction ALTER TABLE permet de changer la structure d'une table existante. Par exemple, vous pouvez ajouter ou supprimer des colonnes, des index, changer le type des colonnes existantes, renommer ces colonnes, ou la table elle-même. Son format d'utilisation est le suivant :
ALTER TABLE NomTable Action [, Action] ....
Dans cette syntaxe :
  • les paramètres "Action" correspondent à une des actions suivantes :
    ADD [COLUMN] Description de rubrique
    ADD [COLUMN] (Description de rubrique1 [,Description de rubrique2]....)
    DROP [COLUMN] [IF EXISTS] NomRubrique
    DROP [COLUMN] [IF EXISTS] (NomRubrique1 [, NomRubrique2]...)
    ALTER [COLUMN] NomRubrique [SET DATA] TYPE alter_type_desc
    ALTER [COLUMN] NomRubrique SET DEFAULT <valeur>
    ALTER [COLUMN] NomRubrique DROP DEFAULT
    ADD [UNIQUE] INDEX [<NomIndex>] (Description d'index [, Description d'index2]...)
    DROP INDEX [IF EXISTS] NomIndex
    DROP INDEX [IF EXISTS] (NomIndex1 [, NomIndex2]...)
    RENAME COLUMN NomRubrique TO Nouveau_NomRubrique
  • Les paramètres "Description de rubrique" correspondent à :
    NomRubrique type  [DEFAULT 'valeur' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY]
     [AUTO_INCREMENT] [COMMENT 'libellé'] [COLLATE 'langue']
    où :
    • NomRubrique : nom à donner à la rubrique.
    • Type : Type de la rubrique (choisi parmi les types disponibles présentés ci-dessus).
    • DEFAULT : permet de fixer la valeur par défaut de la rubrique.
    • NOT NULL : permet d'interdire d'affecter la valeur NULL à la rubrique.
    • AUTO_INCREMENT : permet de définir un identifiant automatique pour les rubriques de type entier.
    • COMMENT : permet de définir le libellé de la rubrique.
    • COLLATE : permet de définir la langue de tri de la rubrique (par exemple : 'FR_BE').
  • les paramètres "Description d'index" correspondent à :
    NomRubrique [ASC | DESC] [CI] [AI] [PI]
    où :
    • ASC et DESC : permet de définir le sens du tri.
    • CI : permet d'indiquer que la case est ignorée.
    • AI : permet d'indiquer que les accents sont ignorés.
    • PI : permet d'indiquer que la ponctuation est ignorée.
Remarques :
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Pour utiliser la table modifiée lors du ALTER (sans analyse liée au projet), il faut utiliser la fonction HDéclareExterne après l'exécution de la requête de type ALTER TABLE.
CREATE INDEX
Versions 18 et supérieures
L'instruction CREATE INDEX est équivalente à l'instruction ALTER TABLE pour créer des index. Cette instruction permet d'ajouter des index à une table existante. Son format d'utilisation est le suivant :
CREATE [UNIQUE] INDEX [NomIndex] ON NomTable (Description d'index [, Description d'index]... )
Dans ce code, les paramètres "Description d'index" correspondent à :
NomRubrique [ASC | DESC] [CI] [AI] [PI]
où :
  • ASC et DESC : permet de définir le sens du tri.
  • CI : permet d'indiquer que la case est ignorée.
  • AI : permet d'indiquer que les accents sont ignorés.
  • PI : permet d'indiquer que la ponctuation est ignorée.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
Versions 20 et supérieures
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Nouveauté 20
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Nouveauté 18
L'instruction CREATE INDEX est équivalente à l'instruction ALTER TABLE pour créer des index. Cette instruction permet d'ajouter des index à une table existante. Son format d'utilisation est le suivant :
CREATE [UNIQUE] INDEX [NomIndex] ON NomTable (Description d'index [, Description d'index]... )
Dans ce code, les paramètres "Description d'index" correspondent à :
NomRubrique [ASC | DESC] [CI] [AI] [PI]
où :
  • ASC et DESC : permet de définir le sens du tri.
  • CI : permet d'indiquer que la case est ignorée.
  • AI : permet d'indiquer que les accents sont ignorés.
  • PI : permet d'indiquer que la ponctuation est ignorée.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
Versions 20 et supérieures
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Nouveauté 20
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
L'instruction CREATE INDEX est équivalente à l'instruction ALTER TABLE pour créer des index. Cette instruction permet d'ajouter des index à une table existante. Son format d'utilisation est le suivant :
CREATE [UNIQUE] INDEX [NomIndex] ON NomTable (Description d'index [, Description d'index]... )
Dans ce code, les paramètres "Description d'index" correspondent à :
NomRubrique [ASC | DESC] [CI] [AI] [PI]
où :
  • ASC et DESC : permet de définir le sens du tri.
  • CI : permet d'indiquer que la case est ignorée.
  • AI : permet d'indiquer que les accents sont ignorés.
  • PI : permet d'indiquer que la ponctuation est ignorée.
Remarque : Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
Versions 20 et supérieures
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Nouveauté 20
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matérialisée. Dans ce cas, le paramètre NomTable correspond au nom d'une vue matérialisée. Si la vue est rafraîchie, les index sont mis à jour automatiquement : il n'est pas nécessaire de recréer les index.
Exemple : Création d'une vue matérialisée et en même temps d'une clé composée sur cette vue.
-- Création d'une vue matérialisée
CREATE MATERIALIZED VIEW MaVueMaterialisee AS
SELECT
Client.Departement, Client.Aff, Client.TypeAdherent, COUNT(*) AS Qte
FROM Client
WHERE Client.Solde>0 AND Client.Type=2
AND Client.Famille IN ('A', 'D', 'O')
GROUP BY Client.Departement, Client.Aff, Client.TypeAdherent;
--';' pour pouvoir mettre une autre instruction SQL après
--Avec une clé composée
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI PI,TypeAdherent ASC)
GRANT
Versions 20 et supérieures
Les requêtes de type GRANT permettent de donner des droits sur un serveur HFSQL. Cette instruction est équivalente à donner le droit hAutorisé à l'élément. Son format d'utilisation est le suivant :
  • Donner les droits demandés sur les tables spécifiées aux utilisateurs spécifiés :
    GRANT droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]  
    TO utilisateur [, utilisateur [, ...]]
  • Donner les droits demandés sur les bases spécifiées aux utilisateurs spécifiés.
    GRANT droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
    TO utilisateur [, utilisateur [, ...]]
  • Donner les droits demandés sur le serveur.
    GRANT droit[, droit [, ... ]]
    TO utilisateur [, utilisateur [, ...]]
Remarque :
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne peuvent pas êtres utilisées sur une base de données HFSQL Classic ni sur une base de données accédée par les accès natifs.

Droits disponibles

Les droits disponibles sont :
Droit SQLDroit HFSQL
INSERThDroitAjout
LOCKhDroitBlocage
MANAGE RIGHTShDroitChangeDroit
OWNERhDroitChangePropriétaire
MANAGE DUPLICATEhDroitGèreDoublon
SELECThDroitLecture
MAINTENANCEhDroitMaintenance
ALTERhDroitModifAuto
UPDATEhDroitModification
DELETEhDroitSuppression
DELETE FILEhDroitSuppressionFichier
REFERENCEShDroitChangeLiaison
CONNECThDroitConnexion
ENCRYPTED CONNECThDroitConnexionCryptée
CREATEhDroitCréationFichier
DEBUGhDroitDéboguer
RUN PROCEDUREhDroitExécutionProcédure
MANAGE REFERENCEShDroitGèreIntégrité
MANAGE PROCEDUREhDroitGestionProcédure
MANAGE TRIGGERhDroitGestionTrigger
FORBID ACCESShDroitInterditAccèsBaseDeDonnées
BACKUPhDroitSauvegarde
DELETE DATABASEhDroitSuppressionBDD
STOPhDroitArrêtServeur
CHANGE PASSWORDhDroitChangeMotDePasse
CREATE DATABASEhDroitCréationBDD
DISCONNECThDroitDéconnecteClient
SEND MESSAGEhDroitEnvoieMessageVersClient
MANAGE TASKhDroitGèreTâche
MANAGE SERVERhDroitGestionServeur
MANAGE USERhDroitGestionUtilisateur
READ LOGhDroitLectureLogStat
PRIORITYhDroitPriorité
REPLICATEhDroitRéplicationServeur
SEE USERhDroitVisualisationUtilisateur
Nouveauté 20
Les requêtes de type GRANT permettent de donner des droits sur un serveur HFSQL. Cette instruction est équivalente à donner le droit hAutorisé à l'élément. Son format d'utilisation est le suivant :
  • Donner les droits demandés sur les tables spécifiées aux utilisateurs spécifiés :
    GRANT droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]  
    TO utilisateur [, utilisateur [, ...]]
  • Donner les droits demandés sur les bases spécifiées aux utilisateurs spécifiés.
    GRANT droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
    TO utilisateur [, utilisateur [, ...]]
  • Donner les droits demandés sur le serveur.
    GRANT droit[, droit [, ... ]]
    TO utilisateur [, utilisateur [, ...]]
Remarque :
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne peuvent pas êtres utilisées sur une base de données HFSQL Classic ni sur une base de données accédée par les accès natifs.

Droits disponibles

Les droits disponibles sont :
Droit SQLDroit HFSQL
INSERThDroitAjout
LOCKhDroitBlocage
MANAGE RIGHTShDroitChangeDroit
OWNERhDroitChangePropriétaire
MANAGE DUPLICATEhDroitGèreDoublon
SELECThDroitLecture
MAINTENANCEhDroitMaintenance
ALTERhDroitModifAuto
UPDATEhDroitModification
DELETEhDroitSuppression
DELETE FILEhDroitSuppressionFichier
REFERENCEShDroitChangeLiaison
CONNECThDroitConnexion
ENCRYPTED CONNECThDroitConnexionCryptée
CREATEhDroitCréationFichier
DEBUGhDroitDéboguer
RUN PROCEDUREhDroitExécutionProcédure
MANAGE REFERENCEShDroitGèreIntégrité
MANAGE PROCEDUREhDroitGestionProcédure
MANAGE TRIGGERhDroitGestionTrigger
FORBID ACCESShDroitInterditAccèsBaseDeDonnées
BACKUPhDroitSauvegarde
DELETE DATABASEhDroitSuppressionBDD
STOPhDroitArrêtServeur
CHANGE PASSWORDhDroitChangeMotDePasse
CREATE DATABASEhDroitCréationBDD
DISCONNECThDroitDéconnecteClient
SEND MESSAGEhDroitEnvoieMessageVersClient
MANAGE TASKhDroitGèreTâche
MANAGE SERVERhDroitGestionServeur
MANAGE USERhDroitGestionUtilisateur
READ LOGhDroitLectureLogStat
PRIORITYhDroitPriorité
REPLICATEhDroitRéplicationServeur
SEE USERhDroitVisualisationUtilisateur
Les requêtes de type GRANT permettent de donner des droits sur un serveur HFSQL. Cette instruction est équivalente à donner le droit hAutorisé à l'élément. Son format d'utilisation est le suivant :
  • Donner les droits demandés sur les tables spécifiées aux utilisateurs spécifiés :
    GRANT droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]  
    TO utilisateur [, utilisateur [, ...]]
  • Donner les droits demandés sur les bases spécifiées aux utilisateurs spécifiés.
    GRANT droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
    TO utilisateur [, utilisateur [, ...]]
  • Donner les droits demandés sur le serveur.
    GRANT droit[, droit [, ... ]]
    TO utilisateur [, utilisateur [, ...]]
Remarque :
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne peuvent pas êtres utilisées sur une base de données HFSQL Classic ni sur une base de données accédée par les accès natifs.

Droits disponibles

Les droits disponibles sont :
Droit SQLDroit HFSQL
INSERThDroitAjout
LOCKhDroitBlocage
MANAGE RIGHTShDroitChangeDroit
OWNERhDroitChangePropriétaire
MANAGE DUPLICATEhDroitGèreDoublon
SELECThDroitLecture
MAINTENANCEhDroitMaintenance
ALTERhDroitModifAuto
UPDATEhDroitModification
DELETEhDroitSuppression
DELETE FILEhDroitSuppressionFichier
REFERENCEShDroitChangeLiaison
CONNECThDroitConnexion
ENCRYPTED CONNECThDroitConnexionCryptée
CREATEhDroitCréationFichier
DEBUGhDroitDéboguer
RUN PROCEDUREhDroitExécutionProcédure
MANAGE REFERENCEShDroitGèreIntégrité
MANAGE PROCEDUREhDroitGestionProcédure
MANAGE TRIGGERhDroitGestionTrigger
FORBID ACCESShDroitInterditAccèsBaseDeDonnées
BACKUPhDroitSauvegarde
DELETE DATABASEhDroitSuppressionBDD
STOPhDroitArrêtServeur
CHANGE PASSWORDhDroitChangeMotDePasse
CREATE DATABASEhDroitCréationBDD
DISCONNECThDroitDéconnecteClient
SEND MESSAGEhDroitEnvoieMessageVersClient
MANAGE TASKhDroitGèreTâche
MANAGE SERVERhDroitGestionServeur
MANAGE USERhDroitGestionUtilisateur
READ LOGhDroitLectureLogStat
PRIORITYhDroitPriorité
REPLICATEhDroitRéplicationServeur
SEE USERhDroitVisualisationUtilisateur
REVOKE
Versions 20 et supérieures
Les requêtes de type REVOKE permettent de retirer des droits (passent les droits en hHérité) sur un serveur HFSQL). Son format d'utilisation est le suivant :
  • Mettre les droits demandés en hérité sur les tables spécifiées aux utilisateurs spécifiés.
    REVOKE droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]  
    FROM utilisateur [, utilisateur [, ...]]
  • Mettre les droits demandés en hérité sur les bases spécifiées aux utilisateurs spécifiés.
    REVOKE droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
    FROM utilisateur [, utilisateur [, ...]]
  • Mettre les droits demandés en hérité sur le serveur.
    REVOKE droit[, droit [, ... ]] FROM utilisateur [, utilisateur [, ...]]
Remarque
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne fonctionnent pas en HFSQL Classic ni via les Accès Natifs.
Droits disponibles : Les droits disponibles sont identiques à la commande SQL GRANT. Vous trouverez le tableau des droits au niveau de la commande GRANT.
Nouveauté 20
Les requêtes de type REVOKE permettent de retirer des droits (passent les droits en hHérité) sur un serveur HFSQL). Son format d'utilisation est le suivant :
  • Mettre les droits demandés en hérité sur les tables spécifiées aux utilisateurs spécifiés.
    REVOKE droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]  
    FROM utilisateur [, utilisateur [, ...]]
  • Mettre les droits demandés en hérité sur les bases spécifiées aux utilisateurs spécifiés.
    REVOKE droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
    FROM utilisateur [, utilisateur [, ...]]
  • Mettre les droits demandés en hérité sur le serveur.
    REVOKE droit[, droit [, ... ]] FROM utilisateur [, utilisateur [, ...]]
Remarque
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne fonctionnent pas en HFSQL Classic ni via les Accès Natifs.
Droits disponibles : Les droits disponibles sont identiques à la commande SQL GRANT. Vous trouverez le tableau des droits au niveau de la commande GRANT.
Les requêtes de type REVOKE permettent de retirer des droits (passent les droits en hHérité) sur un serveur HFSQL). Son format d'utilisation est le suivant :
  • Mettre les droits demandés en hérité sur les tables spécifiées aux utilisateurs spécifiés.
    REVOKE droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]  
    FROM utilisateur [, utilisateur [, ...]]
  • Mettre les droits demandés en hérité sur les bases spécifiées aux utilisateurs spécifiés.
    REVOKE droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
    FROM utilisateur [, utilisateur [, ...]]
  • Mettre les droits demandés en hérité sur le serveur.
    REVOKE droit[, droit [, ... ]] FROM utilisateur [, utilisateur [, ...]]
Remarque
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne fonctionnent pas en HFSQL Classic ni via les Accès Natifs.
Droits disponibles : Les droits disponibles sont identiques à la commande SQL GRANT. Vous trouverez le tableau des droits au niveau de la commande GRANT.
CREATE VIEW
Versions 20 et supérieures
L'instruction CREATE VIEW permet de créer une vue SQL. Les vues SQL sont assimilées à des fichiers temporaires en mémoire. Une vue SQL est généralement un extrait d'un fichier ou de plusieurs fichiers. Une vue peut à son tour être manipulée par une commande SELECT.
Pour plus de détails sur les vues SQL, consultez Vue SQL.
Son format d'utilisation est le suivant :
CREATE VIEW Vue [ ( Alias 1, Alias 2, ..., Alias N) ] AS RequêteSELECT
Dans cette syntaxe :
  • Vue est le nom de la vue.
  • Alias 1, Alias 2, Alias N représentent les noms d'alias donnés aux rubriques issues de la requête SELECT.
  • RequêteSELECT est la requête de type SELECT permettant de sélectionner les enregistrements présents dans la vue.
Exemple SQL : Création d'une vue SQL contenant uniquement la société, le nom et le téléphone des clients :
CREATE VIEW V_Clients
AS SELECT Société, Nom, Téléphone FROM Clients
Nouveauté 20
L'instruction CREATE VIEW permet de créer une vue SQL. Les vues SQL sont assimilées à des fichiers temporaires en mémoire. Une vue SQL est généralement un extrait d'un fichier ou de plusieurs fichiers. Une vue peut à son tour être manipulée par une commande SELECT.
Pour plus de détails sur les vues SQL, consultez Vue SQL.
Son format d'utilisation est le suivant :
CREATE VIEW Vue [ ( Alias 1, Alias 2, ..., Alias N) ] AS RequêteSELECT
Dans cette syntaxe :
  • Vue est le nom de la vue.
  • Alias 1, Alias 2, Alias N représentent les noms d'alias donnés aux rubriques issues de la requête SELECT.
  • RequêteSELECT est la requête de type SELECT permettant de sélectionner les enregistrements présents dans la vue.
Exemple SQL : Création d'une vue SQL contenant uniquement la société, le nom et le téléphone des clients :
CREATE VIEW V_Clients
AS SELECT Société, Nom, Téléphone FROM Clients
L'instruction CREATE VIEW permet de créer une vue SQL. Les vues SQL sont assimilées à des fichiers temporaires en mémoire. Une vue SQL est généralement un extrait d'un fichier ou de plusieurs fichiers. Une vue peut à son tour être manipulée par une commande SELECT.
Pour plus de détails sur les vues SQL, consultez Vue SQL.
Son format d'utilisation est le suivant :
CREATE VIEW Vue [ ( Alias 1, Alias 2, ..., Alias N) ] AS RequêteSELECT
Dans cette syntaxe :
  • Vue est le nom de la vue.
  • Alias 1, Alias 2, Alias N représentent les noms d'alias donnés aux rubriques issues de la requête SELECT.
  • RequêteSELECT est la requête de type SELECT permettant de sélectionner les enregistrements présents dans la vue.
Exemple SQL : Création d'une vue SQL contenant uniquement la société, le nom et le téléphone des clients :
CREATE VIEW V_Clients
AS SELECT Société, Nom, Téléphone FROM Clients
DROP VIEW
Versions 20 et supérieures
La fonction DROP VIEW permet de supprimer une vue.
DROP VIEW [IF EXISTS] Vue 1 [, Vue 2, ...Vue N] [RESTRICT | CASCADE]
  • Si le mot-clé IF EXISTS est indiqué et que la vue (ou les vues) n'existe(nt) pas, un message d'erreur est généré.
  • Vue 1, Vue 2, ... Vue N représentent la liste des vues à détruire.
  • Si le mot-clé RESTRICT est indiqué, la vue n'est pas supprimée dans le cas où celle-ci est en cours d'utilisation.
  • Si le mot-clé CASCADE est indiqué, la vue est supprimée ainsi que les vues dépendantes.
Nouveauté 20
La fonction DROP VIEW permet de supprimer une vue.
DROP VIEW [IF EXISTS] Vue 1 [, Vue 2, ...Vue N] [RESTRICT | CASCADE]
  • Si le mot-clé IF EXISTS est indiqué et que la vue (ou les vues) n'existe(nt) pas, un message d'erreur est généré.
  • Vue 1, Vue 2, ... Vue N représentent la liste des vues à détruire.
  • Si le mot-clé RESTRICT est indiqué, la vue n'est pas supprimée dans le cas où celle-ci est en cours d'utilisation.
  • Si le mot-clé CASCADE est indiqué, la vue est supprimée ainsi que les vues dépendantes.
La fonction DROP VIEW permet de supprimer une vue.
DROP VIEW [IF EXISTS] Vue 1 [, Vue 2, ...Vue N] [RESTRICT | CASCADE]
  • Si le mot-clé IF EXISTS est indiqué et que la vue (ou les vues) n'existe(nt) pas, un message d'erreur est généré.
  • Vue 1, Vue 2, ... Vue N représentent la liste des vues à détruire.
  • Si le mot-clé RESTRICT est indiqué, la vue n'est pas supprimée dans le cas où celle-ci est en cours d'utilisation.
  • Si le mot-clé CASCADE est indiqué, la vue est supprimée ainsi que les vues dépendantes.
CREATE MATERIALIZED VIEW
Versions 20 et supérieures
Une vue matérialisée est une vue persistante : un fichier est créé sur disque avec le contenu de la vue. Cette vue pourra être manipulée plus tard par une autre application que celle qui l'a créée.
La fonction CREATE MATERIALIZED VIEW permet de créer une vue matérialisée.
CREATE MATERIALIZED VIEW Vue [ ( Alias 1, Alias 2, ...Alias N) ]
AS instruction SELECT [WITH [ NO ] DATA]
  • Le mot-clé WITH DATA crée une vue avec les données.
  • Le mot-clé WITH NO DATA crée une vue vide sans les données.
Remarque
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne peuvent pas fonctionner en HFSQL Classic ni avec les Accès Natifs.
Nouveauté 20
Une vue matérialisée est une vue persistante : un fichier est créé sur disque avec le contenu de la vue. Cette vue pourra être manipulée plus tard par une autre application que celle qui l'a créée.
La fonction CREATE MATERIALIZED VIEW permet de créer une vue matérialisée.
CREATE MATERIALIZED VIEW Vue [ ( Alias 1, Alias 2, ...Alias N) ]
AS instruction SELECT [WITH [ NO ] DATA]
  • Le mot-clé WITH DATA crée une vue avec les données.
  • Le mot-clé WITH NO DATA crée une vue vide sans les données.
Remarque
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne peuvent pas fonctionner en HFSQL Classic ni avec les Accès Natifs.
Une vue matérialisée est une vue persistante : un fichier est créé sur disque avec le contenu de la vue. Cette vue pourra être manipulée plus tard par une autre application que celle qui l'a créée.
La fonction CREATE MATERIALIZED VIEW permet de créer une vue matérialisée.
CREATE MATERIALIZED VIEW Vue [ ( Alias 1, Alias 2, ...Alias N) ]
AS instruction SELECT [WITH [ NO ] DATA]
  • Le mot-clé WITH DATA crée une vue avec les données.
  • Le mot-clé WITH NO DATA crée une vue vide sans les données.
Remarque
  • Ce type de requête ne peut pas être créé avec l'assistant de l'éditeur de requêtes.
  • Ces requêtes ne peuvent pas fonctionner en HFSQL Classic ni avec les Accès Natifs.
DROP MATERIALIZED VIEW
Versions 20 et supérieures
La fonction DROP MATERIALIZED VIEW permet de supprimer physiquement sur le disque une vue matérialisée.
DROP MATERIALIZED VIEW [IF EXISTS] Vue 1 [, Vue 2, ...Vue N] [RESTRICT | CASCADE]
  • Si le mot-clé IF EXISTS est indiqué et que la vue (ou les vues) n'existe(nt) pas, un message d'erreur est généré.
  • Vue 1, Vue 2, ... Vue N représentent la liste des vues à détruire.
  • Si le mot-clé RESTRICT est indiqué, la vue n'est pas supprimée dans le cas où celle-ci est en cours d'utilisation.
  • Si le mot-clé CASCADE est indiqué, la vue est supprimée ainsi que les vues dépendantes.
Nouveauté 20
La fonction DROP MATERIALIZED VIEW permet de supprimer physiquement sur le disque une vue matérialisée.
DROP MATERIALIZED VIEW [IF EXISTS] Vue 1 [, Vue 2, ...Vue N] [RESTRICT | CASCADE]
  • Si le mot-clé IF EXISTS est indiqué et que la vue (ou les vues) n'existe(nt) pas, un message d'erreur est généré.
  • Vue 1, Vue 2, ... Vue N représentent la liste des vues à détruire.
  • Si le mot-clé RESTRICT est indiqué, la vue n'est pas supprimée dans le cas où celle-ci est en cours d'utilisation.
  • Si le mot-clé CASCADE est indiqué, la vue est supprimée ainsi que les vues dépendantes.
La fonction DROP MATERIALIZED VIEW permet de supprimer physiquement sur le disque une vue matérialisée.
DROP MATERIALIZED VIEW [IF EXISTS] Vue 1 [, Vue 2, ...Vue N] [RESTRICT | CASCADE]
  • Si le mot-clé IF EXISTS est indiqué et que la vue (ou les vues) n'existe(nt) pas, un message d'erreur est généré.
  • Vue 1, Vue 2, ... Vue N représentent la liste des vues à détruire.
  • Si le mot-clé RESTRICT est indiqué, la vue n'est pas supprimée dans le cas où celle-ci est en cours d'utilisation.
  • Si le mot-clé CASCADE est indiqué, la vue est supprimée ainsi que les vues dépendantes.
REFRESH MATERIALIZED VIEW
Versions 20 et supérieures
La fonction REFRESH MATERIALIZED VIEW permet d'actualiser le contenu sur le disque d'une vue matérialisée. La vue est recalculée dans sa totalité.
REFRESH MATERIALIZED VIEW Vue [WITH [ NO ] DATA]
  • Le mot-clé WITH DATA actualise la vue avec les nouvelles données.
  • Le mot-clé WITH NO DATA actualise la vue vide sans les données.
Nouveauté 20
La fonction REFRESH MATERIALIZED VIEW permet d'actualiser le contenu sur le disque d'une vue matérialisée. La vue est recalculée dans sa totalité.
REFRESH MATERIALIZED VIEW Vue [WITH [ NO ] DATA]
  • Le mot-clé WITH DATA actualise la vue avec les nouvelles données.
  • Le mot-clé WITH NO DATA actualise la vue vide sans les données.
La fonction REFRESH MATERIALIZED VIEW permet d'actualiser le contenu sur le disque d'une vue matérialisée. La vue est recalculée dans sa totalité.
REFRESH MATERIALIZED VIEW Vue [WITH [ NO ] DATA]
  • Le mot-clé WITH DATA actualise la vue avec les nouvelles données.
  • Le mot-clé WITH NO DATA actualise la vue vide sans les données.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
SELECT FROM bases multiples
Il n'est pas possible de faire un select dans une table d'une autre base sur un même serveur.

Tremblay RICHARD
13 sep. 2017