Unidad 4

19
 IV. Seguridad Objetivo: Administra el acceso a los diferentes recursos de la base de datos 4.1. Tipos de usuarios El objetivo de la creación de usuarios es establecer una cuenta segura y útil, que tenga los privilegios adecuados y los valores por defecto apropiados Para acceder a los datos en una BD Oracle, se debe tener acceso a una cuenta en esa BD. Cada cuenta debe tener una palabra clave o password asociada. Una cuenta en una BD puede estar ligada con una cuenta de sistema operativo. Los passwords son fijados cuando se crea un usuario y puede n ser alterados por el DBA o por el usuario mismo. La BD almacena una versión encriptada del password en una tabla del diccionario llamada dba_users. Si la cuenta en la BD está asociada a una cuenta del sistema operativo puede evitarse la comprobación del password, dándose por válida la comprobación de la identidad del usuario realizada por el SO. Un usuario Oracle tiene las siguientes características  Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que inicie con una letra.  Un método de autentificación, el más común es un password pero Oracle 10G soporta otros métodos como biometric, certificado y autentificacion por medio de token.  Un tablespace de default, el cuál es donde el usuario va a poder crear sus objetos por defecto. Ojo, no porque tenga un tablespace de default va a significar que puede crear objetos, o una quota de espacio. Estos permisos se asignan de forma separada.  Un tablespace temporal, donde el usuario pueda crear sus objetos temporales y hacer ordenar las consultas.  Un perfil de usuario, es decir las restricc iones o privilegios de su cuenta.

description

Unidad 4

