PC SOFT

AYUDA EN LÍNEA
DE WINDEV, WEBDEV Y WINDEV MOBILE

Este contenido proviene de una traducción automática.. Haga clic aquí para ver la versión original en inglés.
  • Presentación
  • SELECCIONE
  • SELECCIONE
  • Caso especial: SELECT Multiarchivo
  • Casos especiales: SELECT sin FROM o SELECT con una tabla virtual
  • Ejecutar un procedimiento almacenado
  • INSERT
  • INSERT
  • INSERT con selección
  • UPDATE
  • DELETE
  • CREATE TABLE
  • Tipos disponibles
  • CREATE TABLE AS
  • DROP TABLE
  • ALTER TABLE
  • CREATE INDEX
  • DROP INDEX
  • GRANT
  • REVOKE
  • CREATE VIEW
  • DROP VIEW
  • CREATE MATERIALIZED VIEW
  • DROP MATERIALIZED VIEW
  • REFRESH MATERIALIZED VIEW
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Otros
Procedimientos almacenados
Presentación
Las principales instrucciones SQL permitidas en las consultas SQL gestionadas por WINDEV y WEBDEV son las siguientes:
Para obtener más detalles sobre las instrucciones SQL, consulte una documentación específica del lenguaje SQL.
Para descubrir todos los comandos SQL (funciones, cláusulas, operadores, etc.) que se pueden utilizar en una consulta SQL gestionada por HFSQL, véase Comandos que se pueden utilizar en una consulta SQL gestionada por HFSQL.
Observación: A partir de la versión 19, HFSQL es el nuevo nombre de HyperFileSQL.
Observaciones:
  • Estas instrucciones se pueden utilizar:
    • en el código SQL de las consultas creadas en el editor de consultas. Estas consultas se ejecutan con la función HExecuteQuery.
    • en el código SQL de las consultas ejecutadas con la función de WLanguage HExecuteSQLQuery.
  • Versiones 15 y posteriores
    El carácter " puede utilizarse como delimitador de identificadores en consultas SQL según lo especificado por el estándar SQL92.
    Nueva funcionalidad versión 15
    El carácter " puede utilizarse como delimitador de identificadores en consultas SQL según lo especificado por el estándar SQL92.
    El carácter " puede utilizarse como delimitador de identificadores en consultas SQL según lo especificado por el estándar SQL92.

Importante

El editor de consultas Usuario no permite crear consultas en código SQL utilizando los comandos INSERT, UPDATE o DELETE.
SELECCIONE

SELECCIONE

La instrucción SELECT permite buscar registros en uno o más archivos.
Formato de uso:
SELECT [ALL/DISTINCT] NamesOfItems AS NameOfItemsUsed
FROM FileName AS UsedFileName
[WHERE FileJoins [AND] SelectionConditions]
[GROUP BY NameOfItems [HAVING Condition]]
[ORDER BY NameOfItems]
Ejemplo: El siguiente código SQL permite mostrar la suma total de pedidos por cliente que vive en París. El resultado se agrupará por nombre de cliente, código postal y ciudad. Solo se considerarán los clientes con un total de pedidos superior a 3000 dólares. El resultado se ordenará según el número total de pedidos en orden ascendente:
SELECT CUSTOMER.CustomerLName AS CustomerLName,
CUSTOMER.ZipCode AS ZipCode,
CUSTOMER.City AS City,
SUM(ORDERS.TotalIOT) AS TotalIOT
FROM CUSTOMER AS CUST, ORDERS AS ORD
WHERE CUST.CustNum = ORD.CustNum
AND ZipCode LIKE '75%'
GROUP BY CustomerLName, ZipCode, City
HAVING TotalIOT > 3000
ORDER BY TotalIOT ASC
Observaciones:
  • La palabra clave DISTINCT permite eliminar los registros duplicados del resultado de la consulta.
  • Consulte Condiciones de selección en una consulta SQL para más detalles sobre las condiciones de selección.
  • Se pueden crear consultas de selección en el editor de consultas. Consulte Crear una consulta de selección para obtener más detalles.
  • Versiones 19 y posteriores
    En la sintaxis de la instrucción SELECT, el parámetro NombreDeElementos puede contener una o más condiciones de selección. Por ejemplo:
    SELECT CustomerName, Age>18 AS Adult FROM Customer
    Nueva funcionalidad versión 19
    En la sintaxis de la instrucción SELECT, el parámetro NombreDeElementos puede contener una o más condiciones de selección. Por ejemplo:
    SELECT CustomerName, Age>18 AS Adult FROM Customer
    En la sintaxis de la instrucción SELECT, el parámetro NombreDeElementos puede contener una o más condiciones de selección. Por ejemplo:
    SELECT CustomerName, Age>18 AS Adult FROM Customer
Versiones 20 y posteriores
  • La instrucción SELECT puede utilizarse como una expresión escalar, es decir que se puede utilizar SELECT en lugar de un valor o columna en instrucciones como INSERT, UPDATE, SELECT, etc.
    Por ejemplo:
    INSERT INTO TABLE (NAME, value) VALUES ( 'Rome a Rick',
    (SELECT MAX(NUMBER) FROM table2) )

    UPDATE customer SET gdttl = (SELECT SUM(invoice.grand_total)
    FROM invoice WHERE invoice.reference=customer.reference)

    SELECT NamesOfItems AS NameOfItemsUsed,
    (SELECT COUNT(*) FROM Table2 WHERE Item=NameOfItemsUsed)
    FROM Table1
Observación: Al utilizar la consulta SELECT como expresión escalar, se debe obtener un resultado en una sola columna y en una sola fila.
Nueva funcionalidad versión 20
  • La instrucción SELECT puede utilizarse como una expresión escalar, es decir que se puede utilizar SELECT en lugar de un valor o columna en instrucciones como INSERT, UPDATE, SELECT, etc.
    Por ejemplo:
    INSERT INTO TABLE (NAME, value) VALUES ( 'Rome a Rick',
    (SELECT MAX(NUMBER) FROM table2) )

    UPDATE customer SET gdttl = (SELECT SUM(invoice.grand_total)
    FROM invoice WHERE invoice.reference=customer.reference)

    SELECT NamesOfItems AS NameOfItemsUsed,
    (SELECT COUNT(*) FROM Table2 WHERE Item=NameOfItemsUsed)
    FROM Table1
Observación: Al utilizar la consulta SELECT como expresión escalar, se debe obtener un resultado en una sola columna y en una sola fila.
  • La instrucción SELECT puede utilizarse como una expresión escalar, es decir que se puede utilizar SELECT en lugar de un valor o columna en instrucciones como INSERT, UPDATE, SELECT, etc.
    Por ejemplo:
    INSERT INTO TABLE (NAME, value) VALUES ( 'Rome a Rick',
    (SELECT MAX(NUMBER) FROM table2) )

    UPDATE customer SET gdttl = (SELECT SUM(invoice.grand_total)
    FROM invoice WHERE invoice.reference=customer.reference)

    SELECT NamesOfItems AS NameOfItemsUsed,
    (SELECT COUNT(*) FROM Table2 WHERE Item=NameOfItemsUsed)
    FROM Table1
