Vous êtes sur la page 1sur 14

Instructions SQL

Prsentation
Les principales instructions SQL autorises dans les requtes SQL gres par WINDEV et
WEBDEV sont les suivantes :

SELECT

INSERT

UPDATE

DELETE

CREATE TABLE

CREATE TABLE AS

DROP TABLE

ALTER TABLE

CREATE INDEX

GRANT

REVOKE

CREATE VIEW

DROP VIEW

CREATE MATERIALIZED VIEW

DROP MATERIALIZED VIEW

REFRESH MATERIALIZED VIEW

Pour plus de dtails sur les instructions SQL, consultez une documentation spcifique au
langage SQL.
Pour connatre toutes les commandes SQL (fonctions, clauses, oprateurs, ...) utilisables dans
une requte SQL gre par HFSQL, consultez Commandes utilisables dans une requte SQL
gre par HFSQL.
Remarque : A partir de la version 19, HFSQL est le nouveau nom de HyperFileSQL.
Remarques:

Ces instructions sont utilisables :

o dans le code SQL des requtes cres sous l'diteur de requtes. Ces requtes
sont ensuite excutes grce la fonction HExcuteRequte.
o dans le code SQL des requtes excutes avec la fonction du WLangage
HExcuteRequteSQL.

Le caractre " peut tre utilis comme dlimiteur d'identifiant dans les requtes SQL
comme prvu par la norme SQL92.

Important

