|
- Presentación
- SELECCIONE
- SELECCIONE
- Caso especial: SELECT Multiarchivo
- Casos especiales: SELECT sin FROM o SELECT con una tabla virtual
- Ejecutar un procedimiento almacenado
- INSERTAR
- INSERTAR
- INSERT con selección
- ACTUALIZACIÓN
- BORRAR
- CREAR TABLA
- Tipos disponibles
- CREAR TABLA COMO
- DROP TABLE
- ALTER TABLE
- CREATE INDEX
- DROP INDEX
- GRANT
- REVOCAR
- CREAR VISTA
- DROP VIEW
- CREAR VISTA MATERIALIZADA
- DROP MATERIALIZED VIEW
- REFRESCAR LA VISTA MATERIALIZADA
- OPTIMIZAR TABLA
Las principales instrucciones SQL permitidas en las consultas SQL gestionadas por WINDEV y WEBDEV son las siguientes: Para obtener más información, consulte la documentación de SQL. 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.
- El carácter " puede utilizarse como delimitador de identificadores en consultas SQL, tal y como lo especifica el estándar SQL92.
| | |  | Importante | El editor de consultas no permite crear consultas en código SQL utilizando los comandos INSERT, UPDATE o DELETE. |
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.CustomerLastName AS CustomerLastName,
CUSTOMER.ZipCode AS ZipCode,
CUSTOMER.City AS City,
SUM(ORDERS.TotalIOT) AS TotalIOT
FROM CUSTOMER AS CUST, ORDERS AS ORD
WHERE CUST.CustomerNum = ORD.CustomerNum
AND ZipCode LIKE '75%'
GROUP BY CustomerLastName, ZipCode, City
HAVING TotalIOT > 3000
ORDER BY TotalIOT ASC
Observaciones: - La palabra clave DISTINCT elimina los registros duplicados del resultado de la consulta.
- Para obtener más información sobre las condiciones de selección, consulte Condiciones de selección en una consulta SQL.
- Se pueden crear consultas de selección en el editor de consultas. Para obtener más información, consulte Crear una consulta de selección.
- En la sintaxis de la instrucción SELECT, el parámetro NameOfItems puede contener una o más condiciones de selección. Por ejemplo:
SELECT CustomerLastName, Age>18 AS Adult FROM Customer
- 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. 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 campo, una operación que podría tardar mucho tiempo. 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:
- utilizando la tabla virtual DUAL. Esta tabla virtual contiene un solo campo (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.
INSERTAR La instrucción INSERT permite agregar : - un solo registro a un archivo de datos.
- varios registros a un archivo de datos.
Utiliza el siguiente formato:
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 (CustomerNum, CustomerLastName, CustomerFirstName)
VALUES (77, 'Moore', 'Julia')
- 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. Para obtener más información, consulte Crear una consulta de inserción.
- Para obtener 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.
- 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 campos a insertar debe ser igual al número de valores devueltos por la consulta SELECT.
- Todos los campos del archivo se tienen en cuenta si no se especifica ningún campo en la instrucción INSERT.
- Este tipo de consulta no se puede crear directamente en el editor de consultas.
La instrucción UPDATE actualiza registros en un archivo. Utiliza el siguiente formato:
UPDATE FileName SET NameOfItem = Expression [WHERE Conditions]
Ejemplos: - El siguiente código SQL permite modificar el título y nombre del cliente Montgomery:
UPDATE CUSTOMER
SET Title = 'Mrs',
CustomerLastName = 'Darwin'
WHERE CustomerLastName = 'Montgomery'
- El siguiente código SQL modifica el nombre del cliente en el archivo Customer. Para los registros con el mismo ID, el nombre del cliente en el archivo Customer se reemplaza por el nombre en el archivo Customer_Svg:
UPDATE CUSTOMER, CUSTOMER_SVG
SET CUSTOMER.NAME = CUSTOMER_SVG.NAME
WHERE CUSTOMER.ID = CUSTOMER_SVG.ID
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)
La siguiente consulta no es aceptada:
UPDATE Product
SET SalesPrice = (SELECT AVG(ORDERS.UnitPrice) FROM ORDERS
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)
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. Para obtener más información, consulte Crear una consulta de actualización.
- 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 CustomerLastName = 'Montgomery'
- La variable H.NbRecModificationQuery permite conocer el número de registros actualizado.
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. Para obtener más información, consulte Crear una consulta de eliminación. 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 "Description of item" corresponden a:
ItemName type [DEFAULT 'value' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY] [AUTO_INCREMENT] [COMMENT 'caption'] [COLLATE 'language']
donde:- ItemName: nombre del campo.
- Tipo: Tipo de campo (elegido entre los tipos disponibles que se presentan a continuación).
- Default: define el valor predeterminado del campo.
- NOT NULL: evita que se asigne el valor NULL al campo.
- UNIQUE: define un campo con o sin duplicados.
- PRIMARY KEY: define una clave primaria.
- AUTO_INCREMENT: define un identificador automático para campos de tipo Integer.
- comment: define el título del campo.
- COLLATE: define el idioma para ordenar el campo (por ejemplo: 'ES_LA').
- los parámetros "Description of index" corresponden a:
INDEX IndexName ( itm1 [ASC | DESC] [CI] [AI] [PI], itm2 ... ) [UNIQUE]
donde:- ASC y DESC: permite definir la dirección del orden.
- CI: indica que se ignoran las 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: | | CHARACTER | Cadena de caracteres | CHARACTER(Tamaño) | String on size | VARCHAR(Tamaño) | String on size | CHARACTER VARYING(Tamaño) | String on size | CHAR VARYING(Tamaño) | String on size | NVARCHAR(Tamaño) | Unicode string on size | VARCHAR(Tamaño) BINARY | Binary string on size | BINARY(Tamaño) | Binary string on size | VARBINARY(Tamaño) | Binary string on size | BLOB | Memo binario | CLOB | Nota de texto | TEXTO | Nota de texto | NCLOB | Nota de Unicode | NTEXT | Nota de Unicode | NUMBER(Precisión) | Integro | NUMBER(Precisión, escala) | Integro | DECIMAL(Precisión) | Real | DECIMAL(Precisión, escala) | Real | TINYINT UNSIGNED | Un entero de 1 byte sin firmar | SMALLINT UNSIGNED | Un entero de 2 bytes sin firmar | INTEGER UNSIGNED | Un entero de 4 bytes sin firmar | BIGINT UNSIGNED | Un entero de 8 bytes sin firmar | TINYINT | Firmado un entero de 1 byte | SMALLINT | Firmado un entero de 2 bytes | INTEGER | Firmado un entero de 4 bytes | BIGINT | Firmado un entero de 8 bytes | FLOAT | 4 bytes reales | REAL | 8 bytes reales | DOUBLE PRECISION | 8 bytes reales | MONEY | Moneda | FECHA | FECHA | FECHA | Fecha y hora | TIEMPO | momento | CONTRASEÑA SEGURA | Contraseña segura |
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 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.
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 "Action" 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 / PRIMARY KEY] 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
Nueva funcionalidad versión 28ADD PRIMARY KEY INDEX agrega una clave primaria en un archivo existente.
- Los parámetros "Description of item" corresponden a:
ItemName type [DEFAULT 'value' | DEFAULT NULL] [NOT NULL] [UNIQUE] [PRIMARY KEY] [AUTO_INCREMENT] [COMMENT 'caption'] [COLLATE 'language']
donde:- ItemName: nombre del campo.
- Tipo: Tipo del campo (seleccionado entre los tipos mencionados anteriormente).
- Default: define el valor predeterminado del campo.
- NOT NULL: evita que se asigne el valor NULL al campo.
- UNIQUE: define un campo con o sin duplicados.
- PRIMARY KEY: define una clave primaria.
- AUTO_INCREMENT: define un identificador automático para campos de tipo Integer.
- comment: define el título del campo.
- COLLATE: define el idioma para ordenar el campo (por ejemplo: 'ES_LA').
- SECUREPASSWORD: define que un campo es de tipo "Contraseña".
- los parámetros "Description of index" corresponden a:
ItemName [ASC | DESC] [CI] [AI] [PI]
donde:- ASC y DESC: permite definir la dirección del orden.
- CI: indica que se ignoran las 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 con ALTER (sin un análisis vinculado al proyecto), utilice la función HDeclareExternal después de ejecutar la consulta ALTER TABLE.
La instrucción CREATE INDEX (equivalente a la instrucción ALTER TABLE) se utiliza para crear índices. Esta instrucción permite agregar índices a una 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 "Description of index" corresponden a:
ItemName [ASC | DESC] [CI] [AI] [PI]
donde: - ASC y DESC: permite definir la dirección del orden.
- CI: indica que se ignoran las 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. 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.
CREATE MATERIALIZED VIEW MyMaterializedView AS
SELECT
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;
CREATE INDEX compkey ON MyMaterializedView (State ASC CI AI PI,
Disp ASC CI AI PI,MemberType ASC)
La instrucción DROP INDEX elimina físicamente un índice de una 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. Las consultas de tipo GRANT permiten conceder 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 SQL | Permiso HFSQL | INSERTAR | hRightsInsert | BLOQUEO | hRightsLock | GESTIONAR DERECHOS | hRightsChangeRights | PROPIETARIO | hRightsChangeOwner | GESTIONAR DUPLICADOS | hRightsManageDuplicate | SELECCIONE | hRightsRead | MANTENIMIENTO | hRightsMaintenance | EDAD | hRightsAutoModif | ACTUALIZACIÓN | hRightsUpdate | BORRAR | hRightsDelete | BORRAR ARCHIVO | hRightsDeleteFile | REFERENCIAS | hRightsChangeLink | CONECTAR | hRightsConnection | ENCRYPTED CONNECT | hRightsEncryptedConnection | CREA | hRightsCreateFile | DEBUG | hRightsDebug | CORRE Procedure | hRightsRunProcedure | GESTIONAR REFERENCIAS | hRightsManageIntegrity | MANEJO DE Procedure | hRightsManageProcedure | GESTIONAR TRIGGER | hRightsManageTrigger | ACCESO PROHIBIDO | hRightsNoDatabaseAccess | BACKUP | hRightsBackup | ELIMINAR BASE DE DATOS | hRightsDeleteDB | PARAR | hRightsStopServer | CAMBIAR CONTRASEÑA | hRightsChangePassword | CREAR BASE DE DATOS | hRightsCreateDB | DESCONECTAR | hRightsDisconnectClient | ENVIAR MENSAJE | hRightsSendMessageToClient | GESTIONAR TAREAS | hRightsManageTask | GESTIONAR SERVIDOR | hRightsManageServer | GESTIONAR USUARIO | hRightsManageUser | REGISTRO DE LECTURA | hRightsReadLogStat | PRIORIDAD | hRightsPriority | REPLICA | hRightsServerReplication | VER USUARIO | hRightsSeeUser |
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. La instrucción CREATE VIEW permite 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.Para obtener más información sobre las vistas SQL, consulte Vista 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 campos procedentes de la consulta SELECT.
- ConsutlaSELECT es la consulta de tipo SELECT utilizada para seleccionar los registros de la vista.
Ejemplo SQL: Creación de 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
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.
- View 1, View 2, ... View 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.
CREAR VISTA MATERIALIZADA 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.
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.
- View 1, View 2, ... View 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.
REFRESCAR LA VISTA MATERIALIZADA La función REFRESH MATERIALIZED VIEW actualiza 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 28 El comando OPTIMIZE TABLE reorganiza y reindexa un archivo de datos y reconstruye los índices de este archivo. Esta operación mejora el rendimiento. Esta función equivale a utilizar la función HIndex de WLanguage para reorganizar y reindexar un archivo de datos. FileName representa el nombre del fichero que se va a reorganizar. Observación: - Esta función está bloqueando: No se puede acceder a el archivo de datos durante la ejecución de la función. Asegúrese de que el archivo no está en uso cuando se llama a la función.
- Esta función no puede utilizarse con Conectores Nativos.
- Mediante Default, la operación de reindexación se realiza en función de uno de los siguientes parámetros: reindexación estándar, reindexación de texto completo, reindexación en Background, densidad del 80. Para utilizar otros parámetros, utilice HIndex.
Esta página también está disponible para…
|
|
|
|
|
|
|