Observación: Al utilizar la consulta SELECT como expresión escalar, se debe obtener un resultado en una sola columna y en una sola fila.
Versiones 16 y posteriores

Caso especial: SELECT Multiarchivo

La instrucción SELECT también permite seleccionar en una consulta multiarchivo todas las columnas de un archivo de datos mediante la siguiente sintaxis:
SELECT Order_Line.*,Orders.OrderNum, ...
FROM Orders, Order_Line
Esta sintaxis es muy útil para las combinaciones y evita tener que introducir el nombre de cada elemento, una operación que podría tardar mucho tiempo.
Nueva funcionalidad versión 16

Caso especial: SELECT Multiarchivo

La instrucción SELECT también permite seleccionar en una consulta multiarchivo todas las columnas de un archivo de datos mediante la siguiente sintaxis:
SELECT Order_Line.*,Orders.OrderNum, ...
FROM Orders, Order_Line
Esta sintaxis es muy útil para las combinaciones y evita tener que introducir el nombre de cada elemento, una operación que podría tardar mucho tiempo.

Caso especial: SELECT Multiarchivo

La instrucción SELECT también permite seleccionar en una consulta multiarchivo todas las columnas de un archivo de datos mediante la siguiente sintaxis:
SELECT Order_Line.*,Orders.OrderNum, ...
FROM Orders, Order_Line
Esta sintaxis es muy útil para las combinaciones y evita tener que introducir el nombre de cada elemento, una operación que podría tardar mucho tiempo.
Versiones 19 y posteriores

Casos especiales: SELECT sin FROM o SELECT con una tabla virtual

La instrucción SELECT también permite ejecutar consultas que no utilizan tablas:
  • utilizando la sintaxis sin la cláusula "FROM.
    Ejemplo:
    SELECT TO_CHAR(12,'RN')
  • utilizando la tabla virtual DUAL. Esta tabla virtual contiene un solo elemento (llamado "dummy") y un solo registro.
    Ejemplo:
    SELECT CURRENT_DATE FROM DUAL
Nueva funcionalidad versión 19

Casos especiales: SELECT sin FROM o SELECT con una tabla virtual

La instrucción SELECT también permite ejecutar consultas que no utilizan tablas:
  • utilizando la sintaxis sin la cláusula "FROM.
    Ejemplo:
    SELECT TO_CHAR(12,'RN')
  • utilizando la tabla virtual DUAL. Esta tabla virtual contiene un solo elemento (llamado "dummy") y un solo registro.
    Ejemplo:
    SELECT CURRENT_DATE FROM DUAL

Casos especiales: SELECT sin FROM o SELECT con una tabla virtual

La instrucción SELECT también permite ejecutar consultas que no utilizan tablas:
  • utilizando la sintaxis sin la cláusula "FROM.
    Ejemplo:
    SELECT TO_CHAR(12,'RN')
  • utilizando la tabla virtual DUAL. Esta tabla virtual contiene un solo elemento (llamado "dummy") y un solo registro.
    Ejemplo:
    SELECT CURRENT_DATE FROM DUAL

Ejecutar un procedimiento almacenado

La instrucción SELECT también permite ejecutar procedimientos almacenados directamente.
La siguiente sintaxis se utiliza para ejecutar el procedimiento almacenado:
SELECT NameOfStoredProcedure(NumericParameter,'StringParameter',....) [FROM DUAL]
Observaciones:
  • El procedimiento almacenado debe ser una función almacenada: siempre debe devolver un valor. En caso contrario, se generará un error de ejecución.
  • Si el nombre del procedimiento almacenado es idéntico al de una función o procedimiento del proyecto, debe ir precedido por el nombre del conjunto de procedimientos almacenados.
  • El resultado de un procedimiento almacenado también puede ser uno de los parámetros de una consulta SELECT.
INSERT

INSERT

La instrucción INSERT permite agregar :
  • un registro en un archivo de datos.
  • Versiones 20 y posteriores
    varios registros en un archivo de datos.
    Nueva funcionalidad versión 20
    varios registros en un archivo de datos.
    varios registros en un archivo de datos.
El formato es el siguiente:
INSERT INTO FileName (NameOfItems)
VALUES (ValueItems add 1), (ValueItems add 2), ... , (ValueItems add N)
Ejemplos: Los siguientes códigos SQL permiten insertar:
  • un nuevo cliente en el archivo CUSTOMER (se proporciona la información completa del cliente).
    INSERT INTO CUSTOMER
    VALUES (77, 'Moore', 'Julia', '1 rue Giono',...
    '69000', 'Lyon')
  • un nuevo cliente en el archivo CUSTOMER: solo se proporciona el número, apellido y nombre del cliente:
    INSERT INTO CUSTOMER (CustNum, CustomerLName, CustomerFName)
    VALUES (77, 'Moore', 'Julia')
  • Versiones 20 y posteriores
    3 productos en un archivo PRODUCT:
    INSERT INTO PRODUCT
    VALUES ('Ref01', 'Mineral water'), ('Ref02', 'Butter'), ('Ref03', 'Sponge')
    Nueva funcionalidad versión 20
    3 productos en un archivo PRODUCT:
    INSERT INTO PRODUCT
    VALUES ('Ref01', 'Mineral water'), ('Ref02', 'Butter'), ('Ref03', 'Sponge')
    3 productos en un archivo PRODUCT:
    INSERT INTO PRODUCT
    VALUES ('Ref01', 'Mineral water'), ('Ref02', 'Butter'), ('Ref03', 'Sponge')
Observaciones:
  • Se pueden crear consultas de inserción en el editor de consultas. Consulte Crear una consulta de inserción para obtener más detalles.
  • Para conocer el valor del identificador automático durante una consulta de tipo INSERT en archivos HFSQL (consulta ejecutada con la función HExecuteSQLQuery, HExecuteQuery o SQLExec), utilice la variable SQL.IdAuto.
  • La instrucción INSERT no se puede utilizar para copiar datos de un archivo HFSQL a otro archivo HFSQL.
  • La variable H.NbRecModificationQuery permite conocer el número de registros insertados.

INSERT con selección

La instrucción INSERT también se puede utilizar para insertar una selección de registros realizada por una consulta SELECT. El formato a utilizar es el siguiente:
INSERT INTO FileName [(NameOfItems)] SELECT...
Observaciones:
  • El número de elementos a insertar debe ser igual al número de valores devueltos por la consulta SELECT.
  • Todos los elementos del archivo se tienen en cuenta si no se especifica ningún elemento en la instrucción INSERT.
  • Este tipo de consulta no se puede crear directamente en el editor de consultas.
UPDATE
La instrucción UPDATE actualiza registros en un archivo. Utiliza el siguiente formato:
UPDATE FileName
SET NameOfItem = Expression
[WHERE Conditions]

Ejemplo: El siguiente código SQL permite modificar el título y nombre del cliente Montgomery:
UPDATE CUSTOMER
SET Title = 'Mrs',
CustomerLName = 'Darwin'
WHERE CustomerLName = 'Montgomery'