L'diteur de requtes Utilisateur ne permet pas de crer des requtes 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] ConditionsSlection]
[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 Cte d'Or. Le rsultat sera regroup par nom du client, par code postal et par
ville. Seuls les clients ayant un cumul des commandes suprieur 3000 Euros seront
conservs. Le rsultat 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 dupliqus (doublons)


du rsultat de la requte.

Pour plus de dtails sur les conditions de slection, consultez Conditions de slection
dans une requte SQL.

Une requte de slection peut tre ralise avec l'diteur de requtes. Pour plus de
dtails, consultez Cration d'une requte de slection.

Dans la syntaxe de l'instruction SELECT, le paramtre NomDesRubriques peut


contenir une ou plusieurs conditions de slection. Par exemple :

SELECT NomClient, Age>18 AS Majeur FROM Client

L'instruction SELECT peut tre utilise 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 requte SELECT utilise comme expression scalaire doit renvoyer un rsultat
sur une seule colonne et une seule ligne.
Cas particulier : SELECT multifichiers
L'instruction SELECT permet galement de slectionner dans une requte multifichier toutes
les colonnes d'un fichier de donnes grce la syntaxe suivante :
SELECT Ligne_Commande.*,Commande.NumCommande, ...
FROM Commande, Ligne_Commande

Cette syntaxe est particulirement intressante dans le cadre de jointures et vite la saisie
fastidieuse de chaque nom de rubrique.
Cas particuliers : SELECT sans FROM ou SELECT utilisant une table virtuelle
L'instruction SELECT permet galement d'excuter des requtes 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 (nomme "dummy") et un seul enregistrement.
Exemple :
SELECT CURRENT_DATE FROM DUAL

Excuter une procdure stocke


L'instruction SELECT permet galement d'excuter directement des procdures stockes.
La syntaxe pour excuter la procdure stocke est la suivante :

SELECT NomDeLaProcdureStocke(ParamtreNumrique,'ParamtreChane',....) [FROM


DUAL]
Remarques :

La procdure stocke doit tre une fonction stocke : elle doit toujours renvoyer une
valeur. Dans le cas contraire, une erreur d'excution sera gnre.

Si le nom de la procdure stocke est identique celui d'une fonction ou procdure du


projet, il est ncessaire de prfixer son nom par le nom de la collection de procdures
stockes.

Le rsultat d'une procdure stocke peut galement tre un des paramtres d'une
requte de type SELECT.

Pour plus de dtails, consultez Procdures et requtes stockes (HFSQL Client/Serveur).


INSERT
INSERT
L'instruction INSERT permet d'ajouter :

un enregistrement dans un fichier de donnes.

plusieurs enregistrements dans un fichier de donnes.

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'insrer :

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 numro, le nom et le prnom du


client sont fournis :
INSERT INTO CLIENT (NumClient, NomClient, PrnomClient)
VALUES (77, 'Martin', 'Julie')

3 produits dans un fichier PRODUIT :


INSERT INTO PRODUIT
VALUES ('Ref01', 'Eau minrale'), ('Ref02', 'Beurre'), ('Ref03', 'Eponge')

Remarques :

Une requte d'insertion peut tre cre sous l'diteur de requtes. Pour plus de dtails,
consultez Cration d'une requte d'insertion.

Pour connatre la valeur de l'identifiant automatique lors d'une requte de type


INSERT sur des fichiers HFSQL (requte excute par la fonction
HExcuteRequteSQL, HExcuteRequte ou SQLExec) : la variable SQL.Idauto
permet de connatre la valeur de l'identifiant.

Il n'est pas possible d'utiliser l'instruction INSERT pour copier les donnes d'un fichier
HFSQL dans un autre fichier HFSQL.

INSERT avec slection


L'instruction INSERT peut galement tre utilise pour insrer une slection
d'enregistrements ralise par une requte SELECT. Son format d'utilisation devient :
INSERT INTO NomDuFichier [(NomDesRubriques)] SELECT ...
Remarques :

Le nombre de rubriques insrer doit tre identique au nombre de valeurs renvoyes


par la requte SELECT.

Si aucune rubrique n'est prcise dans l'instruction INSERT, toutes les rubriques du
fichier sont prises en compte.

Ce type de requte ne peut pas tre cr directement dans l'diteur de requtes.

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-slections (par SELECT), condition que la


sous-slection soit relative un autre fichier.

L'expression SET n'accepte pas de sous-slection (pas de commande SELECT


directement aprs SET). De la mme faon il n'est pas possible de faire une jointure
au niveau de la partie UPDATE de la requte.
La requte suivante est accepte :
UPDATE ARTICLE SET PrixVente = 1000
WHERE RefArticle IN (SELECT COMMANDE.RefArticle FROM COMMANDE)
-- Sous-requte dans le WHERE: OK

La requte suivante n'est pas accepte :


UPDATE Article
SET PrixVente = (SELECT AVG(COMMANDE.PrixUnit) FROM COMMANDE
-- Sous-requte 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 mme faon la requte suivante n'est pas accepte :


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 requte de mise jour peut tre cre directement sous l'diteur de requtes. Pour
plus de dtails, consultez Cration d'une requte de modification.

L'apostrophe sert de dlimiteur pour les chanes dans les requtes SQL. Si la valeur
crire doit contenir une apostrophe, cette valeur doit tre prcde du caractre
antislash ('\'). Par exemple :
UPDATE CLIENT
SET Adresse = 'Rue de l\'cluse'
WHERE NomClient = 'Montgomery'

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 ns entre le 01/01/1971 et le
01/01/1975 :
DELETE FROM CLIENT
WHERE CLIENT.DateNaissance BETWEEN '19710101' AND '19750101'

Remarque : Une requte de suppression peut tre cre directement avec l'diteur de
requtes. Pour plus de dtails, consultez Cration d'une requte de suppression.
CREATE TABLE
L'instruction CREATE TABLE permet de dcrire une table et de la crer. 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 paramtres "Description de rubrique" correspondent :


NomRubrique type [DEFAULT 'valeur' | DEFAULT NULL] [NOT NULL]
[UNIQUE] [PRIMARY KEY] [AUTO_INCREMENT] [COMMENT 'libell']
[COLLATE 'langue']
o :
o NomRubrique : nom donner la rubrique.
o Type : Type de la rubrique (choisi parmi les types disponibles prsents cidessous).
o DEFAULT : permet de fixer la valeur par dfaut de la rubrique.
o NOT NULL : permet d'interdire d'affecter la valeur NULL la rubrique.
o AUTO_INCREMENT : permet de dfinir un identifiant automatique pour les
rubriques de type entier.
o COMMENT : permet de dfinir le libell de la rubrique.
o COLLATE : permet de dfinir la langue de tri de la rubrique (par exemple :
'FR_BE').

les paramtres "Description d'index" correspondent :


INDEX NomIndex ( rub1 [ASC | DESC] [CI] [AI] [PI], rub2 ... ) [UNIQUE]
o :
o ASC et DESC : permet de dfinir le sens du tri.
o CI : permet d'indiquer que la case est ignore.
o AI : permet d'indiquer que les accents sont ignors.
o PI : permet d'indiquer que la ponctuation est ignore.

Remarque : Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.
Types disponibles
Les types disponibles sont :
CHARACTER
CHARACTER(Taille)
VARCHAR(Taille)

Chane de caractres
Chane sur taille
Chane sur taille

CHARACTER VARYING(Taille)
Chane sur taille
CHAR VARYING(Taille)
Chane sur taille
NVARCHAR(Taille)
Chane Unicode sur taille
VARCHAR(Taille) BINARY
Chane binaire sur taille
BINARY(Taille)
Chane binaire sur taille
VARBINARY(Taille)
Chane binaire sur taille
BLOB
Mmo binaire
CLOB
Mmo texte
TEXT
Mmo texte
NCLOB
Mmo Unicode
NTEXT
Mmo Unicode
NUMBER(Prcision)
Entier
NUMBER(Prcision, chelle)
Entier
DECIMAL(Prcision)
Rel
DECIMAL(Prcision, chelle)
Rel
TINYINT UNSIGNED
Entier non sign sur 1 octet
SMALLINT UNSIGNED
Entier non sign sur 2 octets
INTEGER UNSIGNED
Entier non sign sur 4 octets
BIGINT UNSIGNED
Entier non sign sur 8 octets
TINYINT
Entier sign sur 1 octet
SMALLINT
Entier sign sur 2 octets
INTEGER
Entier sign sur 4 octets
BIGINT
Entier sign sur 8 octets
FLOAT
Rel sur 4 octets
REAL
Rel sur 8 octets
DOUBLE PRECISION
Rel sur 8 octets
MONEY
Montaire
DATE
DATE
DATETIME
Date heure
TIME
Heure
CREATE TABLE AS
L'instruction CREATE TABLE AS permet de dcrire une table et de la crer partir du
rsultat d'une requte de slection. Les colonnes de la table ont les noms et les types de
donnes associs aux colonnes en sortie de la requte de type SELECT.
Son format d'utilisation est le suivant :
CREATE TABLE NomTable AS RequteSlection [WITH NO DATA]
Dans cette syntaxe :

RequteSlection est une requte de slection (SELECT). La requte est excute et la


table est cre partir du rsultat de cette requte de slection.

L'option "WITH NO DATA" permet de crer uniquement la structure de la table (sans


les donnes contenues dans le rsultat de la requte de slection).

Attention : La table cre peut avoir un index diffrent de la table d'origine.


Remarque : Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.
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 requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.

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-mme. Son format d'utilisation
est le suivant :
ALTER TABLE NomTable Action [, Action] ....
Dans cette syntaxe :

les paramtres "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 paramtres "Description de rubrique" correspondent :


NomRubrique type [DEFAULT 'valeur' | DEFAULT NULL] [NOT NULL]
[UNIQUE] [PRIMARY KEY]
[AUTO_INCREMENT] [COMMENT 'libell'] [COLLATE 'langue']
o :
o NomRubrique : nom donner la rubrique.
o Type : Type de la rubrique (choisi parmi les types disponibles prsents cidessus).
o DEFAULT : permet de fixer la valeur par dfaut de la rubrique.
o NOT NULL : permet d'interdire d'affecter la valeur NULL la rubrique.

o AUTO_INCREMENT : permet de dfinir un identifiant automatique pour les


rubriques de type entier.
o COMMENT : permet de dfinir le libell de la rubrique.
o COLLATE : permet de dfinir la langue de tri de la rubrique (par exemple :
'FR_BE').

les paramtres "Description d'index" correspondent :


NomRubrique [ASC | DESC] [CI] [AI] [PI]
o :
o ASC et DESC : permet de dfinir le sens du tri.
o CI : permet d'indiquer que la case est ignore.
o AI : permet d'indiquer que les accents sont ignors.
o PI : permet d'indiquer que la ponctuation est ignore.

Remarques :

Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.

Pour utiliser la table modifie lors du ALTER (sans analyse lie au projet), il faut
utiliser la fonction HDclareExterne aprs l'excution de la requte de type ALTER
TABLE.

CREATE INDEX
L'instruction CREATE INDEX est quivalente l'instruction ALTER TABLE pour crer 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 paramtres "Description d'index" correspondent :
NomRubrique [ASC | DESC] [CI] [AI] [PI]
o :

ASC et DESC : permet de dfinir le sens du tri.

CI : permet d'indiquer que la case est ignore.

AI : permet d'indiquer que les accents sont ignors.

PI : permet d'indiquer que la ponctuation est ignore.

Remarque : Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.

Il est possible d'utiliser l'instruction CREATE INDEX sur une vue matrialise. Dans ce cas,
le paramtre NomTable correspond au nom d'une vue matrialise. Si la vue est rafrachie, les
index sont mis jour automatiquement : il n'est pas ncessaire de recrer les index.
Exemple : Cration d'une vue matrialise et en mme temps d'une cl compose sur cette
vue.
-- Cration d'une vue matrialise
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 aprs
--Avec une cl compose
CREATE INDEX clecomp ON MaVueMaterialisee (Departement ASC CI AI PI,Aff ASC CI AI
PI,TypeAdherent ASC)

GRANT
Les requtes de type GRANT permettent de donner des droits sur un serveur HFSQL. Cette
instruction est quivalente donner le droit hAutoris l'lment. Son format d'utilisation est
le suivant :

Donner les droits demands sur les tables spcifies aux utilisateurs spcifis :
GRANT droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]
TO utilisateur [, utilisateur [, ...]]

Donner les droits demands sur les bases spcifies aux utilisateurs spcifis.
GRANT droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
TO utilisateur [, utilisateur [, ...]]

Donner les droits demands sur le serveur.


GRANT droit[, droit [, ... ]]
TO utilisateur [, utilisateur [, ...]]

Remarque :

Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.

Ces requtes ne peuvent pas tres utilises sur une base de donnes HFSQL Classic ni
sur une base de donnes accde par les accs natifs.

Droits disponibles
Les droits disponibles sont :
Droit SQL
INSERT
LOCK
MANAGE RIGHTS

Droit HFSQL
hDroitAjout
hDroitBlocage
hDroitChangeDroit

OWNER
hDroitChangePropritaire
MANAGE DUPLICATE
hDroitGreDoublon
SELECT
hDroitLecture
MAINTENANCE
hDroitMaintenance
ALTER
hDroitModifAuto
UPDATE
hDroitModification
DELETE
hDroitSuppression
DELETE FILE
hDroitSuppressionFichier
REFERENCES
hDroitChangeLiaison
CONNECT
hDroitConnexion
ENCRYPTED CONNECT
hDroitConnexionCrypte
CREATE
hDroitCrationFichier
DEBUG
hDroitDboguer
RUN PROCEDURE
hDroitExcutionProcdure
MANAGE REFERENCES
hDroitGreIntgrit
MANAGE PROCEDURE
hDroitGestionProcdure
MANAGE TRIGGER
hDroitGestionTrigger
FORBID ACCESS
hDroitInterditAccsBaseDeDonnes
BACKUP
hDroitSauvegarde
DELETE DATABASE
hDroitSuppressionBDD
STOP
hDroitArrtServeur
CHANGE PASSWORD
hDroitChangeMotDePasse
CREATE DATABASE
hDroitCrationBDD
DISCONNECT
hDroitDconnecteClient
SEND MESSAGE
hDroitEnvoieMessageVersClient
MANAGE TASK
hDroitGreTche
MANAGE SERVER
hDroitGestionServeur
MANAGE USER
hDroitGestionUtilisateur
READ LOG
hDroitLectureLogStat
PRIORITY
hDroitPriorit
REPLICATE
hDroitRplicationServeur
SEE USER
hDroitVisualisationUtilisateur
REVOKE
Les requtes de type REVOKE permettent de retirer des droits (passent les droits en hHrit)
sur un serveur HFSQL). Son format d'utilisation est le suivant :

