- Presentación
- SELECT
- SELECT
- 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
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 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. |
SELECT 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 permite eliminar 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 NombreDeElementos 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 elemento, 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 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 La instrucción INSERT permite agregar : - un registro en un archivo de datos.
- varios registros en 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 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.
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 "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.
- Type: Tipo de elemento (elegido entre los tipos disponibles que se presentan a continuación).
- 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_LA').
- los parámetros "Descripción de índice" 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 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 | Character string | 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 | Binary Memo | CLOB | Text Memo | TEXT | Text Memo | NCLOB | Unicode memo | NTEXT | Unicode memo | NUMBER(Precisión) | Integer | NUMBER(Precisión, escala) | Integer | DECIMAL(Precisión) | Real | DECIMAL(Precisión, escala) | Real | TINYINT UNSIGNED | Unsigned 1-byte integer | SMALLINT UNSIGNED | Unsigned 2-byte integer | INTEGER UNSIGNED | Unsigned 4-byte integer | BIGINT UNSIGNED | Unsigned 8-byte integer | TINYINT | Signed 1-byte integer | SMALLINT | Signed 2-byte integer | INTEGER | Signed 4-byte integer | BIGINT | Signed 8-byte integer | FLOAT | 4-byte real | REAL | 8-byte real | DOUBLE PRECISION | 8-byte real | MONEY | Currency | DATE | DATE | DATETIME | Date time | TIME | Time |
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 "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.
- Type: 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_LA').
- los parámetros "Descripción de índice" corresponden a:
ItemName [ASC | DESC] [CI] [AI] [PI]
donde:- ASC y DESC: permite definir la dirección 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 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 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: permite definir la dirección 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. 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 | INSERT | hRightsInsert | LOCK | hRightsLock | MANAGE RIGHTS | hRightsChangeRights | OWNER | hRightsChangeOwner | MANAGE DUPLICATE | hRightsManageDuplicate | SELECT | hRightsRead | MAINTENANCE | hRightsMaintenance | ALTER | hRightsAutoModif | UPDATE | hRightsUpdate | DELETE | hRightsDelete | DELETE FILE | hRightsDeleteFile | REFERENCES | hRightsChangeLink | CONNECT | hRightsConnection | ENCRYPTED CONNECT | hRightsEncryptedConnection | CREATE | hRightsCreateFile | DEBUG | hRightsDebug | RUN PROCEDURE | hRightsRunProcedure | MANAGE REFERENCES | hRightsManageIntegrity | MANAGE PROCEDURE | hRightsManageProcedure | MANAGE TRIGGER | hRightsManageTrigger | FORBID ACCESS | hRightsNoDatabaseAccess | BACKUP | hRightsBackup | DELETE DATABASE | hRightsDeleteDB | STOP | hRightsStopServer | CHANGE PASSWORD | hRightsChangePassword | CREATE DATABASE | hRightsCreateDB | DISCONNECT | hRightsDisconnectClient | SEND MESSAGE | hRightsSendMessageToClient | MANAGE TASK | hRightsManageTask | MANAGE SERVER | hRightsManageServer | MANAGE USER | hRightsManageUser | READ LOG | hRightsReadLogStat | PRIORITY | hRightsPriority | REPLICATE | hRightsServerReplication | SEE USER | 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 elementos 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.
- 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.
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.
- 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 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.
Esta página también está disponible para…
|
|
|