Observaciones sobre el uso de la instrucción UPDATE en WINDEV:
  • La cláusula WHERE permite realizar subselecciones (con SELECT), si la subselección es relativa a otro archivo.
  • La expresión SET no acepta subselecciones (no se puede utilizar SELECT justo después de SET). Tampoco se puede realizar ninguna combinación en la sección UPDATE de la consulta.
    La siguiente consulta es aceptada:
    UPDATE PRODUCT SET SalesPrice = 1000
    WHERE ProductRef IN (SELECT ORDERS.ProductRef FROM ORDERS)
    -- Sub-query in WHERE: OK

    La siguiente consulta no es aceptada:
    UPDATE Product
    SET SalesPrice = (SELECT AVG(ORDERS.UnitPrice) FROM ORDERS
    -- Sub-query in SET: NOT VALID
    WHERE ORDERS.ProductRef = PRODUCT.ProductRef
    GROUP BY ORDERS.ProductRef)
    WHERE ProductRef IN (SELECT ORDERS.ProductRef FROM ORDERS)

    La siguiente consulta tampoco es aceptada:
    UPDATE Article INNER JOIN PRODUCT ON (Article.ArticleID = Product.ProductID)
    -- Join in UPDATE: NOT VALID
    SET Article.SalesPrice = Product.SalesPrice
    WHERE ProductRef IN (SELECT ORDERS.ProductRef FROM ORDERS)
  • Se pueden crear consultas de actualización directamente en el editor de consultas. Consulte Crear una consulta de actualización para obtener más detalles.
  • El apóstrofo se utiliza como delimitador de cadenas en consultas SQL. Si el valor que se va a escribir debe contener un apóstrofo, este valor debe estar precedido por el carácter backslash ('\'). Por ejemplo:
    UPDATE CUSTOMER
    SET Address = 'Rue de l\'écluse'
    WHERE CustomerLName = 'Montgomery'
  • La variable H.NbRecModificationQuery permite conocer el número de registros actualizado.
DELETE
La instrucción DELETE permite eliminar registros en un archivo. Utiliza el siguiente formato:
DELETE FROM FileName
WHERE Conditions
Ejemplo: El siguiente código SQL elimina clientes nacidos entre 01/01/1971 y 01/01/1975:
DELETE FROM CUSTOMER
WHERE CUSTOMER.DateOfBirth BETWEEN '19710101' AND '19750101'
Observación: Se pueden crear consultas de eliminación directamente en el editor de consultas. Consulte Crear una consulta de eliminación para obtener más detalles.
CREATE TABLE
La instrucción CREATE TABLE permite describir y crear una tabla. Utiliza el siguiente formato:
CREATE TABLE TableName
(
Description of item1,
Description of item2,
...
Description Index1,
Description Index2,
...
)
En esta sintaxis:
  • los parámetros "Descripción de elemento" corresponden a:
    ItemName type  [DEFAULT 'value' | DEFAULT NULL] [NOT NULL]
      [UNIQUE] [PRIMARY KEY]  [AUTO_INCREMENT] [COMMENT 'caption'] [COLLATE 'language']
    donde:
    • NombreElemento: nombre del elemento.
    • Tipo: Tipo de elemento (elegido entre los tipos disponibles que se presentan a continuación).
    • DEFAULT: define el valor predeterminado del elemento.
    • Versiones 16 y posteriores
      NOT NULL: evita que se asigne el valor NULL al elemento.
      Nueva funcionalidad versión 16
      NOT NULL: evita que se asigne el valor NULL al elemento.
      NOT NULL: evita que se asigne el valor NULL al elemento.
    • AUTO_INCREMENT: define un identificador automático para elementos de tipo Integer.
    • COMMENT: define el título del elemento.
    • COLLATE: define el idioma para ordenar el título del elemento (por ejemplo: 'ES_ES').
  • los parámetros "Descripción de índice" corresponden a:
    INDEX IndexName ( itm1 [ASC | DESC] [CI] [AI] [PI], itm2 ... ) [UNIQUE]
    donde:
    • ASC y DESC: define el sentido del orden.
    • CI: indica que se ignoran mayúsculas y minúsculas
    • AI: indica que se ignoran los acentos
    • PI: indica que se ignora la puntuación
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.

Tipos disponibles

Los tipos disponibles son:
CHARACTERCharacter string
CHARACTER(Tamaño)String on size
VARCHAR(Tamaño)String on size
Versiones 19 y posteriores
CHARACTER VARYING(Tamaño)
Nueva funcionalidad versión 19
CHARACTER VARYING(Tamaño)
CHARACTER VARYING(Tamaño)
String on size
Versiones 19 y posteriores
CHAR VARYING(Tamaño)
Nueva funcionalidad versión 19
CHAR VARYING(Tamaño)
CHAR VARYING(Tamaño)
String on size
NVARCHAR(Tamaño)Unicode string on size
VARCHAR(Tamaño) BINARYBinary string on size
BINARY(Tamaño)Binary string on size
VARBINARY(Tamaño)Binary string on size
BLOBBinary Memo
CLOBText Memo
TEXTText Memo
NCLOBUnicode memo
NTEXTUnicode memo
NUMBER(Precisión)Integer
NUMBER(Precisión, escala)Integer
DECIMAL(Precisión)Real
DECIMAL(Precisión, escala)Real
TINYINT UNSIGNEDUnsigned 1-byte integer
SMALLINT UNSIGNEDUnsigned 2-byte integer
INTEGER UNSIGNEDUnsigned 4-byte integer
BIGINT UNSIGNEDUnsigned 8-byte integer
TINYINTSigned 1-byte integer
SMALLINTEntero de 2 bytes con signo
INTEGERSigned 4-byte integer
BIGINTSigned 8-byte integer
FLOAT4-byte real
REAL8-byte real
DOUBLE PRECISION8-byte real
MONEYMonetario
DATEDATE
DATETIMEDate time
TIMETime
CREATE TABLE AS
Versiones 20 y posteriores
La instrucción CREATE TABLE AS permite describir y crear una tabla a partir del resultado de una consulta de selección. Las columnas de la tabla tienen los nombres y tipos de datos asociados a las columnas después de la ejecución de la consulta SELECT.
Utiliza el siguiente formato:
CREATE TABLE TableName AS SelectQuery [WITH NO DATA]
En esta sintaxis:
  • ConsultaSelección es una consulta SELECT. Se ejecuta la consulta y se crea la tabla a partir del resultado de la consulta de selección.
  • La opción "WITH NO DATA" permite crear solo la estructura de la tabla (sin los datos que se encuentran en el resultado de la consulta de selección).
Atención: El índice de la tabla creada puede ser diferente del de la tabla de origen.
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
Nueva funcionalidad versión 20
La instrucción CREATE TABLE AS permite describir y crear una tabla a partir del resultado de una consulta de selección. Las columnas de la tabla tienen los nombres y tipos de datos asociados a las columnas después de la ejecución de la consulta SELECT.
Utiliza el siguiente formato:
CREATE TABLE TableName AS SelectQuery [WITH NO DATA]
En esta sintaxis:
  • ConsultaSelección es una consulta SELECT. Se ejecuta la consulta y se crea la tabla a partir del resultado de la consulta de selección.
  • La opción "WITH NO DATA" permite crear solo la estructura de la tabla (sin los datos que se encuentran en el resultado de la consulta de selección).
Atención: El índice de la tabla creada puede ser diferente del de la tabla de origen.
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
La instrucción CREATE TABLE AS permite describir y crear una tabla a partir del resultado de una consulta de selección. Las columnas de la tabla tienen los nombres y tipos de datos asociados a las columnas después de la ejecución de la consulta SELECT.
Utiliza el siguiente formato:
CREATE TABLE TableName AS SelectQuery [WITH NO DATA]
En esta sintaxis:
  • ConsultaSelección es una consulta SELECT. Se ejecuta la consulta y se crea la tabla a partir del resultado de la consulta de selección.
  • La opción "WITH NO DATA" permite crear solo la estructura de la tabla (sin los datos que se encuentran en el resultado de la consulta de selección).
Atención: El índice de la tabla creada puede ser diferente del de la tabla de origen.
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
DROP TABLE
La instrucción DROP TABLE elimina una tabla físicamente. Utiliza el siguiente formato:
DROP TABLE [ IF EXISTS ] name [, ...]
Observaciones:
  • IF EXISTS permite no devolver errores si la tabla no existe.
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
ALTER TABLE
Versiones 18 y posteriores
La instrucción ALTER TABLE permite cambiar la estructura de una tabla existente. Puede agregar o eliminar columnas e índices, cambiar el tipo de las columnas existentes, o incluso cambiar el nombre de las columnas o de la tabla. Utiliza el siguiente formato:
ALTER TABLE TableName Action [, Action]....
En esta sintaxis:
  • los parámetros "Acción" corresponden a una de las siguientes acciones:
    ADD [COLUMN] Description of item
    ADD [COLUMN] (Description of item1 [,Description of item2]....)
    DROP [COLUMN] [IF EXISTS] ItemName
    DROP [COLUMN] [IF EXISTS] (NameItem1 [, NameItem2]...)
    ALTER [COLUMN] ItemName [SET DATA] TYPE alter_type_desc
    ALTER [COLUMN] ItemName SET DEFAULT <value>
    ALTER [COLUMN] ItemName DROP DEFAULT
    ADD [UNIQUE] INDEX [<IndexName>] (Description of index [, Description of index2]...)
    DROP INDEX [IF EXISTS] IndexName
    DROP INDEX [IF EXISTS] (NameIndex1 [, NameIndex2]...)
    RENAME COLUMN ItemName TO New_ItemName
  • Los parámetros "Descripción de elemento" corresponden a:
    ItemName type  [DEFAULT 'value' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY]
     [AUTO_INCREMENT] [COMMENT 'caption'] [COLLATE 'language']
    donde:
    • NombreElemento: nombre del elemento.
    • Tipo: Tipo del elemento (seleccionado entre los tipos mencionados anteriormente).
    • DEFAULT: define el valor predeterminado del elemento.
    • NOT NULL: evita que se asigne el valor NULL al elemento.
    • AUTO_INCREMENT: define un identificador automático para elementos de tipo Integer.
    • COMMENT: define el título del elemento.
    • COLLATE: define el idioma para ordenar el título del elemento (por ejemplo: 'ES_ES').
  • los parámetros "Descripción de índice" corresponden a:
    ItemName [ASC | DESC] [CI] [AI] [PI]
    donde:
    • ASC y DESC: define el sentido del orden.
    • CI: indica que se ignoran mayúsculas y minúsculas
    • AI: indica que se ignoran los acentos
    • PI: indica que se ignora la puntuación
Observaciones:
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Para utilizar la tabla modificada durante el ALTER (sin el análisis relacionado al proyecto), se debe utilizar la función HDeclareExternal después de ejecutar la consulta de tipo ALTER TABLE.
Nueva funcionalidad versión 18
La instrucción ALTER TABLE permite cambiar la estructura de una tabla existente. Puede agregar o eliminar columnas e índices, cambiar el tipo de las columnas existentes, o incluso cambiar el nombre de las columnas o de la tabla. Utiliza el siguiente formato:
ALTER TABLE TableName Action [, Action]....
En esta sintaxis:
  • los parámetros "Acción" corresponden a una de las siguientes acciones:
    ADD [COLUMN] Description of item
    ADD [COLUMN] (Description of item1 [,Description of item2]....)
    DROP [COLUMN] [IF EXISTS] ItemName
    DROP [COLUMN] [IF EXISTS] (NameItem1 [, NameItem2]...)
    ALTER [COLUMN] ItemName [SET DATA] TYPE alter_type_desc
    ALTER [COLUMN] ItemName SET DEFAULT <value>
    ALTER [COLUMN] ItemName DROP DEFAULT
    ADD [UNIQUE] INDEX [<IndexName>] (Description of index [, Description of index2]...)
    DROP INDEX [IF EXISTS] IndexName
    DROP INDEX [IF EXISTS] (NameIndex1 [, NameIndex2]...)
    RENAME COLUMN ItemName TO New_ItemName
  • Los parámetros "Descripción de elemento" corresponden a:
    ItemName type  [DEFAULT 'value' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY]
     [AUTO_INCREMENT] [COMMENT 'caption'] [COLLATE 'language']
    donde:
    • NombreElemento: nombre del elemento.
    • Tipo: Tipo del elemento (seleccionado entre los tipos mencionados anteriormente).
    • DEFAULT: define el valor predeterminado del elemento.
    • NOT NULL: evita que se asigne el valor NULL al elemento.
    • AUTO_INCREMENT: define un identificador automático para elementos de tipo Integer.
    • COMMENT: define el título del elemento.
    • COLLATE: define el idioma para ordenar el título del elemento (por ejemplo: 'ES_ES').
  • los parámetros "Descripción de índice" corresponden a:
    ItemName [ASC | DESC] [CI] [AI] [PI]
    donde:
    • ASC y DESC: define el sentido del orden.
    • CI: indica que se ignoran mayúsculas y minúsculas
    • AI: indica que se ignoran los acentos
    • PI: indica que se ignora la puntuación
Observaciones:
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Para utilizar la tabla modificada durante el ALTER (sin el análisis relacionado al proyecto), se debe utilizar la función HDeclareExternal después de ejecutar la consulta de tipo ALTER TABLE.
La instrucción ALTER TABLE permite cambiar la estructura de una tabla existente. Puede agregar o eliminar columnas e índices, cambiar el tipo de las columnas existentes, o incluso cambiar el nombre de las columnas o de la tabla. Utiliza el siguiente formato:
ALTER TABLE TableName Action [, Action]....
En esta sintaxis:
  • los parámetros "Acción" corresponden a una de las siguientes acciones:
    ADD [COLUMN] Description of item
    ADD [COLUMN] (Description of item1 [,Description of item2]....)
    DROP [COLUMN] [IF EXISTS] ItemName
    DROP [COLUMN] [IF EXISTS] (NameItem1 [, NameItem2]...)
    ALTER [COLUMN] ItemName [SET DATA] TYPE alter_type_desc
    ALTER [COLUMN] ItemName SET DEFAULT <value>
    ALTER [COLUMN] ItemName DROP DEFAULT
    ADD [UNIQUE] INDEX [<IndexName>] (Description of index [, Description of index2]...)
    DROP INDEX [IF EXISTS] IndexName
    DROP INDEX [IF EXISTS] (NameIndex1 [, NameIndex2]...)
    RENAME COLUMN ItemName TO New_ItemName
  • Los parámetros "Descripción de elemento" corresponden a:
    ItemName type  [DEFAULT 'value' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY]
     [AUTO_INCREMENT] [COMMENT 'caption'] [COLLATE 'language']
    donde:
    • NombreElemento: nombre del elemento.
    • Tipo: Tipo del elemento (seleccionado entre los tipos mencionados anteriormente).
    • DEFAULT: define el valor predeterminado del elemento.
    • NOT NULL: evita que se asigne el valor NULL al elemento.
    • AUTO_INCREMENT: define un identificador automático para elementos de tipo Integer.
    • COMMENT: define el título del elemento.
    • COLLATE: define el idioma para ordenar el título del elemento (por ejemplo: 'ES_ES').
  • los parámetros "Descripción de índice" corresponden a:
    ItemName [ASC | DESC] [CI] [AI] [PI]
    donde:
    • ASC y DESC: define el sentido del orden.
    • CI: indica que se ignoran mayúsculas y minúsculas
    • AI: indica que se ignoran los acentos
    • PI: indica que se ignora la puntuación
Observaciones:
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Para utilizar la tabla modificada durante el ALTER (sin el análisis relacionado al proyecto), se debe utilizar la función HDeclareExternal después de ejecutar la consulta de tipo ALTER TABLE.
CREATE INDEX
Versiones 18 y posteriores
La instrucción CREATE INDEX (equivalente a la instrucción ALTER TABLE) se utiliza para crear índices. Esta instrucción permite agregar índices a un tabla existente. Utiliza el siguiente formato:
CREATE [UNIQUE] INDEX [IndexName] ON TableName (Description of index [, Description of index]... )
En este código, los parámetros "Descripción de índice" corresponden a:
ItemName [ASC | DESC] [CI] [AI] [PI]
donde:
  • ASC y DESC: define el sentido del orden.
  • CI: indica que se ignoran mayúsculas y minúsculas
  • AI: indica que se ignoran los acentos
  • PI: indica que se ignora la puntuación
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
Versiones 20 y posteriores
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
Nueva funcionalidad versión 20
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
Nueva funcionalidad versión 18
La instrucción CREATE INDEX (equivalente a la instrucción ALTER TABLE) se utiliza para crear índices. Esta instrucción permite agregar índices a un tabla existente. Utiliza el siguiente formato:
CREATE [UNIQUE] INDEX [IndexName] ON TableName (Description of index [, Description of index]... )
En este código, los parámetros "Descripción de índice" corresponden a:
ItemName [ASC | DESC] [CI] [AI] [PI]
donde:
  • ASC y DESC: define el sentido del orden.
  • CI: indica que se ignoran mayúsculas y minúsculas
  • AI: indica que se ignoran los acentos
  • PI: indica que se ignora la puntuación
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
Versiones 20 y posteriores
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
Nueva funcionalidad versión 20
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
La instrucción CREATE INDEX (equivalente a la instrucción ALTER TABLE) se utiliza para crear índices. Esta instrucción permite agregar índices a un tabla existente. Utiliza el siguiente formato:
CREATE [UNIQUE] INDEX [IndexName] ON TableName (Description of index [, Description of index]... )
En este código, los parámetros "Descripción de índice" corresponden a:
ItemName [ASC | DESC] [CI] [AI] [PI]
donde:
  • ASC y DESC: define el sentido del orden.
  • CI: indica que se ignoran mayúsculas y minúsculas
  • AI: indica que se ignoran los acentos
  • PI: indica que se ignora la puntuación
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
Versiones 20 y posteriores
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
Nueva funcionalidad versión 20
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
La instrucción CREATE INDEX se puede utilizar en una vista materializada. En este caso, el parámetro NombreTabla corresponde al nombre de una vista materializada. Si se actualiza la vista, los índices se actualizan automáticamente: no es necesario volver a crear los índices.
Ejemplo: Creación de una vista materializada y de una clave compuesta en esta vista.
-- Creating a materialized view
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECCIONE
Customer.State, Customr.Disp, Customer.MemberType, COUNT(*) AS Qty
FROM Customer
WHERE Customer.Balance>0 AND Customer.Type=2
AND Customer.Family IN ('A', 'D', 'O')
GROUP BY Customer.State, Customer.Disp, Customer.MemberType;
--';' to be able to use another SQL statement after
--With a composite key
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,Disp ASC CI AI PI,MemberType ASC)
DROP INDEX
Versiones 24 y posteriores
La declaración DROP INDEX se usa para borrar físicamente un índice de un tabla. Utiliza el siguiente formato:
DROP INDEX  [ IF EXISTS ] NameIndex ON NameTable
donde IF EXISTS: impide que se devuelva un error si el índice no existe.
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
Nueva funcionalidad versión 24
La declaración DROP INDEX se usa para borrar físicamente un índice de un tabla. Utiliza el siguiente formato:
DROP INDEX  [ IF EXISTS ] NameIndex ON NameTable
donde IF EXISTS: impide que se devuelva un error si el índice no existe.
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
La declaración DROP INDEX se usa para borrar físicamente un índice de un tabla. Utiliza el siguiente formato:
DROP INDEX  [ IF EXISTS ] NameIndex ON NameTable
donde IF EXISTS: impide que se devuelva un error si el índice no existe.
Observación: Este tipo de consulta no se puede crear con el asistente del editor de consultas.
GRANT
Versiones 20 y posteriores
Las consultas de tipo GRANT conceden permisos en un servidor HFSQL. Esta instrucción equivale a la constante hAllowed utilizada para conceder permisos a un elemento. Utiliza el siguiente formato:
  • Conceder los permisos solicitados en las tablas especificadas a los usuarios especificados:
    GRANT right[, right[, ... ]] ON [TABLE] table [, table [, ...]]  
    TO user [, user [, ...]]
  • Conceder los permisos solicitados en las bases de datos especificadas a los usuarios especificados.
    GRANT right[, right[, ... ]] ON DATABASE database [, database [, ...]]
    TO user [, user [, ...]]
  • Conceder los permisos solicitados en el servidor.
    GRANT right[, right[, ... ]]
    TO user [, user [, ...]]