Mettre les droits demands en hrit sur les tables spcifies aux utilisateurs spcifis.
REVOKE droit[, droit [, ... ]] ON [TABLE] table [, table [, ...]]
FROM utilisateur [, utilisateur [, ...]]

Mettre les droits demands en hrit sur les bases spcifies aux utilisateurs spcifis.
REVOKE droit[, droit [, ... ]] ON DATABASE database [, database [, ...]]
FROM utilisateur [, utilisateur [, ...]]

Mettre les droits demands en hrit sur le serveur.


REVOKE droit[, droit [, ... ]] FROM utilisateur [, utilisateur [, ...]]

Remarque

Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.

Ces requtes ne fonctionnent pas en HFSQL Classic ni via les Accs 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
L'instruction CREATE VIEW permet de crer une vue SQL. Les vues SQL sont assimiles
des fichiers temporaires en mmoire. Une vue SQL est gnralement un extrait d'un fichier ou
de plusieurs fichiers. Une vue peut son tour tre manipule par une commande SELECT.
Pour plus de dtails sur les vues SQL, consultez Vue SQL.
Son format d'utilisation est le suivant :
CREATE VIEW Vue [ ( Alias 1, Alias 2, ..., Alias N) ] AS RequteSELECT
Dans cette syntaxe :

Vue est le nom de la vue.