Transcript of Unidad 4

  • IV. Seguridad

    Objetivo: Administra el acceso a los diferentes recursos de

    la base de datos

    4.1. Tipos de usuarios

    El objetivo de la creacin de usuarios es establecer una cuenta segura y til, que tenga los privilegios adecuados y los valores por defecto apropiados

    Para acceder a los datos en una BD Oracle, se debe tener acceso a una cuenta en esa BD. Cada cuenta debe tener una palabra clave o password asociada. Una cuenta en una BD puede estar ligada con una cuenta de sistema operativo. Los passwords son fijados cuando se crea un usuario y pueden ser alterados por el DBA o por el usuario mismo. La BD almacena una versin encriptada del password en una tabla del diccionario llamada dba_users. Si la cuenta en la BD est asociada a una cuenta del sistema operativo puede evitarse la comprobacin del password, dndose por vlida la comprobacin de la identidad del usuario realizada por el SO.

    Un usuario Oracle tiene las siguientes caractersticas

    Un nombre de usuario de 30 caracteres o menos, sin caracteres especiales y que

    inicie con una letra.

    Un mtodo de autentificacin, el ms comn es un password pero Oracle 10G

    soporta otros mtodos como biometric, certificado y autentificacion por medio de

    token.

    Un tablespace de default, el cul es donde el usuario va a poder crear sus objetos

    por defecto. Ojo, no porque tenga un tablespace de default va a significar que puede

    crear objetos, o una quota de espacio. Estos permisos se asignan de forma

    separada.

    Un tablespace temporal, donde el usuario pueda crear sus objetos temporales y

    hacer ordenar las consultas.

    Un perfil de usuario, es decir las restricciones o privilegios de su cuenta.

  • Una cuenta MySQL se define en trminos de un nombre de usuario y el equipo o equipos desde los que el usuario puede conectar al servidor. La cuenta tambin tiene una contrasea (deseable). Los nombres de usuario y contraseas en MySQL no estn relacionadas con los del sistema operativo.

    Nombre de usuarios en MySQL pueden tener como mximo 16 caracteres de

    longitud

    La contrasea es segura incluso si los paquetes TCP/IP pasan por un sniffer o la

    base de datos mysql se captura.

    4.2. Creacin de usuarios

    CREATE USER: Crear un usuario oracle.

    Un usuario es un nombre de acceso a la base de datos oracle asociado a una clave (password).

    Lo que puede hacer un usuario logeado a la base de datos depende de los permisos

    que tenga asignados ya sea directamente (GRANT) como sobre algn rol que tenga

    asignado (CREATE ROLE).

    El perfil que tenga asignado influye en los recursos del sistema de los que dispone

    un usuario a la hora de ejecutar Oracle (CREATE PROFILE).

    CREATE USER usuarioLimitado

    IDENTIFIED BY miClaveSecreta;

    CREATE USER usuarioLimitado2

    IDENTIFIED BY miClaveSecreta

    PASSWORD EXPIRE;

    CREATE USER usuarioLimitado

    IDENTIFIED BY 'miClaveSecreta';

  • SELECT * FROM dba_users;

    USE mysql; SELECT host, user, password FROM user;

    Borrar usuarios

    Tanto Oracle como MySQL permiten eliminar usuarios mediante la sentencia DROP

    USER, con una sintaxis similar

    DROP USER usuarioLimitado CASCADE;

    CASCADE borra todos los objetos del esquema del usuario Oracle antes de borrar

    el usuario. Si el esquema contiene tablas, Oracle borrar todos las tablas y automticamente eliminar cualquier restriccin de integridad referencial referida a claves primarias o nicas en otros esquemas

    MySQL realiza la misma actividad mediante la combinacin de sentencias REVOKE y DROP.

    REVOKE ALL PRIVILEGES, GRANT OPTION FROM usuario;

  • DROP USER usuario;

    Comando GRANT

    Se utiliza para crear usuarios y concederle privilegios. La sintaxis general del comando GRANT es la siguiente:

    GRANT privilegios (columnas) ON elemento TO nombre_usuario IDENTIFIED BY 'contrasea' (whith grant option);

    Lo que est dentro de los parntesis son opcionales, y los parntesis no hay que ponerlos.

    Es importantsimo que al final poner el ';' despus de poner cada lnea pulsar 'intro', pues si hay algn error mysql nos indicar en que lnea est el error.

    4.3. Privilegios de usuarios

    Una vez creados los usuarios ser necesario dotarlos de privilegios para que puedan realizar operaciones especficas en la base de datos. Estos privilegios suelen clasificarse en privilegios del sistema (operaciones que afectan a todo el sistema) y privilegios de objeto (tablas, vistas, etc.). Para conocer los privilegios y su sintaxis es necesario consultar los manuales de referencia de su SGBD.

    SELECT * FROM system_privilege_map;

    Las sentencias GRANT y REVOKE permiten a los administradores de SGBD crear

    cuentas de usuario, conceder y revocar derechos de esas cuentas.

    GRANT CONNECT, RESOURCE, CREATE TABLE

    TO usuarioLimitado;

    La informacin sobre cuentas MySQL se almacena en las tablas de la base de datos mysql. Los privilegios pueden ser concedidos en varios niveles:

  • Nivel global

    Los privilegios globales se aplican a todas las bases de datos de un servidor dado. Estos privilegios se almacenan en la tabla mysql.user.

    GRANT ALL ON *.* y REVOKE ALL ON *.*

    Conceden y revocan slo privilegios globales.

    Nivel de base de datos

    Los privilegios de base de datos se aplican a todos los objetos en una base de datos dada. Estos privilegios se almacenan en las tablas mysql.dby mysql.host.

    GRANT ALL ON db_name.* y REVOKE ALL ON db_name.*

    Otorgan y revocan slo privilegios de base de datos.

    Nivel de tabla

    Los privilegios de tabla se aplican a todas las columnas de una tabla dada. Estos privilegios se almacenan en la tabla mysql.tables_priv.

    GRANT ALL ON db_name.tbl_name y REVOKE ALL ON db_name.tbl_name

    Conceden y revocan nicamente privilegios de tabla.

    Nivel de columna

    Los privilegios de columna se aplican a una columna individual en una tabla dada. Estos privilegios se almacenan en la tabla mysql.columns_priv. Cuando se usa REVOKE, se deben especificar las mismas columnas que cuando se concedieron los privilegios.

    Nivel de procedimiento

    Los privilegios CREATE ROUTINE, ALTER ROUTINE, EXECUTE y GRANT se aplican a procedimientos almacenados. Pueden ser concedidos en el nivel global y de base de datos. Adems, excepto para CREATE ROUTINE, estos privilegios pueden ser concedidos en el nivel de procedimiento para procedimientos

  • individuales y se almacenan en la tabla mysql.procs_priv. Para hacer ms sencillo revocar todos los privilegios, MySQL aadido la siguiente sintaxis, que elimina todos los privilegios de los niveles de global, de base de datos, tabla y columna para los usuarios nombrados:

    mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM usuario [, usuario] ...

    Asignar todos los privilegios menos los GRANT OPTION

    GRANT ALL ON *.* TO miUsuario

    Mostrar los privilegios del usuario

    4.4. Roles

    Un rol es una coleccin de privilegios del sistema y de objetos que se otorgan a usuarios y a otras tareas. Oracle dispone de muchos roles predeterminados mientras que MySQL no los soporta.

    El rol CONNECECT permite al usuario conectarse a la base de datos, crear tablas,

    vistas, secuencias, sinnimos y otros objetos en el esquema asociado.

    El rol RESOURCE permite al usuario utilizar los recursos tpicos para la

    programacin de aplicaciones (clusters, disparadores, paquetes, funciones, etc.)

    El rol DBA, tpico de los administradores, permite al usuario realizar cualquier funcin de base de datos y disponer de cualquier privilegio

    La sentencia que permite crear roles es CREATE ROL. Su sintaxis es la siguiente

    CREATE ROLE rol

  • [ NOT IDENTIFIED

    | IDENTIFIED {BY password | USING [usuario.] paquete

    | EXTERNALLY | GLOBALLY } ];

    NOT IDENTIFIED indica que no se requiere contrasea para utilizar el rol,

    INDENTIFIED BY password indica que se requiere la contrasea especificada.

    EXTERNALLY crea un rol de usuario externo y GLOBALLY crea un rol de usuario

    global.

    Ejemplo: Crear un rol y asignarle privilegios

    CREATE ROLE miPrimerRole;

    GRANT SELECT, INSERT, UPDATE, DELETE ON tabla

    TO miPrimerRole;

    Ejemplo: Crear un rol y asignarle todos los privilegios

    CREATE ROLE miPrimerRole;

    GRANT all ON tabla

    TO miPrimerROLE;

    Ejemplo: Asignar un rol a un usuario

    GRANT miPrimerRole TO miUsuario;

    Ejemplo: Eliminar un rol

    DROP ROLE miPrimerRole;

    4.5. Vistas

    Una vista es una tabla virtual cuyo contenido est definido por una consulta..

    Una vista es sencillamente un objeto de base de datos que presenta datos de tablas. Se trata de una consulta SQL que est permanentemente almacenada en la Base de datos y a la que se le asigna un nombre, de modo que los resultados de la

  • consulta almacenada son visibles a travs de la vista, y SQL permite acceder a estos resultados como si fueran de hecho una tabla real en la base de datos.

    Las tablas y las vistas comparten el mismo espacio de nombres en la base de datos, por lo tanto, una base de datos no puede contener una tabla y una vista con el mismo nombre.

    Las vistas suelen utilizarse para centrar, simplificar y personalizar la percepcin de la base de datos para cada usuario. Las vistas pueden emplearse como mecanismos de seguridad, que permiten a los usuarios obtener acceso a los datos por medio de la vista, pero no les conceden el permiso de obtener acceso directo a las tablas subyacentes de la vista. Las vistas se pueden utilizar para realizar particiones de datos y para mejorar el rendimiento cuando se copian, se importan y se exportan datos.

    Mediante vistas es posible presentar datos de distintos servidores. Por ejemplo, para combinar datos de distintos servidores remotos o en un servidor de mltiples procesadores, cada uno de los cuales almacenan datos para una regin distinta de su organizacin, puede crear consultas distribuidas o paralelas aumentando la eficiencia de las consultas.

    Mediante diversas clusulas es factible crear, modificar, eliminar y administrar vistas. La sintaxis bsica para estas clusulas es genrica entre diversos gestores de base de datos. Sin embargo en lo particular cada gestor implementa la administracin de estas de forma diferente. En este documento se presenta la sintaxis particular de Oracle 10g, comparando en forma genrica con MySQL 5.

    La sintaxis bsica de una vista (Oracle y MySQL) es:

    CREATE VIEW nombre_vista AS consulta;

    Sintaxis CREATE VIEW

    CREATE [OR REPLACE]

    VIEW nombre_vista

    AS sentencia_select

    [WITH [CASCADED | LOCAL] CHECK OPTION]

    WITH READ ONLY;

  • CREATE [OR REPLACE]

    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

    VIEW nombre_vista [(columnas)]

    AS sentencia_select

    [WITH [CASCADED | LOCAL] CHECK OPTION]

    Ejemplo: Paises del continente Americano

    CREATE DATABASE Paises;

    USE Paises;

    CREATE TABLE pais (

    id smallint(3) unsigned zerofill NOT NULL,

    iso2 char(2) COLLATE utf8_unicode_ci NOT NULL,

    iso3 char(3) COLLATE utf8_unicode_ci NOT NULL,

    prefijo smallint(5) unsigned NOT NULL,

    nombre varchar(100) COLLATE utf8_unicode_ci NOT NULL,

    continente varchar(16) COLLATE utf8_unicode_ci DEFAULT NULL,

    subcontinente varchar(32) COLLATE utf8_unicode_ci DEFAULT NULL,

    iso_moneda varchar(3) COLLATE utf8_unicode_ci DEFAULT NULL,

    nombre_moneda varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,

    PRIMARY KEY (id),

    UNIQUE KEY iso2 (iso2),

    UNIQUE KEY iso3 (iso3)

    );

    INSERT INTO pais (id, iso2, iso3, prefijo, nombre, continente, subcontinente, iso_moneda,

    nombre_moneda) VALUES

    (004, 'AF', 'AFG', 93, 'Afganistn', 'Asia', NULL, 'AFN', 'Afgani afgano'),

    (008, 'AL', 'ALB', 355, 'Albania', 'Europa', NULL, 'ALL', 'Lek albans'),

    (010, 'AQ', 'ATA', 672, 'Antrtida', 'Antrtida', NULL, NULL, NULL),

    (012, 'DZ', 'DZA', 213, 'Argelia', 'frica', NULL, 'DZD', 'Dinar algerino'),

    (016, 'AS', 'ASM', 1684, 'Samoa Americana', 'Oceana', NULL, NULL, NULL),

    (020, 'AD', 'AND', 376, 'Andorra', 'Europa', NULL, 'EUR', 'Euro'),

    (024, 'AO', 'AGO', 244, 'Angola', 'frica', NULL, 'AOA', 'Kwanza angoleo'),

    (028, 'AG', 'ATG', 1268, 'Antigua y Barbuda', 'Amrica', 'El Caribe', NULL, NULL),

    (031, 'AZ', 'AZE', 994, 'Azerbaiyn', 'Asia', NULL, 'AZM', 'Manat azerbaiyano'),

    (032, 'AR', 'ARG', 54, 'Argentina', 'Amrica', 'Amrica del Sur', 'ARS', 'Peso argentino'),

    (036, 'AU', 'AUS', 61, 'Australia', 'Oceana', NULL, 'AUD', 'Dlar australiano'),

  • (040, 'AT', 'AUT', 43, 'Austria', 'Europa', NULL, 'EUR', 'Euro'),

    (044, 'BS', 'BHS', 1242, 'Bahamas', 'Amrica', 'El Caribe', 'BSD', 'Dlar bahameo'),

    (048, 'BH', 'BHR', 973, 'Bahrin', 'Asia', NULL, 'BHD', 'Dinar bahrein'),

    (050, 'BD', 'BGD', 880, 'Bangladesh', 'Asia', NULL, 'BDT', 'Taka de Bangladesh'),

    (051, 'AM', 'ARM', 374, 'Armenia', 'Asia', NULL, 'AMD', 'Dram armenio'),

    (052, 'BB', 'BRB', 1246, 'Barbados', 'Amrica', 'El Caribe', 'BBD', 'Dlar de Barbados'),

    (056, 'BE', 'BEL', 32, 'Blgica', 'Europa', NULL, 'EUR', 'Euro'),

    (060, 'BM', 'BMU', 1441, 'Bermudas', 'Amrica', 'El Caribe', 'BMD', 'Dlar de Bermuda'),

    (064, 'BT', 'BTN', 975, 'Bhutn', 'Asia', NULL, 'BTN', 'Ngultrum de Butn'),

    (068, 'BO', 'BOL', 591, 'Bolivia', 'Amrica', 'Amrica del Sur', 'BOB', 'Boliviano'),

    (070, 'BA', 'BIH', 387, 'Bosnia y Herzegovina', 'Europa', NULL, 'BAM', 'Marco convertible

    de Bosnia-Herzegovina'),

    (072, 'BW', 'BWA', 267, 'Botsuana', 'frica', NULL, 'BWP', 'Pula de Botsuana'),

    (074, 'BV', 'BVT', 0, 'Isla Bouvet', NULL, NULL, NULL, NULL),

    (076, 'BR', 'BRA', 55, 'Brasil', 'Amrica', 'Amrica del Sur', 'BRL', 'Real brasileo'),

    (084, 'BZ', 'BLZ', 501, 'Belice', 'Amrica', 'Amrica Central', 'BZD', 'Dlar de Belice'),

    (086, 'IO', 'IOT', 0, 'Territorio Britnico del Ocano ndico', NULL, NULL, NULL, NULL),

    (090, 'SB', 'SLB', 677, 'Islas Salomn', 'Oceana', NULL, 'SBD', 'Dlar de las Islas

    Salomn'),

    (092, 'VG', 'VGB', 1284, 'Islas Vrgenes Britnicas', 'Amrica', 'El Caribe', NULL, NULL),

    (096, 'BN', 'BRN', 673, 'Bruni', 'Asia', NULL, 'BND', 'Dlar de Bruni'),

    (100, 'BG', 'BGR', 359, 'Bulgaria', 'Europa', NULL, 'BGN', 'Lev blgaro'),

    (104, 'MM', 'MMR', 95, 'Myanmar', 'Asia', NULL, 'MMK', 'Kyat birmano'),

    (108, 'BI', 'BDI', 257, 'Burundi', 'frica', NULL, 'BIF', 'Franco burunds'),

    (112, 'BY', 'BLR', 375, 'Bielorrusia', 'Europa', NULL, 'BYR', 'Rublo bielorruso'),

    (116, 'KH', 'KHM', 855, 'Camboya', 'Asia', NULL, 'KHR', 'Riel camboyano'),

    (120, 'CM', 'CMR', 237, 'Camern', 'frica', NULL, NULL, NULL),

    (124, 'CA', 'CAN', 1, 'Canad', 'Amrica', 'Amrica del Norte', 'CAD', 'Dlar canadiense'),

    (132, 'CV', 'CPV', 238, 'Cabo Verde', 'frica', NULL, 'CVE', 'Escudo caboverdiano'),

    (136, 'KY', 'CYM', 1345, 'Islas Caimn', 'Amrica', 'El Caribe', 'KYD', 'Dlar caimano (de

    Islas Caimn)'),

    (140, 'CF', 'CAF', 236, 'Repblica Centroafricana', 'frica', NULL, NULL, NULL),

    (144, 'LK', 'LKA', 94, 'Sri Lanka', 'Asia', NULL, 'LKR', 'Rupia de Sri Lanka'),

    (148, 'TD', 'TCD', 235, 'Chad', 'frica', NULL, NULL, NULL),

    (152, 'CL', 'CHL', 56, 'Chile', 'Amrica', 'Amrica del Sur', 'CLP', 'Peso chileno'),

    (156, 'CN', 'CHN', 86, 'China', 'Asia', NULL, 'CNY', 'Yuan Renminbi de China'),

    (158, 'TW', 'TWN', 886, 'Taiwn', 'Asia', NULL, 'TWD', 'Dlar taiwans'),

    (162, 'CX', 'CXR', 61, 'Isla de Navidad', 'Oceana', NULL, NULL, NULL),

    (166, 'CC', 'CCK', 61, 'Islas Cocos', 'ceana', NULL, NULL, NULL),

    (170, 'CO', 'COL', 57, 'Colombia', 'Amrica', 'Amrica del Sur', 'COP', 'Peso colombiano'),

    (174, 'KM', 'COM', 269, 'Comoras', 'frica', NULL, 'KMF', 'Franco comoriano (de

    Comoras)'),

    (175, 'YT', 'MYT', 262, 'Mayotte', 'frica', NULL, NULL, NULL),

    (178, 'CG', 'COG', 242, 'Congo', 'frica', NULL, NULL, NULL),

    (180, 'CD', 'COD', 243, 'Repblica Democrtica del Congo', 'frica', NULL, 'CDF', 'Franco

    congoleo'),

    (184, 'CK', 'COK', 682, 'Islas Cook', 'Oceana', NULL, NULL, NULL),

  • (188, 'CR', 'CRI', 506, 'Costa Rica', 'Amrica', 'Amrica Central', 'CRC', 'Coln

    costarricense'),

    (191, 'HR', 'HRV', 385, 'Croacia', 'Europa', NULL, 'HRK', 'Kuna croata'),

    (192, 'CU', 'CUB', 53, 'Cuba', 'Amrica', 'El Caribe', 'CUP', 'Peso cubano'),

    (196, 'CY', 'CYP', 357, 'Chipre', 'Europa', NULL, 'CYP', 'Libra chipriota'),

    (203, 'CZ', 'CZE', 420, 'Repblica Checa', 'Europa', NULL, 'CZK', 'Koruna checa'),

    (204, 'BJ', 'BEN', 229, 'Benn', 'frica', NULL, NULL, NULL),

    (208, 'DK', 'DNK', 45, 'Dinamarca', 'Europa', NULL, 'DKK', 'Corona danesa'),

    (212, 'DM', 'DMA', 1767, 'Dominica', 'Amrica', 'El Caribe', NULL, NULL),

    (214, 'DO', 'DOM', 1809, 'Repblica Dominicana', 'Amrica', 'El Caribe', 'DOP', 'Peso

    dominicano'),

    (218, 'EC', 'ECU', 593, 'Ecuador', 'Amrica', 'Amrica del Sur', NULL, NULL),

    (222, 'SV', 'SLV', 503, 'El Salvador', 'Amrica', 'Amrica Central', 'SVC', 'Coln

    salvadoreo'),

    (226, 'GQ', 'GNQ', 240, 'Guinea Ecuatorial', 'frica', NULL, NULL, NULL),

    (231, 'ET', 'ETH', 251, 'Etiopa', 'frica', NULL, 'ETB', 'Birr etope'),

    (232, 'ER', 'ERI', 291, 'Eritrea', 'frica', NULL, 'ERN', 'Nakfa eritreo'),

    (233, 'EE', 'EST', 372, 'Estonia', 'Europa', NULL, 'EEK', 'Corona estonia'),

    (234, 'FO', 'FRO', 298, 'Islas Feroe', 'Europa', NULL, NULL, NULL),

    (238, 'FK', 'FLK', 500, 'Islas Malvinas', 'Amrica', 'Amrica del Sur', 'FKP', 'Libra

    malvinense'),

    (239, 'GS', 'SGS', 0, 'Islas Georgias del Sur y Sandwich del Sur', 'Amrica', 'Amrica del

    Sur', NULL, NULL),

    (242, 'FJ', 'FJI', 679, 'Fiyi', 'Oceana', NULL, 'FJD', 'Dlar fijiano'),

    (246, 'FI', 'FIN', 358, 'Finlandia', 'Europa', NULL, 'EUR', 'Euro'),

    (248, 'AX', 'ALA', 0, 'Islas Gland', 'Europa', NULL, NULL, NULL),

    (250, 'FR', 'FRA', 33, 'Francia', 'Europa', NULL, 'EUR', 'Euro'),

    (254, 'GF', 'GUF', 0, 'Guayana Francesa', 'Amrica', 'Amrica del Sur', NULL, NULL),

    (258, 'PF', 'PYF', 689, 'Polinesia Francesa', 'Oceana', NULL, NULL, NULL),

    (260, 'TF', 'ATF', 0, 'Territorios Australes Franceses', NULL, NULL, NULL, NULL),

    (262, 'DJ', 'DJI', 253, 'Yibuti', 'frica', NULL, 'DJF', 'Franco yibutiano'),

    (266, 'GA', 'GAB', 241, 'Gabn', 'frica', NULL, NULL, NULL),

    (268, 'GE', 'GEO', 995, 'Georgia', 'Europa', NULL, 'GEL', 'Lari georgiano'),

    (270, 'GM', 'GMB', 220, 'Gambia', 'frica', NULL, 'GMD', 'Dalasi gambiano'),

    (275, 'PS', 'PSE', 0, 'Palestina', 'Asia', NULL, NULL, NULL),

    (276, 'DE', 'DEU', 49, 'Alemania', 'Europa', NULL, 'EUR', 'Euro'),

    (288, 'GH', 'GHA', 233, 'Ghana', 'frica', NULL, 'GHC', 'Cedi ghans'),

    (292, 'GI', 'GIB', 350, 'Gibraltar', 'Europa', NULL, 'GIP', 'Libra de Gibraltar'),

    (296, 'KI', 'KIR', 686, 'Kiribati', 'Oceana', NULL, NULL, NULL),

    (300, 'GR', 'GRC', 30, 'Grecia', 'Europa', NULL, 'EUR', 'Euro'),

    (304, 'GL', 'GRL', 299, 'Groenlandia', 'Amrica', 'Amrica del Norte', NULL, NULL),

    (308, 'GD', 'GRD', 1473, 'Granada', 'Amrica', 'El Caribe', NULL, NULL),

    (312, 'GP', 'GLP', 0, 'Guadalupe', 'Amrica', 'El Caribe', NULL, NULL),

    (316, 'GU', 'GUM', 1671, 'Guam', 'Oceana', NULL, NULL, NULL),

    (320, 'GT', 'GTM', 502, 'Guatemala', 'Amrica', 'Amrica Central', 'GTQ', 'Quetzal

    guatemalteco'),

    (324, 'GN', 'GIN', 224, 'Guinea', 'frica', NULL, 'GNF', 'Franco guineano'),

  • (328, 'GY', 'GUY', 592, 'Guyana', 'Amrica', 'Amrica del Sur', 'GYD', 'Dlar guyans'),

    (332, 'HT', 'HTI', 509, 'Hait', 'Amrica', 'El Caribe', 'HTG', 'Gourde haitiano'),

    (334, 'HM', 'HMD', 0, 'Islas Heard y McDonald', 'Oceana', NULL, NULL, NULL),

    (336, 'VA', 'VAT', 39, 'Ciudad del Vaticano', 'Europa', NULL, NULL, NULL),

    (340, 'HN', 'HND', 504, 'Honduras', 'Amrica', 'Amrica Central', 'HNL', 'Lempira

    hondureo'),

    (344, 'HK', 'HKG', 852, 'Hong Kong', 'Asia', NULL, 'HKD', 'Dlar de Hong Kong'),

    (348, 'HU', 'HUN', 36, 'Hungra', 'Europa', NULL, 'HUF', 'Forint hngaro'),

    (352, 'IS', 'ISL', 354, 'Islandia', 'Europa', NULL, 'ISK', 'Krna islandesa'),

    (356, 'IN', 'IND', 91, 'India', 'Asia', NULL, 'INR', 'Rupia india'),

    (360, 'ID', 'IDN', 62, 'Indonesia', 'Asia', NULL, 'IDR', 'Rupiah indonesia'),

    (364, 'IR', 'IRN', 98, 'Irn', 'Asia', NULL, 'IRR', 'Rial iran'),

    (368, 'IQ', 'IRQ', 964, 'Iraq', 'Asia', NULL, 'IQD', 'Dinar iraqu'),

    (372, 'IE', 'IRL', 353, 'Irlanda', 'Europa', NULL, 'EUR', 'Euro'),

    (376, 'IL', 'ISR', 972, 'Israel', 'Asia', NULL, 'ILS', 'Nuevo shquel israel'),

    (380, 'IT', 'ITA', 39, 'Italia', 'Europa', NULL, 'EUR', 'Euro'),

    (384, 'CI', 'CIV', 225, 'Costa de Marfil', 'frica', NULL, NULL, NULL),

    (388, 'JM', 'JAM', 1876, 'Jamaica', 'Amrica', 'El Caribe', 'JMD', 'Dlar jamaicano'),

    (392, 'JP', 'JPN', 81, 'Japn', 'Asia', NULL, 'JPY', 'Yen japons'),

    (398, 'KZ', 'KAZ', 7, 'Kazajstn', 'Asia', NULL, 'KZT', 'Tenge kazajo'),

    (400, 'JO', 'JOR', 962, 'Jordania', 'Asia', NULL, 'JOD', 'Dinar jordano'),

    (404, 'KE', 'KEN', 254, 'Kenia', 'frica', NULL, 'KES', 'Cheln keniata'),

    (408, 'KP', 'PRK', 850, 'Corea del Norte', 'Asia', NULL, 'KPW', 'Won norcoreano'),

    (410, 'KR', 'KOR', 82, 'Corea del Sur', 'Asia', NULL, 'KRW', 'Won surcoreano'),

    (414, 'KW', 'KWT', 965, 'Kuwait', 'Asia', NULL, 'KWD', 'Dinar kuwait'),

    (417, 'KG', 'KGZ', 996, 'Kirguistn', 'Asia', NULL, 'KGS', 'Som kirgus (de Kirguistn)'),

    (418, 'LA', 'LAO', 856, 'Laos', 'Asia', NULL, 'LAK', 'Kip lao'),

    (422, 'LB', 'LBN', 961, 'Lbano', 'Asia', NULL, 'LBP', 'Libra libanesa'),

    (426, 'LS', 'LSO', 266, 'Lesotho', 'frica', NULL, 'LSL', 'Loti lesotense'),

    (428, 'LV', 'LVA', 371, 'Letonia', 'Europa', NULL, 'LVL', 'Lat letn'),

    (430, 'LR', 'LBR', 231, 'Liberia', 'frica', NULL, 'LRD', 'Dlar liberiano'),

    (434, 'LY', 'LBY', 218, 'Libia', 'frica', NULL, 'LYD', 'Dinar libio'),

    (438, 'LI', 'LIE', 423, 'Liechtenstein', 'Europa', NULL, NULL, NULL),

    (440, 'LT', 'LTU', 370, 'Lituania', 'Europa', NULL, 'LTL', 'Litas lituano'),

    (442, 'LU', 'LUX', 352, 'Luxemburgo', 'Europa', NULL, 'EUR', 'Euro'),

    (446, 'MO', 'MAC', 853, 'Macao', 'Asia', NULL, 'MOP', 'Pataca de Macao'),

    (450, 'MG', 'MDG', 261, 'Madagascar', 'frica', NULL, 'MGA', 'Ariary malgache'),

    (454, 'MW', 'MWI', 265, 'Malaui', 'frica', NULL, 'MWK', 'Kwacha malauiano'),

    (458, 'MY', 'MYS', 60, 'Malasia', 'Asia', NULL, 'MYR', 'Ringgit malayo'),

    (462, 'MV', 'MDV', 960, 'Maldivas', 'Asia', NULL, 'MVR', 'Rufiyaa maldiva'),

    (466, 'ML', 'MLI', 223, 'Mal', 'frica', NULL, NULL, NULL),

    (470, 'MT', 'MLT', 356, 'Malta', 'Europa', NULL, 'MTL', 'Lira maltesa'),

    (474, 'MQ', 'MTQ', 0, 'Martinica', 'Amrica', 'El Caribe', NULL, NULL),

    (478, 'MR', 'MRT', 222, 'Mauritania', 'frica', NULL, 'MRO', 'Ouguiya mauritana'),

    (480, 'MU', 'MUS', 230, 'Mauricio', 'frica', NULL, 'MUR', 'Rupia mauricia'),

    (484, 'MX', 'MEX', 52, 'Mxico', 'Amrica', 'Amrica del Norte', 'MXN', 'Peso mexicano'),

    (492, 'MC', 'MCO', 377, 'Mnaco', 'Europa', NULL, NULL, NULL),

  • (496, 'MN', 'MNG', 976, 'Mongolia', 'Asia', NULL, 'MNT', 'Tughrik mongol'),

    (498, 'MD', 'MDA', 373, 'Moldavia', 'Europa', NULL, 'MDL', 'Leu moldavo'),

    (499, 'ME', 'MNE', 382, 'Montenegro', 'Europa', NULL, NULL, NULL),

    (500, 'MS', 'MSR', 1664, 'Montserrat', 'Amrica', 'El Caribe', NULL, NULL),

    (504, 'MA', 'MAR', 212, 'Marruecos', 'frica', NULL, 'MAD', 'Dirham marroqu'),

    (508, 'MZ', 'MOZ', 258, 'Mozambique', 'frica', NULL, 'MZM', 'Metical mozambiqueo'),

    (512, 'OM', 'OMN', 968, 'Omn', 'Asia', NULL, 'OMR', 'Rial oman'),

    (516, 'NA', 'NAM', 264, 'Namibia', 'frica', NULL, 'NAD', 'Dlar namibio'),

    (520, 'NR', 'NRU', 674, 'Nauru', 'Oceana', NULL, NULL, NULL),

    (524, 'NP', 'NPL', 977, 'Nepal', 'Asia', NULL, 'NPR', 'Rupia nepalesa'),

    (528, 'NL', 'NLD', 31, 'Pases Bajos', 'Europa', NULL, 'EUR', 'Euro'),

    (530, 'AN', 'ANT', 599, 'Antillas Holandesas', 'Amrica', 'El Caribe', 'ANG', 'Florn antillano

    neerlands'),

    (533, 'AW', 'ABW', 297, 'Aruba', 'Amrica', 'El Caribe', 'AWG', 'Florn arubeo'),

    (540, 'NC', 'NCL', 687, 'Nueva Caledonia', 'Oceana', NULL, NULL, NULL),

    (548, 'VU', 'VUT', 678, 'Vanuatu', 'Oceana', NULL, 'VUV', 'Vatu vanuatense'),

    (554, 'NZ', 'NZL', 64, 'Nueva Zelanda', 'Oceana', NULL, 'NZD', 'Dlar neozelands'),

    (558, 'NI', 'NIC', 505, 'Nicaragua', 'Amrica', 'Amrica Central', 'NIO', 'Crdoba

    nicaragense'),

    (562, 'NE', 'NER', 227, 'Nger', 'frica', NULL, NULL, NULL),

    (566, 'NG', 'NGA', 234, 'Nigeria', 'frica', NULL, 'NGN', 'Naira nigeriana'),

    (570, 'NU', 'NIU', 683, 'Niue', 'Oceana', NULL, NULL, NULL),

    (574, 'NF', 'NFK', 0, 'Isla Norfolk', 'Oceana', NULL, NULL, NULL),

    (578, 'NO', 'NOR', 47, 'Noruega', 'Europa', NULL, 'NOK', 'Corona noruega'),

    (580, 'MP', 'MNP', 1670, 'Islas Marianas del Norte', 'Oceana', NULL, NULL, NULL),

    (581, 'UM', 'UMI', 0, 'Islas Ultramarinas de Estados Unidos', NULL, NULL, NULL,

    NULL),

    (583, 'FM', 'FSM', 691, 'Micronesia', 'Oceana', NULL, NULL, NULL),

    (584, 'MH', 'MHL', 692, 'Islas Marshall', 'Oceana', NULL, NULL, NULL),

    (585, 'PW', 'PLW', 680, 'Palaos', 'Oceana', NULL, NULL, NULL),

    (586, 'PK', 'PAK', 92, 'Pakistn', 'Asia', NULL, 'PKR', 'Rupia pakistan'),

    (591, 'PA', 'PAN', 507, 'Panam', 'Amrica', 'Amrica Central', 'PAB', 'Balboa panamea'),

    (598, 'PG', 'PNG', 675, 'Papa Nueva Guinea', 'Oceana', NULL, 'PGK', 'Kina de Papa

    Nueva Guinea'),

    (600, 'PY', 'PRY', 595, 'Paraguay', 'Amrica', 'Amrica del Sur', 'PYG', 'Guaran

    paraguayo'),

    (604, 'PE', 'PER', 51, 'Per', 'Amrica', 'Amrica del Sur', 'PEN', 'Nuevo sol peruano'),

    (608, 'PH', 'PHL', 63, 'Filipinas', 'Asia', NULL, 'PHP', 'Peso filipino'),

    (612, 'PN', 'PCN', 870, 'Islas Pitcairn', 'Oceana', NULL, NULL, NULL),

    (616, 'PL', 'POL', 48, 'Polonia', 'Europa', NULL, 'PLN', 'zloty polaco'),

    (620, 'PT', 'PRT', 351, 'Portugal', 'Europa', NULL, 'EUR', 'Euro'),

    (624, 'GW', 'GNB', 245, 'Guinea-Bissau', 'frica', NULL, NULL, NULL),

    (626, 'TL', 'TLS', 670, 'Timor Oriental', 'Asia', NULL, NULL, NULL),

    (630, 'PR', 'PRI', 1, 'Puerto Rico', 'Amrica', 'El Caribe', NULL, NULL),

    (634, 'QA', 'QAT', 974, 'Qatar', 'Asia', NULL, 'QAR', 'Rial qatar'),

    (638, 'RE', 'REU', 262, 'Reunin', 'frica', NULL, NULL, NULL),

    (642, 'RO', 'ROU', 40, 'Rumania', 'Europa', NULL, 'RON', 'Leu rumano'),

  • (643, 'RU', 'RUS', 7, 'Rusia', 'Asia', NULL, 'RUB', 'Rublo ruso'),

    (646, 'RW', 'RWA', 250, 'Ruanda', 'frica', NULL, 'RWF', 'Franco ruands'),

    (654, 'SH', 'SHN', 290, 'Santa Helena', 'frica', NULL, 'SHP', 'Libra de Santa Helena'),

    (659, 'KN', 'KNA', 1869, 'San Cristbal y Nieves', 'Amrica', 'El Caribe', NULL, NULL),

    (660, 'AI', 'AIA', 1264, 'Anguila', 'Amrica', 'El Caribe', NULL, NULL),

    (662, 'LC', 'LCA', 1758, 'Santa Luca', 'Amrica', 'El Caribe', NULL, NULL),

    (666, 'PM', 'SPM', 508, 'San Pedro y Miqueln', 'Amrica', 'Amrica del Norte', NULL,

    NULL),

    (670, 'VC', 'VCT', 1784, 'San Vicente y las Granadinas', 'Amrica', 'El Caribe', NULL,

    NULL),

    (674, 'SM', 'SMR', 378, 'San Marino', 'Europa', NULL, NULL, NULL),

    (678, 'ST', 'STP', 239, 'Santo Tom y Prncipe', 'frica', NULL, 'STD', 'Dobra de Santo

    Tom y Prncipe'),

    (682, 'SA', 'SAU', 966, 'Arabia Saud', 'Asia', NULL, 'SAR', 'Riyal saud'),

    (686, 'SN', 'SEN', 221, 'Senegal', 'frica', NULL, NULL, NULL),

    (688, 'RS', 'SRB', 381, 'Serbia', 'Europa', NULL, NULL, NULL),

    (690, 'SC', 'SYC', 248, 'Seychelles', 'frica', NULL, 'SCR', 'Rupia de Seychelles'),

    (694, 'SL', 'SLE', 232, 'Sierra Leona', 'frica', NULL, 'SLL', 'Leone de Sierra Leona'),

    (702, 'SG', 'SGP', 65, 'Singapur', 'Asia', NULL, 'SGD', 'Dlar de Singapur'),

    (703, 'SK', 'SVK', 421, 'Eslovaquia', 'Europa', NULL, 'SKK', 'Corona eslovaca'),

    (704, 'VN', 'VNM', 84, 'Vietnam', 'Asia', NULL, 'VND', 'Dong vietnamita'),

    (705, 'SI', 'SVN', 386, 'Eslovenia', 'Europa', NULL, NULL, NULL),

    (706, 'SO', 'SOM', 252, 'Somalia', 'frica', NULL, 'SOS', 'Cheln somal'),

    (710, 'ZA', 'ZAF', 27, 'Sudfrica', 'frica', NULL, 'ZAR', 'Rand sudafricano'),

    (716, 'ZW', 'ZWE', 263, 'Zimbabue', 'frica', NULL, 'ZWL', 'Dlar zimbabuense'),

    (724, 'ES', 'ESP', 34, 'Espaa', 'Europa', NULL, 'EUR', 'Euro'),

    (732, 'EH', 'ESH', 0, 'Sahara Occidental', 'frica', NULL, NULL, NULL),

    (736, 'SD', 'SDN', 249, 'Sudn', 'frica', NULL, 'SDD', 'Dinar sudans'),

    (740, 'SR', 'SUR', 597, 'Surinam', 'Amrica', 'Amrica del Sur', 'SRD', 'Dlar surinams'),

    (744, 'SJ', 'SJM', 0, 'Svalbard y Jan Mayen', 'Europa', NULL, NULL, NULL),

    (748, 'SZ', 'SWZ', 268, 'Suazilandia', 'frica', NULL, 'SZL', 'Lilangeni suazi'),

    (752, 'SE', 'SWE', 46, 'Suecia', 'Europa', NULL, 'SEK', 'Corona sueca'),

    (756, 'CH', 'CHE', 41, 'Suiza', 'Europa', NULL, 'CHF', 'Franco suizo'),

    (760, 'SY', 'SYR', 963, 'Siria', 'Asia', NULL, 'SYP', 'Libra siria'),

    (762, 'TJ', 'TJK', 992, 'Tayikistn', 'Asia', NULL, 'TJS', 'Somoni tayik (de Tayikistn)'),

    (764, 'TH', 'THA', 66, 'Tailandia', 'Asia', NULL, 'THB', 'Baht tailands'),

    (768, 'TG', 'TGO', 228, 'Togo', 'frica', NULL, NULL, NULL),

    (772, 'TK', 'TKL', 690, 'Tokelau', 'Oceana', NULL, NULL, NULL),

    (776, 'TO', 'TON', 676, 'Tonga', 'Oceana', NULL, 'TOP', 'Pa''anga tongano'),

    (780, 'TT', 'TTO', 1868, 'Trinidad y Tobago', 'Amrica', 'El Caribe', 'TTD', 'Dlar de

    Trinidad y Tobago'),

    (784, 'AE', 'ARE', 971, 'Emiratos rabes Unidos', 'Asia', NULL, 'AED', 'Dirham de los

    Emiratos rabes Unidos'),

    (788, 'TN', 'TUN', 216, 'Tnez', 'frica', NULL, 'TND', 'Dinar tunecino'),

    (792, 'TR', 'TUR', 90, 'Turqua', 'Asia', NULL, 'TRY', 'Lira turca'),

    (795, 'TM', 'TKM', 993, 'Turkmenistn', 'Asia', NULL, 'TMM', 'Manat turcomano'),

    (796, 'TC', 'TCA', 1649, 'Islas Turcas y Caicos', 'Amrica', 'El Caribe', NULL, NULL),

  • (798, 'TV', 'TUV', 688, 'Tuvalu', 'Oceana', NULL, NULL, NULL),

    (800, 'UG', 'UGA', 256, 'Uganda', 'frica', NULL, 'UGX', 'Cheln ugands'),

    (804, 'UA', 'UKR', 380, 'Ucrania', 'Europa', NULL, 'UAH', 'Grivna ucraniana'),

    (807, 'MK', 'MKD', 389, 'Macedonia', 'Europa', NULL, 'MKD', 'Denar macedonio'),

    (818, 'EG', 'EGY', 20, 'Egipto', 'frica', NULL, 'EGP', 'Libra egipcia'),

    (826, 'GB', 'GBR', 44, 'Reino Unido', 'Europa', NULL, 'GBP', 'Libra esterlina (libra de Gran

    Bretaa)'),

    (834, 'TZ', 'TZA', 255, 'Tanzania', 'frica', NULL, 'TZS', 'Cheln tanzano'),

    (840, 'US', 'USA', 1, 'Estados Unidos', 'Amrica', 'Amrica del Norte', 'USD', 'Dlar

    estadounidense'),

    (850, 'VI', 'VIR', 1340, 'Islas Vrgenes de los Estados Unidos', 'Amrica', 'El Caribe',

    NULL, NULL),

    (854, 'BF', 'BFA', 226, 'Burkina Faso', 'frica', NULL, NULL, NULL),

    (858, 'UY', 'URY', 598, 'Uruguay', 'Amrica', 'Amrica del Sur', 'UYU', 'Peso uruguayo'),

    (860, 'UZ', 'UZB', 998, 'Uzbekistn', 'Asia', NULL, 'UZS', 'Som uzbeko'),

    (862, 'VE', 'VEN', 58, 'Venezuela', 'Amrica', 'Amrica del Sur', 'VEB', 'Bolvar

    venezolano'),

    (876, 'WF', 'WLF', 681, 'Wallis y Futuna', 'Oceana', NULL, NULL, NULL),

    (882, 'WS', 'WSM', 685, 'Samoa', 'Oceana', NULL, 'WST', 'Tala samoana'),

    (887, 'YE', 'YEM', 967, 'Yemen', 'Asia', NULL, 'YER', 'Rial yemen (de Yemen)'),

    (894, 'ZM', 'ZMB', 260, 'Zambia', 'frica', NULL, 'ZMK', 'Kwacha zambiano');

    CREATE OR REPLACE VIEW america AS

    SELECT p.id, p.nombre, p.subcontinente,

    p.nombre_moneda

    FROM pais P

    WHERE (p.continente = 'Amrica');

    Ahora solo tenemos que hacer una consulta para obtener la vista correspondiente.

    SELECT * FROM america;

    Ejemplo: En el futbol se conoce como Caballo de Hierro a los deportistas que jugaron los 90 minutos en todos los partidos de un campeonato. Y Considerando que en el torneo de Apertura 2011 se disputaron 17 fechas en la fase regular. La vista que define a estos futbolistas es la siguiente.

    CREATE OR REPLACE VIEW caballoDeHierro AS

    SELECT e.nombreEquipo, j.nombre, j.JJ

    FROM equipo e, jugadores j

  • WHERE e.idEquipo = j.idEquipo

    AND j.JJ >= 17 AND minutos >= (j.JJ * 90)

    AND (j.JJ % 2 != 0)

    ORDER BY j.minutos DESC, j.nombre;

    Ahora solo tenemos que hacer una consulta para obtener la vista correspondiente.

    SELECT * FROM caballoDeHierro;

    Ejemplo. El cual modificar la vista caballo de hierro con los jugadores que no recibieron amonestaciones.

    CREATE OR REPLACE VIEW caballoDeHierro AS

    SELECT nombrePosicion, e.nombreEquipo equipo, j.nombre, j.JJ,j.ta FROM equipo e, jugador j, posicion p

    WHERE e.idEquipo = j.idEquipo

    AND p.idPosicion = j.idPosicion

    AND j.JJ >= 17 AND minutos >= (j.JJ * 90)

    AND (j.JJ % 2 != 0) AND (j.ta = 0 )

    ORDER BY nombre; SELECT * FROM caballoDeHierro;

    Actualizacin de vistas

    Algunas vistas pueden actualizarse mediante sentencias INSERT, DELETE o UPDATE sobre ellas, considerando las siguientes reglas:

    No se debe especificar DISTINCT para que las filas duplicadas no se eliminen de

    los resultados de las consultas.

    La clusula FROM debe especificar slo una tabla actualizable.

    Cada elemento de seleccin debe ser una referencia de columna simple (no puede

    contener expresiones, columnas calculadas, ni funciones de columna).

  • La clusula WHERE no debe incluir una subconsulta.

    La consulta no debe incluir una clusula GROUP BY o HAVING.

    La consulta no debe incluir sentencias: UNION, UNION ALL, INTERSECT,

    MINUS

    Si una columna NOT NULL no contiene un DEFAULT, no es posible insertar

    mediante vistas

    Para que la vista sea de solo lectura, usaremos la clusula WITH READ ONLY (Oracle). Observe que esta opcin no soporta la clusula ORDER BY

    La clusula CHECK OPTION evita que sean insertados o modificados registro que no sean posteriormente incluidos en la vista mediante la sentencia WHERE.

    Ejemplo: Poblacin por entidad federativa 2010 INEGI (INSTITUTO NACIONAL DE ESTADISTICA, GEOGRAFIA E INFORMATICA). El ejemplo siguiente crea una vista que usa la clusula CHECK OPTION donde seleccionan aquellas entidades federativas que tienen menos de 2 millones de habitantes.

    CREATE TABLE entidad ( estado CHAR(30) NOT NULL, poblacion NUMBER NOT NULL );

    CREATE TABLE entidad ( estado CHAR(30) NOT NULL, poblacion INTEGER NOT NULL ) ENGINE = InnoDB;

    INSERT INTO entidad values ('Estado de Mxico', 15175862); INSERT INTO entidad values ('Distrito Federal', 8851080); INSERT INTO entidad values ('Veracruz', 7643194); INSERT INTO entidad values ('Jalisco', 7350682); INSERT INTO entidad values ('Puebla', 5779829); INSERT INTO entidad values ('Guanajuato', 5486372); INSERT INTO entidad values ('Chiapas', 4796580); INSERT INTO entidad values ('Nuevo Len', 4653458); INSERT INTO entidad values ('Michoacn de Ocampo',4351037); INSERT INTO entidad values ('Oaxaca', 3801962); INSERT INTO entidad values ('Chihuahua', 3406465);

  • INSERT INTO entidad values ('Guerrero', 3388768);

    CREATE OR REPLACE VIEW entidades AS SELECT * FROM entidad WHERE poblacion < 2000000 WITH CHECK OPTION;

    Ahora considere la siguiente informacin. Para insertarla en la vista recin creada.

    Entidad Poblacin

    Tamaulipas 3,268,554

    Baja California 3,155,070

    Sinaloa 2,767,761

    Coahuila de Zaragoza 2,748,391

    Hidalgo 2,665,018

    Sonora 2,662,480

    San Luis Potos 2,585,518

    Tabasco 2,238,603

    Yucatn 1,955,577

    Quertaro 1,827,937

    Morelos 1,777,227

    Durango 1,632,934

    Zacatecas 1,490,668

    Quintana Roo 1,325,578

    Aguascalientes 1,213,445

    Tlaxcala 1,169,936

    Nayarit 1,084,979

    Campeche 822,441

    Colima 650,555

  • Entidad Poblacin

    Baja California Sur 637,026

    Con la clusula CHECK OPTION cada vez que se trata de hacer una violacin de la condicin dentro del WHERE obtendremos un error ORA-01402. Que error le regresa MySQL

    Borrado de vistas con DROP VIEW

    La sentencia DROP VIEW permite borrar una vista de la base de datos. Su sintaxis se presenta a continuacin:

    DROP VIEW [usuario.] nombre_vista [CASCADE CONSTRAINTS];

    DROP VIEW [IF EXISTS] nombre_vista;