Observación:
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no se pueden utilizar en una base de datos HFSQL Classic, ni en una base de datos a la que se accede mediante Conectores Nativos.
Permisos disponibles
Los permisos disponibles son:
Permiso SQLPermiso HFSQL
INSERThRightsInsert
LOCKhRightsLock
MANAGE RIGHTShRightsChangeRights
OWNERhRightsChangeOwner
MANAGE DUPLICATEhRightsManageDuplicate
SELECCIONEhRightsRead
MAINTENANCEhRightsMaintenance
ALTERhRightsAutoModif
UPDATEhRightsUpdate
DELETEhRightsDelete
DELETE FILEhRightsDeleteFile
REFERENCEShRightsChangeLink
CONNECThRightsConnection
ENCRYPTED CONNECThRightsEncryptedConnection
CREATEhRightsCreateFile
DEBUGhRightsDebug
RUN PROCEDUREhRightsRunProcedure
MANAGE REFERENCEShRightsManageIntegrity
MANAGE PROCEDUREhRightsManageProcedure
MANAGE TRIGGERhRightsManageTrigger
FORBID ACCESShRightsNoDatabaseAccess
BACKUPhRightsBackup
DELETE DATABASEhRightsDeleteDB
STOPhRightsStopServer
CHANGE PASSWORDhRightsChangePassword
CREATE DATABASEhRightsCreateDB
DISCONNECThRightsDisconnectClient
SEND MESSAGEhRightsSendMessageToClient
MANAGE TASKhRightsManageTask
MANAGE SERVERhRightsManageServer
MANAGE USERhRightsManageUser
READ LOGhRightsReadLogStat
PRIORITYhRightsPriority
REPLICATEhRightsServerReplication
SEE USERhRightsSeeUser
Nueva funcionalidad versión 20
Las consultas de tipo GRANT conceden permisos en un servidor HFSQL. Esta instrucción equivale a la constante hAllowed utilizada para conceder permisos a un elemento. Utiliza el siguiente formato:
  • Conceder los permisos solicitados en las tablas especificadas a los usuarios especificados:
    GRANT right[, right[, ... ]] ON [TABLE] table [, table [, ...]]  
    TO user [, user [, ...]]
  • Conceder los permisos solicitados en las bases de datos especificadas a los usuarios especificados.
    GRANT right[, right[, ... ]] ON DATABASE database [, database [, ...]]
    TO user [, user [, ...]]
  • Conceder los permisos solicitados en el servidor.
    GRANT right[, right[, ... ]]
    TO user [, user [, ...]]