Alias 1, Alias 2, Alias N reprsentent les noms d'alias donns aux rubriques issues de
la requte SELECT.

RequteSELECT est la requte de type SELECT permettant de slectionner les


enregistrements prsents dans la vue.

Exemple SQL : Cration d'une vue SQL contenant uniquement la socit, le nom et le
tlphone des clients :
CREATE VIEW V_Clients
AS SELECT Socit, Nom, Tlphone FROM Clients

DROP VIEW
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 gnr.

Vue 1, Vue 2, ... Vue N reprsentent la liste des vues dtruire.

Si le mot-cl RESTRICT est indiqu, la vue n'est pas supprime dans le cas o celleci est en cours d'utilisation.

Si le mot-cl CASCADE est indiqu, la vue est supprime ainsi que les vues
dpendantes.

CREATE MATERIALIZED VIEW

Une vue matrialise est une vue persistante : un fichier est cr sur disque avec le contenu de
la vue. Cette vue pourra tre manipule plus tard par une autre application que celle qui l'a
cre.
La fonction CREATE MATERIALIZED VIEW permet de crer une vue matrialise.
CREATE MATERIALIZED VIEW Vue [ ( Alias 1, Alias 2, ...Alias N) ]
AS instruction SELECT [WITH [ NO ] DATA]