Observación:
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no se pueden utilizar en una base de datos HFSQL Classic, ni en una base de datos a la que se accede mediante Conectores Nativos.
Permisos disponibles
Los permisos disponibles son:
Permiso SQLPermiso HFSQL
INSERThRightsInsert
LOCKhRightsLock
MANAGE RIGHTShRightsChangeRights
OWNERhRightsChangeOwner
MANAGE DUPLICATEhRightsManageDuplicate
SELECCIONEhRightsRead
MAINTENANCEhRightsMaintenance
ALTERhRightsAutoModif
UPDATEhRightsUpdate
DELETEhRightsDelete
DELETE FILEhRightsDeleteFile
REFERENCEShRightsChangeLink
CONNECThRightsConnection
ENCRYPTED CONNECThRightsEncryptedConnection
CREATEhRightsCreateFile
DEBUGhRightsDebug
RUN PROCEDUREhRightsRunProcedure
MANAGE REFERENCEShRightsManageIntegrity
MANAGE PROCEDUREhRightsManageProcedure
MANAGE TRIGGERhRightsManageTrigger
FORBID ACCESShRightsNoDatabaseAccess
BACKUPhRightsBackup
DELETE DATABASEhRightsDeleteDB
STOPhRightsStopServer
CHANGE PASSWORDhRightsChangePassword
CREATE DATABASEhRightsCreateDB
DISCONNECThRightsDisconnectClient
SEND MESSAGEhRightsSendMessageToClient
MANAGE TASKhRightsManageTask
MANAGE SERVERhRightsManageServer
MANAGE USERhRightsManageUser
READ LOGhRightsReadLogStat
PRIORITYhRightsPriority
REPLICATEhRightsServerReplication
SEE USERhRightsSeeUser
Las consultas de tipo GRANT conceden permisos en un servidor HFSQL. Esta instrucción equivale a la constante hAllowed utilizada para conceder permisos a un elemento. Utiliza el siguiente formato:
  • Conceder los permisos solicitados en las tablas especificadas a los usuarios especificados:
    GRANT right[, right[, ... ]] ON [TABLE] table [, table [, ...]]  
    TO user [, user [, ...]]
  • Conceder los permisos solicitados en las bases de datos especificadas a los usuarios especificados.
    GRANT right[, right[, ... ]] ON DATABASE database [, database [, ...]]
    TO user [, user [, ...]]
  • Conceder los permisos solicitados en el servidor.
    GRANT right[, right[, ... ]]
    TO user [, user [, ...]]
Observación:
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no se pueden utilizar en una base de datos HFSQL Classic, ni en una base de datos a la que se accede mediante Conectores Nativos.
Permisos disponibles
Los permisos disponibles son:
Permiso SQLPermiso HFSQL
INSERThRightsInsert
LOCKhRightsLock
MANAGE RIGHTShRightsChangeRights
OWNERhRightsChangeOwner
MANAGE DUPLICATEhRightsManageDuplicate
SELECCIONEhRightsRead
MAINTENANCEhRightsMaintenance
ALTERhRightsAutoModif
UPDATEhRightsUpdate
DELETEhRightsDelete
DELETE FILEhRightsDeleteFile
REFERENCEShRightsChangeLink
CONNECThRightsConnection
ENCRYPTED CONNECThRightsEncryptedConnection
CREATEhRightsCreateFile
DEBUGhRightsDebug
RUN PROCEDUREhRightsRunProcedure
MANAGE REFERENCEShRightsManageIntegrity
MANAGE PROCEDUREhRightsManageProcedure
MANAGE TRIGGERhRightsManageTrigger
FORBID ACCESShRightsNoDatabaseAccess
BACKUPhRightsBackup
DELETE DATABASEhRightsDeleteDB
STOPhRightsStopServer
CHANGE PASSWORDhRightsChangePassword
CREATE DATABASEhRightsCreateDB
DISCONNECThRightsDisconnectClient
SEND MESSAGEhRightsSendMessageToClient
MANAGE TASKhRightsManageTask
MANAGE SERVERhRightsManageServer
MANAGE USERhRightsManageUser
READ LOGhRightsReadLogStat
PRIORITYhRightsPriority
REPLICATEhRightsServerReplication
SEE USERhRightsSeeUser
REVOKE
Versiones 20 y posteriores
Las consultas REVOKE permiten eliminar permisos concedidos (cambian los permisos a hInherit) en un servidor HFSQL. Utiliza el siguiente formato:
  • Establecer los permisos solicitados como heredados en las tablas especificadas para los usuarios especificados.
    REVOKE right[, right [, ... ]] ON [TABLE] table [, table [, ...]]  
    FROM user [, user [, ...]]
  • Establecer los permisos solicitados como heredados en las bases de datos especificadas para los usuarios especificados.
    REVOKE right[, right [, ... ]] ON DATABASE database [, database [, ...]]
    FROM user [, user [, ...]]
  • Establecer los permisos solicitados como heredados en el servidor.
    REVOKE right[, right [, ... ]] FROM user [, user [, ...]]