Le mot-cl WITH DATA cre une vue avec les donnes.

Le mot-cl WITH NO DATA cre une vue vide sans les donnes.

Remarque

Ce type de requte ne peut pas tre cr avec l'assistant de l'diteur de requtes.

Ces requtes ne peuvent pas fonctionner en HFSQL Classic ni avec les Accs Natifs.

DROP MATERIALIZED VIEW


La fonction DROP MATERIALIZED VIEW permet de supprimer physiquement sur le
disque une vue matrialise.
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 gnr.

Vue 1, Vue 2, ... Vue N reprsentent la liste des vues dtruire.

Si le mot-cl RESTRICT est indiqu, la vue n'est pas supprime dans le cas o celleci est en cours d'utilisation.

Si le mot-cl CASCADE est indiqu, la vue est supprime ainsi que les vues
dpendantes.

REFRESH MATERIALIZED VIEW


La fonction REFRESH MATERIALIZED VIEW permet d'actualiser le contenu sur le
disque d'une vue matrialise. La vue est recalcule dans sa totalit.
REFRESH MATERIALIZED VIEW Vue [WITH [ NO ] DATA]

Le mot-cl WITH DATA actualise la vue avec les nouvelles donnes.

Le mot-cl WITH NO DATA actualise la vue vide sans les donnes.