Observación
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no funcionan en HFSQL Classic, ni con Conectores Nativos.
Permisos disponibles: Los permisos disponibles son idénticos al comando SQL GRANT. La tabla de permisos está disponible con el comando GRANT.
Nueva funcionalidad versión 20
Las consultas REVOKE permiten eliminar permisos concedidos (cambian los permisos a hInherit) en un servidor HFSQL. Utiliza el siguiente formato:
  • Establecer los permisos solicitados como heredados en las tablas especificadas para los usuarios especificados.
    REVOKE right[, right [, ... ]] ON [TABLE] table [, table [, ...]]  
    FROM user [, user [, ...]]
  • Establecer los permisos solicitados como heredados en las bases de datos especificadas para los usuarios especificados.
    REVOKE right[, right [, ... ]] ON DATABASE database [, database [, ...]]
    FROM user [, user [, ...]]
  • Establecer los permisos solicitados como heredados en el servidor.
    REVOKE right[, right [, ... ]] FROM user [, user [, ...]]
Observación
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no funcionan en HFSQL Classic, ni con Conectores Nativos.
Permisos disponibles: Los permisos disponibles son idénticos al comando SQL GRANT. La tabla de permisos está disponible con el comando GRANT.
Las consultas REVOKE permiten eliminar permisos concedidos (cambian los permisos a hInherit) en un servidor HFSQL. Utiliza el siguiente formato:
  • Establecer los permisos solicitados como heredados en las tablas especificadas para los usuarios especificados.
    REVOKE right[, right [, ... ]] ON [TABLE] table [, table [, ...]]  
    FROM user [, user [, ...]]
  • Establecer los permisos solicitados como heredados en las bases de datos especificadas para los usuarios especificados.
    REVOKE right[, right [, ... ]] ON DATABASE database [, database [, ...]]
    FROM user [, user [, ...]]
  • Establecer los permisos solicitados como heredados en el servidor.
    REVOKE right[, right [, ... ]] FROM user [, user [, ...]]
Observación
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no funcionan en HFSQL Classic, ni con Conectores Nativos.
Permisos disponibles: Los permisos disponibles son idénticos al comando SQL GRANT. La tabla de permisos está disponible con el comando GRANT.
CREATE VIEW
Versiones 20 y posteriores
CREATE VIEW se utiliza para crear una vista SQL. Las vistas SQL se tratan como archivos temporales en memoria. En la mayoría de los casos, una vista SQL se extrae de un archivo o de varios archivos. Una vista puede ser manipulada por un comando SELECT.
Consulte Vista SQL para obtener más detalles sobre las vistas SQL.
Utiliza el siguiente formato:
CREATE VIEW View [ ( Alias 1, Alias 2, ..., Alias N) ] AS SELECTQuery
En esta sintaxis:
  • Vista es el nombre de la vista.
  • Alias 1, Alias 2, Alias N representan los nombres de alias de los elementos procedentes de la consulta SELECT.
  • ConsutlaSELECT es la consulta de tipo SELECT utilizada para seleccionar los registros de la vista.
Ejemplo SQL: Creando una vista SQL que contiene la empresa, el nombre y el teléfono de los clientes:
CREATE VIEW V_Customers
AS SELECT Company, NAME, Phone FROM Customers
Nueva funcionalidad versión 20
CREATE VIEW se utiliza para crear una vista SQL. Las vistas SQL se tratan como archivos temporales en memoria. En la mayoría de los casos, una vista SQL se extrae de un archivo o de varios archivos. Una vista puede ser manipulada por un comando SELECT.
Consulte Vista SQL para obtener más detalles sobre las vistas SQL.
Utiliza el siguiente formato:
CREATE VIEW View [ ( Alias 1, Alias 2, ..., Alias N) ] AS SELECTQuery
En esta sintaxis:
  • Vista es el nombre de la vista.
  • Alias 1, Alias 2, Alias N representan los nombres de alias de los elementos procedentes de la consulta SELECT.
  • ConsutlaSELECT es la consulta de tipo SELECT utilizada para seleccionar los registros de la vista.
Ejemplo SQL: Creando una vista SQL que contiene la empresa, el nombre y el teléfono de los clientes:
CREATE VIEW V_Customers
AS SELECT Company, NAME, Phone FROM Customers
CREATE VIEW se utiliza para crear una vista SQL. Las vistas SQL se tratan como archivos temporales en memoria. En la mayoría de los casos, una vista SQL se extrae de un archivo o de varios archivos. Una vista puede ser manipulada por un comando SELECT.
Consulte Vista SQL para obtener más detalles sobre las vistas SQL.
Utiliza el siguiente formato:
CREATE VIEW View [ ( Alias 1, Alias 2, ..., Alias N) ] AS SELECTQuery
En esta sintaxis:
  • Vista es el nombre de la vista.
  • Alias 1, Alias 2, Alias N representan los nombres de alias de los elementos procedentes de la consulta SELECT.
  • ConsutlaSELECT es la consulta de tipo SELECT utilizada para seleccionar los registros de la vista.
Ejemplo SQL: Creando una vista SQL que contiene la empresa, el nombre y el teléfono de los clientes:
CREATE VIEW V_Customers
AS SELECT Company, NAME, Phone FROM Customers
DROP VIEW
Versiones 20 y posteriores
La función DROP VIEW permite eliminar una vista.
DROP VIEW [IF EXISTS] View 1 [, View 2, ...View N] [RESTRICT | CASCADE]
  • Si se especifica la palabra clave IF EXISTS y las vistas no existen, se genera un mensaje de error.
  • Vista 1, Vista 2, ... Vista N representan la lista de vistas a eliminar.
  • Si se especifica la palabra clave RESTRICT, la vista no se elimina si se está utilizando.
  • Si se especifica la palabra clave CASCADE, se elimina la vista y las vistas dependientes.
Nueva funcionalidad versión 20
La función DROP VIEW permite eliminar una vista.
DROP VIEW [IF EXISTS] View 1 [, View 2, ...View N] [RESTRICT | CASCADE]
  • Si se especifica la palabra clave IF EXISTS y las vistas no existen, se genera un mensaje de error.
  • Vista 1, Vista 2, ... Vista N representan la lista de vistas a eliminar.
  • Si se especifica la palabra clave RESTRICT, la vista no se elimina si se está utilizando.
  • Si se especifica la palabra clave CASCADE, se elimina la vista y las vistas dependientes.
La función DROP VIEW permite eliminar una vista.
DROP VIEW [IF EXISTS] View 1 [, View 2, ...View N] [RESTRICT | CASCADE]
  • Si se especifica la palabra clave IF EXISTS y las vistas no existen, se genera un mensaje de error.
  • Vista 1, Vista 2, ... Vista N representan la lista de vistas a eliminar.
  • Si se especifica la palabra clave RESTRICT, la vista no se elimina si se está utilizando.
  • Si se especifica la palabra clave CASCADE, se elimina la vista y las vistas dependientes.
CREATE MATERIALIZED VIEW
Versiones 20 y posteriores
Una vista materializada es una vista persistente: un archivo se crea en el disco con el contenido de la vista. Esta vista puede ser manipulada posteriormente por una aplicación diferente a la que la creó.
La función CREATE MATERIALIZED VIEW permite crear una vista materializada.
CREATE MATERIALIZED VIEW View [ ( Alias 1, Alias 2, ...Alias N) ]
AS SELECT statement [WITH [ NO ] DATA]
  • La palabra clave WITH DATA crea una vista con datos
  • La palabra clave WITH NO DATA crea una vista vacía, sin datos
Observación
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no funcionan en HFSQL Classic, ni con Conectores Nativos.
Nueva funcionalidad versión 20
Una vista materializada es una vista persistente: un archivo se crea en el disco con el contenido de la vista. Esta vista puede ser manipulada posteriormente por una aplicación diferente a la que la creó.
La función CREATE MATERIALIZED VIEW permite crear una vista materializada.
CREATE MATERIALIZED VIEW View [ ( Alias 1, Alias 2, ...Alias N) ]
AS SELECT statement [WITH [ NO ] DATA]
  • La palabra clave WITH DATA crea una vista con datos
  • La palabra clave WITH NO DATA crea una vista vacía, sin datos
Observación
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no funcionan en HFSQL Classic, ni con Conectores Nativos.
Una vista materializada es una vista persistente: un archivo se crea en el disco con el contenido de la vista. Esta vista puede ser manipulada posteriormente por una aplicación diferente a la que la creó.
La función CREATE MATERIALIZED VIEW permite crear una vista materializada.
CREATE MATERIALIZED VIEW View [ ( Alias 1, Alias 2, ...Alias N) ]
AS SELECT statement [WITH [ NO ] DATA]
  • La palabra clave WITH DATA crea una vista con datos
  • La palabra clave WITH NO DATA crea una vista vacía, sin datos
Observación
  • Este tipo de consulta no se puede crear con el asistente del editor de consultas.
  • Estas consultas no funcionan en HFSQL Classic, ni con Conectores Nativos.
DROP MATERIALIZED VIEW
Versiones 20 y posteriores
La función DROP MATERIALIZED VIEW permite eliminar físicamente una vista materializada del disco.
DROP MATERIALIZED VIEW [IF EXISTS] View 1 [, View 2, ...View N] [RESTRICT | CASCADE]
  • Si se especifica la palabra clave IF EXISTS y las vistas no existen, se genera un mensaje de error.
  • Vista 1, Vista 2, ... Vista N representan la lista de vistas a eliminar.
  • Si se especifica la palabra clave RESTRICT, la vista no se elimina si se está utilizando.
  • Si se especifica la palabra clave CASCADE, se elimina la vista y las vistas dependientes.
Nueva funcionalidad versión 20
La función DROP MATERIALIZED VIEW permite eliminar físicamente una vista materializada del disco.
DROP MATERIALIZED VIEW [IF EXISTS] View 1 [, View 2, ...View N] [RESTRICT | CASCADE]
  • Si se especifica la palabra clave IF EXISTS y las vistas no existen, se genera un mensaje de error.
  • Vista 1, Vista 2, ... Vista N representan la lista de vistas a eliminar.
  • Si se especifica la palabra clave RESTRICT, la vista no se elimina si se está utilizando.
  • Si se especifica la palabra clave CASCADE, se elimina la vista y las vistas dependientes.
La función DROP MATERIALIZED VIEW permite eliminar físicamente una vista materializada del disco.
DROP MATERIALIZED VIEW [IF EXISTS] View 1 [, View 2, ...View N] [RESTRICT | CASCADE]
  • Si se especifica la palabra clave IF EXISTS y las vistas no existen, se genera un mensaje de error.
  • Vista 1, Vista 2, ... Vista N representan la lista de vistas a eliminar.
  • Si se especifica la palabra clave RESTRICT, la vista no se elimina si se está utilizando.
  • Si se especifica la palabra clave CASCADE, se elimina la vista y las vistas dependientes.
REFRESH MATERIALIZED VIEW
Versiones 20 y posteriores
La función REFRESH MATERIALIZED VIEW permite actualizar el contenido de una vista materializada en el disco. La vista se recalcula completamente.
REFRESH MATERIALIZED VIEW View [WITH [ NO ] DATA]
  • La palabra clave WITH DATA actualiza la vista con los nuevos datos.
  • La palabra clave WITH NO DATA actualiza la vista vacía sin los datos.
Nueva funcionalidad versión 20
La función REFRESH MATERIALIZED VIEW permite actualizar el contenido de una vista materializada en el disco. La vista se recalcula completamente.
REFRESH MATERIALIZED VIEW View [WITH [ NO ] DATA]
  • La palabra clave WITH DATA actualiza la vista con los nuevos datos.
  • La palabra clave WITH NO DATA actualiza la vista vacía sin los datos.
La función REFRESH MATERIALIZED VIEW permite actualizar el contenido de una vista materializada en el disco. La vista se recalcula completamente.
REFRESH MATERIALIZED VIEW View [WITH [ NO ] DATA]
  • La palabra clave WITH DATA actualiza la vista con los nuevos datos.
  • La palabra clave WITH NO DATA actualiza la vista vacía sin los datos.
Versión mínima requerida
  • Versión 9
Esta página también está disponible para…
Comentarios
Colocar em Ordem Crescente/Decrescente
Nessa dica de hoje,
Vou Ensinar como colocar
Em ordem Crescente e Decrescente
//=============
In this tip today,
I will teach how to put
In ascending and descending order
//=============
Dans cette astuce aujourd'hui,
Je vais apprendre à mettre
Dans l'ordre croissant et décroissant
//-----colocar em ordem descrescente
gs_ordem_consulta="desc"
mostra_cli(gn_classificacao)
ReturnToCapture(EDT_PROCURA)
// ordem crescente
gs_ordem_consulta is string="asc"
mostra_cli(gn_classificacao)
//===============
http://windevdesenvolvimento.blogspot.com.br/2017/03/aula-1083-windev-tabela-050-tabela.html

https://www.youtube.com/watch?v=45JUSTthT0I

De matos
10 03 2017
Exemplo Drop Table - Eliminar Tabela
IF YesNo("Deseja Eliminar Tabela Municipio") THEN
ds_DS_DATA_SOURCE is Data Source
s_SQL is string=""
s_SQL = [
DROP TABLE municipios
]
IF HExecuteSQLQuery(ds_DS_DATA_SOURCE,hQueryDefault,s_SQL) THEN
Error("Erro Query " + CR + HErrorInfo())
ELSE
Info("Tabela Municipio foi Eliminada")
END
END

// Blog Com Video Explicando drop table
// http://windevdesenvolvimento.blogspot.com.br/2016/01/windev-sql-15-sql-dropt-table-eliminar.html
De matos AMARILDO
08 01 2016